Spaces:
Sleeping
Sleeping
jefffffff9 Claude Sonnet 4.6 commited on
Commit ·
8cf3564
1
Parent(s): c3a3cb7
Fix Cell 13: drop bitsandbytes, load whisper-small in fp16
Browse filesbitsandbytes 8-bit requires libnvJitLink.so.13 which is absent on
Kaggle CUDA 13. whisper-small (244MB) fits in T4 16GB in fp16 with
room to spare -- 8-bit quantization is unnecessary.
Cell 13: WhisperForConditionalGeneration loaded via direct module path
(avoids torchvision chain), fp16, .to(device), gradient_checkpointing
enabled on the model directly.
Cell 15: set gradient_checkpointing=False in TrainingArguments since
it is already enabled on the model in Cell 13 (setting both causes a
warning and double-wrapping).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
notebooks/kaggle_master_trainer.ipynb
CHANGED
|
@@ -141,7 +141,7 @@
|
|
| 141 |
"id": "cell-model",
|
| 142 |
"metadata": {},
|
| 143 |
"outputs": [],
|
| 144 |
-
"source": "#
|
| 145 |
},
|
| 146 |
{
|
| 147 |
"cell_type": "code",
|
|
@@ -163,7 +163,7 @@
|
|
| 163 |
"id": "cell-train-args",
|
| 164 |
"metadata": {},
|
| 165 |
"outputs": [],
|
| 166 |
-
"source": "#
|
| 167 |
},
|
| 168 |
{
|
| 169 |
"cell_type": "code",
|
|
|
|
| 141 |
"id": "cell-model",
|
| 142 |
"metadata": {},
|
| 143 |
"outputs": [],
|
| 144 |
+
"source": "# -- Cell 13: Load Whisper-small (fp16) + LoRA --------------------------------\n# bitsandbytes 8-bit quantization requires libnvJitLink.so.13 which is absent\n# on Kaggle's CUDA 13 environment. For whisper-small (244MB) this doesn't\n# matter -- fp16 on a T4 (16GB) uses only ~500MB VRAM, well within budget.\nimport torch\nfrom transformers.models.whisper.modeling_whisper import WhisperForConditionalGeneration\nfrom peft import LoraConfig, get_peft_model, TaskType\n\ndevice = 'cuda' if torch.cuda.is_available() else 'cpu'\nprint(f'Loading {WHISPER_MODEL_ID} in fp16 on {device} ...')\n\nmodel = WhisperForConditionalGeneration.from_pretrained(\n WHISPER_MODEL_ID,\n torch_dtype=torch.float16,\n token=HF_TOKEN,\n)\nmodel = model.to(device)\nmodel.train()\n\n# Force target language -- avoids language-detection overhead during training\nmodel.config.forced_decoder_ids = processor.get_decoder_prompt_ids(\n language='fr', # closest Whisper supports for Bambara/Fula\n task='transcribe',\n)\nmodel.config.suppress_tokens = []\n\n# Enable gradient checkpointing to save activation memory\nmodel.gradient_checkpointing_enable()\n\n# LoRA -- inject adapters into decoder Q and V projections only\nlora_cfg = LoraConfig(\n r=LORA_R,\n lora_alpha=LORA_ALPHA,\n target_modules=LORA_TARGETS,\n lora_dropout=LORA_DROPOUT,\n bias='none',\n task_type=TaskType.SEQ_2_SEQ_LM,\n)\nmodel = get_peft_model(model, lora_cfg)\nmodel.print_trainable_parameters()\n\nvram_mb = torch.cuda.memory_allocated() / 1e6 if torch.cuda.is_available() else 0\nprint(f'\\nVRAM used: {vram_mb:.0f} MB / {torch.cuda.get_device_properties(0).total_memory / 1e6:.0f} MB')\nprint(f'Model ready on {device}')"
|
| 145 |
},
|
| 146 |
{
|
| 147 |
"cell_type": "code",
|
|
|
|
| 163 |
"id": "cell-train-args",
|
| 164 |
"metadata": {},
|
| 165 |
"outputs": [],
|
| 166 |
+
"source": "# -- Cell 15: Training arguments ----------------------------------------------\nfrom transformers import Seq2SeqTrainingArguments\n\ntraining_args = Seq2SeqTrainingArguments(\n output_dir=OUTPUT_DIR,\n\n max_steps=MAX_STEPS,\n warmup_steps=WARMUP_STEPS,\n logging_steps=LOGGING_STEPS,\n save_steps=SAVE_STEPS,\n eval_steps=EVAL_STEPS,\n\n per_device_train_batch_size=BATCH_SIZE,\n per_device_eval_batch_size=8,\n gradient_accumulation_steps=GRAD_ACCUM,\n\n fp16=True,\n # gradient_checkpointing handled directly on model in Cell 13\n gradient_checkpointing=False,\n\n learning_rate=LEARNING_RATE,\n lr_scheduler_type='cosine',\n weight_decay=0.0,\n adam_beta1=0.9,\n adam_beta2=0.98,\n adam_epsilon=1e-6,\n\n eval_strategy='steps',\n predict_with_generate=True,\n generation_max_length=225,\n load_best_model_at_end=True,\n metric_for_best_model='wer',\n greater_is_better=False,\n\n save_total_limit=3,\n save_strategy='steps',\n\n report_to=['tensorboard'],\n logging_dir=f'{OUTPUT_DIR}/logs',\n push_to_hub=False,\n)\n\nprint('Training arguments ready')\nprint(f' Effective batch size: {BATCH_SIZE * GRAD_ACCUM}')\nprint(f' Max steps : {MAX_STEPS}')"
|
| 167 |
},
|
| 168 |
{
|
| 169 |
"cell_type": "code",
|