基于GPT3.5搭建定制化知识库
最近看到好多基于OpenAI API接口的AI应用,是春天到了,如雨后春笋般冒出来了。ChatGPT输入有4096 token的限制,也就是一次问答提问和返回的字数有限, 而且所有回答都是基于2021年前的互联网信息。这个就不太友好了,至少有两方面急需改进下, 一是实时性,二是内容定制化。实时性现在New Bing做得不错。定制化的问答很常见的使用场景就是做特定领域的知识库,给它投喂特定的知识,把它训练成想要的问答机器人。比如知识产权律师事务所要对外提供一个法律顾问的机器人,让它能回答常见的法律咨询,能结果律所已有的案例答复。机器人可以近乎无限扩展的方式来提升效率,降低人工费用。用它预接待客户或者引流是可以想到的使用场景。我相信GPT3.5是可以做到的。
现有的公开服务
这里列出几个,使用方法都很相似:上传文档,服务器分析文档,然后用户提问,服务器返回基于文档的回答。
https://chatpdf.com https://www.pandagpt.io/ https://chat2doc.cn … 后面会有试用chatpdf的体验。
寻求建议
有了想法,但不知道如何实施。没关系,直接问ChatGPT和New Bing. 这是prompt
there is a website chatpdf.com that parses your uploaded pdf document and serve any question related to the document content. It is based on OPEN AI API. How can I build such website? Could you please give me more detail on “create knowledge base with open ai embeddings”, I want sample code that I can follow. Thanks
看到ChatGPT的回复,思路立马打开了。
使用Llama_Index包
LlamaIndex 是一个基于文本嵌入(text embedding)的近似最近邻搜索引擎。它可以将文本数据集编码为低维向量,并利用这些向量来快速查找与查询向量最相似的数据点。LlamaIndex 可以支持多种文本编码方法,例如基于深度学习的词嵌入(word embeddings)和基于类似于 Locality Sensitive Hashing(LSH)的方法进行的编码。LlamaIndex 的设计旨在支持大规模文本数据集的高效搜索。---- from ChatGPT
看不太懂。说人话, LlamaIndex 是一种可以快速搜索相似文本的工具。它可以把很多文本拆分,变成一些数字,建立索引,然后比较这些数字的相似度,找到最相似的那些文本。这个工具可以帮助我们在海量的文本中快速找到我们感兴趣的内容。
以前它叫GPT Index,感兴趣可以查看:https://github.com/jerryjliu/llama_index
这里有一个跑在colab上的Demo (Jupter 脚本),里面有比较详细的说明,点开登陆google直接一步步跑吧。https://colab.research.google.com/drive/11WDzga57dXaW-O7tq9GpaXHisDYOz3zx?usp=sharing
最后能实现有问有答,但效果并不是太好,还有许多微调的工作要做。
使用 ChatPDF
拿常看的科技爱好者周刊来测试
准备数据 因为chatpdf对免费用户有一定限制(文档5MB,120页),所以先处理一下markdown文件,尽可能保留文本信息。
git clone https://github.com/ruanyf/weekly.git
cd weekly/docs
cat issue-2??.md > weekly.md
sed -i '/^$/d' weekly.md
sed -i 's/^[[:space:]]*//' weekly.md
sed -i '/^!\[\]/d' weekly.md
sed -i '/## 回顾/,/(完)/d' weekly.md
sed -i '/<iframe/,/<\/iframe>/d' weekly.md
sed -i 's/(https[^)]*)//g' weekly.md
sed -i 's/[][]//g' weekly.md
转换为PDF 追求格式完美的话用 pandoc但其实只要文本信息,可以直接VSCode打开,安装插件"Markdown PDF", 然后按F1, 输入“Export(pdf)”,点击跳出来选项,就会在同一文件夹下生成同名的PDF文件。
上传文档到 chatpdf.com
根据上传的200-245期内容,提问过程如下。总的来说,提问如果与文档内容关联度高,它会返回比较正确的答案,但也会根据自己的理解修改答案。如果文中没有相关信息,它会以自己原有的知识库编内容。有的没大错,比如说阮老师对硅谷银行的观点。有的就是胡扯,说老师有离婚经历。
思考
ChatGPT API还只是大语言模型,本质上是它会处理语言信息。但不会完全像人一样处理语言信息,还有一些不太完善的地方,但已够惊艳。如果知识库的回答如果不可信,那还需要它吗?历史告诉我们,不要刻舟求剑,AI的发展超出想象。今天发布的GPT 4.0,已经不只是个大语言模型了。后面的5.0, 6.0的逻辑能力,总结,洞察能力会飞速提升。要是再带上个性,情绪,要是全世界一起调教它,它产生了对创意的认识,对道德的评判,甚至有了自主意识都是有可能的。对未来不要悲观吧,希望制造它们的人们能理智一点,也约束一点。