| --- |
| language: |
| - vi |
| - en |
| license: apache-2.0 |
| tags: |
| - llm-judge |
| - training-checkpoint |
| - lora |
| - unsloth |
| --- |
| |
| # finetuned_11_12 |
|
|
| 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_11_12 |
| cd finetuned_11_12 |
| ``` |
|
|
| ### 2️⃣ Load LoRA Adapters (Nhẹ nhất - khuyến nghị) |
| ```python |
| from unsloth import FastLanguageModel |
| |
| model, tokenizer = FastLanguageModel.from_pretrained( |
| model_name="ImNotTam/finetuned_11_12", |
| 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_11_12", |
| subfolder="final_model", |
| device_map="auto", |
| torch_dtype="auto" |
| ) |
| tokenizer = AutoTokenizer.from_pretrained("ImNotTam/finetuned_11_12", 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_11_12", |
| 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_11_12", |
| 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 |
|
|