- DSPy (Declarative Self-improving Python) es un framework diseñado para controlar modelos de lenguaje (LM) mediante programación
- Permite construir rápidamente sistemas de IA modulares, desde clasificadores simples hasta pipelines RAG complejos y bucles de agentes, y también ofrece algoritmos para optimizar prompts y pesos
- En lugar de prompts frágiles tradicionales, permite escribir código Python componible para construir rápidamente sistemas de IA modulares y entrenar al LM para que genere resultados de alta calidad
- Module se usa para describir el comportamiento de la IA con código en vez de cadenas de texto
- Para construir sistemas de IA confiables, es necesario iterar con rapidez
- Pero mantener prompts es difícil, porque cada vez que se cambia el LM, la métrica o el pipeline, hay que modificar cadenas o datos
- DSPy fue desarrollado para separar la definición de sistemas LM de decisiones complejas ligadas a un LM específico o a una estrategia de prompting
- Enfoque de programación de DSPy
- DSPy cambia el foco desde ajustar cadenas de prompts hacia programar con módulos de lenguaje natural estructurados y declarativos
- Para cada componente de IA del sistema, se especifica el comportamiento de entrada/salida como una firma y se seleccionan módulos para asignar la estrategia de llamadas al LM
- DSPy expande las firmas en prompts y analiza salidas tipadas, lo que permite escribir sistemas de IA fáciles de usar, portables y optimizables
- Optimizer ajusta los prompts y pesos de los módulos de IA
- DSPy ofrece herramientas que compilan código de alto nivel con anotaciones en lenguaje natural en operaciones de bajo nivel, prompts o actualizaciones de pesos
- Esto permite alinear el LM con la estructura y las métricas del programa
- Si cambias el código o las métricas, puedes recompilar fácilmente para adaptarlo
- Proceso de optimización de DSPy
- Si tienes unas decenas o unos cientos de entradas representativas de la tarea y una métrica capaz de medir la calidad de la salida del sistema, puedes usar DSPy Optimizer
dspy.BootstrapRS sintetiza buenos ejemplos few-shot para todos los módulos
dspy.MIPROv2 propone mejores instrucciones en lenguaje natural para todos los prompts y explora de forma inteligente
dspy.BootstrapFinetune construye un dataset para los módulos y lo usa para ajustar finamente los pesos LM del sistema
- El ecosistema DSPy impulsa la investigación abierta en IA
- El paradigma modular de DSPy ofrece a más investigadores, en comparación con los grandes modelos de lenguaje, la oportunidad de mejorar de manera distribuida las arquitecturas de composición de programas LM, las estrategias en tiempo de inferencia y las herramientas de optimización
- Esto da a los usuarios de DSPy más control, les ayuda a iterar más rápido y permite que sus programas mejoren con el tiempo al aplicar los módulos o herramientas de optimización más recientes
- La investigación de DSPy comenzó en febrero de 2022 en Stanford NLP y se construyó a partir de lecciones obtenidas en el desarrollo de sistemas LM compuestos iniciales como ColBERT-QA, Baleen y Hindsight
- Se lanzó por primera vez como DSP en diciembre de 2022, evolucionó a DSPy en octubre de 2023 y, gracias a 250 contribuidores, decenas de miles de personas han podido aprender a construir y optimizar programas LM modulares
- La comunidad de DSPy ha producido muchos resultados de investigación sobre herramientas de optimización como MIPROv2, BetterTogether y LeReT, y sobre arquitecturas de programas como STORM, IReRa y DSPy Assertions
- También cuenta con numerosos casos exitosos de aplicación a nuevos problemas, como PAPILLON, PATH, WangLab@MEDIQA, estudios de caso de prompting de UMD y el programa de red teaming de Haize
- Además, la utilidad práctica de DSPy ha quedado demostrada a través de muchos proyectos open source, aplicaciones en producción y otros casos de uso
Aún no hay comentarios.