有知乎網(wǎng)友問道:
如何為ChatGPT/LLM模型添加額外知識?
下面說下我的看法。
內(nèi)容基本上是從我在知乎上的回答拷貝過來的,所以嵌入視頻部分這里不能直接點擊進去,有需要的根據(jù)名字去知乎查,或者直接關(guān)注我知乎賬號翻看即可。
要為LLM添加額外的知識,第一反應就是用fine-tuning,使用自己的私有數(shù)據(jù)進行微調(diào),利用chatgpt早就預訓練好的對語言特性的理解,來服務你私有的數(shù)據(jù)。
如果你對fine-tuning不是很清楚的話,可以參考下我此前學習相關(guān)知識時分享的一個吳恩達老師的視頻:
《chatgpt開發(fā)入門(五)-fine-tuning和預訓練的基礎(chǔ)原理及關(guān)系》
2752 播放 · 2 贊同視頻
另外,還有一個實戰(zhàn)視頻來演示怎么通過提供私有數(shù)據(jù)來進行fine-tuning
《chatgpt開發(fā)入門(六)-通過fine-tuning與私有數(shù)據(jù)進行對話》1514 播放 · 1 贊同視頻
chatgpt預訓練完成后,會生成一個embeddings向量字典,我們可以將這個利用起來。比如我們可以將我們的私有知識庫各個章節(jié)通過openai的相關(guān)api獲取到對應的embeddings,然后將這些embeddings保存到pinecone向量數(shù)據(jù)庫,當用戶要對某個領(lǐng)域后者問題進行語義查詢時,則將用戶的輸入同樣通過openai的相關(guān)api來獲取相應的embeddings向量,然后再和向量數(shù)據(jù)庫pinecone中的我們的私有知識庫類型做語義相似度查詢,然后返回給用戶。
注意這里的語義查詢和我們平時通過google進行搜索的查詢是不一樣的,語義查詢會返回語義相近的結(jié)果,而不一定是包含了用戶輸入的詞的結(jié)果。但google搜索等是會去查詢包含你輸入的結(jié)果。
如果你對word embeddings不是很清楚的話,可以看下我此前分享的一個視頻,也是來自吳恩達老師的手筆:
《chatgpt開發(fā)入門(三)-one hot向量和word embeddings》4670 播放 · 2 贊同視頻
同時,還有一個利用word embeddings進行語義搜索的實戰(zhàn)視頻:
《chatgpt開發(fā)入門(四)-通過word embedding實現(xiàn)語義相似度查詢》4677 播放 · 0 贊同視頻
chatgpt畢竟還只是個語言模型,很多時候我們需要的不僅僅是語言的輸入和輸出,比如還可能需要題主說的私有數(shù)據(jù)庫訪問,網(wǎng)絡(luò)搜索,繪畫等其他能力。
這時我們就可以考慮用langchain這個chatgpt編程框架來給chatgpt賦能,讓其能做到除了語言輸出之外的更多事情。
langchain的功能就好比其名字預示的那樣,就是為了將不同的工具模塊和chatgpt給鏈接(chain)起來。
如果大家對langchain還不是很了解的話,可以看下我此前分享的一個langchain cookbook的視頻:
《LangChain Cookbook - chatgpt編程框架入門》1701 播放 · 0 贊同視頻
其實最近大火的很多任務驅(qū)動的自動執(zhí)行系統(tǒng),都是可以通過langchain來實現(xiàn)的。比如auto-gpt:
《Auto-GPT功能簡介及演示》1 萬播放 · 3 贊同視頻
hugging-gpt:
《HuggingGPT: 實現(xiàn)ChatGPT與其他人工智能模型之間的協(xié)同工作》1361 播放 · 1 贊同視頻
以及baby-agi:
《AutoGPT簡化版本BabyAGI安裝和體驗》2015 播放 · 1 贊同視頻
這些通過langchain相信都能實現(xiàn),說不一定其中一些就是基于langchain的,這個我倒是沒有去考究。
chatgpt最近不是發(fā)布了插件支持了嘛,通過插件你也可以給chatgpt賦予很多額外的能力,比如搜索互聯(lián)網(wǎng)等。具體的用法各位看官自己看官網(wǎng)吧
好了,這么多內(nèi)容和視頻,也不知道有多少人看了,先寫這么多吧。
我是@天地會珠海分舵,能力一般,水平有限,覺得我說的還有那么點道理的不妨點個贊關(guān)注下!
聯(lián)系客服