大模型 VS 小模型

今天给大家带来一篇关于大模型和小模型讨论的文章。首先,我们思考一个问题,为什么 qwen2 基本上是当下最受欢迎的开源模型?说实话,相比于 deepseek、llama、minicpm 这些诚意满满的技术报告,qwen2 的技术报告稍显一些“小家子气”,并没有提及到关键的技术细节。然而,qwen2 提供给开源社区的“全家桶”套餐,又是多长的技术报告也比不上的。对 llm 的研究者来说,用相同 tokenizer,相同的 7T pretrain_data 得到的“一簇小 llm”,其研究价值远远超过 Qwen2-72B 本身!

接下来,我们带着两个基本概念进入正文:

  • 同源小模型:同 tokenizer,同训练数据下得到的 size 较小的llm

  • 小模型:重点在于“小”,推理快或者本身就是分类模型,怎么训的完全无所谓。较小 size 的 llm,BERT,RoBERTa,Xgboost,LR 等等都可以称作小模型

同源小模型是大模型的实验场

scaling law 告诉我们:小模型的性能表现能用来预测大模型的性能表现。这也就是说,大部分情况下,我们是可以通过在同源小模型上做实验,去预测大模型的效果的。

在 pretrain / post_pretrain 阶段有很多需要做实验才能知道答案的问题。怎么样的数据配比最合理,课程学习中哪种学习顺序效果最好,数据的质量是否过关,数据的去重程度是否过关,先训4k、再扩到 32k 和直接训 32k 的效果差异,post_pretrain 的时候怎样调整学习率和数据分布来防止模型断崖式的能力遗忘?……

直接启动大模型的成本实在是在太高昂了,可能训练两三周,loss 曲线才会表现出一点点差异。但我们完全可以在小模型上大胆的训,每天训 100B token,两天就能出一版实验结果。观察 tensorbord 的 loss 曲线,刷 benchmark 打榜,或是做 sft 看效果,总之小模型可以帮助我们快速地敲定 pretrain 阶段使用的数据配置。

在 alignment 阶段,我们也可以去借助小模型和 scaling law 来指导工作。

我要强化模型的某个能力,准备了 N 条训练数据,能让模型达到多大的提升呢?可以看看这份数据在小模型上能有大提升,绘制一条曲线,去预估大模型的性能表现。说的再通俗一点,100B token 能让 0.5B 模型下降 0.2 loss,能让 72B 模型下降 0.1 loss, alignment 数据能让 0.5B 模型提高 x% 的 task 能力,那么大概率这份数据也只能让 72B 模型提升 0.5x % 的 task 能力。

  • 已知:Qwen2-0.5B + few shot

  • 已知:Qwen2-0.5B + SFT + zero_shot

  • 已知:Qwen2-1.5B + few shot

  • 已知:Qwen2-1.5B + SFT + zero_shot

  • ……

  • 已知:Qwen2-72B + few shot

  • 预测:Qwen2-72B + SFT + zero_shot

但其实,在 alignment 阶段,小模型的实验指导意义并不是特别强,毕竟小模型的最大优势在于训得快,做实验快。由于 alignment 的数据量不大,我们往往可以直接对目标大模型进行训练来验证结果。这里的指导意义,往往是在我们需要大量数据去强化模型某个能力时才显得有意义,比如代码强化、创作能力增强。

在这里,额外需要强调两个点:

  • 小模型需要使用较大的学习率,而大模型学习能力强、特征空间稀疏,往往需要使用较小的学习率;

  • 强如 meta,据说也训崩了千亿级别参数的 MOE 模型。换句话说,MOE 的 scaling law 可能还不成熟,或者是 MOE 缺少一个像 llama 一样的能稳定训练的标准结构,其在小模型上的优异表现可能无法复现在大模型上。

大模型是同源小模型的良师

首先,大模型的效果就是同源小模型不可达到的 ceiling,这点毋庸置疑。(实际工作中,知道模型效果的上限,是一件非常有意义的事情)。

除此之外,大模型可以在训练中给到同源小模型极大的帮助。

模型蒸馏

“distill”是 BERT 时代非常火的一个技术方案,现在却提及的不太多了,归根到底就是蒸馏对“同源 tokenizer”的要求太硬了。不过同源小模型没有这个顾虑,蒸馏技术就像是为同源小模型的效果强化量身定制的技术方案一样。

先澄清一个概念,目前的大部分论文都把“利用 GPT4 造数据,喂给小模型去训练“叫做蒸馏,这种叫法也没错,不过更准确的叫法应该是”知识蒸馏“:让小模型去学习大模型的知识能力。而传统的“模型蒸馏”,指的是我们不再让模型学习 hard-label,而是 soft-label:

  • hard_label:“台湾属于”,在预测下一个 token 的时候,“中国”的概率是 1,其他所有 token 的概率是 0;

  • soft_label:“台湾属于”,在预测下一个 token 的时候,“中国”的概率是 0.3,“中华”的概率是 0.2,“大陆”的概率是 0.1……

不管从哪个角度考虑,似乎 soft_label 都是蕴含更多信息量可学习的。因此,利用大模型去“模型蒸馏”小模型,很有可能能得到一个能力远高于同等 size 的小模型,Google 的 Gemma 小模型 就应用了这项技术方案。

(模型蒸馏之所以在 llm 方向做的少,其实还是因为得不偿失,其对算力和存储的需求较大,与模型的效果提升不成正比。毕竟正常训练学的是 seq_len 个 one_hot label,蒸馏学的是 seq_len * vocab_size 的 logits,一个比较现实的方案是做 clip,只取最大的 N 个 token logits 标签进行学习,其他 token 的概率依然视为 0)

reward_model

用大模型来充当小模型的 reward_model,目前是一个很流行的做法,而用同源大模型去做 reward_model 则更是一个锦上添花的方案。

与蒸馏不同,蒸馏看中的是两个模型“tokenizer 同源”,reward_model 看中的则是两个模型“pretrain 数据同源”。也就是说,我们的 reward_model 和 policy_model 具有同等的知识量,两个模型的学习成绩虽然不一样,但它们上过的的课程却是一样的。reward_model 会的知识,就是 policy_model 学过的知识:“我学过并且我掌握了,你学过但你没掌握,所以我给你打低分就是合理的。”

虽然在实际工作中,一个同源 reward_model 可能没有 GPT4 这种“天才 reward_model ”带来的效果更好。但其往往能给出更公允的打分,进而避免过多的幻觉产生。这也是 alignment 的一大痛点,模型到底是训过拟合了才答错这个知识,还是压根就没学过这个知识 —— 交给同源大模型来判断。

大模型背后的无数小模型

OK,同源模型的意义我们就谈到这里,后面我们开始谈真正的“小”模型!一个优秀的大模型,无论是在训练阶段,还是线上部署阶段,其背后默默付出的小模型都数不胜数。

数据质量分类器:llama3 和 qwen2 都提到了,他们的 pretrain 训练数据是有得分的,然后通过阈值来找出最高质量的训练数据,开源 pretrain 数据集 fineweb 也提到了他们给数据打分的工作。Good data makes good model performance!李沐大佬在他的视频里说到,llama3 的数据打分器是 RoBERTa,这很合理,效果又好、推理又快的分类模型确实还要看 BERT 家族。

数据 domain 分类器:垂直领域模型的 post_pretrain 工作,往往需要非常精准的数据配比,domain 数据的数据质量也需要非常优质。这也就是说,我们需要一个分类器,去提取海量数据中的 domain 数据,这个分类器最好还能把低质量的 domain 数据也视为非 domain 数据,通常承担这个工作的模型也是 BERT 家族。

线上模型的分类器:众所周知,RAG 模块已经是 llm 的标配,我们总不能让模型自己判断该不该做检索吧?虽然不是不行,但是额外生成“是否RAG”这些 token 会降低系统的响应速度,并且可能降低模型的通用能力(模型学的越多,忘的也越多)。因此,线上模型往往都是前置挂一个小模型,来判别是否需要 RAG,同理也需要判别是否触发 safety,是否触发工具链等。

RAG 模型:这个模型更是重量级,也就是咱们传统的信息检索模型,如何从海量 docs 里面选出最相关的 doc。BGE 是这个工作较为常用的模型。

数据生产模型:

  • “小模型 + SFT > GPT4 + zero_shot ”几乎是数据生产阶段最常用的公式了。我们在数据生产阶段往往面临几个困境,GPT4 并不是百分之百按照我们指定的格式进行输出(复杂指令任务尤为明显),GPT4 真的很贵,特别是在生产多轮对话数据的时候。这种情况下,最好的方案就是用一个小模型去学目标 task 的高精数据,让这个小模型过拟合,进而变成一个标准的 task 数据生产器;

  • 以 role_play 任务为例,很多场景是需要人不断和 GPT4 聊天来生产高质量的对话数据的,我们的模型做不到 GPT4 那样能准确拿捏角色性格的程度,但扮演一个“多事儿的用户”还是绰绰有余的。训一个聊天模型,让它和 GPT4 聊天来自动化大量生产数据。

这里,我再分享一些个人使用小模型时的 trick:

学会变通,生成模型也可以当判别模型使用。简单来说,如果我们懒得去找一份 BERT 代码去训一个分类器,我们也可以直接训一个 Qwen2-0.5B,让它只会输出 0 和 1,当我们的模型完全过拟合到 0 和 1 的时候,那么所有 token 中便只有 0 和 1 有概率,其他 token 的概率几乎为零。此时,我们用 1 所对应的 token_probability,不就是分类器的打分吗?当然,更优雅的做法是把 pretrain_model 的 lm_head 替换成 reward_model 的 lm_head。

另外,一个优秀的大模型,无论是在训练阶段,还是线上部署阶段,其背后默默付出的小模型都数不胜数。。这句话怎么说呢,是我在训 domain 分类器的时候,发现 Qwen2-1.5B 的准确率和召回率都不如 Qwen2-0.5B 高。在一番讨论和实验分析之后,我认可了大佬同事的观点:模型越大,其学习能力越强,但也意味着其更容易过拟合。

传统机器学习模型做的事情都是特征抽取,去从输入的特征中提取出看不到的特征,像 xgboost 这种还会计算每个特征的重要程度。但由于 llm 的参数量足够大,再加上 decoder_only 的结构,它真的可以做到记住所有的输入特征(decoder_only 是一个纯信息检索结构,它不压缩任何 token 信息,和 BERT 的 CLS 位压缩信息完全是两种做法)。

因此,较大的模型虽然上限更高,但其所依赖的数据质量也更高,如果你的训练数据是有失偏颇的,分布不均衡的,它完全可以记住这些数据的 pattern,而不是从这些 pattern 中抽取共同特征。我的 0.5B 模型效果好于 1.5B 模型大概率就是这种情况:我使用了 4 个数据源作为训练集,但测试集来自于 10 个数据源。

写在最后

诚然,大模型的出现,解决了困扰 nlp 多年的指代消解、多轮理解、对话人设等瓶颈,但小模型的信息压缩、特征抽取等依然是非常有意义的。我们在工作中,还是应该多考虑一下能不能用小模型来解决问题,找找我们的老朋友 BERT,而不是二话不说就打开 GPT4 写 prompt。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉3.大模型落地应用案例PPT👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值