Knowledge Distillation
Khám phá cách Knowledge Distillation nén các mô hình AI để suy luận nhanh hơn, cải thiện độ chính xác và nâng cao hiệu quả triển khai trên các thiết bị biên.
Knowledge Distillation (Chưng cất tri thức) là một kỹ thuật tối ưu hóa mô hình và nén trong học máy (ML), trong đó một mô hình "học sinh" nhỏ gọn được đào tạo để tái tạo hiệu suất của một mô hình "giáo viên" lớn hơn, phức tạp hơn. Ý tưởng cốt lõi là chuyển "kiến thức" từ mô hình giáo viên mạnh mẽ nhưng cồng kềnh sang mô hình học sinh nhỏ hơn, hiệu quả hơn. Điều này cho phép triển khai các mô hình có độ chính xác cao trong các môi trường bị hạn chế về tài nguyên, chẳng hạn như trên thiết bị biên hoặc điện thoại di động, mà không làm giảm đáng kể hiệu suất. Quá trình này thu hẹp khoảng cách giữa các mô hình nghiên cứu quy mô lớn, hiện đại và triển khai mô hình thực tế, trong thế giới thực.
Cách Knowledge Distillation Hoạt Động
Mô hình giáo viên (teacher model), thường là một mạng nơ-ron lớn hoặc một tập hợp các mô hình, trước tiên được huấn luyện trên một tập dữ liệu lớn để đạt được độ chính xác cao. Trong quá trình chưng cất (distillation), mô hình học sinh (student model) học bằng cách cố gắng mô phỏng các đầu ra của mô hình giáo viên. Thay vì chỉ học từ các nhãn ground-truth trong dữ liệu huấn luyện, mô hình học sinh còn được huấn luyện trên toàn bộ phân phối xác suất của mô hình giáo viên cho mỗi dự đoán, thường được gọi là "nhãn mềm" (soft labels). Các nhãn mềm này cung cấp thông tin phong phú hơn so với "nhãn cứng" (hard labels - các câu trả lời đúng), vì chúng tiết lộ cách mô hình giáo viên "suy nghĩ" và khái quát hóa. Ví dụ: một mô hình giáo viên có thể dự đoán một hình ảnh con mèo là "mèo" với độ tin cậy 90%, nhưng cũng gán xác suất nhỏ cho "chó" (5%) và "cáo" (2%). Thông tin chi tiết này giúp mô hình học sinh học hiệu quả hơn, thường dẫn đến khả năng khái quát hóa tốt hơn so với việc chỉ được huấn luyện trên các nhãn cứng. Kỹ thuật này là một phần quan trọng của bộ công cụ học sâu để tạo ra các mô hình hiệu quả.
Các Ứng dụng Thực tế
Knowledge Distillation được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau để làm cho AI mạnh mẽ trở nên dễ tiếp cận.
- Xử lý ngôn ngữ tự nhiên (NLP) (Natural Language Processing (NLP)): Các mô hình ngôn ngữ lớn (LLMs) như BERT cực kỳ mạnh mẽ nhưng quá lớn đối với nhiều ứng dụng. DistilBERT là một ví dụ nổi tiếng về phiên bản rút gọn của BERT. Nó nhỏ hơn 40% và nhanh hơn 60% trong khi vẫn giữ lại hơn 97% hiệu suất của BERT, khiến nó phù hợp cho các tác vụ như phân tích cảm xúc (sentiment analysis) và trả lời câu hỏi (question answering) trên các thiết bị tiêu dùng.
- Thị giác máy tính trên các thiết bị biên: Trong thị giác máy tính, một mô hình lớn, có độ chính xác cao để phân loại hình ảnh hoặc nhận diện đối tượng có thể được tinh chỉnh thành một mô hình nhỏ hơn. Điều này cho phép các tác vụ thị giác phức tạp, chẳng hạn như phát hiện người theo thời gian thực cho một camera an ninh thông minh, chạy trực tiếp trên phần cứng có sức mạnh tính toán hạn chế, như Raspberry Pi, cải thiện tốc độ và bảo mật dữ liệu. Các mô hình Ultralytics YOLO như YOLO11 có thể là một phần của các quy trình làm việc như vậy, nơi kiến thức từ các mô hình lớn hơn có thể cung cấp thông tin cho việc huấn luyện các phiên bản nhỏ hơn, có thể triển khai được.
So sánh Knowledge Distillation với các Kỹ thuật Tối ưu hóa khác
Knowledge Distillation có liên quan đến nhưng khác biệt với các kỹ thuật tối ưu hóa mô hình khác. Hiểu rõ sự khác biệt là chìa khóa để chọn đúng phương pháp cho dự án của bạn, phương pháp này có thể được quản lý và triển khai thông qua các nền tảng như Ultralytics HUB.
- Tỉa thưa mô hình: Kỹ thuật này liên quan đến việc loại bỏ các kết nối (trọng số) dư thừa hoặc ít quan trọng hơn khỏi một mạng đã được huấn luyện để giảm kích thước của nó. Ngược lại, дистилляция huấn luyện một mạng mới, nhỏ hơn hoàn toàn từ đầu để bắt chước giáo viên.
- Lượng tử hóa mô hình: Lượng tử hóa làm giảm độ chính xác số của trọng số của mô hình (ví dụ: từ số thực 32 bit thành số nguyên 8 bit). Điều này làm giảm kích thước mô hình và có thể tăng tốc tính toán trên phần cứng tương thích. Nó thay đổi biểu diễn mô hình hiện có, trong khi дистилляция tạo ra một mô hình mới. Lượng tử hóa thường được sử dụng kết hợp với дистилляция hoặc tỉa thưa, và các mô hình có thể được xuất sang các định dạng như ONNX hoặc được tối ưu hóa bằng các công cụ như TensorRT.
- Học chuyển giao: Điều này liên quan đến việc tái sử dụng các phần của một mô hình đã được huấn luyện trước (thường là backbone trích xuất đặc trưng của nó) và sau đó tinh chỉnh nó trên một tập dữ liệu mới, nhỏ hơn. Mục tiêu là để điều chỉnh một mô hình hiện có cho một nhiệm vụ mới. Mặt khác, Distillation (chưng cất) nhằm mục đích chuyển giao hành vi dự đoán của một mô hình giáo viên cho một mô hình học sinh, mô hình này có thể có một kiến trúc hoàn toàn khác.