| from trl import SFTTrainer |
| from transformers import TrainingArguments |
| from unsloth import FastLanguageModel |
| from datasets import load_dataset |
| import torch |
|
|
| |
| dataset = load_dataset("json", data_files="your_chats.jsonl", split="train") |
|
|
| model, tokenizer = FastLanguageModel.from_pretrained( |
| "unsloth/llama-3.1-8b-bnb-4bit", |
| max_seq_length=2048, |
| dtype=torch.float16 |
| ) |
|
|
| |
| model = FastLanguageModel.get_peft_model( |
| model, r=16, target_modules=["q_proj", "k_proj", "v_proj", "o_proj"] |
| ) |
|
|
| |
| trainer = SFTTrainer( |
| model=model, |
| train_dataset=dataset, |
| dataset_text_field="text", |
| max_seq_length=2048, |
| args=TrainingArguments( |
| per_device_train_batch_size=2, |
| gradient_accumulation_steps=4, |
| warmup_steps=10, |
| max_steps=100, |
| output_dir="fine_tuned_model" |
| ) |
| ) |
| trainer.train() |
| model.save_pretrained("your_finance_bot") |