Bỏ qua tới nội dung chính
Quay lại tin tức

Tôi đã tìm thấy một lỗi trong chương trình Runner, chạy lại 200 thế hệ và lỗi này vẫn tồn tại.

Dev.to Machine Learning· Vaibhav Mittal· 7/8/2026opensource

Tôi đã có một kết quả mà tôi muốn tin. Việc thay đổi câu trả lời JSON hướng mô hình từ một chuỗi số có dấu sang một số nguyên gốc, sau đó chuyển đổi một cách xác định trở lại thành chuỗi theo hợp đồng của bên gọi, dường như đã khôi phục 14,3 điểm phần trăm độ chính xác bị ràng buộc trên Qwen2.5-7B. Sau đó, một cuộc kiểm tra đã phát hiện ra một vấn đề thực sự trong trình chạy thử nghiệm. Đường dẫn Outlines trước đây có thể nhận một lời nhắc sau khi mẫu trò chuyện Qwen đã được áp dụng, trong khi bộ điều hợp Outlines Transformers có thể áp dụng lại mẫu đó. Các tạo phẩm được chấp nhận vẫn hoàn chỉnh và có giá trị về nguồn gốc, nhưng

Việc thay đổi câu trả lời JSON hướng mô hình từ một chuỗi số có dấu sang một số nguyên gốc, sau đó chuyển đổi một cách xác định trở lại thành chuỗi theo hợp đồng của bên gọi, dường như đã khôi phục 14,3 điểm phần trăm độ chính xác bị ràng buộc trên Qwen2.5-7B. Sau đó, một cuộc kiểm tra đã phát hiện ra một vấn đề thực sự trong trình chạy thử nghiệm. Đường dẫn Outlines trước đây có thể nhận một lời nhắc sau khi mẫu trò chuyện Qwen đã được áp dụng, trong khi bộ điều hợp Outlines Transformers có thể áp dụng lại mẫu đó. Các tạo phẩm được chấp nhận vẫn hoàn chỉnh và có tính hợp lệ về nguồn gốc, nhưng bằng chứng kiểm soát và xử lý không còn có thể hỗ trợ quyết định kiến trúc nếu không có một lần chạy cặp được sửa chữa. Vì vậy, tôi đã đóng băng một giao thức mới, sửa chữa cả hai phía của sự so sánh, chạy 200 thế hệ đám mây mới, tải xuống mọi hàng và xác thực gói độc lập. Hiệu ứng vẫn tồn tại về hướng và kích thước thực tế: Độ chính xác hợp lệ theo hợp đồng tăng từ 18/49 lên 24/49, mức tăng cặp là 12,2 điểm phần trăm, trong khi tính hợp lệ của lược đồ bên ngoài cuối cùng vẫn là 100%. Nhưng sự không chắc chắn là quan trọng. Khoảng bootstrap chính xác là [0,0, 26,5] điểm và p McNemar chính xác là 0,146. Đây là bằng chứng cho một giai đoạn tiếp theo có phạm vi, không phải là bằng chứng cho một giải pháp chung. Toàn bộ mã, giao thức, các hàng thô, hàm băm, dấu vết, báo cáo xác thực và quyết định đều được công khai trong kho lưu trữ. Vaibhav701161 / constrained-decoding-lab Giải mã bị ràng buộc trong điều kiện phù hợp Một nghiên cứu được kiểm soát, xác thực tạo phẩm về cách nhắc JSON, giải mã bị ràng buộc ngữ pháp và thứ tự trường đầu ra ảnh hưởng đến độ chính xác toán học và tuân thủ lược đồ. Kết quả | Kết quả căn chỉnh | Sao chép đã sửa | Bằng chứng cặp | Thiết kế nghiên cứu | Tái tạo | Bằng chứng | Tạo phẩm Kaggle công khai | Bài thuyết trình tiến độ | Bài viết kỹ thuật | Hạn chế Bài thuyết trình tiến độ Xem bài thuyết trình này để có cái nhìn tổng quan về tiến độ dự án, các phát hiện và kết quả chính cho đến nay. Xem trên YouTube Kết quả trung tâm Giải mã bị ràng buộc đã giải quyết vấn đề định dạng, nhưng nó không bảo toàn tất cả độ chính xác toán học có thể khôi phục của mô hình. Trên Qwen2.5-7B, JSON chỉ nhắc đạt 79,6% độ chính xác có thể khôi phục và 0% tuân thủ lược đồ. Outlines và XGrammar mỗi loại đạt 61,2% độ chính xác có thể khôi phục và 100% tuân thủ lược đồ. Hiệu ứng ngữ nghĩa cặp là -18,4 điểm phần trăm cho cả hai phần phụ trợ (p McNemar chính xác = 0,003906). Đây không phải là tuyên bố rằng giải mã bị ràng buộc có hại phổ biến. Đây là một kiểm soát… Xem trên GitHub Ranh giới hệ thống mà tôi đang kiểm tra Giả sử một API yêu cầu đối tượng bên ngoài này: ```json { "reasoning": "...", "answer": "18000" } ``` Câu trả lời phải là một chuỗi số nguyên có dấu chính tắc. Tuy nhiên, mô hình có thể được căn chỉnh tốt hơn với một số nguyên JSON gốc: ```json { "reasoning": "...", "answer": 18000 } ``` Trình biên dịch được đề xuất không làm suy yếu hợp đồng của bên gọi. Nó tạo ra một hợp đồng riêng biệt hướng mô hình, tạo ra một lần theo ngữ pháp đó, áp dụng một phép biến đổi nghịch đảo chính xác và xác thực đối tượng cuối cùng theo lược đồ gốc. lược đồ bên ngoài | v kiểm tra IR hợp đồng và khả năng áp dụng | v lược đồ hướng mô hình cộng với kế hoạch chuyển đổi có thể phát lại | v một thế hệ bị ràng buộc | v chuyển đổi ngược xác định | v xác thực lược đồ bên ngoài gốc Đối với thử nghiệm này, phép biến đổi ngữ nghĩa duy nhất là: chuỗi số nguyên có dấu chính tắc bên ngoài -> số nguyên JSON nội bộ -> chuyển đổi thành chuỗi cơ số 10 với độ chính xác tùy ý -> xác thực bên ngoài Không có lệnh gọi mô hình thứ hai, sửa dấu, làm tròn, đoán biểu thức chính quy (regex) hoặc dự phòng. Ép kiểu. Một giá trị boolean bị từ chối mặc dù Python coi nó là một kiểu con của số nguyên. Các giá trị từ vựng như "+26", "00026", "26.0" và "2.6e1" không được đoán thành ngôn ngữ được chấp nhận. Các trường hợp không được hỗ trợ sẽ bị lỗi đóng. Những gì cuộc kiểm toán đã tìm thấy Cuộc kiểm toán đã xác định ba lỗi hoặc sự không nhất quán riêng biệt. 1. Rủi ro mẫu trò chuyện kép Đối với các đầu vào chuỗi, Outlines sở hữu tính năng tạo mẫu trò chuyện thông qua bộ điều hợp Transformers của nó. Trình chạy đã chuyển một chuỗi trò chuyện đã được định dạng vào lớp đó. Do đó, một lời nhắc Qwen có thể được bao bọc hai lần. Đường dẫn đã sửa chuyển lời nhắc dự án thô đến Outlines. Quá trình tạo trực tiếp Transformers và XGrammar sử dụng cùng một trình trợ giúp định dạng được chia sẻ chính xác một lần. Các thử nghiệm so sánh ID mã thông báo hiệu quả và chứng minh rằng dạng lồng nhau là khác nhau. 2. Số lượng mã thông báo được tạo phụ thuộc vào phần phụ trợ Quá trình tạo trực tiếp và XGrammar đã đếm các ID tensor được tạo. Outlines đã đếm văn bản hiển thị sau khi giải mã. Một mã thông báo dừng chỉ dành cho phần phụ trợ có thể làm cho các số liệu đó không thể so sánh được. Số liệu đã sửa sẽ mã hóa lại nội dung được tạo hiển thị mà không có mã thông báo đặc biệt cho mọi phần phụ trợ. Đây là một bản sửa lỗi đo lường, không phải là thay đổi hành vi của mô hình. 3. Các chính sách khoảng trắng không chính tắc Các vòng lặp khoảng trắng JSON cho phép thêm các đường dẫn mã thông báo hợp lệ và có thể tạo ra các điểm dừng có thể tránh được. Trình chạy đã sửa ghim các dấu phân cách nhỏ gọn trong XGrammar và một mẫu khoảng trắng trống trong Outlines. Các thử nghiệm phần phụ trợ được ghim thực tế xác minh rằng JSON hợp lệ nhỏ gọn được chấp nhận và một tiền tố khoảng trắng dài bị từ chối. Những chỉnh sửa này đã thay đổi hệ thống thử nghiệm. So sánh một phương pháp điều trị đã sửa với một kiểm soát lịch sử sẽ trộn lẫn các phiên bản trình chạy, vì vậy tôi đã chạy lại cả hai biểu diễn. Giao thức đã bị đóng băng trước khi chạy trên đám mây Câu hỏi đã sửa rất hẹp: Trong quá trình giải mã tham lam FP32 trên Qwen2.5-7B-Instruct, liệu một số nguyên JSON hướng mô hình có cải thiện tính đúng đắn hợp đồng hợp lệ so với một chuỗi số có dấu khi cả hai bên sử dụng cùng một nguồn đã sửa và đối tượng cuối cùng phải đáp ứng hợp đồng bên ngoài không thay đổi? Thiết kế đóng băng đã sử dụng: Thành phần Giá trị Mô hình Qwen2.5-7B-Instruct Tập dữ liệu Tập con thử nghiệm GSM8K-50 xác định, hạt giống 0 Tập hợp được ghép nối sạch 49 mục sau khi loại trừ một tham chiếu mâu thuẫn đã được ghi nhận trước đó Giải mã Tham lam, hạt giống 0, FP32, tối đa 256 mã thông báo mới Phần phụ trợ Outlines 1.3.2 và XGrammar 0.2.3 Hợp đồng bên ngoài

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