
Phương pháp huấn luyện mô hình ra quyết định riêng tương tự Jev bằng Unsloth
Bài viết này hướng dẫn phương pháp chuyển đổi một mô hình ngôn ngữ trọng số mở (open-weight) thành mô hình ra quyết định giúp phân loại ý định của người dùng, thông qua việc tinh chỉnh (fine-tuning) Qwen3.5-4B trên...
Phương pháp huấn luyện mô hình ra quyết định tương tự Jev bằng Unsloth
Tác giả: Kanwal Mehreen, ngày 4/11/2026, chuyên mục Trí tuệ nhân tạo 0
Chia sẻ
Đăng bài
Chia sẻ
Bài viết này trình bày phương pháp chuyển đổi một mô hình ngôn ngữ có trọng số mở thành mô hình ra quyết định phục vụ phân loại ý định của người dùng, thông qua việc tinh chỉnh Qwen3.5-4B trên tập dữ liệu CLINC150 bằng Unsloth.
Các nội dung chính bao gồm:
Bản chất của các mô hình ra quyết định và cơ chế FastDecisionModel của Unsloth chấm điểm cho một tập hợp lựa chọn cố định thay vì tạo văn bản.
Phương pháp chuyển đổi tập dữ liệu CLINC150 sang định dạng quyết định của Unsloth và tinh chỉnh Qwen3.5-4B với kỹ thuật LoRA 4-bit trên Google Colab.
Quy trình đánh giá, hiệu chuẩn, kiểm thử và lưu trữ mô hình phân loại ý định sau khi huấn luyện.
Khả năng chuyển đổi một mô hình ngôn ngữ thông thường thành mô hình ra quyết định nhằm đưa ra câu trả lời trực tiếp thay vì tạo câu phản hồi dài.
Các mô hình như Jev, Laya và Clef được thiết kế để đưa ra những quyết định có cấu trúc. Thay vì tạo văn bản theo từng token, các mô hình này lựa chọn từ những phương án định sẵn và trả về kết quả ước lượng xác suất.
Unsloth hiện đã hỗ trợ huấn luyện mô hình ra quyết định từ các mô hình ngôn ngữ có trọng số mở như Qwen và Gemma. Tài liệu hướng dẫn chính thức của Unsloth giải thích chi tiết phương pháp này và cung cấp sẵn các sổ tay lập trình (notebook).
Trong bài hướng dẫn này, Google Colab, Unsloth và Qwen3.5-4B được ứng dụng để xây dựng một mô hình phân loại ý định tùy chỉnh dựa trên tập dữ liệu CLINC150, với các bước:
Chuẩn bị tập dữ liệu
Huấn luyện mô hình bằng LoRA
Đánh giá hiệu năng
Kiểm thử khả năng nhận diện chính xác yêu cầu của người dùng từ nội dung tin nhắn
Sau khi hoàn tất, hệ thống sẽ sở hữu một mô hình ra quyết định riêng biệt có khả năng phân loại các yêu cầu và trả về kết quả dự đoán có cấu trúc đi kèm điểm tin cậy. Dưới đây là các bước triển khai chi tiết.
Mô hình ra quyết định là gì?
Các mô hình ngôn ngữ truyền thống thường tạo câu trả lời theo từng token. Tuy nhiên, nhiều ứng dụng thực tế không đòi hỏi phần giải thích chi tiết mà chỉ cần một quyết định cụ thể.
Ví dụ, khi người dùng gửi tin nhắn:
“Can you help me check the balance in my savings account?”
Một LLM truyền thống có thể giải thích cách thức kiểm tra số dư tài khoản. Trong khi đó, mô hình ra quyết định có thể trực tiếp phân loại yêu cầu:
{
"intent": "balance",
"confidence": 0,97
}
1
2
3
4
{
"intent": "balance",
"confidence": 0,97
}
Mô hình ra quyết định phát huy hiệu quả trong việc phân loại ý định, kiểm duyệt nội dung, điều hướng yêu cầu, phân tích cảm xúc và vận hành các quy trình tác tử (agent workflow), nơi việc lựa chọn hành động có tính quyết định hơn so với việc sinh văn bản.
FastDecisionModel của Unsloth chuyển đổi một LLM được huấn luyện trước thành mô hình ra quyết định bằng cách bổ sung một đầu quyết định chuyên biệt (decision head). Mô hình sẽ xử lý đầu vào cùng các phương án có sẵn và chấm điểm các câu trả lời khả dĩ mà không tạo ra văn bản theo cách thông thường.
Hệ thống hỗ trợ ba dạng câu hỏi chính:
Choice: Chọn một phương án từ nhiều khả năng
Noul: Đưa ra quyết định dạng có hoặc không (yes/no)
Score: Chọn một mức độ từ tập hợp danh mục đã được sắp xếp thứ tự
Thử nghiệm này tập trung vào dạng câu hỏi Choice nhằm giúp mô hình xác định chính xác ý định từ tin nhắn của người dùng.
Bắt đầu với Unsloth và Qwen3.5
Toàn bộ thử nghiệm được thực hiện trên Google Colab, giúp thao tác trực tiếp mà không cần thiết lập CUDA hoặc cài đặt trình điều khiển trên máy cục bộ. Quy trình có thể bắt đầu bằng việc tham khảo tài liệu hướng dẫn chính thức của Unsloth hoặc mở trực tiếp sổ tay Qwen3.5-4B Decision Model trên Google Colab. Cần lưu ý tạo một bản sao của sổ tay này trên Google Drive trước khi thực hiện các thay đổi.
Tại mục Runtime → Change runtime type, chọn một GPU NVIDIA khả dụng. Cấu hình thử nghiệm sử dụng card Tesla T4 với bộ nhớ GPU khoảng 14,6 GB. Hệ thống có thể vận hành trên GPU này, song thời gian huấn luyện sẽ kéo dài hơn so với các dòng GPU thế hệ mới.
Nội dung hướng dẫn áp dụng các thông số sau:
Thành phần
Lựa chọn
Mô hình nền tảng
Qwen3.5-4B
Framework
Unsloth
Tập dữ liệu
CLINC150
Phương pháp huấn luyện
4-bit LoRA
Dạng quyết định
Lựa chọn (Choice)
Môi trường
Google Colab
Bước 1: Cài đặt Unsloth
Quy trình sử dụng ô cài đặt các gói phụ thuộc từ sổ tay Colab của Unsloth. Thao tác này sẽ cài đặt uv, các phiên bản PyTorch và Transformers tương thích, Unsloth cùng các gói thư viện cần thiết cho GPU. Khối mã này cần được kích hoạt trong một ô lệnh Colab trước khi nạp mô hình.
%%capture
import os, importlib.util
!pip install --upgrade -qqq uv
if importlib.util.find_spec("torch") is None or "COLAB_" in "".join(os.environ.keys()):
try: import numpy, PIL; _numpy = f"numpy=={numpy.__version__}"; _pil = f"pillow=={PIL.__version__}"
except: _numpy = "numpy"; _pil = "pillow"
!uv pip install -qqq \
"torch==2.8.0" "triton>=3.3.0" {_numpy} {_pil} torchvision "torchaudio==2.8.0" bitsandbytes xformers==0.0.32.post2 \
"unsloth_zoo[base] @ git+https://github.com/unslothai/unsloth-zoo" \
"unsloth[base] @ git+https://github.com/unslothai/unsloth"
!uv pip install -qqq --no-deps "torchcodec==0.7.0"
elif importlib.util.find_spec("unsloth") is None:
!uv pip install -qqq unsloth
!uv pip install --upgrade --no-deps "tokenizers>=0.22.0,<=0.23.0" trl==0.22.2 unsloth unsloth_zoo
!uv pip install transformers==5.2.0
!unsloth install-kernels
!uv pip install --no-deps --upgrade "torchao>=0.16.0"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
%%capture
import os, importlib.util
!pip install --upgrade -qqq uv
if importlib.util.find_spec("torch") is None or "COLAB_" in "".join(os.environ.keys()):
try: import numpy, PIL; _numpy = f"numpy=={numpy.__version__}"; _pil = f"pillow=={PIL.__version__}"
except: _numpy = "numpy"; _pil = "pillow"
!uv pip install -qqq \
"torch==2.8.0" "triton>=3.3.0" {_numpy} {_pil} torchvision "torchaudio==2.8.0" bitsandbytes xformers==0.0.32.post2 \
"unsloth_zoo[base] @ git+https://github.com/unslothai/unsloth-zoo" \
"unsloth[base] @ git+https://github.com/unslothai/unsloth"
!uv pip install -qqq --no-deps "torchcodec==0.7.0"
elif importlib.util.find_spec("unsloth") is None:
!uv pip install -qqq unsloth
!uv pip install --upgrade --no-deps "tokenizers>=0.22.0,<=0.23.0" trl==0.22.2 unsloth unsloth_zoo
!uv pip install transformers==5.2.0
!unsloth install-kernels
!uv pip install --no-deps --upgra




Nguồn tin: Machine Learning Mastery — Tác giả: Kanwal Mehreen. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.