Fine-tuning
Huấn luyện tiếp một mô hình có sẵn trên bộ dữ liệu riêng để nó bám giọng văn, định dạng hoặc lối làm việc của bạn. Dạy được phong cách và cấu trúc, không dạy được dữ liệu thay đổi hằng ngày.
Định nghĩa
Lấy một mô hình đã huấn luyện sẵn rồi dạy thêm nó trên dữ liệu của mình — đó là fine-tuning. Nghe thì hấp dẫn, kiểu "mô hình riêng của công ty", nên nó hay bị đưa lên slide sớm hơn mức cần thiết. Thực tế trong dự án doanh nghiệp, đây gần như luôn là lựa chọn thứ ba, sau prompt và sau RAG.
Fine-tuning dạy mô hình cách nói và cách làm. Nó không phải chỗ để nhồi kiến thức mới, càng không phải chỗ để nhồi dữ liệu thay đổi hằng tuần.
Nó thật sự giải quyết cái gì
Ba trường hợp mình thấy fine-tuning xứng đáng:
- Định dạng đầu ra rất đặc thù. Mô hình phải xuất ra cú pháp riêng của một hệ thống nội bộ, mà mô tả bằng prompt thì dài lê thê và vẫn sai lặt vặt.
- Giọng văn và quy ước ngành. Văn bản pháp lý, thư từ ngân hàng, mô tả sản phẩm theo bộ quy tắc thương hiệu chặt.
- Khối lượng lớn, cần rẻ và nhanh. Prompt dài đi kèm nhiều ví dụ mẫu tốn token ở mọi lượt gọi. Fine-tune xong prompt ngắn lại, nhân với vài triệu lượt mỗi tháng thì khoản chênh đó có thật.
Còn thứ nó không giải quyết: kiến thức mới. Fine-tune bảng giá tháng 8 vào mô hình thì tháng 9 bạn kẹt. Dữ liệu hay đổi thì để ở ngoài, truy xuất vào lúc chạy.
So sánh ba cách "dạy" mô hình
| Prompt | RAG | Fine-tuning | |
|---|---|---|---|
| Dạy được gì | Nhiệm vụ, ràng buộc, định dạng | Kiến thức mới, có dẫn nguồn | Phong cách, cấu trúc, hành vi ổn định |
| Chuẩn bị | Vài giờ | Vài tuần xử lý tài liệu | Vài tuần tới vài tháng gồm gán nhãn |
| Cập nhật | Sửa chữ là xong | Nạp lại tài liệu | Huấn luyện lại từ dataset mới |
| Cần người | BA tự làm | Dev cộng BA | Team ML |
| Truy vết | Không cần | Có, tới từng đoạn | Không |
| Rủi ro chính | Prompt phình to, khó bảo trì | Tài liệu bẩn, phân quyền | Dataset kém thì mô hình tệ hơn bản gốc |
Rủi ro cuối cùng ít người nói tới. Fine-tune bằng dữ liệu ẩu hoàn toàn có thể cho ra một mô hình kém hơn mô hình gốc, mà lại tốn tiền và tốn thời gian để nhận ra.
Ví dụ thực tế
Tư vấn viên triển khai của một nhà cung cấp ERP ngành sản xuất ngồi gõ tay từng đoạn cấu hình quy trình, bằng thứ cú pháp khai báo riêng của sản phẩm. Mỗi dự án chừng 240 tới 380 đoạn, sai một dấu là ra kết quả khác.
Họ thử prompt trước, kèm 6 ví dụ mẫu. Kết quả chạy được nhưng khoảng một phần ba số đoạn sai cú pháp ở mức phải sửa tay, và prompt đã phình lên gần 2.800 token vì phải kèm mô tả cú pháp.
Họ chuyển sang fine-tune với 1.240 cặp "mô tả nghiệp vụ bằng tiếng Việt" và "đoạn cấu hình đúng", gom từ 5 năm dự án cũ. Riêng khâu làm sạch dataset — bỏ đoạn dùng cú pháp phiên bản cũ, thống nhất cách đặt tên biến — mất của hai người ba tuần. Sau fine-tune, tỉ lệ sai cú pháp còn khoảng một phần mười, prompt rút xuống dưới 300 token.
Cái giá phải trả xuất hiện chín tháng sau: sản phẩm ERP lên phiên bản mới, cú pháp đổi ở vài chỗ, và cả dataset phải rà lại. Đó là chi phí định kỳ, phải viết vào kế hoạch từ đầu chứ không phải chuyện phát sinh.
Việc của BA trong một dự án fine-tuning
Bạn sẽ không đụng vào hyperparameter, và cũng không cần. Việc của bạn nằm ở khâu dữ liệu và khâu nghiệm thu:
- Xác định nguồn dữ liệu đúng và ai có quyền cho dùng. Dữ liệu từ dự án cũ có khi thuộc về khách hàng, không phải của công ty bạn — hỏi pháp chế trước khi lôi ra huấn luyện.
- Định nghĩa thế nào là một cặp dữ liệu tốt, và tổ chức việc gán nhãn. Đây là phần nặng nhất, và là phần bị ước lượng hụt nhiều nhất khi lập kế hoạch.
- Tách sẵn một bộ đánh giá riêng, không cho lọt vào tập huấn luyện. Không có bộ này thì không ai biết mô hình mới có tốt hơn thật hay chỉ tốt hơn trên giấy.
- Chốt tiêu chí dừng: đạt mức nào thì coi là xong, và bao lâu phải huấn luyện lại.
Khi nào nên nói không
Dữ liệu dưới vài trăm cặp chất lượng. Bài toán thực chất là tra cứu tài liệu. Yêu cầu thay đổi mỗi tháng. Không có ai trong công ty đủ nghề để bảo trì mô hình sau khi nhà thầu rút đi.
Gặp bất kỳ điều nào ở trên, bạn nên đề xuất làm chắc phần prompt và RAG trước, hẹn đánh giá lại sau ba tháng. Không ai trách một BA vì đã cản một khoản chi chưa cần thiết.
