| |
| """ |
| DOJO Phase 2 Supplement Top-Up β runs inside HuggingFace container. |
| Loads naima-dojo-741hz-v3 weights, trains on dojo_gold_v4_supplement.jsonl, |
| pushes to naima-dojo-741hz-v4. |
| """ |
| import os, torch |
| from datasets import load_dataset |
| from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer |
| from trl import SFTConfig, SFTTrainer |
|
|
| CHAMBER = "DOJO" |
| HZ = 741 |
| BASE = "misterJB/naima-dojo-741hz-v3" |
| DATASET = "misterJB/dojo-manifestation-training" |
| SUPPLEMENT = "dojo_gold_v4_supplement.jsonl" |
| OUTPUT = "misterJB/naima-dojo-741hz-v4" |
| CKPT_DIR = "/tmp/dojo-741hz-v4-ckpt" |
|
|
| print(f"{CHAMBER} {HZ}Hz -- Supplement Top-Up START") |
| gpu = torch.cuda.get_device_name(0) if torch.cuda.is_available() else "None" |
| print(f"GPU: {gpu}") |
| print(f"Base: {BASE}") |
| print(f"Supplement: {SUPPLEMENT}") |
|
|
| tokenizer = AutoTokenizer.from_pretrained( |
| BASE, |
| trust_remote_code=True, |
| token=os.environ["HF_TOKEN"], |
| ) |
| if tokenizer.pad_token is None: |
| tokenizer.pad_token = tokenizer.eos_token |
|
|
| cfg = AutoConfig.from_pretrained(BASE, trust_remote_code=True, token=os.environ["HF_TOKEN"]) |
|
|
| model = AutoModelForCausalLM.from_pretrained( |
| BASE, |
| config=cfg, |
| quantization_config=None, |
| torch_dtype=torch.bfloat16, |
| device_map="auto", |
| trust_remote_code=True, |
| token=os.environ["HF_TOKEN"], |
| ) |
| model.config.use_cache = False |
| model.gradient_checkpointing_enable() |
| print(f"Model loaded β {sum(p.numel() for p in model.parameters()) / 1e9:.1f}B parameters") |
|
|
| |
| ds = load_dataset(DATASET, data_files={"train": SUPPLEMENT}, split="train", |
| token=os.environ["HF_TOKEN"]) |
| print(f"Supplement corpus: {len(ds)} examples") |
|
|
| |
| args = SFTConfig( |
| output_dir=CKPT_DIR, |
| num_train_epochs=3, |
| per_device_train_batch_size=1, |
| gradient_accumulation_steps=16, |
| learning_rate=5e-6, |
| warmup_ratio=0.1, |
| lr_scheduler_type="cosine", |
| weight_decay=0.01, |
| bf16=True, |
| gradient_checkpointing=True, |
| save_strategy="epoch", |
| save_total_limit=1, |
| logging_steps=25, |
| push_to_hub=True, |
| hub_model_id=OUTPUT, |
| hub_token=os.environ["HF_TOKEN"], |
| hub_strategy="end", |
| report_to="none", |
| max_length=1024, |
| ) |
|
|
| trainer = SFTTrainer( |
| model=model, |
| args=args, |
| train_dataset=ds, |
| processing_class=tokenizer, |
| ) |
|
|
| trainer.train() |
| trainer.push_to_hub( |
| commit_message=f"DOJO 741Hz supplement top-up v4 β valformat gate binding, Naima identity, 3 epochs" |
| ) |
| print(f"β
DOJO v4 pushed to {OUTPUT}") |
|
|