OpenJev: Thử nghiệm cục bộ mô hình ra quyết định ngay trên trình duyệt
OpenJev là một thử nghiệm cho phép chạy mô hình ngôn ngữ cục bộ trực tiếp trong trình duyệt, so sánh hai cách ra quyết định: đọc trực tiếp xác suất từ logits và sinh xác suất dưới dạng JSON theo từng token. Toàn bộ quá trình xử lý diễn ra trên GPU của người dùng, không cần backend và dữ liệu đầu vào không rời khỏi trang.
OpenJev: Thử nghiệm mô hình ra quyết định chạy hoàn toàn trong trình duyệt
OpenJev là một thử nghiệm cục bộ cho phép bạn chạy mô hình ngôn ngữ ngay trên trình duyệt và so sánh hai phương pháp ra quyết định khác nhau. Một mô hình cục bộ có thể đọc trực tiếp xác suất cho các lựa chọn được phép mà không cần giải mã, hoặc tự sinh ra phân phối xác suất tương tự theo từng token. Bạn chọn kích thước mô hình, chạy cả hai phương pháp trên GPU của mình và đo lường sự khác biệt.
Điểm đáng chú ý là toàn bộ quá trình diễn ra trong trình duyệt, không cần máy chủ backend, và trọng số mô hình được tải từ Hugging Face rồi lưu trong bộ nhớ đệm của trình duyệt. Dữ liệu đầu vào của bạn không bao giờ rời khỏi trang.
Hai cách tiếp cận để mô hình đưa ra quyết định
OpenJev tập trung vào một câu hỏi kỹ thuật thú vị: liệu có sự khác biệt giữa việc đọc trực tiếp xác suất lựa chọn từ mô hình và việc yêu cầu mô hình sinh ra xác suất đó dưới dạng văn bản hay không.
- Đọc trực tiếp (Direct readout): Lấy logits lựa chọn của mô hình và chuẩn hóa chỉ trên các phương án bạn cung cấp. Phương pháp này không cần giải mã, nên rất nhanh.
- Sinh token (Generation): Yêu cầu mô hình ước lượng cùng phân phối xác suất đó và viết ra dưới dạng JSON, cho phép bạn quan sát từng token xuất hiện.
Cả hai đường đi đều nhận cùng một quyết định. Một bên đọc xác suất phương án trực tiếp, bên còn lại yêu cầu mô hình viết xác suất phương án dưới dạng văn bản JSON.
Các mô hình được hỗ trợ
OpenJev cung cấp ba mức mô hình phù hợp với từng loại thiết bị:
- Qwen3 0.6B (639 MB): Khuyến nghị cho điện thoại và thiết bị nhỏ. Độ chính xác đo được khoảng 44,0% ở bài kiểm tra gốc, 52,8% khi nhiễu và 40,7% ở dạng TypeSafe.
- MiniCPM5 2B (1,56 GB): Mặc định trên máy tính để bàn, đạt 68,6% / 69,3% / 63,7%.
- Qwen3.5 4B (3,01 GB): Dành cho máy tính để bàn có nhiều bộ nhớ, đạt 81,3% / 76,6% / 84,5%.
Kết quả Jev được công bố đạt 88,3% trên cùng tập con 102 dòng. Các bản dựng trong trình duyệt đều đã được lượng tử hóa, sử dụng BF16 gốc.
Cần lưu ý rằng mô hình dành cho điện thoại đánh đổi độ chính xác để lấy kích thước nhỏ gọn. Không có mô hình nào trong số này được tuyên bố là đạt được hiệu năng tương đương Jev.
Ý nghĩa và giới hạn của các con số
OpenJev cung cấp một số lưu ý quan trọng để người dùng hiểu đúng về kết quả đo được:
- Xác suất có điều kiện: Điểm số trực tiếp là kết quả softmax chỉ trên các token phương án được hiển thị. Chúng không phải là độ tin cậy đã được hiệu chỉnh và không bao gồm mọi câu trả lời mà mô hình có thể ưu tiên.
- Thời gian cục bộ thực tế: Quá trình thiết lập, khởi động, chuẩn bị prompt, thực thi trực tiếp, token sinh đầu tiên và hoàn tất sinh đều được đo bằng
performance.now(). Không có kết quả dựng sẵn nào xuất hiện. - Trọng số đã lượng tử hóa: Bản demo sử dụng các bản dựng GGUF được ghim thông qua wllama. Việc lượng tử hóa có thể thay đổi cả chất lượng lẫn tốc độ.
Trải nghiệm không cần danh sách chờ
Điểm hấp dẫn của OpenJev là không có danh sách chờ — bạn có thể thử ngay lập tức. Hai phương pháp được chạy tuần tự trên cùng một mô hình đã tải để không tranh chấp GPU: chế độ đọc trực tiếp chạy trước, sau đó đến chế độ sinh token.
Người dùng cũng có thể thử với các ví dụ có sẵn như hỗ trợ tài khoản hoặc phân loại email. Trong phần thử nghiệm, bạn cung cấp trạng thái, câu hỏi và các phương án được phép, rồi chạy cả hai phương pháp để so sánh trực tiếp.
Với những ai quan tâm đến mô hình ngôn ngữ cục bộ và muốn hiểu rõ hơn về cách mô hình đưa ra quyết định, OpenJev là một thử nghiệm đáng để trải nghiệm — đặc biệt khi nó minh bạch về cả phương pháp đo lẫn những giới hạn của mình.


