| |
| """Split memory.bin into <5GB chunks, uploading each to HF Hub, then delete.""" |
| import sys, os, shutil |
| sys.path.insert(0, '.') |
|
|
| from huggingface_hub import HfApi |
| api = HfApi() |
|
|
| src = 'palimpseste-max/palimpseste_memory.bin' |
| sz = os.path.getsize(src) |
| chunk_size = 4_500_000_000 |
| n_chunks = (sz + chunk_size - 1) // chunk_size |
| print(f'Source: {sz/1024**3:.2f} GB -> {n_chunks} chunks', flush=True) |
|
|
| |
| with open(src, 'rb') as f: |
| for i in range(n_chunks): |
| chunk_path = f'palimpseste-max/palimpseste_memory.bin.part{i}' |
| remaining = min(chunk_size, sz - i * chunk_size) |
|
|
| print(f'Writing chunk {i} ({remaining/1024**3:.2f} GB)...', flush=True) |
| written = 0 |
| with open(chunk_path, 'wb') as out: |
| while written < remaining: |
| block = f.read(min(8 * 1024 * 1024, remaining - written)) |
| if not block: |
| break |
| out.write(block) |
| written += len(block) |
|
|
| csz = os.path.getsize(chunk_path) |
| print(f' chunk {i}: {csz/1024**3:.2f} GB', flush=True) |
|
|
| |
| repo_path = f'palimpseste-max/palimpseste_memory.bin.part{i}' |
| print(f' uploading chunk {i} to HF Hub...', flush=True) |
| api.upload_file( |
| path_or_fileobj=chunk_path, |
| path_in_repo=repo_path, |
| repo_id='thefinalboss/palimpseste-max', |
| repo_type='model', |
| ) |
| print(f' chunk {i} uploaded!', flush=True) |
|
|
| |
| os.remove(chunk_path) |
| print(f' chunk {i} deleted locally', flush=True) |
|
|
| |
| os.remove(src) |
| print(f'Original deleted. Split+upload COMPLETE!', flush=True) |
|
|