Kev: Bộ mô hình ra quyết định nhỏ gọn chạy trên nền Qwen3.5, tự huấn luyện được

Công nghệ21 tháng 9, 2026·7 phút đọc

Kev là một họ mô hình ra quyết định nhỏ (0.8B, 4B, 9B) xây dựng trên nền Qwen3.5, cho phép trả về xác suất thay vì chỉ một nhãn duy nhất. Người dùng có thể chạy cục bộ trên CUDA hoặc Apple Silicon, tự tinh chỉnh bằng dữ liệu riêng, và API tương thích với SDK Python của TypeSafe.

Kev: Bộ mô hình ra quyết định nhỏ gọn chạy trên nền Qwen3.5, tự huấn luyện được

Trong bối cảnh các mô hình ngôn ngữ lớn ngày càng phình to, một hướng đi ngược dòng đang thu hút sự chú ý: những mô hình nhỏ, chuyên biệt cho một nhiệm vụ duy nhất là đưa ra quyết định. Kev là một ví dụ tiêu biểu — họ mô hình ra quyết định nhỏ gọn do Jared Palmer phát triển, xây dựng trên nền Qwen3.5 và dựa trên kiến trúc được mô tả trong tài liệu Jev's Architecture Unmasked.

Điểm đáng chú ý là Kev không cố gắng sinh văn bản. Thay vào đó, nó trả lời các câu hỏi dạng đúng/sai, trắc nghiệm và thang điểm — tất cả trong cùng một yêu cầu — và quan trọng hơn, nó trả về xác suất cho từng lựa chọn.

Kev là gì và có gì đặc biệt?

Kev là một họ mô hình ra quyết định nhỏ, có thể dùng trọng số đã huấn luyện sẵn hoặc tự huấn luyện. API của nó tương thích với System One của TypeSafe, nghĩa là bạn có thể trỏ SDK Python của TypeSafe vào máy chủ cục bộ của mình.

Các điểm nổi bật:

  • Ba kích cỡ mô hình: 0.8B, 4B và 9B, kèm mã huấn luyện và dữ liệu đánh giá.
  • Hỗ trợ ba loại câu hỏi trong cùng một yêu cầu: noul (đúng/sai), choice (trắc nghiệm) và score (thang điểm).
  • Các câu hỏi chia sẻ cùng văn bản đầu vào nhưng không đọc được câu trả lời của nhau — cô lập hoàn toàn.
  • Chạy được trên CUDAApple Silicon. Hai mô hình 4B và 9B vừa với máy Mac 32 GB khi dùng bf16.
  • Có sẵn web playground để thử nghiệm đầu vào và kiểm tra ảnh hưởng của thứ tự lựa chọn.

Bắt đầu nhanh

Bạn cần Python 3.12+ và uv. Chỉ vài lệnh là có thể chạy Kev-4B cục bộ:

git clone https://github.com/jaredpalmer/kev.git && cd kev
uv sync --extra serve
KEV_DTYPE=bf16 uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8009

Lần chạy đầu tiên sẽ tải adapter và mô hình nền. Sau đó, gửi thử một yêu cầu:

curl -s localhost:8009/v1/systemone -H 'content-type: application/json' -d '{
"state": "Shoes arrived two weeks late and in the wrong size. Also I see two charges on my card.",
"model": "kev-latest",
"questions": {
"department":  {"type": "choice", "instructions": "Which team should handle this?",
"criteria": {"returns": "Exchanges, refunds, wrong or damaged items",
"shipping": "Delivery status, delays, lost packages",
"billing": "Charges, invoices, payment problems"}},
"escalate":    {"type": "noul",  "instructions": "Does this need urgent human attention?"},
"frustration": {"type": "score", "instructions": "How frustrated is the customer?",
"criteria": ["Calm", "Frustrated", "Very angry"]}
}}'

Một ví dụ về kết quả trả về: với ticket vừa có vấn đề hoàn trả, vừa giao hàng trễ, lại vừa bị trừ tiền hai lần, mô hình trả về xác suất phân bổ cho cả ba nhóm returns (0.47), shipping (0.28) và billing (0.25), kèm mức độ bực bội và cảnh báo cần con người xử lý. Đó chính là điểm mấu chốt: nhận xác suất thay vì một nhãn cứng.

Cách hoạt động

Mỗi checkpoint của Kev là một adapter LoRA hạng 16 cộng với một pointer head nhỏ, gắn lên mô hình nền Qwen. Toàn bộ trọng số nền giữ nguyên, chỉ adapter và head được huấn luyện bằng cross-entropy trên đáp án đúng.

Với các base chỉ dùng attention (như Qwen3), trạng thái và các câu hỏi được đưa vào một chuỗi token duy nhất, dùng mặt nạ attention để mỗi token chỉ đọc được trạng thái và câu hỏi của chính nó. Với Qwen3.5 — vốn trộn các lớp attention với các lớp Gated DeltaNet (mang tính hồi quy, bỏ qua mặt nạ attention) — mỗi câu hỏi được chạy thành một hàng riêng, nhưng máy chủ chỉ tính trạng thái một lần rồi tái sử dụng cache cho mọi hàng.

Một ứng dụng thú vị là demo cờ vua: bàn cờ là đầu vào, các nước đi hợp lệ là lựa chọn trắc nghiệm, và một câu hỏi dạng điểm đánh giá thế trận. Bạn có thể chơi với Kev hoặc để nó tự đấu với chính mình.

Hiệu năng và các mô hình

Trên CUDA, nếu cài flash-linear-attention cho các mô hình Qwen3.5, một yêu cầu năm câu hỏi chỉ mất vài chục mili-giây trên H100. Trên Apple Silicon thì chậm hơn nhiều do chưa có kernel tối ưu cho các lớp DeltaNet — Kev-9B mất khoảng 2 giây mỗi lượt, trong khi thế hệ trước dùng Qwen3 chỉ khoảng 300 ms.

Mô hìnhNềnĐộ chính xác (nguồn đã huấn luyện)Độ chính xác (nguồn mới)
Kev-0.8BQwen3.5-0.8B-Base0.829 / 0.8270.643 / 0.668
Kev-4BQwen3.5-4B-Base0.877 / 0.8700.794 / 0.832
Kev-9BQwen3.5-9B-Base0.876 / 0.8730.812 / 0.837

So với Jev (bản hosted), Kev-9B kém khoảng 4,5 điểm trên tập phát triển nguồn mới. Tuy nhiên, tác giả thừa nhận không biết Jev được huấn luyện trên dữ liệu nào, nên đây không phải so sánh có kiểm soát giữa hai kiến trúc.

Tự tinh chỉnh trên dữ liệu riêng

Đây có lẽ là phần hấp dẫn nhất với các đội ngũ kỹ thuật tại Việt Nam. Nếu các câu hỏi của bạn khác biệt — danh mục định tuyến riêng, quy tắc leo thang riêng, hoặc ngôn ngữ khác — thì một lần tinh chỉnh ngắn trên vài trăm ví dụ gán nhãn thường hiệu quả hơn bất kỳ thay đổi prompt nào.

Điểm quan trọng: hãy dùng tùy chọn --init_from để bắt đầu từ checkpoint đã phát hành, giữ lại những gì Kev đã biết. Trong một thử nghiệm trên 836 quyết định hỗ trợ khách hàng, tinh chỉnh từ base chỉ đạt 0.33 trên tập đánh giá của Kev, trong khi tinh chỉnh với --init_from giữ được 0.83 và đạt 0.88 trên lĩnh vực mới.

Hạn chế cần lưu ý

  • Xác suất chưa được hiệu chuẩn tốt trên nguồn mới. Kev-4B gán xác suất ít nhất 0.9 cho một đáp án sai ở 8,2% câu hỏi. Cần kiểm thử trên dữ liệu của chính bạn trước khi chọn ngưỡng.
  • Tinh chỉnh có thể làm hỏng một số kỹ năng nền. Ví dụ rõ nhất là số học ngày tháng: Qwen3.5-9B base đạt 0.82 trên các câu hỏi về chính sách hạn chót, còn Kev-9B chỉ đạt 0.72.
  • Đổi thứ tự lựa chọn có thể đổi đáp án — việc cô lập câu hỏi không ngăn được điều này.
  • Mô hình hiện chạy chậm trên Apple Silicon và cần transformers >= 5.17.
  • Máy chủ xử lý tuần tự từng yêu cầu và không có xác thực, nên chỉ nên chạy cục bộ.

Góc nhìn cho lập trình viên Việt Nam

Với các đội ngũ đang xây dựng hệ thống phân loại ticket, định tuyến yêu cầu hay chấm điểm nội dung, Kev mang đến một lựa chọn đáng cân nhắc: mô hình nhỏ, chạy được trên máy cá nhân, trả về xác suất để bạn tự đặt ngưỡng tự động hóa. Giấy phép Apache-2.0 cùng với mã huấn luyện và dữ liệu đánh giá đầy đủ giúp việc thử nghiệm trở nên dễ dàng hơn nhiều so với các mô hình đóng.

Điểm cần cân nhắc là hiệu năng trên Mac còn hạn chế và chất lượng trên tiếng Việt chưa được kiểm chứng — nghĩa là nếu ứng dụng của bạn cần xử lý tiếng Việt, một lần tinh chỉnh với dữ liệu bản địa gần như là bước bắt buộc.

Kev không cố thay thế các mô hình lớn. Nó chỉ làm một việc — ra quyết định — và làm việc đó ngay trên máy của bạn.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗