1 puntos por GN⁺ 2023-08-15 | 1 comentarios | Compartir por WhatsApp
  • Outlines es una biblioteca para la generación de texto con redes neuronales, diseñada de forma más flexible para reemplazar el método generate de la biblioteca transformers.
  • Ayuda a los desarrolladores a construir interfaces robustas, garantizando salidas que sigan expresiones regulares o esquemas JSON.
  • Esta biblioteca ofrece componentes base de prompting sólidos que separan la lógica de prompting y de ejecución para implementar de forma simple generación few-shot, ReAct, meta-prompting, agentes y más.
  • Outlines fue diseñada para ser compatible con un ecosistema más amplio, usando la menor cantidad posible de abstracciones, y permite intercalar la generación con flujo de control, condicionales, funciones personalizadas de Python y llamadas a otras bibliotecas.
  • Es compatible con todos los modelos y proporciona una interfaz con el modelo a través de los logits del siguiente token. También puede usarse con modelos basados en API.
  • La biblioteca se caracteriza por incluir componentes de prompting simples y potentes basados en el motor de plantillas Jinja, generación guiada, generación guiada rápida por expresiones regulares, generación rápida de JSON que sigue esquemas JSON o modelos de Pydantic, e integración con modelos transformers de HuggingFace.
  • Outlines está disponible en PyPi y puede instalarse con el comando pip install outlines.
  • La biblioteca permite detener la generación anticipadamente después de encontrar una secuencia dada, reducir una finalización a una elección entre varias posibilidades o indicarle al modelo que devuelva solo enteros o números reales.
  • También incluye generación guiada rápida por expresiones regulares y generación eficiente de JSON que sigue modelos de Pydantic.
  • Outlines facilita la escritura y gestión de prompts al separar la lógica de los prompts de la lógica general del programa, encapsulando las plantillas dentro de "funciones de plantilla".
  • La biblioteca también permite que los modelos de lenguaje llamen funciones externas para obtener información adicional o realizar tareas, codificando la descripción de las funciones dentro del prompt.
  • Outlines es de código abierto y está licenciada bajo Apache License 2.0.

1 comentarios

 
GN⁺ 2023-08-15
Opinión de Hacker News
  • Artículo sobre cómo las bibliotecas de modelos de lenguaje (Language Model Libraries, LLMs) pueden generar JSON válido en el 100% de los casos
  • Los LLMs generan una distribución de probabilidad para cada token, y el parser de JSON proporciona la lista de los siguientes tokens válidos
  • Se debate la idea de enmascarar parte del espacio del vocabulario y de usar bibliotecas que tomen pasos de tiempo eficientes
  • Se cuestiona la efectividad de modelos base como Llama2 y si hace falta ajustar instrucciones para casos de uso específicos
  • Pregunta sobre la existencia de parámetros de temperatura o muestreo para generate.regex
  • Se menciona en el artículo que GPT4 puede devolver JSON válido en la mayoría de los casos al proporcionar ejemplos en el mensaje del sistema
  • Se reconoce el mecanismo de la biblioteca y hay curiosidad sobre su posible uso en tareas que requieren entradas estructuradas además de JSON
  • Interés en el potencial de estas bibliotecas para la planificación formal de trayectorias
  • El artículo menciona que pedir formatos de salida complejos puede degradar el rendimiento en la tarea base, algo observado en benchmarks de edición de código con GPT-3.5 y GPT-4
  • Se menciona en el artículo que LLama.cpp implementó muestreo basado en gramáticas el mes pasado
  • Proceso de actualizar la "máscara" de sesgo de logits después de cada token generado por el LLM para asegurar que el siguiente token pueda ser un token JSON válido