chatgpt或者gpt3,生成式问答的问题明显。
一方面知识更新不及时,另一方面一本正经的胡说八道。
嘴硬心不软,还时不时闹点小脾气。
下面是openai的生成式模型在自有知识库上,检索生成式问答的全过程。
当然,库不需要是问答的知识,只要是需要限定的背景知识即可。
比如pdf文档的内容,分块存储到库中,最后进行检索式的问答,完成根据pdf的问答。
拢共分三步:
第一步,将现有知识库语料,转化为向量,加入pincone,。当然这是开源的openai的做法,这个有一定免费额度,后期还是直接放到faiss或者milvus上,这笔可以省下。
第二步,query进行,转化为向量,根据cosine相似度,进行检索,找到topN最相似的知识库文档。
第三步:根据检索到的文档知识,作为背景知识,传入chatgpt 或者其他的gpt3模型,这里是text-davinci-003
即可得到答案。
另外:如果需要多轮问答,每次把历史对话回传。尤其针对普通的客服类消息回复,没那么长,所以通常的产品推荐和售前售后咨询,多轮问答是没有问题的。
重点:其实不管多长的背景知识,只要分块存储和向量化,都可以存入库中,并不担心的背景信息太多的问题。
第一步:将现有知识库语料,转化为向量,加入pincone,。
(1)先用自己的的openai的api_key,
这答案骗骗我是可以的。
使用生成式模型text-davinci-003
(2) 正式进入向量转化,使用模型 text-embedding-ada-002。生成向量维度为1536。
(3)知识库语料导入,youtube语料,包含字段如截图
(走到这我就后悔了,不自己造数据的后果就是,20万条来一遍,也忒耗时了 )
(4)这步登入pincone,需要先在pincone注册登录,替换自己的api_key 和environment, 都在左栏api_key那里。
(5)将知识库语料转化为向量,并插入pincone
(速度还能接受)
第二步,query进行,转化为向量,根据cosine相似度,进行检索,找到top2最相似的知识库文档。
(1)query转化为向量,进行检索
结果如下
第三步:根据检索,得到的文档知识,作为背景知识,传入chatgpt 或者其他的gpt3模型,这里是text-davinci-003
即可得到答案。
(1)生成prompt,限定背景知识来回答
(3)生成答案
试了一下,感慨于nlper:确实该多考虑考虑了。
虽然这里面的模型,都可以自训练和检索,给公司省点钱。
只是省的这点钱,好像不够发工资。
后台发送:gen_qa
即可下载:https://pan.baidu.com/s/1-EohvzhtC2-foN5XAhNihw
提取码:9zt0
本网站文章皆为作者授权。发布者:虹七,转载请注明出处:https://ruofanseo.com/search-generative-qa/