Knowledge Distillation
Tìm hiểu cách chưng cất tri thức (knowledge distillation) chuyển giao trí tuệ từ các thầy lớn sang các học trò nhỏ gọn. Tối ưu hóa Ultralytics YOLO26 để triển khai biên nhanh chóng, hiệu quả.
Chưng cất tri thức là một kỹ thuật tinh vi trong machine learning, nơi một mạng thần kinh nhỏ gọn, được gọi là "học sinh" (student), được huấn luyện để tái tạo hành vi và hiệu suất của một mạng lớn hơn, phức tạp hơn, được gọi là "giáo viên" (teacher). Mục tiêu chính của quy trình này là tối ưu hóa mô hình, cho phép các nhà phát triển chuyển giao khả năng dự đoán từ các kiến trúc nặng sang các mô hình gọn nhẹ phù hợp để triển khai trên phần cứng bị hạn chế về tài nguyên. Bằng cách nắm bắt thông tin phong phú được mã hóa trong các dự đoán của giáo viên, mô hình học sinh thường đạt được độ chính xác cao hơn đáng kể so với việc chỉ huấn luyện trên dữ liệu thô, qua đó thu hẹp khoảng cách giữa hiệu suất cao và hiệu quả.
Link to this sectionCơ chế truyền tải tri thức#
Trong học có giám sát truyền thống, các mô hình được huấn luyện bằng cách sử dụng "nhãn cứng" từ dữ liệu huấn luyện, trong đó một hình ảnh được phân loại xác định (ví dụ: 100% là "chó" và 0% là "mèo"). Tuy nhiên, một mô hình giáo viên đã được huấn luyện trước sẽ tạo ra đầu ra thông qua hàm softmax, hàm này gán xác suất cho tất cả các lớp. Các phân phối xác suất này được gọi là "nhãn mềm" hoặc "tri thức tối" (dark knowledge).
Ví dụ: nếu một mô hình giáo viên phân tích hình ảnh của một con sói, nó có thể dự đoán 90% là sói, 9% là chó và 1% là mèo. Phân phối này cho thấy con sói chia sẻ các đặc điểm thị giác với loài chó, một bối cảnh mà nhãn cứng bỏ qua. Trong quá trình chưng cất, học sinh sẽ tối thiểu hóa một hàm mất mát, chẳng hạn như phân kỳ Kullback-Leibler, để căn chỉnh các dự đoán của nó với các nhãn mềm của giáo viên. Phương pháp này, được phổ biến bởi nghiên cứu của Geoffrey Hinton, giúp học sinh khái quát hóa tốt hơn và giảm thiểu hiện tượng quá khớp trên các tập dữ liệu nhỏ hơn.
Link to this sectionCác ứng dụng trong thực tế#
Chưng cất tri thức đóng vai trò then chốt trong các ngành công nghiệp nơi tài nguyên tính toán khan hiếm nhưng hiệu suất cao là yêu cầu bắt buộc.
- Edge AI và Thị giác di động: Chạy các tác vụ phát hiện đối tượng phức tạp trên điện thoại thông minh hoặc thiết bị IoT đòi hỏi các mô hình có độ trễ suy luận thấp. Các kỹ sư chưng cất các mạng khổng lồ thành các kiến trúc thân thiện với thiết bị di động như YOLO26 (cụ thể là các biến thể nano hoặc small). Điều này cho phép các ứng dụng thời gian thực như nhận diện khuôn mặt hoặc các bộ lọc thực tế tăng cường chạy mượt mà mà không làm cạn kiệt thời lượng pin.
- Xử lý ngôn ngữ tự nhiên (NLP): Các mô hình ngôn ngữ lớn (LLM) hiện đại yêu cầu các cụm GPU khổng lồ để vận hành. Chưng cất cho phép các nhà phát triển tạo ra các phiên bản nhỏ hơn, nhanh hơn của các mô hình này mà vẫn giữ được các khả năng mô hình hóa ngôn ngữ cốt lõi. Điều này giúp việc triển khai các chatbot và trợ lý ảo phản hồi nhanh trên phần cứng tiêu dùng thông thường hoặc các phiên bản cloud đơn giản trở nên khả thi.
Link to this sectionPhân biệt các thuật ngữ tối ưu hóa liên quan#
Điều quan trọng là phải phân biệt chưng cất tri thức với các chiến lược nén khác, vì chúng sửa đổi các mô hình theo những cách cơ bản khác nhau.
- Học chuyển đổi (Transfer Learning): Kỹ thuật này bao gồm việc lấy một mô hình đã được huấn luyện trước trên một tập dữ liệu chuẩn khổng lồ và điều chỉnh nó cho một tác vụ cụ thể, mới (ví dụ: tinh chỉnh một bộ phân loại hình ảnh chung để phát hiện các bất thường y tế). Ngược lại, chưng cất tập trung vào việc nén cùng một tri thức thành dạng nhỏ hơn thay vì thay đổi miền dữ liệu.
- Cắt tỉa mô hình (Model Pruning): Cắt tỉa loại bỏ vật lý các kết nối hoặc nơ-ron dư thừa khỏi một mạng đã huấn luyện hiện có để làm cho nó trở nên thưa thớt. Chưng cất thường liên quan đến việc huấn luyện một kiến trúc học sinh nhỏ hơn, hoàn toàn tách biệt từ đầu bằng cách sử dụng sự hướng dẫn của giáo viên.
- Lượng tử hóa mô hình (Model Quantization): Lượng tử hóa làm giảm độ chính xác của trọng số mô hình (ví dụ: từ số thực dấu phẩy động 32-bit xuống số nguyên 8-bit) để tiết kiệm bộ nhớ và tăng tốc tính toán. Đây thường là bước cuối cùng trong triển khai mô hình tương thích với các công cụ như TensorRT hoặc OpenVINO, và có thể được kết hợp với chưng cất để đạt hiệu quả tối đa.
Link to this sectionTriển khai mô hình học sinh#
Trong quy trình thực tế, trước tiên bạn chọn một kiến trúc gọn nhẹ để đóng vai trò là học sinh. Ultralytics Platform có thể được sử dụng để quản lý các tập dữ liệu và theo dõi các thí nghiệm huấn luyện của các mô hình hiệu quả này. Dưới đây là ví dụ về việc khởi tạo một mô hình YOLO26 nhỏ gọn, lý tưởng cho việc triển khai ở biên và đóng vai trò là mạng học sinh:
from ultralytics import YOLO
# Load a lightweight YOLO26 nano model (acts as the student)
# The 'n' suffix denotes the nano version, optimized for speed
student_model = YOLO("yolo26n.pt")
# Train the model on a dataset
# In a custom distillation loop, the loss would be influenced by a teacher model
results = student_model.train(data="coco8.yaml", epochs=5, imgsz=640)





