Jevlike: Mô hình mã nguồn mở tái hiện cách Jev chọn đáp án trong một lượt
Một lập trình viên vừa công bố Jevlike, mô hình nhỏ có thể chọn đáp án đúng từ danh sách văn bản thay đổi chỉ trong một lượt tính toán thay vì sinh từng từ. Dự án lấy cảm hứng từ Jev của TypeSafe - mô hình thương mại chưa từng công bố thiết kế - và đi kèm ví dụ huấn luyện trên dữ liệu Wikispeedia, thậm chí cả trò chơi Doom và cờ vua.

Jevlike: Mô hình mã nguồn mở tái hiện cách Jev chọn đáp án trong một lượt
Một mô hình nhỏ mang tên Jevlike vừa được công bố trên GitHub, cho phép chọn đáp án đúng từ một danh sách văn bản có độ dài thay đổi chỉ bằng một lượt tính toán duy nhất. Đây là nỗ lực độc lập nhằm tái hiện kiến trúc của Jev — mô hình thương mại do TypeSafe phát triển nhưng chưa từng công bố thiết kế. Dự án không sao chép Jev mà chỉ mô phỏng đúng dạng đầu vào và đầu ra của nó.
Jevlike hoạt động như thế nào?
Điểm khác biệt cốt lõi của mô hình này nằm ở cách nó đưa ra quyết định. Thay vì viết câu trả lời từng từ một như các mô hình ngôn ngữ thông thường, Jevlike nhận vào một đoạn văn bản ngữ cảnh và một danh sách N lựa chọn văn bản, sau đó trả về một xác suất cho mỗi lựa chọn.
Cơ chế hoạt động gồm bốn bước chính:
- Mỗi lựa chọn được chuyển thành một vector truy vấn — một dãy số ngắn đại diện cho nội dung văn bản của nó.
- Vector này gán trọng số chú ý (attention weight) lên các token ngữ cảnh.
- Các trọng số đó tạo thành một vector ngữ cảnh riêng cho từng lựa chọn.
- Một phép tích vô hướng dùng chung kết hợp từng cặp lựa chọn – ngữ cảnh thành một điểm số, rồi hàm softmax chuyển các điểm số thành xác suất có tổng bằng một.
Sơ đồ kiến trúc của mô hình Jevlike
Bộ mã hóa mặc định học embedding theo byte từ đầu, tức là tự xây dựng cách biểu diễn văn bản mà không cần mô hình có sẵn. Ngoài ra, dự án còn hỗ trợ tùy chọn dùng bộ mã hóa đóng băng từ Hugging Face, trong đó trọng số của mô hình nền được giữ nguyên và chỉ có phần đầu chấm điểm nhỏ được huấn luyện.
Định dạng dữ liệu và cách bắt đầu nhanh
Dữ liệu huấn luyện được lưu dưới dạng JSONL, mỗi dòng một đối tượng JSON với ba trường: context, options và label. Trường label là chỉ số (bắt đầu từ 0) của lựa chọn đúng. Đáng chú ý, mỗi dòng có thể có số lượng lựa chọn khác nhau, tối thiểu là hai.
Để chạy thử, người dùng chỉ cần vài lệnh từ thư mục gốc của kho mã nguồn: tạo môi trường ảo, cài đặt gói, sinh dữ liệu tổng hợp, huấn luyện, đánh giá và dự đoán một menu mới. Quá trình đánh giá in ra ba chỉ số quan trọng:
- Độ chính xác top-1: tỷ lệ chọn đúng ngay lần đầu.
- Độ chính xác top-3: tỷ lệ đáp án đúng nằm trong ba điểm số cao nhất.
- Sai số hiệu chuẩn kỳ vọng: so sánh độ tự tin của mô hình với độ chính xác thực tế.
Công cụ còn in ra một đối chứng ngữ cảnh xáo trộn, tức là ghép mỗi menu với ngữ cảnh sai. Một mô hình hữu ích phải vượt qua được đối chứng này.
Từ dữ liệu Wikispeedia đến điều khiển Doom và cờ vua
Dự án cung cấp kịch bản tải bộ dữ liệu công khai Wikispeedia từ SNAP để xây dựng các tệp JSONL dự đoán lượt nhấp tiếp theo. Ngoài ra, phần demo còn cho thấy cùng một cơ chế chú ý theo lựa chọn có thể chấm điểm các nút điều khiển từ ảnh — minh họa bằng hai đoạn phim ngắn: chiến đấu trong màn deadly_corridor của Doom với bảy nút bấm, và một bộ điều khiển cờ vua di chuyển cùng thực hiện nước đi bằng năm phím.
Các con số thực nghiệm khá ấn tượng trong phạm vi cục bộ:
- Mô hình chấm điểm một lượt đạt khoảng 98% độ chính xác trên dữ liệu menu tổng hợp.
- Trên dữ liệu Wikispeedia tách biệt mục tiêu, bộ mã hóa Qwen2.5-0.5B đóng băng kèm đầu chấm điểm đạt 26%, so với khoảng 8% của các đối chứng xáo trộn và bộ mã hóa ngẫu nhiên.
- Một mô hình nhỏ huấn luyện từ đầu trên 40.000 lượt nhấp đạt 29%.
- Với tám lựa chọn, một lượt tính toán nhanh hơn khoảng 100 lần so với một bộ giải mã nhỏ bị buộc phải viết 400 token.
Nhóm tác giả nhấn mạnh những con số này mô tả các thí nghiệm cục bộ, không phải kết quả của lần chạy quickstart. Họ cũng khẳng định không đạt chất lượng tương đương Jev và không tái hiện phương pháp huấn luyện riêng của TypeSafe.
Những hạn chế cần lưu ý
Đây là một dự án khởi đầu cho mục đích nghiên cứu, không phải bản sao của Jev. Độ chính xác phụ thuộc vào chất lượng dữ liệu, chất lượng chia tập và bộ mã hóa. Bộ mã hóa theo byte tuy rẻ nhưng yếu về ngữ nghĩa ngôn ngữ, còn nhánh dùng mô hình đóng băng có thể tải về một mô hình lớn và đòi hỏi nhiều bộ nhớ hơn.
Thêm vào đó, cách chấm điểm một lượt yêu cầu phải có toàn bộ danh sách lựa chọn trước khi dự đoán, và phép so sánh tốc độ được thực hiện với một bộ giải mã nhỏ chạy cục bộ chứ không phải mô hình thương mại lớn.
Về giấy phép
Mã nguồn được phát hành theo giấy phép MIT, trong khi các bộ dữ liệu tải về và mô hình tiền huấn luyện vẫn tuân theo điều khoản riêng của chúng. Với những ai quan tâm đến bài toán chọn đáp án trong một lượt — một hướng tiếp cận đang ngày càng phổ biến trong các hệ thống gợi ý và phân loại — Jevlike là điểm khởi đầu đáng để thử nghiệm.


