
Este paquete integra modelos de idiomas grandes (LLM) en Spacy, con un sistema modular para prototipos y solicitaciones rápidas, y convertir las respuestas no estructuradas en salidas robustas para varias tareas de PNL, no se requieren datos de capacitación .
llm de Serializable para integrar las indicaciones en su tubería Spacylangchain se pueden usar en spacy-llmLos modelos de lenguaje grande (LLMS) cuentan con potentes capacidades de comprensión del lenguaje natural. Con solo unos pocos (y a veces no) ejemplos, se puede solicitar a un LLM que realice tareas de PNL personalizadas, como categorización de texto, reconocimiento de entidad nombrado, resolución de coreferencia, extracción de información y más.
Spacy es una biblioteca bien establecida para construir sistemas que necesitan trabajar con el lenguaje de varias maneras. Los componentes incorporados de Spacy generalmente están impulsados por el aprendizaje supervisado o los enfoques basados en reglas.
El aprendizaje supervisado es mucho peor que LLM que solicita la creación de prototipos, pero para muchas tareas es mucho mejor para la producción. Un modelo de transformador que se ejecuta cómodamente en una sola GPU es extremadamente poderoso, y es probable que sea una mejor opción para cualquier tarea para la que tenga una salida bien definida. Entrena el modelo con cualquier cosa de unos cientos a unos pocos miles de ejemplos etiquetados, y aprenderá a hacer exactamente eso. La eficiencia, la confiabilidad y el control son mejores con el aprendizaje supervisado, y la precisión generalmente también será más alta que la que solicita LLM.
spacy-llm te permite tener lo mejor de ambos mundos . Puede inicializar rápidamente una tubería con componentes alimentados por las indicaciones LLM y mezclar libremente componentes alimentados por otros enfoques. A medida que avanza su proyecto, puede considerar reemplazar algunos o todos los componentes con alimentación de LLM según lo necesite.
Por supuesto, puede haber componentes en su sistema para los cuales la potencia de un LLM está completamente justificada. Si desea un sistema que pueda sintetizar información de múltiples documentos de manera sutil y generar un resumen matizado para usted, más grande es mejor. Sin embargo, incluso si su sistema de producción necesita un LLM para parte de la tarea, eso no significa que necesite un LLM para todo. Tal vez desee utilizar un modelo de clasificación de texto barato para ayudarlo a encontrar los textos para resumir, o tal vez desee agregar un sistema basado en reglas para verificar la cordura el resultado del resumen. Estas tareas de antes y después son mucho más fáciles con una biblioteca madura y bien pensada, que es exactamente lo que Spacy proporciona.
spacy-llm se instalará automáticamente en futuras versiones de Spacy. Por ahora, puede ejecutar lo siguiente en el mismo entorno virtual donde ya tiene spacy instalada.
python -m pip install spacy-llm
️ Este paquete sigue siendo experimental y es posible que los cambios realizados en la interfaz se rompan en actualizaciones de versión menor.
Ejecutemos una clasificación de texto utilizando un modelo GPT de OpenAI.
Cree una nueva clave API de OpenAI.com o obtenga una existente, y asegúrese de que las claves estén establecidas como variables ambientales. Para obtener más información de fondo, consulte la documentación sobre la configuración de las claves API.
Para hacer algunos experimentos rápidos, desde 0.5.0 en adelante puede ejecutar:
import spacy
nlp = spacy . blank ( "en" )
llm = nlp . add_pipe ( "llm_textcat" )
llm . add_label ( "INSULT" )
llm . add_label ( "COMPLIMENT" )
doc = nlp ( "You look gorgeous!" )
print ( doc . cats )
# {"COMPLIMENT": 1.0, "INSULT": 0.0} Al usar la fábrica llm_textcat , se usa la última versión de la tarea TextCAT incorporada, así como el modelo GPT-3-5 predeterminado de OpenAI.
Para controlar los diversos parámetros de la tubería llm , podemos usar el sistema de configuración de Spacy. Para iniciar, cree un archivo de configuración config.cfg que contiene al menos lo siguiente (o vea el ejemplo completo aquí):
[nlp]
lang = " en "
pipeline = [ " llm " ]
[components]
[components.llm]
factory = " llm "
[components.llm.task]
@ llm_tasks = " spacy.TextCat.v3 "
labels = [ " COMPLIMENT " , " INSULT " ]
[components.llm.model]
@ llm_models = " spacy.GPT-4.v2 "Ahora corre:
from spacy_llm . util import assemble
nlp = assemble ( "config.cfg" )
doc = nlp ( "You look gorgeous!" )
print ( doc . cats )
# {"COMPLIMENT": 1.0, "INSULT": 0.0}¡Eso es todo! Hay muchas otras características: plantillas de solicitud, más tareas, registro, etc. Para obtener más información sobre cómo usarlas, consulte https://spacy.io/api/large-language-models.
En el futuro cercano, lo haremos
¡Los PR siempre son bienvenidos!
Si tiene preguntas sobre el uso de spacy-llm , o desea darnos comentarios después de darle un giro, utilice el tablero de discusión. Los informes de errores se pueden archivar en el rastreador de problemas de Spacy. ¡Gracias!
Consulte nuestra Guía de migración.