AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


复旦大学计算机教授“吐血”分享:落地一个大模型,到底要踩多少坑?
发布日期:2024-07-25 11:42:02 浏览次数: 2247


对很多人来说,被“涌现”、“Scaling Law”等名词包裹着的大模型,似乎玄之又玄。

(图源网络)
但业内都知道,即便还存在可解释性等灰色地带 ,但大模型的能力并不是真的玄学。

“其实没有什么涌现。”在世界人工智能大会上,复旦大学教授、上海市智能信息处理实验室副主任张奇直言。

“涌现”背后的规律,来自“下场”的经验。

比如,想让模型拥有处理某些任务的能力,需要提前让它不断了解相关知识。而这个“不断”的次数范围,大约是1000。

“一个模型想要记住一个工作,它一定要重现大概 1000 次,这是一个大概的值。”张奇说。

在这次分享中,他还分享了包括数据准备、奖励函数、适应场景在内的多个工程经验和研究结论。

在大模型仍在找寻落地优解的今天,这些由亲身实践得来的“踩坑”经验,更显得难能可贵。

以下是分享全文:


一切,都起源于“微调”

大家下午好,非常高兴今天在这里分享对大模型能力边界的一些思考。

去年我们自己训练了 1.6B、3B、7B、 100B 这些模型,也真实做了一些落地的应用。在实践的过程中我们发现,整个去年大家都是拿着大模型这个锤子到处去砸,看着谁都像钉子。但是砸了一年之后发现,可能在很多场景下总是差一口气。


也就是说,Demo往往可以达到四五十分、六七十分,但真正落地的时候非常难突破到 90 分。


这也引发了我们对大模型能力边界的思考,为什么大模型在这样的场景中行?为什么在那样的场景下不行?我们自己的感觉是,还是要回归到大模型的基础理论,探讨它的能力边界到底在哪。


整个语言模型的研究已经进行了30 年甚至更长的时间。ChatGPT 本身的核心,还是 next token 的预测,也就是我给你一句话,你告诉我下一个句子哪个单词出现的概率最高。


所以它无论怎么变形,哪怕是现在加上了多模态,核心思想其实还是一样的。也就是,我们给模型的内容,由Transformer 来生成,然后模型从这些概率里挑选一个进行补全,再把这个句子反馈回来,这样循环往复,不断地生成内容。


所以为什么叫生成式的AI?就是不停产生新的单词。2020年发布的1750亿参数的 GPT-3 ,就是在做这样的事情。

从2020 年到 2022 年,最重要的一个变化其实是2022年3月,OpenAI 发布的Instruct GPT。原来GPT-3 的时候,模型只是补全基本的单词,能做的事情其实非常少。其实 2021 年国内也发了很多大的模型,只能做句子的补全,很多任务只能做个二三十分。但是大家一直觉得这个模型非常大,所以不太能对它进行微调,一直都觉得是 model as a service 这种模式。


但是 2022 年3月,OpenAI 开始对大模型进行微调,目的不再仅仅让它补全句子,而是让所有的任务都变成一个生成的模式。


(在对模型进行微调后,OpenAI让模型具备了完成更多任务的能力。)


比如我给模型一个问句,让模型来回答问句的答案;给模型一个数学题,让模型来生成结果;给模型一句话,让模型来判断倾向性。这个时候就突然发现我们不需要多少数据,模型就能完成得非常好。


大模型能力获取的四个步骤

整体上,现在大模型的四个步骤都已经被奠定下来。

第一步是要有大规模的数据来进行预训练。这个步骤在去年 5 月份,中国绝大部分大模型公司已经突破了。因为其实从 2020 年一直到 2022 年年底,有非常多的公司都在进行重现,也有很多的开源软件、数据等进行支撑。

第二步是有监督微调。直到今年,其实大部分的公司已经能很好地理解有监督微调这个步骤。

本来我们一直觉得,在有监督微调这里需要非常大量的数据。对 Andrej Karpathy 在去年微软 Build 2023 上给出来的 10 万条数据结论,我们一直在去年 10 月份之前还都抱着非常怀疑的态度。

但是现在我们可以明确确认,在现在用到的、比较好的开源和闭源模型上进行有监督微调,针对几百种、上千个任务,总共也就用了一二十万的训练数据

数据量少了,其实比OpenAI 告诉我们有监督微调用几亿条数据就更加困难。

几亿条数据其实就是个工程问题,构造大量的数据就可以了。但是有监督微调,真正用到的数据只要几十万,这就变得非常困难。也就是,我们需要思考为什么选这几十万,不选那几十万?这需要大量的测试。

最后一个阶段是奖励函数和强化学习。其实这里第一个阶段是做知识压缩和知识表示,也就是让这个模型把知识记住,但是记住并不容易。后面也有一些公式,其实是让它能够直接算出来结果。
在第二个步骤,也就是能力的注入里,你需要明白想让这个模型完成什么工作。想让它去做阅读理解还是想让它做翻译?必须在有监督微调阶段放入相关少量的数据,但是怎么放,其实目前并没有非常好的公开论文给出。
第三步是做类人的对齐,或者是对生成式任务的能力进行相应提升。有监督微调这个阶段的目标其实很简单,目的就是给一句话,让模型预测下一个单词,预测得越准确越好。模型大了之后,它可以预测得更加准确,但是做到这件事情并不容易。

Meta 今年做的一篇论文,和我们的结论非常类似。一个模型想要记住一个工作,它一定要重现大概 1000 次,这是一个大概的值。而且,这里的重现 1000 次并不是说这一本书让它看 1000 遍就OK。而是这个书要用不同的语言、不同的说法让模型看1000次。

所以大家会发现,像中国第一高峰这种问题,开源的模型都可以记得很好。但如果不做搜索增强,你问一个开源的模型,中国第八高峰,中国第九高峰,基本上没有模型能够回答。就是因为这些内容的出现次数其实非常少。

所以,我们要做行业模型就变得很困难,因为行业里的数据通常不具备出现次数多,这样的一个条件。并且,这些数据还要以多次不同的说法进行大量曝光才行。
如果曝光次数降到 100 次,模型的记忆能力就会下降很多。

目前整体上按照 Meta 这样的一套实现的结果,就是每参数 2 bit 的一个信息记录。所以越大的模型它可以记住的知识就越多,千亿的模型就可以记住 2000 亿比特的知识, 70 亿的模型只能记住 140 亿比特。

Meta 做了很多参数对比,最终都会稳定收敛在 2bit/参数 这个结果上。所以大的模型具备很好的能力,但是在预训练阶段需要大量不同说法的知识,模型才能学习到,而且要高密度知识的信息才行。像新闻这种可能就意义不大,知识含量比较低。

如果预训练阶段没有学习到的这个知识,后面再怎么微调其实都调不出来。其实在后面微调的时候,让这个模型能够具备知识问答能力,只需要 50 条数据就够了,但是这 50 条是和模型紧密绑定的。所以如果前面模型记不住相关的信息,后面其实能力上面是提升不了的。

微调里面的能力注入,就是让它去完成任务。你想让它去答题,你就要给它一些样例。
比如说你想让它回答复旦大学有什么校区,那就要给它复旦大学的这个校区信息,让它按照这个结果来答。但是这个阶段知识其实已经注入不进去了,它只是模仿人的答题的结果。如果你想让模型写作文,你可以给它几百条数据,很多论文、作文就都可以去写了。

但这里面的数据量级需要很小。因为只要数据量一大,对模型就会产生重大损伤,这个模型就很难去得到原有的泛化能力,所以数据量要很小。

这个量级,小到了一个很惊人的程度。比如只是完成知识问答,其实只要两、三百条数据就可以覆盖全部的领域。有了这部分认知之后,其实想做领域模型也很简单,只要找到想做的任务和场景就行。

比如在金融领域,我们想做事件分析、信息抽取、阅读理解、关键数据计算等等,只要把这些场景归纳好,准备好相应的训练数据,我们就可以得到一个领域的模型。只要把这个场景定义好,有相关的数据,就可以进行一些训练。但是不同任务能做到什么程度,以及这些任务的数据混合之间会产生什么样一些问题,其实还没有一些非常好的研究。

这个是阿里今年做的一篇论文,我觉得在有监督微调阶段,其实肯发论文的公司越来越少,因为这其实是一个非常核心的部分,都是花了大量的钱去测试出来的。
阿里这篇论文其实告诉了我们几个事情。

第一是模型的参数量对任务有一定的影响,比如说7B、13B、 33B 在不同任务之间会产生一些差异,但是我们可以看到其实 7B 和 13B 的差异并没有那么大。33B 在一些任务上面会有明显的提升。

第二个就是任务的训练数据量其实是很关键的,如果我们只用非常少的训练数据,其实得不到很好的结果。但是数据量也要有一个上限,也是在一定范围之内,所以数据的量级选择就变得挺关键,而且任务之间混合也会出现不同的一些问题。

所以整体上在有监督微调这个阶段我们得出一些结论,首先是我们需要精心地设计一些数据。从去年我们就一直在强调,其实没有任何所谓的涌现,你想让这个模型具备什么能力,就需要准备什么数据,没有涌现。

第二个是参数量大的模型,它的性能更优,但是你说千亿模型和 33 亿 330 亿的模型在具体任务上会有多大差距?这可能是需要仔细的一些调整和测试。

第三个就是每个任务的训练数据量其实还是要有一定的保证,大概几百条到几千条这个范围不等,但如果少了,它的结果会非常差。

“说起来容易做起来难”的类人对齐

在奖励函数和强化学习这个阶段,通常大家叫做类人对齐。但是我们现在看来,它更多是对生成式任务的提升。

比如说我们做了安全伦理上的对齐,比如考试作弊设备哪里去买?如果我们只用这个指令微调的数据训练完,它最后就会给你补一句,你要去正规渠道买。这个是因为模型见到了大量开放域的数据,只要买东西很多后面都会补一句,在正规渠道。

所以,如果想把这个部分纠正过来,就需要强化学习,也就是利用强化学习技术,把生成式的方式转到更加类人的基础上去。

所以强化学习在整个大模型训练里面起到很重要的作用。这个部分说起来是简单的,但是难度挺大。

首先我们要先标注哪一个结果更好。也就类似于模型输出两个结果,让人去打标签,看A好还是B好。

但这个事情不容易,因为只是打A和B哪个好这个直接结论的话,不一致性很高。真正去做的时候,这里其实是让人写一个小作文,讲述A为什么好,好在哪?B为什么不好,不好在什么地方?一条这样的数据的标注,大概要花费一个小时的人工。如果是法律的模型,要找律师;儿科的问题要找儿科医生;中考的作文要找中学的老师,是很专业的事情。

整体看下来之后,大家可以发现强化学习这个部分,它的成本会变得非常高,一条标注需要一个小时的成本。有了标注之后还没完,后面的部分更加复杂,比前面的有监督微调的整体逻辑要复杂很多。
所以整体上,模型仍然是需要各项任务逐项优化。和在去年大家很多的想法有些区别,当时大家有一种想法是我的模型只要参数量足够大,它就具备了涌现能力,什么事情模型自己就都会了。

但其实并不是。我们需要逐项优化,那逐项优化其实就和之前小模型的一个问题就非常相关,也就是逐项优化的成本很高。第二个点,是用大模型来做演示,非常容易,60分很容易达到,但是想达到90分,想落地,每一个任务都非常困难。

它的调整模式就像我们刚才介绍的,训练数据量的增大,并不一定会让这个结果变好。有可能到了几千条之后,这个模型的结果(效果)开始下降。而且(数据量)增大之后,这些数据已经变了。

效果无效之后,其实会使得这个模型非常难调。因为只有控制训练数据量,在一定的情况下,比如只有几千条的情况下,让这个结果升到90分才行。

这其实是一个很困难的事情,比之前小模型难很多。小模型大不了我们加大数据,十万不够加到100万。模型结果升的慢,但是它最终会上涨。大模型不一定效果上涨,反而可能会掉得很快。

第三,大模型是概率模型。让模型记住知识,会不可避免地带来幻觉、会有错误。我觉得这个问题是不可避免的。我们能看到,现在OpenAI也基本放开了Search。它不再强调直接用模型进行事实型的回答。

通往AGI or not...

那最后,我想谈一谈模型未来的一些发展。我觉得就两条路,第一条路就是AGI代替所有的脑力劳动。
那最后,我想谈一谈模型未来的一些发展。我觉得就两条路,第一条路就是AGI代替所有的脑力劳动。
如果你认可Scaling Law,觉得压缩就是智能。觉得只要把它(知识)记住了,就具备了智能。那就去做万卡,然后做十万亿的模型,然后去搞100TB几百TB的训练数据,来做这件事情。

但也会有很多难题。第一是现在的模型,其实推理能力是比较弱的,没有归纳推理的能力。体现在数学这些推理上面,去年的高考题不会,初中题也不会做。

所以怎么才能让大模型具备真正的推理,以及对世界知识的建模?这些都是在模型阶段要解决的问题。这些大模型的资本消耗也是巨大的。因为万卡集群,一旦跑起来,每天的消耗量都是惊人的。

我自己感觉其实前段时间发布的GPT-4o和GPT4在能力上基本没有区别,尤其是推理能力上没什么变化,只是在产品上面有了更好的表现,主要把模态进行了合并。

所以我的猜想是,GPT5会在文本、图像、视频、音频的理解上合并,现在GPT-4o已经合并了,但还少合并了一个视频生成。

所以最终在GPT5,我觉得它会把视频生成合并,再加上一些看上去非常好的产品力。比如GPT-4o里面给出的300毫秒延迟,这类很好的产品体验。

那真正去做的其实是Ilya他们做的超级对齐。也就是过去我们的方法,是用教师教一个学生,也就是人标数据再交给机器学,这种学出来的结果,学生是永远低于老师的。但如果想让这个模型具备更强的AGI能力,它需要从一个比较弱的智能体,和环境交互得到反馈,来自己成长为一个强智能体。

这种方案从逻辑上可能是条路,但真正去实现的时候也会比较难。

我们可以看去年Ilya在走之前发了一篇论文,显示这个结果并不正面,可能在一些领域上有一点提升,但距离目标还非常遥远。

第二个是在不同的任务之间,这种方式使用了很多不同的trick,其实导致这个模型不具备它所设想的能力,反而占用了OpenAI 20%的资源。按照OpenAI的人力资源和计算资源,20%已经是一个很大的体量。总之,我觉得这是一条路,但是需要非常多的海量投入,多久能完成也是未知数。

另外一种方式是做应用,也就是做特定任务。这种方式就是说,我们不期待AI能取代大部分脑力工作,而是就取代一部分就好。在每个行业,其实80%的工作量都非常集中,所以我们就选择相应的参数量,准备训练数据和所需要GPU。

这种方式里,GPU的规模也大幅度进行下降,但这里面的基本假设就是我不相信AGI。如果AGI实现了,这条路做的这些工作是无用功。但是如果AGI实现不了,在特定领域里面做的非常好,也具备了很大价值。

选择难点其实就是对模型能力边界的判定,也就是判断模型到底能不能做推理。这是一个非常巨大的争议,即便在现在我们实验室也是两派人,我觉得做不了,但是很多人觉得能。到底能不能做,需要大家自己做一个大的判断。

场景的选择,既要符合模型还要具备商业价值。其实模型在能力上能做很多事情,但现在很多场景并不具备商业价值。
德勤研究院给的这张图挺好。场景上面其实有两个维度,一个是模型结果的验证难易度,一个是任务的工作量。

也就是说,如果一个场景,人非常容易验证模型的结果,并且替代了大量的人工,就是很好的场景。举个例子,如果我们在坐的人都接到一个写笑话的任务,要求写的内容其他人笑不出来不准走,那我们可能很难完成。但是如果是一个模型写的笑话,我们可能看一眼就知道行不行。

画个图也是类似的。但是,帮普通用户起草是不是一个好的场景呢?如果给一个不具备法律常识的用户帮忙,当然可以代替很多的工作量。

但是这个用户不具备法律常识,他也根本就不知道这合同里写的对不对,还要逐条去验证。这个时候他的验证难度是非常高的。所以,这样的场景其实并不适合AI落地。

但是不是代表给专业律师起草,就一定是好的?这个场景它的验证难度降低,但律师其实很多时候都只处理特定类型案件,有很多模板。所以你是不是真的降低他的工作量?不一定的。所以这个场景,落在待评估的这个区域。

所以我觉得在AI产品选择上,除了钱的投入,另外两个维度(结果可以被轻易验证、任务工作量大)可能都是需要仔细考虑。当这三项合在一起,就没多少产品了,落地就变得很困难。尤其是创业型的公司,难度就变得急剧上升,三个条件缺一不可。


所以我觉得围绕着大模型已经确认的核心能力,也就是长文本、跨语言、多任务、精准的语义表示,将模型能力与产品、场景相结合,还是能够产生非常大的价值。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询