Fine-tuning là quá trình tái huấn luyện một mô hình ngôn ngữ lớn (LLM) đã qua tiền huấn luyện (pre-trained) trên một tập dữ liệu nhỏ và chuyên biệt hơn, nhằm tối ưu hiệu suất cho một nhiệm vụ cụ thể.
Đây là bước hậu huấn luyện (post-training): mô hình cập nhật lại các trọng số (weights) bên trong để khớp với phong cách văn bản, định dạng đầu ra hoặc kiến thức chuyên môn sâu mà bạn cần.
Thay vì học ngôn ngữ từ đầu, fine-tuning chỉ điều chỉnh những gì mô hình đã biết cho vừa với dữ liệu của bạn. Fine-tuning kiểm soát hành vi của mô hình — thứ mà một prompt dài đến mấy cũng khó giữ ổn định.

Fine-tuning là gì?
Fine-tuning là quá trình chuyển một mô hình tổng quát thành một mô hình chuyên biệt. Các mô hình nền tảng được huấn luyện trên hàng nghìn tỷ token để hiểu ngôn ngữ chung, nhưng thường thiếu độ chính xác trong các tác vụ ngách. Fine-tuning giải quyết chuyện đó bằng cách chuyên môn hóa mô hình cho một lĩnh vực hẹp: luật pháp, y tế hay phân tích kỹ thuật.
Lợi ích lớn nhất là mô hình thích nghi được với dữ liệu riêng của doanh nghiệp. Bạn khóa chặt được định dạng phản hồi, hoặc dạy mô hình xử lý những tài liệu nội bộ mà giai đoạn tiền huấn luyện chưa bao giờ tiếp cận. Mô hình được tối ưu cho đúng nhiệm vụ đích thay vì chỉ trả lời chung chung.
Fine-tuning cũng tốn ít tài nguyên hơn hẳn so với huấn luyện từ đầu. Nó tận dụng toàn bộ tri thức mô hình nền đã có và chỉ cập nhật phần tham số cần thiết — đó cũng là lý do một kỹ thuật từng nằm ngoài tầm với của đa số đội ngũ nay đã chạy được với ngân sách rất nhỏ.
Fine-tuning hoạt động như thế nào?
Cơ chế cốt lõi là điều chỉnh các trọng số bên trong mạng thần kinh để giảm sai số cho nhiệm vụ đích. Khi bạn nạp dữ liệu mới, mô hình đưa ra dự đoán, tính toán hàm mất mát (loss function), rồi dùng lan truyền ngược (backpropagation) để cập nhật tham số. Quy trình chuẩn bắt đầu từ việc chuẩn bị dữ liệu theo định dạng JSONL, sau đó chạy các chu kỳ tối ưu hóa: nạp dữ liệu, tính gradient, cập nhật trọng số.

Với các mô hình lớn, kỹ thuật gradient checkpointing gần như bắt buộc — nó tiết kiệm bộ nhớ bằng cách tính lại các kích hoạt (activations) trong bước lan truyền ngược thay vì giữ tất cả trong VRAM (bộ nhớ của card đồ họa). Liger Kernel đi xa hơn một bậc: các fused Triton patch cho RMSNorm và cross-entropy cắt thêm 40–60% VRAM, đủ để bạn chạy batch size lớn hơn trên cùng một card.
Chất lượng tập dữ liệu quan trọng hơn số lượng. Một tập nhỏ được làm sạch và gán nhãn cẩn thận cho đường cong mất mát ổn định hơn hẳn một tập lớn cào từ web. Dữ liệu bẩn không làm mô hình học chậm hơn — nó dạy mô hình bắt chước đúng những lỗi có trong dữ liệu, với sự tự tin y hệt.
Full fine-tuning và PEFT khác nhau ra sao?
Full fine-tuning (FFT) cập nhật toàn bộ tham số của mô hình. Cách này thay đổi được hành vi mô hình nhiều nhất, nhưng ngốn tài nguyên tới mức hiếm khi là lựa chọn mặc định: riêng một mô hình 70B đã cần cụm 8x H100 chỉ để chứa trọng số cùng trạng thái optimizer trong VRAM.

PEFT (Parameter-Efficient Fine-Tuning) là tiêu chuẩn công nghiệp hiện nay, và LoRA (Low-Rank Adaptation) là kỹ thuật phổ biến nhất trong nhóm này. Thay vì đụng vào ma trận trọng số gốc, LoRA đóng băng mô hình nền rồi chèn thêm hai ma trận nhỏ A và B có rank thấp. Bạn chỉ tối ưu khoảng 1% tổng trọng số. Tham số quan trọng nhất là rank (r): r càng lớn thì mô hình càng có nhiều tham số để học, đổi lại càng tốn tài nguyên.
QLoRA đẩy giới hạn xa hơn khi kết hợp LoRA với lượng tử hóa 4-bit, nén mô hình nền để giảm khoảng 75% dung lượng bộ nhớ. Nhờ đó, fine-tuning một mô hình 70B trên một GPU H100 80GB duy nhất đã thành chuyện bình thường thay vì phải dựng cả cụm nhiều node.
| Tiêu chí | Full fine-tuning (FFT) | PEFT (LoRA/QLoRA) |
|---|---|---|
| Tham số huấn luyện | 100% | ~1% |
| VRAM (mô hình 70B) | ~640 GB (8x H100) | 40–60 GB (1x H100) |
| Độ phức tạp hạ tầng | Rất cao | Thấp |
| Kết quả lưu lại | File trọng số khổng lồ | Adapter nhỏ gọn |
Một điểm cộng thực dụng của LoRA: sau khi huấn luyện xong, adapter có thể gộp ngược vào trọng số mô hình nền, nên lúc chạy thật bạn không phải trả thêm độ trễ nào.
Có những kiểu fine-tuning nào?
Chọn phương pháp nào còn tùy bạn đang sửa định dạng, dạy phong cách, hay dạy cách suy luận.

SFT (Supervised Fine-Tuning) huấn luyện có giám sát bằng các cặp câu hỏi — câu trả lời mẫu. Đây là phương pháp nền để dạy mô hình tuân thủ chỉ dẫn và giữ đúng định dạng đầu ra. Nếu bạn cần mô hình trả về JSON hoặc XML hợp lệ cho một API phía sau, SFT trên một tập dữ liệu sạch là con đường đáng tin cậy nhất.
DPO (Direct Preference Optimization) dùng để căn chỉnh giọng văn và phong cách. Thay vì đưa một đáp án đúng duy nhất, tập dữ liệu chứa từng cặp: một câu trả lời được chọn, một câu bị loại. Mô hình học cách dịch chuyển phân phối xác suất của nó về phía phong cách bạn muốn — hợp để khóa bản sắc thương hiệu.
RFT (Reinforcement Fine-Tuning), mà GRPO (Group Relative Policy Optimization) là biến thể đang được dùng nhiều cho các mô hình suy luận như DeepSeek-R1, thì khác hẳn. Mô hình không học từ đáp án cố định mà học qua một hàm thưởng bạn tự lập trình: một script Python kiểm tra code có biên dịch được không, một bộ verifier chấm đáp số toán đúng hay sai. Nhờ vậy nó tối ưu cả chuỗi tư duy dẫn tới kết quả, chứ không chỉ bắt chước kết quả cuối.
SFT và DPO dạy mô hình trình bày thế nào, còn RFT dạy nó suy nghĩ thế nào.
Fine-tuning, RAG hay prompt engineering: chọn cái nào?
Câu hỏi thật sự không phải "cái nào tốt hơn" mà là "bạn cần đổi kiến thức của mô hình hay đổi hành vi của nó".

- Prompt engineering — rẻ nhất và nhanh nhất, hợp để thử nghiệm và cho các tác vụ đơn giản. Giới hạn của nó là chi phí cửa sổ ngữ cảnh: prompt càng dài thì càng tốn token và càng khó giữ mô hình bám sát chỉ dẫn.
- RAG — lựa chọn mặc định khi dữ liệu thay đổi liên tục hoặc nằm trong kho tài liệu nội bộ. RAG không đụng tới trọng số, nên nó phù hợp để cung cấp sự thật có dẫn chứng và giảm ảo giác.
- Fine-tuning — chọn khi bạn cần kiểm soát hành vi: khóa chặt định dạng đầu ra, giữ một giọng văn cố định, hoặc dạy những kiểu suy luận mà prompt không duy trì nổi.
Trong hệ thống thật, ba thứ này hiếm khi loại trừ nhau. Cách làm phổ biến là xếp lớp: fine-tune để định hình hành vi và định dạng, dùng prompt cho chỉ dẫn theo từng tác vụ, rồi để RAG nạp dữ kiện thời gian thực. Mô hình biết phải suy nghĩ thế nào từ fine-tuning, và biết có gì để nói từ RAG.
Fine-tuning tốn bao nhiêu và cần những gì?
Rào cản chi phí đã hạ xuống rất nhanh. Với QLoRA và một thư viện tăng tốc, một mô hình 7B fine-tune xong hết chưa tới 5 USD trên một GPU phổ thông. Ràng buộc thật sự của bạn là VRAM, không phải tiền.
| Kích thước mô hình | GPU khuyến nghị | VRAM cần | Thời gian | Chi phí ước tính |
|---|---|---|---|---|
| 7B (QLoRA) | RTX 4090 | 6–10 GB | 2–4 giờ | 1,10–2,20 USD |
| 13B (QLoRA) | A100 40GB | 12–18 GB | 3–6 giờ | 2,28–4,56 USD |
| 34B (QLoRA) | A100 80GB | 24–36 GB | 6–10 giờ | 7,60–13,90 USD |
| 70B (QLoRA) | H100 80GB | 40–60 GB | 8–12 giờ | 10,64–15,96 USD |
| 70B (full FT) | 8x H100 | 640 GB | 24–48 giờ | 255–510 USD |
Các con số trên tính theo giá thuê GPU đám mây, với H100 vào khoảng 1,33 USD mỗi giờ. Chúng là ước lượng cho một lần chạy chứ không phải báo giá: dữ liệu của bạn, số epoch và độ dài chuỗi đều kéo con số này lên xuống.
Về công cụ, Unsloth giúp tăng tốc huấn luyện 2–5 lần mà không đánh đổi độ chính xác, phù hợp nhất khi bạn chỉ có một GPU. Axolotl là lựa chọn khi bạn cần chạy trên cụm nhiều GPU với FSDP hoặc DeepSpeed. Liger Kernel là mảnh ghép cuối để ép VRAM xuống mức thấp nhất.
Vì sao fine-tuning không còn là lựa chọn mặc định?
Điều đáng chú ý nhất năm 2026 không nằm ở kỹ thuật mà ở phía nhà cung cấp: OpenAI đang thu hẹp nền tảng fine-tuning vận hành sẵn của mình. Nền tảng này không còn mở cho người dùng mới; những khách hàng đang dùng vẫn tạo được job huấn luyện thêm một thời gian nữa, và các mô hình đã fine-tune vẫn chạy inference cho đến khi mô hình nền tương ứng bị khai tử. Ai muốn đi đường dài với fine-tuning đang bị đẩy dần về phía mô hình mở và hạ tầng tự vận hành.

Bản thân kỹ thuật cũng mang sẵn ba rủi ro. Overfitting xảy ra khi tập dữ liệu quá nhỏ hoặc quá lặp, khiến mô hình học thuộc lòng thay vì học quy luật. Model drift là hệ quả đi kèm: mô hình giỏi lên ở tác vụ chuyên biệt nhưng kém đi ở những năng lực tổng quát mà nó vốn có. Và một mô hình đã fine-tune là một khoản nợ bảo trì — mỗi lần lĩnh vực của bạn đổi, bạn phải huấn luyện lại.
Đây cũng là chỗ nhiều người hiểu sai nhất: fine-tuning là cách rất tệ để nhồi kiến thức mới. Mô hình sẽ học được văn phong tự tin của tập dữ liệu và dùng chính văn phong đó để nói ra thông tin sai. Nếu dữ liệu của bạn thay đổi hằng tuần, fine-tuning chỉ đóng băng thông tin cũ lại cho chắc.
Khi nào bạn thực sự nên fine-tuning?
Fine-tuning xứng đáng khi bài toán của bạn rơi vào một trong bốn nhóm: cần định dạng đầu ra tuân thủ đúng một schema khắt khe, cần khóa một giọng văn đặc thù vào trong trọng số, cần dạy mô hình một lối suy luận chuyên sâu, hoặc cần giảm chi phí vận hành bằng cách thay mô hình lớn tổng quát bằng một mô hình nhỏ đã chuyên biệt hóa.
Còn lại thì đừng. Ranh giới thì đơn giản: fine-tuning để tối ưu hành vi, RAG để cung cấp dữ kiện. Nếu điều bạn muốn chỉ là mô hình trả lời được về đống tài liệu nội bộ, RAG rẻ hơn, cập nhật nhanh hơn và không kéo theo model drift.
Tài liệu tham khảo
- What is fine-tuning? — IBM Think
- Augment LLMs with RAGs or Fine-Tuning — Microsoft Learn
- Model optimization — OpenAI API
- Reinforcement fine-tuning — OpenAI API
- LoRA conceptual guide — Hugging Face PEFT
- LoRA: Low-Rank Adaptation of Large Language Models — arXiv
- Fine-tuning LLMs Guide — Unsloth Documentation
- How to Fine-Tune LLMs in 2026: Costs, GPUs, and Code — Spheron