
該軟件包將大型語言模型(LLMS)集成到Spacy中,具有用於快速原型和提示的模塊化系統,並將非結構化響應轉換為各種NLP任務的強大輸出,無需培訓數據。
llm組件將提示集成到您的Spacy管道中langchain模型和功能都可以在spacy-llm中使用大型語言模型(LLMS)具有強大的自然語言理解能力。只有幾個(有時沒有)示例,可以提示LLM執行自定義的NLP任務,例如文本分類,命名實體識別,核心分辨率,信息提取等。
Spacy是一個建築系統良好的圖書館,需要以各種方式使用語言。 Spacy的內置組件通常由監督學習或基於規則的方法提供動力。
監督學習要比LLM差得多,促使原型製作,但對於許多任務來說,這對生產來說要好得多。在單個GPU上舒適運行的變壓器模型非常強大,對於您擁有明確定義的輸出的任何任務,這可能是一個更好的選擇。您可以用幾百到幾千個標記的示例訓練模型,它將學會做到這一點。通過監督學習,效率,可靠性和控制都更好,並且準確性通常也高於LLM提示。
spacy-llm讓您擁有兩全其美的最好。您可以快速用LLM提示供電的組件初始初始化管道,並自由地混合由其他方法供電的組件。隨著項目的進行,您可以根據需要替換一些或所有LLM供電的組件。
當然,您的系統中可能會有一個完全合理的LLM功能的組件。如果您想要一個可以以微妙的方式從多個文檔中綜合信息並為您生成細微的摘要的系統,那麼更大的是更好。但是,即使您的生產系統需要LLM來完成某些任務,這並不意味著您都需要所有LLM。也許您想使用廉價的文本分類模型來幫助您找到要匯總的文本,或者您想添加基於規則的系統以理智檢查摘要的輸出。通過成熟且經過深思熟慮的庫,這些前後任務要容易得多,這正是Spacy提供的。
spacy-llm將在將來的Spacy版本中自動安裝。目前,您可以在已經安裝了spacy的同一虛擬環境中運行以下內容。
python -m pip install spacy-llm
配x 該軟件包仍然是實驗性的,對接口進行的更改可能會在次要版本更新中破壞。
讓我們使用OpenAI的GPT模型運行一些文本分類。
從OpenAI.com創建一個新的API密鑰或獲取現有的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.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-langue-language-models。
在不久的將來,我們將
總是歡迎PR!
如果您對spacy-llm的使用有疑問,或者想在旋轉後給我們反饋,請使用討論板。錯誤報告可以在Spacy問題跟踪器上提交。謝謝你!
請參閱我們的遷移指南。