このパッケージは、大規模な言語モデル(LLMS)をSpacyに統合し、高速プロトタイピングとプロンプトのモジュラーシステムを備えており、さまざまなNLPタスクの非構造化応答を堅牢な出力に変換し、トレーニングデータは不要です。
llm
コンポーネントlangchain
モデルと機能は、 spacy-llm
で使用できます大規模な言語モデル(LLMS)は、強力な自然言語理解能力を備えています。ほんの少し(そして時にはない)例では、LLMは、テキスト分類、エンティティ認識、コアファレンス解像度、情報抽出などのテキスト分類などのカスタムNLPタスクを実行するように求められます。
Spacyは、さまざまな方法で言語を操作する必要があるシステムを構築するための確立されたライブラリです。 Spacyの組み込みコンポーネントは、一般に、監視された学習またはルールベースのアプローチによって駆動されます。
監視された学習は、LLMがプロトタイピングを促すよりもはるかに悪いですが、多くのタスクでは、生産にとってはるかに優れています。単一のGPUで快適に実行されるトランスモデルは非常に強力であり、明確に定義された出力を持っているタスクにとってより良い選択になる可能性があります。数百から数千のラベル付き例でモデルを訓練すると、まさにそれを行うことが学びます。効率、信頼性、および制御はすべて、監視された学習により優れており、一般に、LLMのプロンプトよりも精度が高くなります。
spacy-llm
あなたが両方の世界の最高を持っていることを可能にします。 LLMプロンプトを搭載したコンポーネントを使用してパイプラインをすばやく初期化し、他のアプローチを搭載したコンポーネントを自由に混合できます。プロジェクトが進むにつれて、必要に応じてLLMを搭載したコンポーネントの一部またはすべてを交換することを検討できます。
もちろん、LLMのパワーが完全に正当化されるコンポーネントがシステムに存在する場合があります。複数のドキュメントから情報を微妙な方法で統合し、微妙な要約を生成できるシステムが必要な場合は、Biggerが優れています。ただし、生産システムがいくつかのタスクにLLMを必要としている場合でも、それはあなたがそのすべてにLLMを必要とするという意味ではありません。安価なテキスト分類モデルを使用して、要約するテキストを見つけるのに役立つか、正気にルールベースのシステムを追加して要約の出力を確認するのに役立つかもしれません。これらの前後のタスクは、成熟したよく考えられたライブラリではるかに簡単です。これはまさにスペイシーが提供するものです。
spacy-llm
将来のSpacyバージョンで自動的にインストールされます。今のところ、既にspacy
がインストールされているのと同じ仮想環境で以下を実行できます。
python -m pip install spacy-llm
ショ和 このパッケージは依然として実験的であり、インターフェイスに加えられた変更がマイナーバージョンの更新で破壊される可能性があります。
OpenaiのGPTモデルを使用して、いくつかのテキスト分類を実行しましょう。
openai.comから新しいAPIキーを作成するか、既存のキーを取得し、キーが環境変数として設定されていることを確認します。その他の背景情報については、APIキーの設定に関するドキュメントを参照してください。
0.5.0以降からいくつかの簡単な実験を行うには、実行できます。
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}
llm_textcat
ファクトリーを使用することにより、組み込みのTextCatタスクの最新バージョンが使用され、OpenAIのデフォルトのGPT-3-5モデルが使用されます。
llm
パイプラインのさまざまなパラメーターを制御するために、Spacyの構成システムを使用できます。開始するには、少なくとも次のことを含むconfigファイルconfig.cfg
を作成します(または、ここで完全な例を参照):
[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 "
今実行:
from spacy_llm . util import assemble
nlp = assemble ( "config.cfg" )
doc = nlp ( "You look gorgeous!" )
print ( doc . cats )
# {"COMPLIMENT": 1.0, "INSULT": 0.0}
それでおしまい!他にも多くの機能があります - プロンプトテンプレート、より多くのタスク、ロギングなど。それらの使用方法の詳細については、https://spacy.io/api/large-language-modelsをご覧ください。
近い将来、私たちはそうします
PRはいつでも大歓迎です!
spacy-llm
の使用に関する質問がある場合、またはスピンを与えた後にフィードバックを提供したい場合は、ディスカッションボードを使用してください。バグレポートは、Spacy Issue Trackerに提出できます。ありがとう!
移行ガイドを参照してください。