Knowledge Distillation là gì? Mô hình lớn dạy mô hình nhỏ
Trả lời nhanh: Knowledge Distillation là gì? Đây là kỹ thuật huấn luyện một mô hình student nhỏ học từ đầu ra hoặc biểu diễn của mô hình teacher lớn. Student không phải bản nén trực tiếp của teacher mà là mô hình mới. Mục tiêu là giữ chất lượng cần thiết trong khi giảm độ trễ, bộ nhớ và chi phí chạy AI.
Cập nhật lần cuối: 20/08/2026
Một mô hình lớn có thể giải bài toán rất tốt nhưng quá đắt để phục vụ hàng triệu request, chạy trên điện thoại hoặc đáp ứng giới hạn độ trễ của sản phẩm. Cách trực giác là cắt bớt tham số. Knowledge Distillation đi theo một hướng khác: dùng mô hình mạnh làm giáo viên để huấn luyện một mô hình nhỏ hơn.
Điểm quan trọng nằm ở thứ mô hình teacher truyền lại. Nó không chỉ nói “đáp án đúng là A”. Phân phối xác suất của teacher còn hé lộ A gần B đến mức nào, C sai rõ ra sao và những ví dụ nào khiến mô hình do dự. Tín hiệu này thường giàu hơn nhãn cứng trong tập dữ liệu.
Knowledge Distillation vì vậy là bài toán thiết kế mục tiêu học, không chỉ là thủ thuật giảm kích thước file model.
Knowledge Distillation là gì?
Knowledge Distillation là phương pháp chuyển hành vi hoặc tri thức có ích từ một mô hình teacher sang mô hình student bằng cách huấn luyện student khớp với tín hiệu do teacher tạo ra, thường kết hợp với nhãn thật.
Khái niệm teacher-student được phổ biến rộng rãi bởi bài báo năm 2015 của Geoffrey Hinton, Oriol Vinyals và Jeff Dean. Nhóm tác giả mô tả cách chuyển tri thức từ một mô hình hoặc ensemble cồng kềnh sang một mô hình dễ triển khai hơn.
Ba thành phần cơ bản là:
- Teacher: mô hình lớn, ensemble hoặc hệ thống có chất lượng cao.
- Student: mô hình nhỏ hơn, kiến trúc có thể khác teacher.
- Distillation objective: hàm mất mát khiến student học cả nhãn thật lẫn tín hiệu của teacher.
Sau quá trình huấn luyện, student có thể chạy độc lập. Không cần gọi teacher ở mọi request production.
Vì sao soft labels chứa nhiều tri thức hơn hard labels?
Giả sử ảnh là một chiếc xe tải. Nhãn cứng chỉ cho biết:
truck = 1
car = 0
bicycle = 0
dog = 0
Teacher có thể trả phân phối:
truck = 0.70
car = 0.20
bicycle = 0.07
dog = 0.03
Phân phối này cho student biết “xe tải” giống “ô tô” hơn “chó”. Mối quan hệ giữa các lớp thường được gọi là phần tri thức tối mà nhãn one-hot không thể hiện.
Với bài toán ngôn ngữ, ý tưởng tương tự xuất hiện ở phân phối token, điểm xếp hạng, chuỗi suy luận đã xử lý an toàn hoặc câu trả lời do teacher sinh ra. Teacher không chỉ cung cấp đáp án cuối mà còn định hình không gian hành vi student cần bắt chước.
Temperature trong Knowledge Distillation dùng để làm gì?
Logit là điểm số thô trước softmax. Nếu đưa trực tiếp qua softmax, lớp thắng có thể chiếm gần toàn bộ xác suất và các lớp còn lại rất nhỏ. Temperature, ký hiệu T, làm phân phối mềm hơn:
p_i = exp(z_i / T) / sum_j exp(z_j / T)
Trong đó:
z_ilà logit của lớp i;T = 1là softmax thông thường;T > 1làm phân phối phẳng hơn;- phân phối mềm giúp lộ quan hệ tương đối giữa các lớp.
Teacher và student được so sánh ở cùng temperature. Khi suy luận production, student thường quay về temperature phù hợp với nhiệm vụ, không nhất thiết dùng nhiệt độ huấn luyện.
Temperature không có một giá trị tốt cho mọi bài toán. Nó là hyperparameter cần chọn bằng validation set.
Hàm loss kết hợp hoạt động như thế nào?
Một objective phổ biến kết hợp hai tín hiệu:
L = alpha * L_hard + (1 - alpha) * T^2 * L_soft
Trong đó:
L_hardđo sai khác giữa dự đoán student và nhãn thật;L_softthường đo sai khác giữa phân phối teacher và student;alphacân bằng hai nguồn giám sát;T^2giúp hiệu chỉnh độ lớn gradient khi dùng temperature.
Nếu chỉ học teacher, student có thể sao chép cả lỗi và thiên lệch. Nếu chỉ học nhãn cứng, ta bỏ qua tín hiệu giàu thông tin teacher tạo ra. Tỷ lệ phối hợp nên được quyết định bằng mục tiêu sản phẩm và đánh giá riêng cho từng nhóm dữ liệu.
Knowledge Distillation khác quantization và pruning thế nào?
Ba kỹ thuật đều có thể giảm chi phí nhưng tác động khác nhau.
| Kỹ thuật | Làm gì? | Kết quả |
|---|---|---|
| Knowledge Distillation | Huấn luyện student học từ teacher | Một mô hình mới |
| Quantization | Giảm độ chính xác số của trọng số hoặc activation | Phiên bản biểu diễn gọn hơn của model |
| Pruning | Loại bỏ trọng số, neuron hoặc cấu trúc ít quan trọng | Model thưa hoặc nhỏ hơn |
| Low-rank factorization | Xấp xỉ ma trận lớn bằng các ma trận hạng thấp | Giảm phép tính và tham số |
Các kỹ thuật có thể kết hợp. Ta có thể chưng cất một student rồi quantize student. Tuy nhiên, mỗi bước phải được đánh giá lại vì suy giảm chất lượng có thể cộng dồn.
Có những loại Knowledge Distillation nào?
Response-based distillation
Student học từ đầu ra cuối của teacher như logits, xác suất, token distribution, score hoặc câu trả lời. Đây là kiểu dễ triển khai khi chỉ truy cập được API teacher.
Phù hợp khi: teacher là black box, nhiệm vụ rõ và có tập prompt đại diện.
Giới hạn: student không thấy biểu diễn bên trong và có thể học cả thói quen trình bày không mong muốn.
Feature-based distillation
Student học từ hidden states, attention maps hoặc feature map trung gian. Cần quyền truy cập sâu hơn vào teacher và cơ chế nối hai không gian biểu diễn khi kích thước khác nhau.
Phù hợp khi: sở hữu cả teacher lẫn student và muốn truyền cấu trúc biểu diễn.
Giới hạn: ghép layer, chiều tensor và kiến trúc có thể phức tạp.
Relation-based distillation
Student học quan hệ giữa mẫu, token, feature hoặc layer thay vì sao chép từng activation. Ví dụ, khoảng cách giữa các embedding của những ví dụ tương tự nên được bảo toàn.
Self-distillation
Teacher và student có thể cùng kiến trúc, hoặc một phiên bản checkpoint tốt hơn dạy phiên bản khác. Mục tiêu không luôn là giảm kích thước; distillation đôi khi đóng vai trò regularization.
Online và mutual distillation
Nhiều mô hình học đồng thời và trao đổi tín hiệu thay vì teacher được huấn luyện cố định từ trước. Hướng này linh hoạt nhưng khó vận hành, tái lập và kiểm soát hơn.
Knowledge Distillation cho LLM khác gì phân loại ảnh?
Với LLM, không gian đầu ra là chuỗi token khổng lồ. Việc lưu toàn bộ logit cho mọi token có thể rất tốn dung lượng. Nhiều quy trình thực tế dùng một hoặc nhiều dạng dữ liệu sau:
- prompt và response do teacher tạo;
- preference pair để student học xếp hạng;
- logits hoặc top-k token khi có quyền truy cập;
- tool-use trajectory;
- câu trả lời đã được kiểm chứng;
- dữ liệu tổng hợp bao phủ tình huống hiếm;
- phản hồi về format, safety và style.
Cần phân biệt distillation với fine-tuning bằng dữ liệu tổng hợp. Nếu student chỉ học trên response teacher như nhãn mới, đây là một dạng response distillation theo nghĩa rộng. Nếu loss trực tiếp khớp phân phối token của teacher, tín hiệu distillation đầy đủ hơn.
Agentic distillation là gì?
Trong agent workflow, thứ cần chuyển không chỉ là câu trả lời mà còn là chính sách hành động:
- khi nào cần gọi tool;
- chọn tool nào;
- điền tham số ra sao;
- kiểm tra kết quả thế nào;
- khi nào dừng hoặc yêu cầu con người;
Một trajectory tốt có thể trở thành dữ liệu huấn luyện. Nhưng log hành động thường chứa dữ liệu nhạy cảm, credential, lỗi tình cờ hoặc quyết định không an toàn. Quy trình phải lọc, ẩn danh và xác minh trước khi sử dụng.
Khi nào nên dùng Knowledge Distillation?
Distillation đáng cân nhắc khi có đồng thời ba điều kiện:
- teacher đạt chất lượng cao hơn rõ rệt trên nhiệm vụ mục tiêu;
- production có giới hạn chi phí, bộ nhớ hoặc độ trễ;
- có dữ liệu đại diện cùng bộ đánh giá đáng tin cậy.
Các use case thường gặp:
| Use case | Lợi ích kỳ vọng |
|---|---|
| Mô hình chạy trên thiết bị | Giảm bộ nhớ và độ trễ |
| Phân loại request số lượng lớn | Hạ chi phí mỗi lần suy luận |
| Moderation tầng đầu | Student xử lý trường hợp rõ, teacher xử lý ca khó |
| Reranking hoặc routing | Dùng model nhỏ cho quyết định thường xuyên |
| Trợ lý theo domain hẹp | Tập trung năng lực vào phạm vi nhiệm vụ |
| Agent workflow lặp lại | Học chính sách tool-use có cấu trúc |
Distillation ít phù hợp khi yêu cầu thay đổi liên tục, dữ liệu quá ít, teacher không đáng tin, hoặc nhiệm vụ cần tri thức mở ngoài phân phối huấn luyện.
Quy trình 8 bước chưng cất một mô hình
Bước 1: Định nghĩa mục tiêu deployment
Ghi rõ latency, throughput, RAM/VRAM, kích thước binary, chi phí mỗi 1.000 request và chất lượng tối thiểu. Nếu không có ràng buộc cụ thể, không biết student “đủ nhỏ” hay “đủ tốt” là gì.
Bước 2: Chọn teacher theo nhiệm vụ
Teacher tốt nhất không nhất thiết là model lớn nhất. Nó phải ổn định, có quyền sử dụng phù hợp, đáp ứng domain và đạt kết quả tốt trên eval set của chính bạn.
Bước 3: Chọn kiến trúc student
Quyết định số tham số, context window, tokenizer, phần cứng đích và khả năng hỗ trợ tool hoặc output có cấu trúc. Student phải phù hợp môi trường chạy, không chỉ dễ huấn luyện.
Bước 4: Xây tập dữ liệu đại diện
Bao phủ dữ liệu phổ biến, long-tail, tiếng Việt, lỗi chính tả, prompt độc hại, tình huống thiếu thông tin và ca cần từ chối. Tách train, validation, test để tránh tự đánh giá trên dữ liệu đã học.
Bước 5: Sinh và kiểm soát tín hiệu teacher
Lưu model version, prompt template, sampling config và provenance. Lọc PII, secret, nội dung vi phạm quyền và output không đạt chất lượng. Không mặc định teacher luôn đúng.
Bước 6: Huấn luyện với loss phù hợp
Thử các tổ hợp hard label, soft label, temperature và alpha. Với feature distillation, xác định layer mapping và projection. Theo dõi train loss nhưng chọn model bằng validation metric gắn với sản phẩm.
Bước 7: Đánh giá cả chất lượng lẫn hệ thống
Đo accuracy, F1, win rate hoặc task success cùng latency p95, throughput, memory và chi phí. Chạy safety, bias, robustness và out-of-distribution eval riêng.
Bước 8: Canary và theo dõi drift
Triển khai một phần traffic, log có kiểm soát, so sánh với baseline và định nghĩa rollback. Khi dữ liệu hoặc teacher thay đổi, student có thể cần chưng cất lại.
Nên đánh giá student bằng chỉ số nào?
Một bộ scorecard nên có bốn lớp:
1. Task quality
- accuracy, precision, recall hoặc F1;
- pass@k cho code;
- exact match hoặc semantic match;
- tỷ lệ hoàn thành tác vụ;
- chất lượng theo đánh giá con người.
2. System performance
- latency p50, p95 và p99;
- token mỗi giây;
- peak RAM hoặc VRAM;
- throughput ở concurrency thật;
- chi phí trên đơn vị công việc.
3. Safety và reliability
- tỷ lệ từ chối đúng và sai;
- prompt injection resistance;
- hallucination theo domain;
- format compliance;
- độ ổn định qua nhiều lần chạy.
4. Segment quality
Không chỉ xem một điểm trung bình. Tách theo ngôn ngữ, độ dài, nhóm người dùng, intent, độ khó và tình huống hiếm. Student có thể giữ trung bình tốt nhưng suy giảm ở phân khúc quan trọng.
Những thất bại phổ biến khi distillation
Student quá nhỏ so với nhiệm vụ
Nếu capacity không đủ, student không thể hấp thụ hành vi teacher dù dữ liệu tốt. Loss giảm không có nghĩa năng lực tổng quát đủ.
Teacher tạo dữ liệu một màu
Sampling quá bảo thủ làm dataset thiếu đa dạng. Sampling quá cao làm tăng nhiễu. Nên có nhiều template, difficulty và cơ chế kiểm chứng.
Chỉ đo độ giống teacher
Teacher có thể sai. Student cần được so với ground truth, tiêu chí sản phẩm và safety policy, không chỉ với output teacher.
Rò rỉ dữ liệu kiểm thử
Nếu teacher sinh dữ liệu dựa trên test set hoặc benchmark công khai đã thấy, điểm student không phản ánh khả năng thực tế.
Bỏ qua quyền và provenance
Input, output, model license và điều khoản API đều có thể đặt giới hạn cho việc dùng dữ liệu huấn luyện. Cần lưu nguồn và rà soát trước khi scale.
Tiết kiệm inference nhưng tốn quá nhiều training
Distillation chỉ có lợi kinh tế nếu chi phí tạo dữ liệu, train, đánh giá và bảo trì được bù bởi lưu lượng production hoặc giá trị deployment.
Cách tính bài toán kinh tế ở mức đơn giản
Có thể bắt đầu bằng công thức:
Điểm hòa vốn = Chi phí distillation / Tiết kiệm trên mỗi request
Trong chi phí distillation, tính cả:
- gọi teacher hoặc chạy teacher;
- chuẩn bị và kiểm tra dữ liệu;
- compute huấn luyện;
- thời gian kỹ sư;
- eval, security review và deployment;
- retraining khi dữ liệu drift.
Trong tiết kiệm, không chỉ tính giá inference. Student nhanh hơn có thể giảm số GPU, tăng trải nghiệm và cho phép chạy on-device. Ngược lại, nếu model nhỏ làm giảm conversion hoặc tăng lỗi support, mức tiết kiệm compute có thể không còn ý nghĩa.
Knowledge Distillation trong AI Agency nên áp dụng ra sao?
Với AI Agency, không nên bắt đầu bằng việc tự huấn luyện model. Thứ tự hợp lý hơn là:
- chứng minh workflow mang lại giá trị bằng model có sẵn;
- chuẩn hóa prompt, tool, dữ liệu và eval;
- đo phần request lặp lại, ổn định và tốn chi phí;
- cân nhắc router, cache hoặc model nhỏ có sẵn;
- chỉ distill khi volume và lợi ích đủ lớn.
Distillation là bước tối ưu sau khi quy trình đã hiểu rõ. Nếu workflow chưa ổn định, student chỉ học lại sự hỗn loạn của hệ thống hiện tại.
FAQ - Câu hỏi thường gặp
Knowledge Distillation là gì trong một câu?
Knowledge Distillation là cách huấn luyện một mô hình student học hành vi từ mô hình teacher lớn hơn để đạt cân bằng tốt hơn giữa chất lượng và chi phí triển khai.
Student có phải bản sao thu nhỏ của teacher không?
Không. Student là mô hình được huấn luyện riêng, có thể dùng kiến trúc khác. Nó học tín hiệu của teacher nhưng không mặc định giữ toàn bộ năng lực.
Có cần quyền truy cập trọng số teacher không?
Không phải lúc nào cũng cần. Response-based distillation có thể dùng output API. Feature-based hoặc logit distillation sâu hơn thường cần quyền truy cập nội bộ.
Distillation có làm student tốt hơn teacher không?
Có thể tốt hơn trên một metric hoặc domain hẹp nhờ dữ liệu, regularization và mục tiêu phù hợp, nhưng không nên xem đây là kết quả mặc định. Cần đánh giá độc lập.
Fine-tuning và distillation khác nhau thế nào?
Fine-tuning điều chỉnh model bằng dữ liệu nhiệm vụ. Distillation nhấn mạnh tín hiệu từ teacher. Một quy trình có thể vừa fine-tune vừa distill nếu dữ liệu gồm nhãn thật và output teacher.
Có thể distill một LLM qua API không?
Về kỹ thuật có thể dùng response để huấn luyện student, nhưng phải kiểm tra điều khoản dịch vụ, quyền đối với dữ liệu, privacy và provenance. Không nên tự giả định output nào cũng được phép dùng để train.
Tóm lại
Knowledge Distillation biến năng lực của mô hình lớn thành tín hiệu huấn luyện cho mô hình nhỏ hơn. Giá trị của kỹ thuật này không nằm ở việc “copy trí thông minh”, mà ở khả năng tập trung student vào một phân phối nhiệm vụ cụ thể với ràng buộc deployment rõ ràng.
Muốn triển khai hiệu quả, hãy nhớ:
- chọn teacher bằng eval của riêng bạn;
- giữ cả nhãn thật và kiểm chứng độc lập;
- đo chất lượng theo phân khúc, không chỉ điểm trung bình;
- tính tổng chi phí vòng đời, không chỉ giá inference;
- kiểm soát dữ liệu, quyền sử dụng và safety trước khi huấn luyện.
Để hiểu hạ tầng tính toán phía sau, đọc TPU của Google là gì?. Nếu quan tâm mô hình có thể tùy chỉnh sâu, xem thêm Inkling là gì?. Khi student được dùng trong agent, checklist Rủi ro AI Agent giúp mở rộng phần đánh giá an toàn.
Nguồn tham khảo
- How Big Models Teach Small Models to Be Smart, ByteByteGo.
- Distilling the Knowledge in a Neural Network, Hinton, Vinyals và Dean.
- Knowledge Distillation Tutorial, PyTorch.