
Dieses Paket integriert große Sprachmodelle (LLMs) in Spacy, das ein modulares System für schnelle Prototypen und Aufforderung enthält und unstrukturierte Antworten in robuste Ausgaben für verschiedene NLP -Aufgaben verwandelt, ohne Schulungsdaten erforderlich.
llm -Komponente , um Eingabeaufforderungen in Ihre Spacy -Pipeline zu integrierenlangchain -Modelle und -funktionen können in spacy-llm verwendet werdenLLMs (Language Language Models) verfügen über leistungsstarke Funktionen für natürliche Sprachenverständnisse. Bei nur wenigen (und manchmal no) Beispielen kann ein LLM aufgefordert werden, benutzerdefinierte NLP -Aufgaben wie die Kategorisierung von Text, die Bekanntgabe der Entität, die Coreferenzauflösung, die Informationsextraktion und vieles mehr auszuführen.
SPACY ist eine etablierte Bibliothek zum Aufbau von Systemen, die auf verschiedene Weise mit Sprache arbeiten müssen. Die integrierten Komponenten von Spacy werden im Allgemeinen durch beaufsichtigtes Lernen oder regelbasierte Ansätze angetrieben.
Das überwachte Lernen ist viel schlechter als LLM, der für Prototypen auffordert, aber für viele Aufgaben ist es viel besser für die Produktion. Ein Transformatormodell, das bequem auf einer einzigen GPU ausgeführt wird, ist äußerst leistungsstark und es ist wahrscheinlich eine bessere Wahl für jede Aufgabe, für die Sie eine gut definierte Ausgabe haben. Sie trainieren das Modell mit etwas von ein paar hundert bis ein paar tausend beschrifteten Beispielen, und es wird lernen, genau das zu tun. Effizienz, Zuverlässigkeit und Kontrolle sind mit überwachtem Lernen besser und die Genauigkeit wird im Allgemeinen höher als LLM auffordern.
spacy-llm können Sie das Beste aus beiden Welten haben. Sie können eine Pipeline schnell mit Komponenten initialisieren, die von LLM -Eingabeaufforderungen angetrieben werden, und sich frei in Komponenten mischen, die von anderen Ansätzen betrieben werden. Im Verlauf Ihres Projekts können Sie einige oder alle LLM-betriebenen Komponenten wie Sie benötigen.
Natürlich kann es Komponenten in Ihrem System geben, für die die Leistung eines LLM vollständig gerechtfertigt ist. Wenn Sie ein System wünschen, das Informationen aus mehreren Dokumenten auf subtile Weise synthetisieren und eine nuancierte Zusammenfassung für Sie generieren kann, ist größer besser. Selbst wenn Ihr Produktionssystem für einen Teil der Aufgabe ein LLM benötigt, heißt das nicht, dass Sie für alles ein LLM benötigen. Vielleicht möchten Sie ein billiges Textklassifizierungsmodell verwenden, um Ihnen dabei zu helfen, die Texte zusammenzufassen, oder Sie möchten ein regelbasiertes System zur Vernunft hinzufügen, um die Ausgabe der Zusammenfassung zu überprüfen. Diese Vorher-Nachher-Aufgaben sind bei einer ausgereiften und gut durchdachten Bibliothek viel einfacher, was genau das bietet.
spacy-llm wird in zukünftigen Spacy-Versionen automatisch installiert. Im Moment können Sie Folgendes in derselben virtuellen Umgebung ausführen, in der Sie bereits spacy installiert haben.
python -m pip install spacy-llm
Euen Dieses Paket ist immer noch experimentell und es ist möglich, dass Änderungen an der Schnittstelle in Minor -Versions -Updates einbrechen.
Lassen Sie uns eine Textklassifizierung mit einem GPT -Modell von OpenAI ausführen.
Erstellen Sie einen neuen API -Schlüssel bei OpenAI.com oder holen Sie sich eine vorhandene und stellen Sie sicher, dass die Schlüssel als Umgebungsvariablen festgelegt werden. Weitere Hintergrundinformationen finden Sie in der Dokumentation zum Einstellen von API -Schlüssel.
Um einige schnelle Experimente durchzuführen, können Sie ab 0,5.0 ausführen:
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} Durch die Verwendung der Fabrik llm_textcat wird die neueste Version der integrierten Textcat-Aufgabe sowie das Standard-GPT-3-5-Modell von OpenAI verwendet.
Um die verschiedenen Parameter der llm -Pipeline zu steuern, können wir das Konfigurationssystem von Spacy verwenden. Erstellen Sie zu Beginn eine Konfigurationsdatei config.cfg mit mindestens folgenden (oder sehen Sie sich das vollständige Beispiel hier an):
[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 "Jetzt laufen:
from spacy_llm . util import assemble
nlp = assemble ( "config.cfg" )
doc = nlp ( "You look gorgeous!" )
print ( doc . cats )
# {"COMPLIMENT": 1.0, "INSULT": 0.0}Das war's! Es gibt viele andere Funktionen-schnelle Vorlagen, weitere Aufgaben, Protokollierung usw. Für weitere Informationen zur Verwendung dieser Informationen finden Sie unter https://spacy.io/api/large-language-models.
In naher Zukunft werden wir
PRs sind immer willkommen!
Wenn Sie Fragen zur Verwendung von spacy-llm haben oder uns nach dem Drehen Feedback geben möchten, verwenden Sie bitte das Diskussionsbehörde. Fehlerberichte können auf dem Spacy -Probleme mit dem Spacy -Tracker eingereicht werden. Danke schön!
Weitere Informationen finden Sie in unserem Migrationshandbuch.