讲真, 初次听闻, 把“投喂”一术语用于 AI 之上时, 那种感觉, 是觉着蛮可爱的。
将数据如同喂猫那般, 一勺又一勺地投喂进模型口中, 静待其成长、变得聪慧。然而随后我发觉, 此事并非那么简便, 并且问题较想象的要严峻许多。
你喂的什么,它就长成什么样
这是个老生常谈的话题了,但真的,越琢磨越觉得可怕。
吾有一友, 从事客服机器人训练工作, 其所在公司为图简便省事, 径直将从网上搜罗而来的论坛帖子、问答社区之聊天记录填入模型之中。那么后续状况如何呢? 在机器人上线首日, 当客户询问“你们产品保修期时长为多久”之时, 它回复了一句“建议径直退货, 此品牌欠佳”。
老板差点没气死。
但你能怪谁? 模型宛如一面镜子。你倘若给它垃圾内容, 它便会给你吐出垃圾来。这可不是什么深邃奥涩的道理, 实则就是最质朴无华的事实罢。
数据质量,真的能差到你想不到
我见识过最为离谱的数据集, 其中内容存在百分之十八点七是重复的, 没错, 确切来讲, 将近五分之一的内容不间断地描述相同之事。
更夸张的情况出现了。在某公开的数据汇集内容当中, 存在数量超过42万条的、具有标注错误此情况的样本实例。这可是42万条。你来进行一番思考琢磨, 当模型学习了这些内容之后, 它能够产生出什么样优良的成果?
数据当中的噪声可不单单只是这些, 存在错别字, 有语法呈现混乱状态的句子, 有自相矛盾的观点, 还有纯粹属于胡说八道的内容。这些情形犹如食物里夹杂的沙子与石子一般, 模型整个将其吞噬下去, 却无法消化, 最终便滞留在回答里, 演变成那些令你哭笑不得的“幻觉”。
你以为高质量数据就安全了吗?
还真不一定。
纵然数据自身毫无瑕疵, 然而比例失调同样会造成严重后果。医疗领域有个知识库, 我曾有所接触。针对各类疾病, 其信息分布呈现明显不均衡态势。光是感冒方面的科普文章, 就多达三千余篇。就整个知识库而言, 有关罕见病的资料汇总起来,数量还不到五十篇。最终导致这样的情况出现, 如果对模型提问感冒题, 它能条理清晰地作答。但一旦问起罕见病相关问题, 它就会乱说一气, 甚至将几种不同疾病的症状混在一起, 编造出一种新病症作答。
这让我想起一个词:营养不良。不是吃得少,是吃得偏。
时间戳这个坑,很多人踩过
不知道有多少人注意过数据的时间。
存在一些知识库里呈现的内容, 其被标注为是在2021年所采集的, 然而那些文章自身实际上早在2018年就已撰写完成, 并且文章当中所引用的数据极有可能更为陈旧。你要是拿这些内容去训练一个面向回答2024年问题的模型, 只要是有所涉猎时效性方面的问题, 那么回答全部会是错误的。
最要命的是数据之间的打架
同一个知识库里,两篇文章的说法截然相反。
有一篇阐述每天喝八杯水对健康有益, 还有一篇表明过量饮水会引发水中毒。这两篇论述都具备一定道理, 然而模型学完之后就陷入了困惑。它将会怎样进行回答呢? 通常状况下它会挑选概率相对更高的一种说法, 不过要是两篇的数据量大致相同, 它就会在两种答案之间来回摆动, 致使你感觉这个 AI 好像精神分裂了。
实话说来, 我曾做过一回小测试, 针对一个公开的问答数据集, 将其中的矛盾条目数予以计算, 所得比例竟高达3.7%, 此3.7%看似数量不多, 然而换算成实际的条数, 却是超过15万对存在矛盾的问答, 面对这般情况, 你说让模型该如何去学习呢?
训练数据的“脏”,是慢慢累积的
跟你吃到坏东西即刻就涌现拉肚子的状况不一样, 模型所存在的诸多弊端能够隐匿很长的时间, 起初的时候, 你或许会认为其做出的回答还算可以, 然而随着使用时长的提升, 其中的漏洞便冒出来了。
有一个从事智能客服工作的团队与我开展了交流, 其模型在首次上线之际, 准确率能够达到百分之九十三点七, 然而, 在历经三个月的时间之后, 该准确率下降到了百分之八十一点二的水平。经过他们长时间的调查探究, 方才发现, 并非模型发生了退化, 而是问题自身出现了变化, 可是数据始终处于依据以往情况的状态。用户开始提出一些全新且更为复杂的问题, 然而该模型所存储的内容依旧是三年前所具备的那一套。
这就如同, 你把一个小孩子, 关进那间屋子里面, 仅仅只让他去看2019年所发行的报纸, 接着, 再去要求他预测2023年的世界重大事件。他根本就没有办法做到。
那怎么办?总得喂点好的
我知道有人会说,那就多喂。
然而, 问题向来并非在于数量, 而是在于质量。哪一团队呢一个? 我曾目睹过 , 他们仅仅运用了三万两千条经过精心挑选的数据 这一团队 , 所训练而出的模型 , 于此特定领域里相应表现上 , 将另外用了一百二十万条数据的模型远远超越。数据并非是越多便越好 , 而是越精准才越好。
怎么精?你得做几件事。
进行去重操作, 可别小瞧了这一点呐, 在为数众多的数据集内, 重复率高到令人咋舌, 有部分专业领域所涉及的数据集, 其重复率竟然多达28.6%。
清涤, 存在错别字、病句以及前后矛盾的内容, 对于该删除的就要删除, 对于该修改的就要修改, 不要偷懒懈怠。
将各个类别, 各个维度, 各个时间段的数据, 保持一种比例合理的状态, 实现平衡, 不要使得模型出现挑食的情况。
这是最值得花的, 尽管它是最花钱的。标注得要精准无误。低于95%准确率的数据集, 讲真, 用它还不如不去用它。
有时候,你少喂一点反而更好
我知晓一个从事法律AI的团队, 这批人开展了一项十足登峰造极的行径, 针对每一个将要投入使用的文本内容, 依靠人力去进行审核, 一字一句地仔细核查。他们每一天能够处置掉的数据分析量仅仅只有8000字左近, 然而每一条全部都是精品。最终那批人的模型在直面真切的法律问题之际,精确的概率达标到了96.3%。
而那些, 为求省事而采取直接批量进行导入操作的情况, 其准确率, 普遍处于70%至80%这个范围之内, 呈现出晃荡不定的状态。
你说这是不是讽刺?慢工出细活,放到AI训练上,照样成立。
最后说点真心话
我清楚, 于这个范畴之中, 众人皆在抓紧时间, 巴望着今日就构建好知识库, 明日模型便能上线去赚取利益 , 然而有些事宜着实急不得。
围绕数据投喂这个事儿来讲, 从本质层面而言它是教育, 你投喂的是什么内容, 它就会学习什么样的东西, 要是你敷衍轻率地对待它, 那么最终它也会敷衍轻率地对待你。
曾经我见识过数目繁多的项目, 在起初阶段数据绘制趋向于简便行事, 而到了后期却要耗费数倍的时长去修补模型所存在的漏洞。有依照数据进行的估算表明, 于后期修补一个因数据质量而引致的问题, 其成本是在前期切实做好数据准备的4.7倍。
所以, 不要因此觉得麻烦。一行行数据, 一个个标签, 一次次校对, 都是在为你的模型奠定基础。
你现在的每一分认真,都会在未来变成它每一次精准的回答。
真的。