| | --- |
| | language: |
| | - vi |
| | - en |
| | license: apache-2.0 |
| | tags: |
| | - llm-judge |
| | - training-checkpoint |
| | - lora |
| | - unsloth |
| | --- |
| | |
| | # finetuned_7__2 |
| | |
| | Full training folder backup - Toàn bộ checkpoints và models. |
| | |
| | ## 📂 Cấu trúc Folder |
| | ``` |
| | train_ |
| | ├── lora_adapters/ # LoRA adapters |
| | ├── README.md |
| | ├── zero_shot_metrics.json |
| | └── zero_shot_results.csv |
| | ``` |
| | |
| | ## 🚀 Sử Dụng |
| | |
| | ### 1️⃣ Clone Repo |
| | ```bash |
| | git lfs install |
| | git clone https://huggingface.co/ImNotTam/finetuned_7__2 |
| | cd finetuned_7__2 |
| | ``` |
| | |
| | ### 2️⃣ Load LoRA Adapters (Nhẹ nhất - khuyến nghị) |
| | ```python |
| | from unsloth import FastLanguageModel |
| | |
| | model, tokenizer = FastLanguageModel.from_pretrained( |
| | model_name="ImNotTam/finetuned_7__2", |
| | subfolder="lora_adapters", |
| | max_seq_length=2048, |
| | dtype=None, |
| | load_in_4bit=True, |
| | ) |
| | |
| | # Enable inference mode |
| | FastLanguageModel.for_inference(model) |
| | |
| | # Test |
| | prompt = "Đánh giá response này..." |
| | inputs = tokenizer(prompt, return_tensors="pt").to("cuda") |
| | outputs = model.generate(**inputs, max_new_tokens=256) |
| | print(tokenizer.decode(outputs[0], skip_special_tokens=True)) |
| | ``` |
| | |
| | ### 3️⃣ Load Final Model |
| | ```python |
| | from transformers import AutoModelForCausalLM, AutoTokenizer |
| | |
| | model = AutoModelForCausalLM.from_pretrained( |
| | "ImNotTam/finetuned_7__2", |
| | subfolder="final_model", |
| | device_map="auto", |
| | torch_dtype="auto" |
| | ) |
| | tokenizer = AutoTokenizer.from_pretrained("ImNotTam/finetuned_7__2", subfolder="final_model") |
| | |
| | # Inference |
| | inputs = tokenizer("Your prompt", return_tensors="pt").to("cuda") |
| | outputs = model.generate(**inputs) |
| | print(tokenizer.decode(outputs[0])) |
| | ``` |
| | |
| | ### 4️⃣ Resume Training từ Checkpoint |
| | ```python |
| | from transformers import Trainer, TrainingArguments |
| | |
| | # Load checkpoint muốn resume |
| | model = AutoModelForCausalLM.from_pretrained( |
| | "ImNotTam/finetuned_7__2", |
| | subfolder="checkpoint-210", # Chọn checkpoint |
| | device_map="auto" |
| | ) |
| | |
| | # Continue training |
| | trainer = Trainer( |
| | model=model, |
| | args=TrainingArguments( |
| | output_dir="./continue_training", |
| | # ... your training args |
| | ), |
| | ) |
| | trainer.train(resume_from_checkpoint=True) |
| | ``` |
| | |
| | ### 5️⃣ Fine-tune Tiếp từ LoRA Adapter |
| | ```python |
| | from unsloth import FastLanguageModel |
| | from trl import SFTTrainer |
| | |
| | # Load LoRA adapter |
| | model, tokenizer = FastLanguageModel.from_pretrained( |
| | model_name="ImNotTam/finetuned_7__2", |
| | subfolder="lora_adapters", |
| | max_seq_length=2048, |
| | dtype=None, |
| | load_in_4bit=True, |
| | ) |
| | |
| | # Add LoRA config để train tiếp |
| | 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="unsloth", |
| | ) |
| | |
| | # Train với data mới |
| | trainer = SFTTrainer( |
| | model=model, |
| | tokenizer=tokenizer, |
| | train_dataset=your_new_dataset, |
| | # ... training args |
| | ) |
| | trainer.train() |
| | ``` |
| | |
| | ### 6️⃣ Xem Metrics và Results |
| | ```python |
| | import json |
| | import pandas as pd |
| | |
| | # Load metrics |
| | with open("zero_shot_metrics.json", "r") as f: |
| | metrics = json.load(f) |
| | print("📊 Metrics:", metrics) |
| | |
| | # Load results |
| | results = pd.read_csv("zero_shot_results.csv") |
| | print("\n📈 Results:") |
| | print(results.head()) |
| | ``` |
| | |
| | ## 📋 Nội Dung Repo |
| | |
| | | Folder/File | Mô tả | Kích thước | |
| | |-------------|-------|------------| |
| | | `lora_adapters/` | LoRA adapters (nhẹ) | ~50-100 MB | |
| | | `final_model/` | Model merged đầy đủ | ~4-8 GB | |
| | | `checkpoint-150/` | Training checkpoint | ~4-8 GB | |
| | | `checkpoint-200/` | Training checkpoint | ~4-8 GB | |
| | | `checkpoint-210/` | Training checkpoint | ~4-8 GB | |
| | | `zero_shot_metrics.json` | Evaluation metrics | <1 MB | |
| | | `zero_shot_results.csv` | Detailed results | <1 MB | |
| | |
| | ## 💡 Khuyến Nghị |
| | |
| | - **Inference nhanh:** Dùng `lora_adapters/` |
| | - **Production:** Dùng `final_model/` |
| | - **Train tiếp:** Load `lora_adapters/` + add LoRA config |
| | - **Resume training:** Load checkpoint cụ thể |
| | |
| | ## 📦 Requirements |
| | ```bash |
| | pip install unsloth transformers torch trl |
| | ``` |
| | |
| | ## 📄 License |
| | |
| | Apache 2.0 |
| | |