""" Quick smoke-test script to verify your environment works before full training. Runs on just 20 training + 5 eval samples with 10 steps. """ import torch from datasets import load_dataset from unsloth import FastLanguageModel from trl import SFTConfig, SFTTrainer from transformers import AutoTokenizer, set_seed set_seed(3407) tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3.5-2B", trust_remote_code=True) def preprocess(example): text = tokenizer.apply_chat_template( example["messages"], tokenize=False, add_generation_prompt=False ) return {"text": text} print("Loading dataset...") train_dataset = load_dataset("OmAlve/reading-steiner-data", split="train[:20]") eval_dataset = load_dataset("OmAlve/reading-steiner-data", split="eval[:5]") train_dataset = train_dataset.map(preprocess, remove_columns=["messages"]) eval_dataset = eval_dataset.map(preprocess, remove_columns=["messages"]) print("Loading model with Unsloth...") model, _ = FastLanguageModel.from_pretrained( model_name="Qwen/Qwen3.5-2B", max_seq_length=4096, dtype=torch.float16, load_in_4bit=True, ) model = FastLanguageModel.get_peft_model( model, r=16, target_modules=["q_proj","k_proj","v_proj","o_proj","gate_proj","up_proj","down_proj"], lora_alpha=16, lora_dropout=0, bias="none", use_gradient_checkpointing=True, random_state=3407, ) args = SFTConfig( output_dir="./mini_out", max_length=4096, per_device_train_batch_size=1, gradient_accumulation_steps=4, max_steps=10, learning_rate=2e-4, warmup_ratio=0.05, lr_scheduler_type="cosine", logging_steps=2, logging_first_step=True, eval_strategy="steps", eval_steps=5, save_strategy="no", bf16=torch.cuda.is_bf16_supported(), fp16=not torch.cuda.is_bf16_supported(), gradient_checkpointing=True, disable_tqdm=True, report_to=["trackio"], seed=3407, push_to_hub=False, ) trainer = SFTTrainer( model=model, tokenizer=tokenizer, args=args, train_dataset=train_dataset, eval_dataset=eval_dataset, ) print("Starting mini training run...") trainer.train() print("Mini test passed! Your environment is ready for full training.")