Jevstiller: Chưng cất mô hình lớn thành mô hình cục bộ với cam kết sai lệch được đảm bảo

Phần mềm29 tháng 9, 2026·7 phút đọc

Jevstiller là công cụ mã nguồn mở giúp chưng cất các mô hình ngôn ngữ lớn thành mô hình cục bộ nhỏ gọn, với cam kết toán học đảm bảo tỷ lệ đồng thuận tối thiểu (ví dụ 98%) so với mô hình gốc. Công cụ sử dụng kiểm định Clopper-Pearson và kiểm thử tuần tự cố định để duy trì cam kết qua nhiều lần huấn luyện lại, kèm cơ chế kiểm toán liên tục phát hiện trôi dữ liệu.

Jevstiller: Chưng cất mô hình lớn thành mô hình cục bộ với cam kết sai lệch được đảm bảo

Jevstiller: Chưng cất mô hình lớn thành mô hình cục bộ với cam kết sai lệch được đảm bảo

Jevstiller là một dự án mã nguồn mở mới nổi trên Hacker News, giải quyết bài toán đau đầu của nhiều kỹ sư AI: làm sao để thay thế các lệnh gọi API tốn kém và chậm chạp (khoảng 300ms mỗi lần) bằng một mô hình cục bộ nhanh hơn nhiều (khoảng 15ms trên CPU) — mà vẫn đảm bảo kết quả "giống hệt" mô hình gốc trong một tỷ lệ phần trăm định trước.

Điểm đáng chú ý không nằm ở mô hình nhỏ. Nó nằm ở hợp đồng cam kết: bạn đặt một con số, ví dụ 98%, và hệ thống đảm bảo rằng trong ít nhất 98% số yêu cầu, nhãn trả về giống với nhãn mà mô hình gốc (gọi là "Jev" trong bài viết) sẽ trả về.

Hợp đồng cam kết: một dòng công thức

Gọi c là tỷ lệ yêu cầu mà mô hình cục bộ trả lời (coverage — độ phủ), và e là tỷ lệ trong số đó có nhãn khác với Jev (disagreement — sai lệch). Những yêu cầu mô hình cục bộ từ chối sẽ được chuyển tiếp đến Jev, do đó đương nhiên đồng thuận với Jev. Khi đó, mức đồng thuận tổng thể của hệ thống với Jev là:

A = 1 − c · e

Với mục tiêu A* = 98%, ngân sách sai lệch là β = 2%. Nhiệm vụ của bộ định tuyến (router) là trả lời càng nhiều càng tốt trong khi giữ tích c · e dưới mức β.

Điều thú vị là hợp đồng này không nói về độ chính xác so với sự thật. Nếu Jev sai, mô hình cục bộ cũng sai y hệt — hệ thống chỉ đảm bảo sự đồng thuận với Jev, không phải với nhãn đúng.

Cách tiếp cận ngây thơ và lý do nó thất bại

Cách làm thông thường: giữ lại một phần dữ liệu, thử quét ngưỡng độ tin cậy, chọn ngưỡng lỏng nhất mà sai lệch đo được vẫn nằm trong ngân sách, rồi triển khai.

Vấn đề: cách này phá vỡ ngân sách khoảng một nửa số lần. Trên 5 tác vụ công khai với 20 lần chia dữ liệu ngẫu nhiên, quy tắc ước lượng điểm vượt ngân sách 2% trong 6 đến 12 trên 20 lần chia, có khi lên tới 2,85%.

Lý do rất tinh tế: sai lệch đo được ở một ngưỡng bất kỳ chỉ là ước lượng nhiễu của sai lệch thật. Khi chọn ngưỡng lỏng nhất trông có vẻ đạt, bạn vô tình chọn ngưỡng mà nhiễu tình cờ chỉ xuống thấp. Trên mẫu dữ liệu tiếp theo, nhiễu lại chỉ hướng khác, và ngưỡng đo được 1,9% lại giao hàng thực tế 2,7%.

Jevstiller giải quyết thế nào?

Bốn quyết định thiết kế nhỏ, kết hợp lại, giữ cam kết đúng với xác suất ít nhất 95% cho mọi phiên bản mô hình cục bộ đưa vào sản xuất:

  • Hàm mất mát chính là hợp đồng. Với mỗi dòng trong tập hiệu chuẩn IID, chấm điểm 1 nếu mô hình cục bộ định trả lời và định trả lời khác Jev, ngược lại 0. Giá trị trung bình là một biến nhị thức, nên có thể dùng khoảng tin cậy chính xác Clopper–Pearson mà không cần xấp xỉ.

  • Kiểm thử ngưỡng theo thứ tự nghiêm ngặt nhất trước. Đi từ ngưỡng chặt nhất đến lỏng nhất, dừng lại ở ngưỡng đầu tiên thất bại. Đây là kỹ thuật kiểm thử chuỗi cố định (fixed-sequence testing) như trong phương pháp Learn Then Test.

  • Không để dữ liệu khác chạm vào tập hiệu chuẩn. Cổng chặn phân phối ngoài (OOD gate) lấy ngưỡng từ dữ liệu huấn luyện. Nếu tinh chỉnh trên tập hiệu chuẩn, khoảng tin cậy sẽ bị tính trên chính dữ liệu đã dùng để chọn nó — tức là lặp lại sai lầm ước lượng điểm dưới lớp áo khác.

  • Để lại khoảng dự phòng. Ngưỡng được khớp ở 85% ngân sách, sau đó phải vượt kiểm tra thứ hai ở ngân sách đầy đủ trên dữ liệu hiệu chuẩn hợp nhất với lưu lượng mới.

Lời hứa thứ hai: "Jev có phân vân không?"

Jev trả về độ tin cậy kèm theo mỗi câu trả lời, và tài liệu gợi ý rằng độ tin cậy thấp nghĩa là "phân vân". Một mô hình cục bộ chỉ trả lời khi tự tin sẽ âm thầm phá vỡ mẫu hình này, vì câu trả lời cục bộ không bao giờ trả về trạng thái "phân vân".

Từ phiên bản 0.4.0, mỗi tác vụ có thể mang tham số confidence_floor. Khi Jev sẽ trả lời dưới mức sàn này, câu trả lời cục bộ vẫn bị tính là sai lệch. Cùng ngân sách 2% bao trùm cả hai loại. Chi phí là độ phủ giảm 4–12 điểm, và tính năng này mặc định tắt.

Duy trì cam kết sau ngày đầu tiên

Ràng buộc tại thời điểm triển khai là chưa đủ. Mô hình cục bộ huấn luyện lại khi lưu lượng tích lũy, và mỗi lần huấn luyện lại tiêu tốn lại 5% xác suất, nên qua nhiều phiên bản sẽ có phiên bản trượt cam kết.

Giải pháp: 2% cố định tổng số yêu cầu luôn được gửi đến Jev bất kể mô hình cục bộ nghĩ gì, với câu trả lời cục bộ được ghi lại song song. Lát cắt kiểm toán này là góc nhìn không thiên lệch duy nhất về sản xuất sau khi định tuyến bắt đầu.

Trong bài kiểm tra ngâm 24 giờ, một Jev giả lập âm thầm đổi mọi câu trả lời ở giờ thứ mười hai. Tỷ lệ trả lời cục bộ rơi từ 90% xuống 9% trong vòng 4 phút khi kiểm toán phát hiện, và trở lại 90% trong 49 phút, huấn luyện lại chỉ trên dữ liệu sau thay đổi, không ai chạm vào bất cứ thứ gì.

Chi phí phải trả

  • Độ phủ: Ràng buộc bảo thủ trên dữ liệu hữu hạn khiến hệ thống mất 4–8 điểm độ phủ so với quy tắc ước lượng điểm. Huấn luyện trên phân phối xác suất đầy đủ của Jev (thay vì chỉ nhãn cao nhất) giành lại 2–3 điểm trên các tác vụ nhiều lớp.

  • Mục tiêu là một núm xoay: Chuyển từ 98% xuống 95% gần như nhân đôi lượng câu hỏi được trả lời cục bộ trên các tác vụ tweet, và nâng tác vụ phân loại ý định từ khoảng 70% lên đầu 80%.

  • Độ phủ phụ thuộc vào tính nhất quán của Jev, không phải độ khó tác vụ. Trên hai tác vụ tweet, Jev chỉ đồng ý với nhãn người 64% và 74% số lần, nên câu trả lời gần ranh giới lớp rất nhiễu, và mô hình cục bộ không thể tái tạo nhiễu trong ngân sách 2%.

Những gì hệ thống không hứa

Ràng buộc giả định tập hiệu chuẩn là mẫu ngẫu nhiên của lưu lượng mà ngưỡng sẽ được dùng trên đó. Nếu hỗn hợp lưu lượng thay đổi, ràng buộc cũ không nói gì về hỗn hợp mới — đó là lý do có kiểm toán. Đồng thuận không phải là độ chính xác. Và hợp đồng là theo từng yêu cầu, không phải từng lớp: một lớp hiếm có thể chứa phần lớn sai lệch. Ngân sách theo lớp đang nằm trong lộ trình.

Dùng thử

Jevstiller phát hành theo giấy phép Apache 2.0. Cài đặt và chạy thử:

git clone https://github.com/tomerglick57/Jevstiller && cd Jevstiller && pip install jevstiller
bash experiments/reproduce.sh          # kết quả Banking77, không cần API key, ~10 phút
bash experiments/bench.sh --no-record  # đầy đủ 5 tác vụ và so sánh quy tắc ngưỡng, 1-2 giờ

Hoặc chạy trực tiếp trước các lệnh gọi Jev của bạn bằng Docker và trỏ TYPESAFE_BASE_URL vào đó. Sau vài nghìn yêu cầu, báo cáo trạng thái sẽ in ra ràng buộc đạt được và khoảng tin cậy mà kiểm toán đo được kể từ đó.

Đối với độc giả Việt Nam đang xây dựng các hệ thống AI agent hoặc pipeline phân loại văn bản phụ thuộc vào API bên ngoài, Jevstiller là một tham khảo đáng giá: nó không chỉ giảm chi phí và độ trễ, mà còn cung cấp một khuôn khổ toán học để biết chắc mình đang đánh đổi điều gì.

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