Fine-tuning & Model Customization
Trang chủ / Module 12
📊 Module 12 / 14 · 1 tuần

Đánh giá Model đã Fine-tune

So sánh model fine-tune với base model một cách có hệ thống: benchmark chuẩn, eval theo tác vụ cụ thể, regression testing, phát hiện suy giảm năng lực tổng quát.

EvaluationBenchmarkRegression
📌 Vì sao module này quan trọng

"Model có vẻ trả lời tốt hơn" không phải là kết luận kỹ thuật. Không có bước đánh giá nghiêm túc, bạn không thể biết fine-tuning có thực sự cải thiện tác vụ mục tiêu, và tệ hơn — không phát hiện được model đã âm thầm suy giảm năng lực ở các tác vụ khác ngoài phạm vi huấn luyện. Module này áp dụng trực tiếp phương pháp luận evaluation đã học ở Module 11 khoá AI Engineer, chuyên biệt hoá cho bối cảnh fine-tuning.

🎯 Mục tiêu học tập

  • Xây dựng golden dataset đánh giá riêng cho tác vụ đã fine-tune, tách biệt khỏi dữ liệu train
  • So sánh model fine-tune với base model một cách công bằng, có số liệu
  • Sử dụng benchmark chuẩn ngành để phát hiện suy giảm năng lực tổng quát (regression)
  • Thiết lập quy trình đánh giá lặp lại được cho mỗi lần thử nghiệm cấu hình mới

Golden Dataset riêng cho tác vụ đã Fine-tune

Áp dụng nguyên tắc Module 11 khoá AI Engineer: xây một bộ câu hỏi/tình huống test (tối thiểu 50-100 mẫu) hoàn toàn tách biệt khỏi dữ liệu train (đã tách từ Module 5), đại diện đúng cho phân phối sử dụng thực tế, bao gồm cả edge case. Với fine-tuning, nên có thêm 1 nhóm câu hỏi đặc biệt: câu hỏi ngoài phạm vi tác vụ đã fine-tune, để kiểm tra model có giữ được năng lực tổng quát hay không.

So sánh Fine-tuned vs Base Model một cách công bằng

results = []
for question in golden_dataset:
    base_answer = query_model(base_model, question)
    finetuned_answer = query_model(finetuned_model, question)

    # Dùng LLM-as-judge (Module 11 khoá AI Engineer) so sánh trực tiếp theo cặp
    verdict = judge_compare(
        question=question,
        answer_a=base_answer,
        answer_b=finetuned_answer,
        criteria="Đúng phong cách thương hiệu, đúng định dạng yêu cầu, chính xác về nội dung",
    )
    results.append(verdict)

win_rate = sum(1 for v in results if v == "finetuned_wins") / len(results)

So sánh theo cặp (pairwise comparison, tính win rate) thường đáng tin cậy hơn chấm điểm tuyệt đối độc lập (1-10) cho từng model riêng — dễ cho cả người và LLM-judge phân biệt "cái nào tốt hơn" hơn là "cái này đáng bao nhiêu điểm".

Benchmark chuẩn ngành — phát hiện Regression

Ngoài eval theo tác vụ cụ thể, nên chạy model qua một vài benchmark tổng quát chuẩn (MMLU cho kiến thức tổng hợp, HumanEval/MBPP cho khả năng code, hoặc benchmark tiếng Việt nếu có) trước và sau fine-tuning — nếu điểm số các benchmark này giảm đáng kể so với base model, đó là dấu hiệu catastrophic forgetting (Module 11), cần xem lại learning rate, số epoch, hoặc tỉ lệ trộn dữ liệu.

⚠️ Đánh đổi cần chấp nhận có kiểm soát

Một mức độ "đánh đổi" nhất định giữa năng lực tổng quát và chuyên biệt hoá là bình thường và có thể chấp nhận được — vấn đề là đánh đổi đó cần được đo lường và quyết định có chủ đích, không phải phát hiện tình cờ sau khi đã triển khai production.

Quy trình đánh giá lặp lại — Regression Testing cho Fine-tuning

Đóng gói toàn bộ quy trình trên (eval theo tác vụ + benchmark tổng quát) thành 1 script chạy tự động mỗi khi thử một cấu hình huấn luyện mới (đổi rank, đổi learning rate, đổi tập dữ liệu) — đúng tinh thần CI/CD cho model đã áp dụng ở Module 13 khoá AI Engineer và Module 13 khoá Databricks. Log kết quả mỗi lần chạy (dùng MLflow — Module 9 khoá Databricks) để so sánh trực quan nhiều lần thử nghiệm, tránh phải nhớ thủ công "cấu hình nào cho kết quả nào".

🏋️ Bài tập thực hành

Bộ đánh giá đầy đủ cho model đã Fine-tune

Với model đã fine-tune ở các module trước, xây quy trình đánh giá gồm: (1) golden dataset riêng cho tác vụ, tính win rate so với base model bằng LLM-as-judge theo cặp, (2) chạy qua ít nhất 1 benchmark tổng quát công khai để kiểm tra regression, (3) log toàn bộ kết quả có cấu trúc. Viết báo cáo kết luận: model fine-tune có thực sự tốt hơn cho tác vụ mục tiêu, và có đánh đổi năng lực tổng quát nào đáng kể không.

📚 Tài nguyên học tập

✅ Tự đánh giá hoàn thành

  • Xây golden dataset riêng, tách biệt hoàn toàn khỏi dữ liệu train
  • Tính được win rate so sánh fine-tuned vs base model bằng LLM-as-judge
  • Chạy được ít nhất 1 benchmark tổng quát để kiểm tra regression
  • Có quy trình đánh giá tự động, lặp lại được cho mỗi lần thử cấu hình mới