有知乎网友问道:
如何为ChatGPT/LLM模型添加额外知识?
下面说下我的看法。
内容基本上是从我在知乎上的回答拷贝过来的,所以嵌入视频部分这里不能直接点击进去,有需要的根据名字去知乎查,或者直接关注我知乎账号翻看即可。
1. 通过fine-tuning来和新知识及私有数据进行对话
要为LLM添加额外的知识,第一反应就是用fine-tuning,使用自己的私有数据进行微调,利用chatgpt早就预训练好的对语言特性的理解,来服务你私有的数据。
如果你对fine-tuning不是很清楚的话,可以参考下我此前学习相关知识时分享的一个吴恩达老师的视频:
《chatgpt开发入门(五)-fine-tuning和预训练的基础原理及关系》
2752 播放 · 2 赞同视频
另外,还有一个实战视频来演示怎么通过提供私有数据来进行fine-tuning
《chatgpt开发入门(六)-通过fine-tuning与私有数据进行对话》1514 播放 · 1 赞同视频
2. 通过word embeddings + pinecone数据库来搭建自己私有知识库
chatgpt预训练完成后,会生成一个embeddings向量字典,我们可以将这个利用起来。比如我们可以将我们的私有知识库各个章节通过openai的相关api获取到对应的embeddings,然后将这些embeddings保存到pinecone向量数据库,当用户要对某个领域后者问题进行语义查询时,则将用户的输入同样通过openai的相关api来获取相应的embeddings向量,然后再和向量数据库pinecone中的我们的私有知识库类型做语义相似度查询,然后返回给用户。
注意这里的语义查询和我们平时通过google进行搜索的查询是不一样的,语义查询会返回语义相近的结果,而不一定是包含了用户输入的词的结果。但google搜索等是会去查询包含你输入的结果。
如果你对word embeddings不是很清楚的话,可以看下我此前分享的一个视频,也是来自吴恩达老师的手笔:
《chatgpt开发入门(三)-one hot向量和word embeddings》4670 播放 · 2 赞同视频
同时,还有一个利用word embeddings进行语义搜索的实战视频:
《chatgpt开发入门(四)-通过word embedding实现语义相似度查询》4677 播放 · 0 赞同视频
3. 通过langchain这个chatgpt编程框架来给chatgpt赋能
chatgpt毕竟还只是个语言模型,很多时候我们需要的不仅仅是语言的输入和输出,比如还可能需要题主说的私有数据库访问,网络搜索,绘画等其他能力。
这时我们就可以考虑用langchain这个chatgpt编程框架来给chatgpt赋能,让其能做到除了语言输出之外的更多事情。
langchain的功能就好比其名字预示的那样,就是为了将不同的工具模块和chatgpt给链接(chain)起来。
如果大家对langchain还不是很了解的话,可以看下我此前分享的一个langchain cookbook的视频:
《LangChain Cookbook - chatgpt编程框架入门》1701 播放 · 0 赞同视频
其实最近大火的很多任务驱动的自动执行系统,都是可以通过langchain来实现的。比如auto-gpt:
《Auto-GPT功能简介及演示》1 万播放 · 3 赞同视频
hugging-gpt:
《HuggingGPT: 实现ChatGPT与其他人工智能模型之间的协同工作》1361 播放 · 1 赞同视频
以及baby-agi:
《AutoGPT简化版本BabyAGI安装和体验》2015 播放 · 1 赞同视频
这些通过langchain相信都能实现,说不一定其中一些就是基于langchain的,这个我倒是没有去考究。
4. 插件
chatgpt最近不是发布了插件支持了嘛,通过插件你也可以给chatgpt赋予很多额外的能力,比如搜索互联网等。具体的用法各位看官自己看官网吧
好了,这么多内容和视频,也不知道有多少人看了,先写这么多吧。
我是@天地会珠海分舵,能力一般,水平有限,觉得我说的还有那么点道理的不妨点个赞关注下!
暂无评论内容