
Este pacote integra grandes modelos de idiomas (LLMS) ao Spacy, apresentando um sistema modular para prototipagem rápida e solicitação , e transformando respostas não estruturadas em saídas robustas para várias tarefas de PNL, não é necessário dados de treinamento .
llm serializável para integrar os avisos ao seu pipeline espaciallangchain podem ser usados em spacy-llmOs grandes modelos de linguagem (LLMS) apresentam poderosos recursos de compreensão de linguagem natural. Com apenas alguns (e às vezes não) exemplos, um LLM pode ser solicitado a executar tarefas de PNL personalizadas, como categorização de texto, reconhecimento de entidade denominado, resolução de núcleo, extração de informações e muito mais.
Spacy é uma biblioteca bem estabelecida para a construção de sistemas que precisam trabalhar com a linguagem de várias maneiras. Os componentes internos de Spacy são geralmente alimentados por aprendizado supervisionado ou abordagens baseadas em regras.
A aprendizagem supervisionada é muito pior do que o LLM solicitando prototipagem, mas para muitas tarefas é muito melhor para a produção. Um modelo de transformador que é executado confortavelmente em uma única GPU é extremamente poderosa e é provável que seja uma escolha melhor para qualquer tarefa para a qual você tenha uma saída bem definida. Você treina o modelo com qualquer coisa, de algumas centenas a alguns milhares de exemplos rotulados, e ele aprenderá a fazer exatamente isso. A eficiência, a confiabilidade e o controle são melhores com a aprendizagem supervisionada, e a precisão geralmente também será maior que a LLM.
spacy-llm permite que você tenha o melhor dos dois mundos . Você pode inicializar rapidamente um pipeline com componentes alimentados por prompts LLM e misturar livremente componentes alimentados por outras abordagens. À medida que seu projeto avança, você pode substituir alguns ou todos os componentes movidos a LLM, conforme necessário.
Obviamente, pode haver componentes no seu sistema para o qual o poder de um LLM é totalmente justificado. Se você deseja um sistema que possa sintetizar informações de vários documentos de maneiras sutis e gerar um resumo diferenciado para você, o maior é melhor. No entanto, mesmo que seu sistema de produção precise de um LLM para parte da tarefa, isso não significa que você precisa de um LLM para tudo isso. Talvez você queira usar um modelo de classificação de texto barato para ajudá-lo a encontrar os textos para resumir, ou talvez queira adicionar um sistema baseado em regras à sanidade, verifique a saída do resumo. Essas tarefas antes e depois são muito mais fáceis com uma biblioteca madura e bem pensada, que é exatamente o que o Spacy fornece.
spacy-llm será instalado automaticamente em futuras versões Spacy. Por enquanto, você pode executar o seguinte no mesmo ambiente virtual em que você já tem spacy instalado.
python -m pip install spacy-llm
️ Este pacote ainda é experimental e é possível que as alterações feitas na interface estejam quebrando as atualizações menores da versão.
Vamos executar alguma classificação de texto usando um modelo GPT do OpenAI.
Crie uma nova chave da API no OpenAI.com ou busque uma existente e verifique se as chaves são definidas como variáveis ambientais. Para obter mais informações em segundo plano, consulte a documentação sobre a configuração das teclas da API.
Para fazer algumas experiências rápidas, a partir de 0.5.0 em diante, você pode executar:
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} Usando a fábrica llm_textcat , a versão mais recente da tarefa textcat interna é usada, bem como o modelo GPT-3-5 padrão do OpenAI.
Para controlar os vários parâmetros do pipeline llm , podemos usar o sistema de configuração da Spacy. Para iniciar, crie um arquivo de configuração config.cfg contendo pelo menos o seguinte (ou veja o exemplo completo aqui):
[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 "Agora execute:
from spacy_llm . util import assemble
nlp = assemble ( "config.cfg" )
doc = nlp ( "You look gorgeous!" )
print ( doc . cats )
# {"COMPLIMENT": 1.0, "INSULT": 0.0}É isso! Existem muitos outros recursos-modelos rápidos, mais tarefas, registro etc. Para obter mais informações sobre como usá-las, consulte https://spacy.io/api/large-language-models.
Em um futuro próximo, nós iremos
Os PRs são sempre bem -vindos!
Se você tiver dúvidas sobre o uso do spacy-llm ou quiser nos dar feedback depois de dar uma volta, use o quadro de discussão. Os relatórios de bugs podem ser arquivados no rastreador de problemas de spacy. Obrigado!
Consulte o nosso guia de migração.