ProofOfThought: Suy luận dựa trên LLM sử dụng chứng minh định lý Z3
(github.com/DebarghaG)- ProofOfThought kết hợp mô hình ngôn ngữ lớn (LLM) với bộ chứng minh định lý Z3 để hỗ trợ suy luận mạnh mẽ và có thể diễn giải
- Dự án này cung cấp kết quả suy luận chính xác và đáng tin cậy cho truy vấn ngôn ngữ tự nhiên
- Thông qua API Python cấp cao, các nhà phát triển có thể dễ dàng triển khai và thử nghiệm các tác vụ suy luận phức tạp
- Thông qua Z3DSL, dự án cũng cung cấp khả năng tiếp cận DSL cấp thấp dựa trên JSON, cho phép tùy biến linh hoạt
- Việc được giới thiệu tại Sys2Reasoning Workshop NeurIPS 2024 cho thấy lợi ích thực tiễn hóa của các thành tựu nghiên cứu mới nhất
Giới thiệu dự án mã nguồn mở ProofOfThought
ProofOfThought là một thư viện suy luận mã nguồn mở áp dụng phương pháp tổng hợp chương trình neuro-symbolic (thần kinh-ký hiệu) kết hợp mô hình ngôn ngữ lớn (LLM) với bộ chứng minh định lý Z3. Điểm có ý nghĩa quan trọng cả trong ứng dụng thực tế lẫn nghiên cứu là khả năng cung cấp kết quả suy luận vững chắc và có thể diễn giải cho các bài toán phức tạp trong thế giới thực.
Với đặc tính mã nguồn mở, bất kỳ ai cũng có thể tự do sử dụng cho nghiên cứu, dịch vụ và phát triển. So với các hệ thống suy luận đơn thuần dựa trên LLM hiện có, dự án có ưu điểm là dễ xác minh quá trình suy luận và phân tích lỗi. So với các hệ thống suy luận khác, đặc trưng nổi bật là tính minh bạch về cấu trúc theo luồng: đầu vào ngôn ngữ tự nhiên → tự động chuyển đổi thành chương trình logic → suy luận dựa trên Z3.
Kiến trúc hệ thống và các thành phần chính
-
API cấp cao (z3dsl.reasoning) :
- Thực hiện truy vấn suy luận dựa trên ngôn ngữ tự nhiên
- Cung cấp giao diện Python dễ áp dụng ngay cả với người mới bắt đầu
-
DSL cấp thấp (z3dsl) :
- Cho phép truy cập bộ chứng minh định lý Z3 dựa trên JSON
- Thuận lợi cho việc tùy biến phức tạp và xây dựng pipeline tự động hóa
Ví dụ các tính năng chính
-
LLM chuyển truy vấn đầu vào thành biểu thức logic (chương trình ký hiệu)
-
Thông qua bộ chứng minh Z3, tạo ra kết quả đúng/sai (yes/no) hoặc diễn giải dựa trên điều kiện
-
Ví dụ:
- Truy vấn: "Nancy Pelosi có công khai chỉ trích việc phá thai không?"
- Kết quả: False (không)
-
Cung cấp pipeline đánh giá (EvaluationPipeline):
- Có thể đánh giá theo lô trên tập dữ liệu quy mô lớn
- Tự động báo cáo như độ chính xác
Ứng dụng và trường hợp sử dụng
- Tự động hóa benchmark suy luận cho mục đích nghiên cứu
- Dịch vụ tự động chứng minh cho knowledge graph dựa trên LLM hoặc các bài toán logic bậc cao
- Có tiềm năng áp dụng vào nhiều dịch vụ AI như truy vấn chính sách phức tạp, tự động phân định tranh luận ngôn ngữ tự nhiên
Ý nghĩa nghiên cứu và đặc điểm
- Được trình bày tại workshop Sys2Reasoning của NeurIPS 2024
- Độ tin cậy dựa trên diễn giải ký hiệu giúp khắc phục giới hạn hiện có của LLM (sự bất định trong suy luận)
- Tính minh bạch và khả năng diễn giải của kết quả suy luận cùng căn cứ đi kèm là thế mạnh lớn cho phát triển dịch vụ thực tế
Kết luận
ProofOfThought kết hợp ưu điểm của LLM và bộ chứng minh định lý Z3 để mang lại giá trị thực tiễn cho các nhà phát triển và nhà nghiên cứu muốn xây dựng hạ tầng suy luận AI mạnh mẽ và có thể diễn giải. Giấy phép và cấu trúc của dự án được thiết kế phù hợp với hệ sinh thái mã nguồn mở, nên hấp dẫn cho cả nghiên cứu học thuật lẫn ứng dụng công nghiệp.
1 bình luận
Ý kiến trên Hacker News
sympycủa Python. Tác giả chia sẻ ấn tượng rằng việc kết hợp một LLM mơ hồ với các công cụ nghiêm ngặt có thể tạo ra hiệu quả rất mạnhsympytrong toán học. Nếu để LLM viết mãsympy, ta có thể tin rằng các phép biến đổi ký hiệu được thực hiện đúng. Bản thân mã nguồn cũng được giữ lại như một đầu ra để con người hoặc LLM có thể sửa dần và cải thiện, đồng thời có thể quản lý bằng lịch sử git, v.v. Việc vượt qua kiểm thử và xác minh giúp duy trì niềm tin vào độ chính xác toán học. Tôi cũng dùng các hàm trợ giúp để chuyển từ mãsympysang latex một cách dễ dàng. Gần đây tôi cũng làm phần toán học liên quan đến thí nghiệm quantum eraser theo cách này. liên kết github