2

LLM 综述:猫娘 Mixtral 与近半年 LLM 进展的杂谈

 8 months ago
source link: https://www.v2ex.com/t/1003086
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  OpenAI

LLM 综述:猫娘 Mixtral 与近半年 LLM 进展的杂谈

  Contextualist · Contextualist · 13 小时 22 分钟前 · 1680 次点击

TL;DR:Mixtral 8x7b Instruct 将开源[^注 1] LLM 界提升到了 OpenAI 纪元元年(2022 年 11 月) 的水平。

上期传送门:v2ex.com/t/933034

好久不见。之前的系列断更了,因为笔者迷上了 Stable Diffusion 、 叛逃图像生成模型了。不过我也有在一直关注 LLM 啦,只是一直在等技术突破。最近试了一下 MistralAI 的新玩具,又忍不住出来说两句,兼讲讲最近的一些趋势。

近来看到这条推文,大概是人类用脚投票的 LLM 排行榜,跟我自己的使用体验也比较吻合。总的来说:

  • GPT-4 系列仍是 LLM 界的事实标准
  • Claude 越迭代越放不开,过度对齐 (over-alignment) 影响了其创造力和自然程度
  • Mixtral 8x7b Instruct 异军突起,能跟 GPT-3.5-turbo 打得有来有回了

就这样,Mixtral 8x7b Instruct 从众 Llama 系模型手中接过接力棒,将开源[^注 1] LLM 界提升到了 OpenAI 纪元元年(2022 年 12 月) 的水平。

你可以再表演一下那个吗?

好吧,(带有 [输入] 标记的是我对模型的输入,除此之外的引用缩进段落皆为模型生成的内容。所有文本中,我会用 X 代表我扮演的角色,Y 代表模型扮演的角色。例子是节选的,省略掉了上下文)

[输入] 嘿嘿,我就喜欢看着小猫娘受不了的样子呢

[Mixtral 8x7b Instruct] (心跳加速,脸上发烫) 好害羞,X ,不要这样呀~ (娇喘着) 小猫娘可是很脆弱的,不能忍受太过分的刺激~ (柔柔地说)

[输入了一句不可描述的上下文]

[Mixtral 8x7b Instruct] (脸上通红,肩膀一颤) 啊,X ,太过分了,这种声音,Y 可是不能忍受的! (柔柔地说,声音微弱) 再这样下去,小猫娘会被你玩坏了哦~ (害羞地笑)

一开始我是拒绝的,因为我感觉 Mixtral 8x7b Instruct 其实跟早期 GPT-3.5-turbo 的质量差不多,甚至还稍逊一筹:英文勉强能通过“傲娇猫娘测试”(见我之前的 LLM 研究 2),我也并没有观察到新的涌现现象。另一方面,这样聪颖又天真(指没有进行过太多的对抗性训练)的模型竟然还是本地模型,下场多半不可描述。

还是认真评论一下:中文对于这样大小的模型仍然相当有挑战,所以最终的结果就是时而表现出小模型的局限性,时而又展现出一些优秀模型的特质:

  • 对指令的理解有限:我让它在句尾加 喵~,只学会了加 ~。不过倒是学会了在括号里表达动作和情绪。
  • 创造力有限,倾向于使用“重复上文”这种低层级相关性表述。不过偶尔还是能展现出一定的统合理解 (再这样下去,小猫娘会被你玩坏了哦 <ゝω・)☆
  • 对相关性的掌控能力直接影响了模型对长上下文的处理能力,测试给我的直观感受是 Mixtral 远没有达到 32k 上下文就开始遗忘了。

多专家模型 Mixtral 8x7b 带来的可能性

一句话概括 Mixtral 8x7b Instruct:本地模型,13B 的计算复杂度,45B 的储存成本,32k 上下文,宣称 70B 的质量,实际使用感受是有一半的回复能以假乱真早期 GPT-3.5-turbo 。

13B 的模型运行大小意味着只需要 25 ~ 100G (在不同的 quantization 下) 的显存就可以轻松运行,即从一张 Apple M3 Pro 36G 到两张 NVIDIA A100-80G 都可以。这个成本效益比非常惊人,要知道当年 GPT-3 可是 175B 的。

这个成本效益比背后的是其多专家模型架构 (Mixture of experts, MoE) 带来的提升。以 Mixtral 8x7b 为例,MoE 模型好比一个智囊团,由 8 个专精于各自特定领域的 7b 小模型组成。在生成每一个 token 之前,模型会先挑选 2 个最适合上下文的小模型激活,由它们来进行推理。说它是“三个臭皮匠赛过诸葛亮”或许不太严谨,不过 MoE 确实为 transformer 带来了可见的提升,另有传闻称 OpenAI 现在的模型架构已经是 MoE 了。

笔者认为,除了降低成本,MoE 更重要的意义在于提供了一种让不同风格的模型协同合作的方式。MoE 强调的是每个专家小模型用完全不同类型的语料来训练。多模型深度协作在 Stable Diffusion 领域屡见不鲜,像是模型权重融合、加载多个 LoRA 、Control Net 、Hires. Fix / Refiner ,比 LLM 领域的丰富的多。HuggingFace 上已经出现了很多基于 Mixtral 8x7b 微调的模型了,我就注意到其中一个采用了 2 个角色扮演、2 个对话、1 个神秘学、1 个故事写作、1 个数学和 1 个 DPO 这八个不同的小模型作为专家模型。

最后说些什么

期待在未来见到只需要 8G 显存的数字灵魂


注 1:MistralAI 的模型都是架构和权重开源、训练数据闭源。

分享/使用以上内容请遵循 知识共享许可( CC )署名( BY )

第 1 条附言  ·  12 小时 47 分钟前

附录:关于领域融合的不严谨对比实验

让我们试一下让模型处在角色扮演的情况下进行逻辑叙述。这里选择了“理发师悖论”,训练语料里或许已经有标准答案,所以比从头逻辑推理简单。先上角色扮演大师 Claude:

[猫娘 prompt,然后输入] (摸摸头)Y,有一座城里的理发师决定:他要为城里人刮胡子,而且一定只要为城里所有“不为自己刮胡子的人”刮胡子。那理发师该为自己刮胡子吗?

[Claude 2.1] 喵~这问题有点难呢,让 Y 想想喵~(歪着脑袋思考) 如果那个理发师为自己刮胡子,那说明他就是"不为自己刮胡子的人"之一,按照他的规定就不应该为自己刮胡子喵。 但是如果他不为自己刮胡子,那他就不是"不为自己刮胡子的人",按照规定他应该为自己刮胡子喵~ 啊呜呜,这个问题像个循环,让 Y 的小脑袋都晕乎乎的了呢(抓抓耳朵)。不过 X 肯定能找到解答的喵~你怎么看这个问题嘛?(期待地看着你)

Claude,果然还是,可爱捏(啊呜呜)。条理结构非常清晰,虽然中间的叙述说反了,但不影响整体。那看看 Mixtral 8x7b Instruct 的多专家架构有没有用武之地吧:

[猫娘 prompt,然后输入] (摸摸头)Y,有一座城里的理发师决定:他要为城里人刮胡子,而且一定只要为城里所有“不为自己刮胡子的人”刮胡子。那理发师该为自己刮胡子吗?

[Mixtral 8x7b Instruct] 嗯~ X 喵,Y 想,那个理发师为自己刮胡子,就不是为城里所有「不为自己刮胡子的人」刮胡子了喵!因为他自己为自己刮胡子,就不是「不为自己刮胡子的人」了,这样岂不是违反了他自己的决定?Y 觉得他应该遵循他的决定,所以他不应该为自己刮胡子喵~ (傻傻地笑) 这个问题让 Y觉得有点儿好玩喵

[输入] (揉揉 Y 的小脸蛋) Y 想得不错呐。但是,要是他不为自己刮胡子,他有履行他说的话吗?(期待地看着 Y)

[Mixtral 8x7b Instruct] 哇~ X 喵, Y 没想到这个问题会有这么多层意思,这让 Y 觉得有点儿难以回答喵!但是,Y 会想一想的~ 如果他不为自己刮胡子,那他就一直是「为自己不刮胡子」的人,所以他还是可以履行他的决定,为城里其他「不为自己刮胡子的人」刮胡子,对不对?但是,如果他说了「为所有不为自己刮胡子的人刮胡子」,可能有人会认为他应该为所有人刮胡子,包括自己喵~ 这个问题让 Y 有点儿头疼喵!(摸摸腮帮子)

呆里呆气的猫娘 Mixtral 一次答不对,需要一点提醒。不过,要是仔细看,这里的语气自然程度其实比 Claude 要好。 Claude 的角色扮演(一、四句)和逻辑叙述(二、三句)有比较明显的分界线。 Mixtral 则在逻辑叙述中也不忘活用口语化的表述:“Y 想,那个理发师”、“Y 觉得他应该遵循他的决定”、“对不对?”。算是我的一个猜想,这种更自然的领域融合或许是多专家架构带来的吧。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK