ProofOfThought: razonamiento basado en LLM usando pruebas de teoremas con Z3
(github.com/DebarghaG)- ProofOfThought combina modelos grandes de lenguaje (LLM) con el demostrador de teoremas Z3 para ofrecer un razonamiento sólido e interpretable
- Este proyecto proporciona resultados de razonamiento precisos y confiables para consultas en lenguaje natural
- A través de una API de alto nivel en Python, los desarrolladores pueden implementar y experimentar fácilmente con tareas de razonamiento complejas
- Mediante Z3DSL, también ofrece acceso a un DSL de bajo nivel basado en JSON, lo que permite una personalización flexible
- Su publicación en el Sys2Reasoning Workshop NeurIPS 2024 muestra las ventajas de llevar resultados de investigación recientes a aplicaciones prácticas
Introducción al proyecto open source ProofOfThought
ProofOfThought es una biblioteca open source de razonamiento que adopta un enfoque de síntesis de programas neuro-simbólica que combina modelos grandes de lenguaje (LLM) con el demostrador de teoremas Z3. Su capacidad de ofrecer resultados de razonamiento robustos e interpretables para problemas complejos del mundo real le da una relevancia importante tanto en uso práctico como en investigación.
Por su naturaleza open source, cualquiera puede usarlo libremente para investigación, servicios o desarrollo, y tiene la ventaja de que facilita la verificación del proceso de razonamiento y la interpretación de errores frente a los sistemas de razonamiento tradicionales basados solo en LLM. En comparación con otros sistemas de razonamiento, su gran distintivo es la transparencia estructural de su flujo: entrada en lenguaje natural → conversión automática a programa lógico → razonamiento basado en Z3.
Arquitectura del sistema y componentes principales
-
API de alto nivel (
z3dsl.reasoning) :- Ejecuta consultas de razonamiento basadas en lenguaje natural
- Ofrece una interfaz en Python fácil de aplicar incluso para principiantes
-
DSL de bajo nivel (
z3dsl) :- Permite acceder al demostrador de teoremas Z3 con base en JSON
- Resulta conveniente para personalizaciones complejas y la construcción de pipelines de automatización
Ejemplos de funciones principales
-
El LLM convierte la consulta de entrada en una fórmula lógica (programa simbólico)
-
A través del demostrador Z3, genera resultados de verdadero/falso (
yes/no) o interpretaciones basadas en condiciones -
Ejemplo:
- Consulta: "¿Nancy Pelosi condenaría públicamente el aborto?"
- Resultado: False (no)
-
Incluye un pipeline de evaluación (
EvaluationPipeline):- Permite evaluación por lotes sobre datasets grandes
- Reportes automáticos de exactitud y otras métricas
Casos de aplicación y uso
- Automatización de benchmarks de razonamiento con fines de investigación
- Servicios de prueba automática para grafos de conocimiento basados en LLM o problemas de lógica de orden superior
- Posibilidad de aplicarse a diversos servicios de IA, como consultas complejas sobre políticas o clasificación automática de debates en lenguaje natural
Relevancia académica y características
- Presentado en el workshop Sys2Reasoning de NeurIPS 2024
- Confiabilidad basada en interpretación simbólica que complementa las limitaciones existentes de los LLM (incertidumbre en el razonamiento)
- La transparencia y la interpretabilidad de los resultados y sus fundamentos son una gran fortaleza para el desarrollo de servicios reales
Conclusión
ProofOfThought combina las fortalezas de los LLM y del demostrador de teoremas Z3 para ofrecer valor práctico a desarrolladores e investigadores que buscan construir una infraestructura de razonamiento de IA robusta e interpretable. La licencia y la estructura del proyecto están diseñadas para encajar bien en el ecosistema open source, por lo que resulta atractivo tanto para la investigación académica como para el uso industrial.
1 comentarios
Opiniones de Hacker News
sympyde Python. Comparte la impresión de que la combinación de un LLM ambiguo con herramientas estrictas puede producir un efecto muy potentesympypara matemáticas. Si haces que el LLM escriba código desympy, puedes confiar en que la manipulación simbólica se realizó correctamente. El código mismo queda como entregable y puede ser corregido y mejorado gradualmente por una persona o por otro LLM, además de poder gestionarse con historial de git y similares. La confianza en la precisión matemática se mantiene al pasar pruebas y validaciones. También uso funciones auxiliares para convertir fácilmente el código desympya LaTeX. Recientemente también trabajé así en matemáticas relacionadas con el experimento de quantum eraser. enlace de githubo3-minialinea bastante bien los resultados de text reasoning y SMT. En el producto comercial AWS Automated Reasoning Checks, se construye el modelo de dominio, se valida, y en la etapa de generación de respuestas se aplica una verificación estricta con solver para comprobar si los pares de preguntas y respuestas del LLM cumplen las políticas. Se enfatiza que esto puede garantizar más del 99% de validez de los pares Q/A respecto de políticas blog de AWS