Thủ thuật
Hướng dẫn toàn tập: Tinh chỉnh mô hình Qwen3 cho khả năng gọi công cụ với XYZ-Aquila-SFT
(giờ Việt Nam)
Tóm tắt AI
Hướng dẫn chi tiết quy trình tinh chỉnh LoRA cho mô hình Qwen3-0.6B, tập trung vào kỹ thuật gọi công cụ (tool-calling) thông qua định dạng ChatML và tối ưu hóa hàm mất mát.
Bản dịch AI

Trong bài hướng dẫn này, chúng tôi triển khai một quy trình tinh chỉnh có giám sát (supervised fine-tuning) từ đầu đến cuối cho tập dữ liệu XYZ-Aquila-SFT, Hugging Face Transformers, PyTorch và PEFT. Chúng tôi thực hiện truyền phát và kiểm tra tập dữ liệu, phân tích cú pháp các quỹ đạo sử dụng công cụ đa lượt (multi-turn tool-use trajectories), trích xuất các lệnh gọi công cụ có cấu trúc, phân tích đặc điểm của kho ngữ liệu, đồng thời bảo toàn các mô hình suy luận và quan sát được nhúng. Sau đó, chúng tôi chuyển đổi lược đồ công cụ giữa định dạng nhúng trong tin nhắn và định dạng có cấu trúc, kết xuất ChatML tương thích với Qwen cùng tính năng che mất mát (loss masking) chỉ dành cho trợ lý, chuẩn bị tập dữ liệu và bộ đối chiếu (collator) PyTorch tùy chỉnh, và tinh chỉnh Qwen3-0.6B bằng LoRA. Cuối cùng, chúng tôi đánh giá khả năng dự đoán lệnh gọi công cụ trước và sau khi huấn luyện, đồng thời xuất cả tập dữ liệu đã chuyển đổi và số liệu thống kê kho ngữ liệu để phục vụ cho các thử nghiệm tiếp theo.
Chúng tôi cấu hình tập dữ liệu, mô hình, các tham số huấn luyện, thư mục đầu ra và các thiết lập đảm bảo tính tái lập cho toàn bộ quy trình làm việc. Chúng tôi cài đặt các phụ thuộc cần thiết liên quan đến Hugging Face, PEFT, Accelerate và PyTorch, đồng thời phát hiện xem GPU CUDA và hỗ trợ BF16 có khả năng dụng hay không. Sau đó, chúng tôi truyền phát một số lượng hạn chế các ví dụ từ XYZ-Aquila-SFT, kiểm tra lược đồ tập dữ liệu và xem xét cấu trúc của quỹ đạo sử dụng công cụ đầu tiên.
Chúng tôi định nghĩa các tiện ích an toàn lồng nhau để trích xuất các lệnh gọi công cụ JSON, các khối suy luận, quan sát và lược đồ công cụ được nhúng từ mỗi cuộc hội thoại. Chúng tôi chuyển đổi từng hàng dữ liệu thô thành một đối tượng quỹ đạo có cấu trúc và xác minh rằng số lượng lệnh gọi công cụ được phân tích khớp với các giá trị đã khai báo trong tập dữ liệu. Sau đó, chúng tôi tính toán số liệu thống kê ở cấp độ kho ngữ liệu và trực quan hóa sự phân bổ của các lệnh gọi công cụ, độ sâu tin nhắn, kích thước quỹ đạo và tần suất sử dụng công cụ.
Chúng tôi trích xuất các định nghĩa công cụ được nhúng thành định dạng có cấu trúc và tái tạo chúng để kiểm tra xem quá trình chuyển đổi có bảo toàn thông báo hệ thống (system message) gốc hay không. Chúng tôi kết xuất thủ công từng quỹ đạo ở định dạng ChatML để giữ lại toàn bộ nội dung suy luận và chỉ áp dụng hàm mất mát (loss) cho các token do trợ lý tạo ra. Chúng tôi cũng thực hiện token hóa các ví dụ, áp dụng chính sách độ dài chuỗi đã chọn, tạo tập dữ liệu huấn luyện và đánh giá, đồng thời chuẩn bị một DataLoader PyTorch có đệm (padded).
Chúng tôi xây dựng các thăm dò đánh giá theo phương pháp teacher-forcing bằng cách cắt các quỹ đạo ngay trước các lượt phản hồi của trợ lý có chứa lệnh gọi công cụ. Chúng tôi tải Qwen3-0.6B, đo lường hiệu suất gọi công cụ cơ sở, đính kèm các bộ điều hợp LoRA và tinh chỉnh mô hình bằng cách sử dụng tích lũy gradient, độ chính xác hỗn hợp, lưu checkpoint, cắt gradient (clipping) và lập lịch tốc độ học cosine. Sau đó, chúng tôi đánh giá mô hình đã thích nghi, so sánh các chỉ số của nó với mô hình cơ sở, đồng thời lưu bộ điều hợp LoRA và tokenizer đã huấn luyện.
Chúng tôi xuất từng quỹ đạo đã phân tích dưới dạng bản ghi JSONL có cấu trúc chứa các tin nhắn, lược đồ công cụ, câu hỏi và câu trả lời. Chúng tôi cũng lưu một báo cáo JSON chứa kích thước kho ngữ liệu, tần suất công cụ, số liệu thống kê quỹ đạo, tỷ lệ token có giám sát và các kết quả đánh giá khả dụng. Chúng tôi hoàn tất quy trình làm việc với các thành phần tập dữ liệu có thể tái sử dụng, kết quả phân tích và các tệp mô hình được lưu trữ trong thư mục đầu ra đã cấu hình.
Tóm lại, chúng tôi đã hoàn thành một quy trình thực tế để phân tích, chuyển đổi, tinh chỉnh và đánh giá các quỹ đạo sử dụng công cụ phức tạp từ tập dữ liệu XYZ-Aquila-SFT. Chúng tôi đã bảo toàn cấu trúc hội thoại gốc, chỉ áp dụng giám sát ở cấp độ token cho các phản hồi của trợ lý và sử dụng LoRA để thích nghi Qwen3-0.6B một cách hiệu quả trên GPU tương thích với Colab. Chúng tôi cũng so sánh hiệu suất gọi công cụ giữa mô hình cơ sở và sau khi huấn luyện thông qua đánh giá teacher-forced, đồng thời xuất các bản ghi có cấu trúc, bộ điều hợp mô hình và số liệu thống kê phân tích có thể tái sử dụng. Quy trình này cung cấp cho chúng tôi nền tảng vững chắc để mở rộng quy mô tinh chỉnh có giám sát nhận biết công cụ, thử nghiệm các chính sách độ dài chuỗi thay thế và huấn luyện các mô hình ngôn ngữ có khả năng tác nhân (agentic) mạnh mẽ hơn.
Xem TOÀN BỘ MÃ NGUỒN tại đây. Ngoài ra, hãy thoải mái theo dõi chúng tôi trên Twitter và đừng quên tham gia SubReddit ML với hơn 150 nghìn thành viên của chúng tôi và Đăng ký Bản tin của chúng tôi. Khoan đã! Bạn có dùng Telegram không? Bây giờ bạn cũng có thể tham gia cùng chúng tôi trên Telegram.
Cần hợp tác với chúng tôi để quảng bá GitHub Repo, Trang Hugging Face, Phát hành sản phẩm hoặc Hội thảo trực tuyến của bạn, v.v.? Hãy kết nối với chúng tôi.
Sana Hassan, một thực tập sinh tư vấn tại Marktechpost và là sinh viên bằng kép tại IIT Madras, rất đam mê việc ứng dụng công nghệ và AI để giải quyết các thách thức trong thế giới thực. Với sự quan tâm sâu sắc đến việc giải quyết các vấn đề thực tiễn, anh mang đến một góc nhìn mới mẻ cho sự giao thoa giữa AI và các giải pháp trong đời sống.
Bài viết được AI dịch và tổng hợp tự động từ MarkTechPost. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.