Métodos de salida de datos estructurados de grandes modelos: una lista seleccionada de recursos JSON de LLM
Base de conocimientos de IAActualizado hace 8 meses Círculo de intercambio de inteligencia artificial 2.5K 00
Esta lista curada se centra en recursos relacionados con la generación de JSON u otros resultados estructurados utilizando el Large Language Model (LLM).
Una lista de recursos para generar JSON usando LLM a través de llamadas a funciones, herramientas, CFGs, etc., cubriendo Bibliotecas, Modelos, Cuadernos, y más.
directorio (en el disco duro del ordenador)
- nomenclatura
- modelo de alojamiento
- modelo local
- Biblioteca Python
- Entradas de blog
- vídeo
- Cuadernos Jupyter
- las listas (de best-sellers)
nomenclatura
Existen varios nombres diferentes para generar JSON, aunque los significados son básicamente los mismos:
- Salida estructurada: Utiliza LLM para generar cualquier salida estructurada, incluyendo JSON, XML o YAML, independientemente de la tecnología específica (por ejemplo, llamadas a funciones, generación de bootstrap).
- llamada de funciónProporcionar al LLM una definición de función hipotética (o real), pidiéndole que "llame" a la función en un chat o respuesta de finalización; el LLM no llama realmente a la función, sino que sólo indica la intención de la llamada a través de un mensaje JSON.
- Modo JSON: Especifica que LLM debe generar JSON válido. dependiendo del proveedor, puede o no especificarse un esquema y LLM puede crear esquemas inesperados.
- Uso de herramientasHerramientas: Proporciona a LLM una selección de herramientas como la generación de imágenes, la búsqueda web y las "llamadas a funciones". Los argumentos de las llamadas a funciones en las peticiones API se denominan ahora "herramientas".
- cebadoPara que el LLM siga una especificación concreta para generar texto, por ejemplo gramática independiente del contexto.
- Funcionamiento de GPTChatGPT se basa en el Especificación OpenAPI Los endpoints y parámetros del servidor API se utilizan para invocar operaciones (es decir, llamadas a la API). A diferencia de la función denominada "llamadas a funciones", esta función sí llama a funciones alojadas en el servidor API.
Cada uno de los términos anteriores puede tener significados diferentes, por lo que he denominado a esta lista "LLM JSON seleccionado".
modelo de alojamiento
llamada a función paralela
A continuación se muestra una lista de modelos de API alojados que admiten múltiples llamadas a funciones paralelas. Estas llamadas pueden incluir la comprobación del tiempo en varias ciudades, o la búsqueda de la ubicación de un hotel primero y luego la comprobación del tiempo en esa ubicación.
- antrópico
- claude-3-opus-20240229
- claude-3-sonnet-20240229
- claude-3-haiku-20240307
- azure/openai
- gpt-4-turbo-vista previa
- gpt-4-1106-vista previa
- gpt-4-0125-vista previa
- gpt-3.5-turbo-1106
- gpt-3.5-turbo-0125
- cohere
- comando-r
- juntos_ai
- Mixtral-8x7B-Instrucción-v0.1
- Mistral-7B-Instrucción-v0.1
- CódigoLlama-34b-Instrucción
modelo local
Mistral 7B Instructor v0.3 (2024-05-22, Apache 2.0) es una versión perfeccionada de los comandos de Mistral que añade soporte para llamadas a funciones.
Mando C4AI R+ (2024-03-20, CC-BY-NC, Cohere) es un modelo multilingüe de 104B parámetros con funciones avanzadas de Generación Aumentada de Recuperación (RAG) y uso de herramientas optimizadas para el razonamiento, el resumen y la respuesta a preguntas en 10 idiomas. Se admite la cuantificación para mejorar la eficiencia de uso y se demuestra la integración única de herramientas de varios pasos en la ejecución de tareas complejas.
Hermes 2 Pro - Mistral 7B (2024-03-13, Nous Research) es un modelo paramétrico 7B especializado en llamadas a funciones, salida estructurada JSON y tareas genéricas. Se ha entrenado a partir del conjunto de datos OpenHermes 2.5 actualizado y del nuevo conjunto de datos de llamadas a funciones, utilizando pistas especiales del sistema y una estructura multirronda. Alcanza una precisión de 91% y 84% en la evaluación de modelos de llamadas a funciones y JSON, respectivamente.
Gorila OpenFunctions v2 (2024-02-27, Licencia Apache 2.0.) Charlie Cheng-Jie Ji et al.) Interpretación y ejecución de funciones basadas en objetos de esquema JSON, compatibilidad con varios idiomas y capacidad para detectar la relevancia funcional.
NexusRaven-V2 (2023-12-05, Nexusflow) es un modelo 13B que supera a GPT-4 en hasta 7% en llamadas a funciones de muestra cero, lo que permite un uso eficiente de las herramientas de software. Perfeccionamiento de instrucciones basado en CodeLlama-13B-instruct.
Funcionario (2023-08-04, ConozcaKai) Basado en la interpretación de objetos del esquema JSON y ejecución de funciones para soportar una variedad de necesidades computacionales y tipos de llamada. Compatible con OpenAI-python y llama-cpp-python para la ejecución eficiente de llamadas a funciones en tareas de generación JSON.
Cara de abrazo TGI debido aMúltiples modelos localesSe activa la salida JSON y la compatibilidad con llamadas a funciones.
Biblioteca Python
DSPy (MIT) es un marco para optimizar algorítmicamente las sugerencias y ponderaciones de los modelos lingüísticos (LM).Tipo de predictores y firmasA continuación se muestra un ejemplo de cómo hacerlo utilizando la función Pydantic Mejora de los campos basados en cadenas mediante la aplicación de restricciones de tipo en las entradas y salidas.
FuzzTypes (MIT) amplía Pydantic para proporcionar autocorrección de tipos de anotación con el fin de mejorar la normalización de los datos y manejar tipos complejos como correos electrónicos, fechas y entidades personalizadas.
orientación (Apache-2.0) admite la generación de restricciones, combina la lógica de Python con las llamadas a Large Language Model (LLM) y admite la reutilización de funciones y la llamada a herramientas externas para optimizar las sugerencias y acelerar la generación.
Instructor (MIT) simplifica la generación de datos estructurados para LLMs utilizando llamadas a funciones, llamadas a herramientas y patrones de muestreo restringidos. La validación se basa en Pydantic y admite múltiples LLM.
Cadena LangChain (MIT) proporciona puertos de enlace, integración con otras herramientas y cadenas para aplicaciones.LangChain proporcionaCadena de salidas estructuradasy entre modelosllamada de funciónApoyo.
LiteLLM (MIT) Simplifica la llamada a más de 100 LLM en formato OpenAI, admitellamada de funciónA continuación se muestran algunos ejemplos del modo JSON de la llamada a la herramienta y del modo JSON.
LlamaIndex (MIT) proporciona diferentes niveles de abstracción para elMódulo de salida estructuradaun analizador sintáctico de salida para los puntos finales de cumplimentación de texto, un analizador sintáctico de salida para la asignación de mensajes a la salida estructurada, un Programa PydanticEl programa Pydantic es un programa predefinido para un tipo específico de salida.
Marvin. (Apache-2.0) es un conjunto de herramientas ligeras para construir interfaces de lenguaje natural fiables con herramientas de autodocumentación como la extracción de entidades y el soporte multimodal.
Esquemas (Apache-2.0) Genera texto estructurado utilizando una variedad de modelos, plantillas Jinja y soporte para patrones de expresiones regulares, patrones JSON, modelos Pydantic y gramáticas independientes del contexto.
Pydantic (MIT) simplifica el uso de estructuras de datos y JSON mediante la definición de modelos de datos, la validación, la generación de esquemas JSON y el análisis sintáctico y la serialización sin fisuras.
SGLang (MPL-2.0) permite especificar patrones JSON mediante expresiones regulares o modelos Pydantic para una descodificación restringida. Su tiempo de ejecución de alto rendimiento acelera la descodificación de JSON.
SynCode (MIT) es un marco para la generación de grandes modelos lingüísticos (LLM) guiada por gramáticas. Admite gramáticas independientes del contexto (CFG) para Python, Go, Java, JSON, YAML, etc.
Mirascopio (MIT) es un conjunto de herramientas LLM que admite la extracción estructurada y proporciona una API Python intuitiva.
Magnético (MIT) Llame a LLM en Python en tres líneas de código. simplemente cree funciones LLM que devuelvan una salida estructurada utilizando el decorador @prompt, potenciado por Pydantic.
Formatron (MIT) es una biblioteca de decodificación de restricciones eficiente y extensible que admite el uso de plantillas f-string para controlar los formatos de salida de modelos de lenguaje, expresiones regulares, gramáticas independientes del contexto, esquemas JSON y modelos Pydantic.Formatron se integra a la perfección con una amplia gama de bibliotecas de inferencia de modelos.
Transformadores-cfg (MIT) amplía la compatibilidad de la gramática libre de contexto (CFG) con los transformadores Hugging Face a través de la interfaz EBNF, que implementa la generación con restricciones sintácticas con cambios mínimos en el código de los transformadores y la compatibilidad con los modos JSON y los patrones JSON.
Entradas de blog
¿A qué velocidad se generan las estructuras sintácticas? (2024-04-12, .txt Engineering) demuestra un método de coste casi nulo para generar texto gramaticalmente correcto. En sintaxis C, funciona mejor que llama.cpp
Hasta 50 veces.
Generación estructurada para mejorar el rendimiento del LLM: pruebas GSM8K (2024-03-15, .txt Engineering) Demuestra la mejora de la coherencia en 8 modelos, haciendo hincapié en los beneficios de la "coherencia de las pistas" y el "control del pensamiento".
LoRAX + Outlines: Mejor extracción JSON con generación estructurada y LoRA (2024-03-03, Blog Predibase) se Esquemas Combínelo con LoRAX v0.8 para mejorar la precisión de la extracción y la integridad de los patrones mediante la generación estructurada, el ajuste fino y los adaptadores LoRA.
FU, un vistazo rápido a los consejos sobre el marco LLM difíciles de entender. (2023-02-14, Hamel Husain) Proporciona una guía práctica para interceptar llamadas API utilizando mitmproxy con el fin de comprender la funcionalidad de la herramienta y evaluar su necesidad. Se hace hincapié en la reducción de la complejidad y la estrecha integración con el LLM subyacente.
Coalescencia: razonamiento LLM 5 veces más rápido (2024-02-02, .txt Ingeniería) demostró el uso de técnicas de "agregación" para acelerar la generación estructurada, que es más rápida que la no estructurada, pero puede afectar a la calidad de la generación.
Por qué Pydantic es esencial para los LLM (2024-01-19, Adam Azzam) explicó la aparición de Pydantic como herramienta clave que permite compartir modelos de datos a través de esquemas JSON y posibilita la inferencia entre datos estructurados y no estructurados. Se hizo hincapié en la importancia de cuantificar el espacio de decisión, así como en el posible problema del sobreajuste de LLM en versiones antiguas de esquemas.
Introducción a las llamadas de función (2024-01-11, Elvis Saravia) Presentó llamadas a funciones para conectar LLM a herramientas y API externas, proporcionó ejemplos de uso de la API OpenAI y destacó aplicaciones potenciales.
Llevar al límite el soporte de datos estructurados de ChatGPT (2023-12-21, Max Woolf) explora el uso de API de pago, esquemas JSON y Pydantic para aprovechar al máximo la ChatGPT Métodos de funcionalidad. Se presentan técnicas para mejorar la calidad de los resultados y las ventajas del soporte de datos estructurados.
¿Por qué elegir Instructor? (2023-11-18, Jason Liu) Explica los puntos fuertes de la biblioteca, proporcionando un enfoque fácil de leer, soporte para la extracción parcial y varios tipos, y un mecanismo de autocorrección. Recomendado. Instructor Otros recursos del sitio.
Uso de sintaxis para restringir la salida de llama.cpp (2023-09-06, Ian Maurer) Combinación de sintaxis independiente del contexto para mejorar la precisión de la salida de llama.cpp, especialmente para datos biomédicos.
Extracción de datos mediante funciones de OpenAI y su biblioteca Python (2023-07-09, Simon Willison) Demuestra la extracción de datos estructurados en una única llamada a la API mediante la biblioteca OpenAI Python y llamadas a funciones, con ejemplos de código y sugerencias para tratar las restricciones de flujo.
vídeo
(2024-04-09, Simon Willison) muestra cómo el plugin datasette-extract puede extraer datos de texto no estructurado e imágenes y rellenar tablas de bases de datos, utilizando la API de GPT-4 Turbo.
(2024-03-25, Andrej Baranovskij) demostró la extracción de datos basada en llamadas a funciones utilizando Ollama, Instructor y Agente gorrión .
(2024-03-18, Prompt Engineer) presentó Hermes 2 Pro, un modelo con 7.000 millones de parámetros que destaca en las llamadas a funciones y en la generación de resultados JSON estructurados. Demostró una precisión de 90% para llamadas a funciones y 84% en modo JSON, superando a otros modelos.
(2024-02-24, Sophia Yang) demostró la conexión de grandes modelos lingüísticos a herramientas externas, la generación de argumentos de función y la ejecución de funciones. Esto puede ampliarse para generar o manipular datos JSON.
(2024-02-13.Matt Williams) aclara que la salida estructurada generada por el modelo se utiliza para el análisis sintáctico y la llamada a funciones. Se comparan las implementaciones, haciendo hincapié en Ollama es más conciso y utiliza un número reducido de consejos de muestra para mantener la coherencia.
(2024-02-12.Jason Liu(matemáticas) géneroPrograma de ponderaciones y sesgos) proporciona un curso conciso sobre cómo utilizar Pydantic para manejar la salida JSON estructurada, las llamadas a funciones y la validación, cubriendo los aspectos esenciales para construir pipelines robustos e integraciones de producción eficientes.
(2023-10-10.Jason Liu(matemáticas) géneroConferencia AI Engineer) discute la importancia de Pydantic en la validación estructurada de cueing y output, introduce la librería Instructor, y demuestra aplicaciones avanzadas para aplicaciones LLM fiables y mantenibles.
Cuadernos Jupyter
Llamadas a funciones utilizando llama-cpp-python y el cliente OpenAI Python Demuestra la integración, incluida la configuración mediante la biblioteca Instructor, y proporciona ejemplos de obtención de información meteorológica y extracción de datos de usuario.
Llamadas a funciones utilizando el modelo Mistral Muestra la conexión de un modelo Mistral con una herramienta externa a través de un ejemplo sencillo que implica un marco de datos de transacciones de pago.
chatgpt-datos-estructurados dejar (a algn.) Max Woolf demuestra las llamadas a funciones y el soporte de datos estructurados de ChatGPT, cubriendo una variedad de casos de uso y estructuras de datos.
las listas (de best-sellers)
Leaderboard de llamadas a funciones de Berkeley (BFCL) es un marco de evaluación para comprobar las capacidades de llamada a funciones de los LLM, que consta de más de 2000 pares de pregunta-función-respuesta en lenguajes como Python, Java, JavaScript, SQL y API REST, con especial atención a las llamadas a funciones simples, múltiples y paralelas, así como a la detección de relevancia de funciones.
© declaración de copyright
El artículo está protegido por derechos de autor y no debe reproducirse sin autorización.
Artículos relacionados
Sin comentarios...