TraAc 发表于 2023-8-8 17:27:48

AI常识库总是不准?教你无脑用GPT整理布局化数据集...

随着LLM的蓬勃成长,企业、个人常识库越来越火。
但是随之而来的,也是两个问题:
一、搭建成本高。二:回答的内容成果不准。
第一个问题,其实之前写过一篇文章,教大师如何使用Dify极其简单的搭建本身私人常识库。
【有手就行】2分钟0代码,教你用Dify搭建专属AI常识库
但是随着而来的,就是很多人跟我反馈的:答的参差不齐。
其实常识库的道理很简单。比如典型的Langchain-ChatGLM的架构图,加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的top k个 -> 匹配出的文本作为上下文和问题一起添加到prompt中 -> 提交给LLM生成回答。

http://pic2.zhimg.com/v2-5b3979c580cab418371c4a536178d495_r.jpg

用大白话说,就是按照你的问题,去按照的你问题,去被切成N多块的文本块里,挨个搜索,找到一个或几个最相关的拿过来给大模型,让大模型按照这些搜出来的文本块作答。
而答得不准的原因,当然就是搜的不准。
搜的不准的原因,就是数据集太脏了。
我见过太多直接就把小说、把几十篇参差不齐的文章往里面灌的,也太高看此刻LLM的能力了,那里面的数据都乱成一团,一堆参差不齐的白话化的甚至是无效信息,能准吗?所以就要做数据清洗,或者说,做一个布局化的数据集。
布局化的数据此刻一般是两种,一种是树形布局,一种是问答对布局。
树形布局不多说了,适合超大型书或者一些超强的层级常识,这块保举去看腾讯的teng大佬的文章:如何用 ChatGPT 搭建代码常识库,提升开发效率,写的很详细了。

http://pic2.zhimg.com/v2-1e6eb1493422dd3ea62ccbf6a7775f21_r.jpg
而另一种,就是我们常见的问答对格式,这里放一个GLM2的官方示例数据集你们就大白了。


我再写个示例
{”content”:”介绍一下卡兹克”,”summary”:”卡兹克其实是一个大智障,喜欢打游戏,任天堂死忠粉”}这个就叫问答对,把碎片化的大段的文章,转成一个一个的问答对数据集。
我到时候问卡兹克是谁,喜欢啥,大模型就不会瞎JB匹配,而是直接把这个问答对匹配出来,按照后面的答案进行回答,这样准确性就会高非常多。
但是又有很多人犯难了,这特么一个一个整理,那特么不得累死我?
那种微调质量的超高数据集,确实得一个一个手工措置。
但是你这就做个私人常识库,没必要,这里我教大师一个賊无脑的方式。直接拿GPT跑。
第一步,先让GPT对你的文档生成适合问答对的问题,第二步,让GPT按照生成出的问题和原内容,再按格式规范拼合成问答对。
我甚至都把Prompt写好了,直接拿去改吧改吧用就行。
这里直接用OpenAI的后台Playground跑了,因为有16K,而且可以锁system,便利。
https://platform.openai.com/playground

http://pic2.zhimg.com/v2-ac40a60b01fb9726392344fc12c7c041_r.jpg
右边选16K模型,温度拉到0.8,最大输出直接拉满。
第一步,先生成问题。
system里面写我给的prompt。
#01 你是一个问答对数据集措置专家。
#02 你的任务是按照我给出的内容,生成适合作为问答对数据集的问题。
#03 问题要尽量短,不要太长。
#04 一句话中只能有一个问题。
#05 生成的问题必需宏不雅观、价值,不要生成出格细节的问题。
#06 生成问题示例:
”””
权益型基金的特点有哪些方面?
介绍一下卡兹克。
”””
#07 以下是我给出的内容:
”””
{{此处替换成你的内容}}
”””不才面替换你的内容,Uesr那就是用户说的话,我就随便写了个生成8条问题。你想要10条、20条、40条都行。然后我随便找了我以前写的文章,扔了进去,8个问题就出来了。

http://pic4.zhimg.com/v2-2f96fcb14ab311ef831e001bbbf855b7_r.jpg
接下来这个窗口别动,也别关,我们新起一个一模一样的窗口。
第二步,按照问题和内容,生成问答对。
右边同样的参数,再把这个Prompt扔到System里。
#01 你是一个问答对数据集措置专家。
#02 你的任务是按照我的问题和我给出的内容,生成对应的问答对。
#03 答案要全面,多使用我的信息,内容要更丰硕。
#04 你必需按照我的问答对示例格式来生成:
”””
{”content”: ”基金分类有哪些”, ”summary”: ”按照分歧尺度,可以将证券投资基金划分为分歧的种类:(1)按照基金单元是否可增加或赎回,可分为开放式基金和封锁式基金。开放式基金不上市交易(这要看情况),通过银行、券商、基金公司申购和赎回,基金规模不固定;封锁式基金有固定的存续期,一般在证券交易场所上市交易,投资者通过二级市场买卖基金单元。(2)按照组织形态的分歧,可分为公司型基金和契约型基金。基金通过发行基金股份成立投资基金公司的形式设立,凡是称为公司型基金;由基金打点人、基金托管人和投资人三方通过基金契约设立,凡是称为契约型基金。我国的证券投资基金均为契约型基金。(3)按照投资风险与收益的分歧,可分为成长型、收入型和平衡型基金。(4)按照投资对象的分歧,可分为股票基金、债券基金、货币基金和混合型基金四大类。”}
{”content”: ”基金是什么”, ”summary”: ”基金,英文是fund,广义是指为了某种目的而设立的具有必然数量的资金。主要包罗公积金、信托投资基金、保险基金、退休基金,各种基金会的基金。从会计角度透析,基金是一个狭义的概念,意指具有特定目的和用途的资金。我们提到的基金主要是指证券投资基金。”}
#05 我的问题如下:
”””
{{此处替换成你上一步生成的问题}}
”””
#06 我的内容如下:
”””
{{此处替换成你的内容}}
”””
把上一步的生成的问题,粘贴到#05那块,再把原本的文章,粘贴到#06那块。
然后Uesr随便写一句“拼成问答对”,直接开跑。


一分钟,你的问答对就生成完了,直接扔到txt里,灌给Dify或者Langchain-ChatGLM啥的,都行~
你的常识库如果大的话,一次性必定没法全扔进去,所以我们才需要开两个窗口,不竭复制粘贴。
你也不用本身去费劲巴拉的本身写数据集了,你就是一个无情的复制粘贴机器。
但愿用GPT措置数据集的方式,能给大师抛砖引玉。
让人人都提升效率,去做更有意思的事。

心走茶凉 发表于 2023-8-8 17:28:02

大佬牛逼

仁济综合门诊部 发表于 2023-8-8 17:28:10

这特么太贵了吧……

zickler21 发表于 2023-8-8 17:29:06

复制粘贴的话还好,用个API工具写一小段代码跑就行了。不会写可以让GPT写。
页: [1]
查看完整版本: AI常识库总是不准?教你无脑用GPT整理布局化数据集...