|
|
| import json, pathlib, subprocess, sys, time |
| root = pathlib.Path('/content/sub1quant') |
| log = root / 'colab_runs' / 'setup_model_inner.log' |
|
|
| def emit(msg): |
| print(msg, flush=True) |
| with log.open('a', encoding='utf-8') as f: |
| f.write(msg + '\n') |
|
|
| def run(cmd): |
| emit('$ ' + ' '.join(cmd)) |
| p = subprocess.run(cmd, text=True, capture_output=True) |
| emit('returncode=' + str(p.returncode)) |
| if p.stdout: |
| emit('stdout:\n' + p.stdout[-4000:]) |
| if p.stderr: |
| emit('stderr:\n' + p.stderr[-4000:]) |
| if p.returncode != 0: |
| raise SystemExit(p.returncode) |
|
|
| emit('SETUP START ' + time.strftime('%Y-%m-%d %H:%M:%S')) |
| run([sys.executable, '-m', 'pip', 'install', '-q', '-U', 'huggingface_hub', 'datasets', 'safetensors', 'accelerate', 'transformers']) |
|
|
| data_dir = root / 'data' |
| data_dir.mkdir(exist_ok=True) |
| wiki = data_dir / 'wiki.test.txt' |
| if not wiki.exists() or wiki.stat().st_size < 1000: |
| emit('Downloading Salesforce/wikitext wikitext-2-raw-v1 test split') |
| from datasets import load_dataset |
| ds = load_dataset('Salesforce/wikitext', 'wikitext-2-raw-v1', split='test') |
| wiki.write_text('\n\n'.join(ds['text']), encoding='utf-8') |
| emit(f'wrote {wiki} bytes={wiki.stat().st_size}') |
| else: |
| emit(f'wikitext exists bytes={wiki.stat().st_size}') |
|
|
| model_dir = root / 'models' / 'gemma-4-E2B' |
| model_dir.mkdir(parents=True, exist_ok=True) |
| if not (model_dir / 'model.safetensors').exists(): |
| emit('Downloading google/gemma-4-E2B-it snapshot') |
| from huggingface_hub import snapshot_download |
| snapshot_download( |
| repo_id='google/gemma-4-E2B-it', |
| local_dir=str(model_dir), |
| allow_patterns=['*.json', '*.model', '*.safetensors', '*.md'], |
| ) |
| else: |
| emit(f'model exists bytes={(model_dir / "model.safetensors").stat().st_size}') |
| summary = { |
| 'wiki_exists': wiki.exists(), |
| 'wiki_size': wiki.stat().st_size if wiki.exists() else None, |
| 'model_exists': (model_dir / 'model.safetensors').exists(), |
| 'model_size': (model_dir / 'model.safetensors').stat().st_size if (model_dir / 'model.safetensors').exists() else None, |
| } |
| (root / 'colab_runs' / 'setup_summary.json').write_text(json.dumps(summary, indent=2), encoding='utf-8') |
| emit('SETUP DONE ' + json.dumps(summary)) |
|
|