Views
No views yet
unsloth/Meta-Llama-3.1-8B-Instruct-bnb-4bit (loaded in 4-bit for
training via Unsloth)q/k/v/o_proj, gate/up/down_proj)FastLanguageModel + TRL SFTTrainerHarsh-k-007/fitcoach-conversations
— 1,407 synthetic coaching conversations (95/5 train/eval split for this run)bfd strategy)bitsandbytes at inference time.1from transformers import AutoModelForCausalLM, AutoTokenizer
2from peft import PeftModel
3import torch
4
5base_model_id = "unsloth/Meta-Llama-3.1-8B-Instruct"
6adapter_id = "Harsh-k-007/fitcoach-8b-adapter"
7
8tokenizer = AutoTokenizer.from_pretrained(base_model_id)
9tokenizer.pad_token = "<|finetune_right_pad_id|>"
10
11base_model = AutoModelForCausalLM.from_pretrained(
12 base_model_id,
13 dtype=torch.float16,
14 device_map="auto",
15)
16model = PeftModel.from_pretrained(base_model, adapter_id)
17model.eval()
18
19messages = [
20 {"role": "system", "content": "You are FitCoach, a friendly fitness and nutrition coach."},
21 {"role": "user", "content": "Build me a 4-day gym workout plan for muscle gain."},
22]
23
24encoded = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
25input_ids = encoded["input_ids"] if hasattr(encoded, "keys") else encoded
26input_ids = input_ids.to(model.device)
27
28output = model.generate(
29 input_ids,
30 max_new_tokens=512,
31 do_sample=True,
32 temperature=0.7,
33 top_p=0.9,
34 pad_token_id=128004,
35)
36print(tokenizer.decode(output[0][input_ids.shape[-1]:], skip_special_tokens=True))SFTTrainer, using Unsloth's
FastLanguageModel for memory-efficient LoRA training (gradient checkpointing via
use_gradient_checkpointing="unsloth")train_on_responses_only / assistant-only
masking was not applied in this run — a documented future optimization once
reliably supported for the Llama 3 chat template)unsloth.chat_templates.get_chat_template)adamw_8bit, weight decay 0.01, cosine schedule, 10 warmup steps