今天小编分享的互联网经验:腾讯开源“最大”大模型:如果你也相信MoE,那咱们就是好朋友,欢迎阅读。
腾讯在 AI 上信什么?
一个是开源,一个是 MoE (混合专家模型)。
开源好理解,在大模型火热之后,加入战局的腾讯已经按照它自己的节奏开源了一系列模型,包括混元文生图模型等。
某种程度上,ChatGPT 是一个意外的发布,意味着所有人在大模型上都 " 落后 " 了,开源是追赶的一种方式,也是快速建立存在感吸引更多社区参与者来共建的方式。
而腾讯对 MoE 的笃信,此前则并没太被外界意识到。事实上,这家从广告业务到推荐功能等,一直在生产环境里大规模使用着 AI 算法的公司,在技术上对 MoE 的笃信到了某种 " 信仰 " 的程度。
许多细节此前并不太为人所知。比如,在生成式 AI 大模型火热之前,腾讯的许多模型就在使用 MoE 架构,包括 2021 年腾讯训练的 T5 模型,整个模型参数已经很大,不过与今天的 MoE 相比,每个专家的参数量较小。而 2024 年 11 月 5 日,腾讯再次开源了最新的 MoE 模型 Hunyuan-Large(混元 Large),一个至今全行业公开发布出来的最大参数的 MoE 架构的模型。
据腾讯介绍,腾讯混元 Large 模型总参数量 389B,激活参数量 52B ,上下文长度高达 256K,公开测评结果显示,腾讯混元 Large 在 CMMLU、MMLU、CEval、MATH 等多学科综合评测集以及中英文 NLP 任务、代码和数学等 9 个领網域取得领先,超过 Llama3.1、Mixtral 等一流的开源大模型。同时,它已经在腾讯业务场景中落地应用,经过实践的检验,是面向实用场景的应用级大模型。
MoE 是一种相对于稠密(dense)模型架构的设计。简单理解,稠密模型就是通过大力出奇迹训练出一个全知全能的神,来解决所有问题,它也是今天大模型火热背后,大家对大模型机制的朴素直觉的理解。而 MoE 放弃了造一个单独唯一的神,转而由多个各有所长分工明确的专家组来解决问题,也就是所谓的专家们的混合(Mixture of Experts)。
从这个简单的描述可以看出,MoE 似乎更符合今天训练遇到规模化瓶颈时的技术选择。不过,在今天的开源模型领網域,最强模型 Llama 3 在当时发布时最让业内惊讶的技术选择之一,就是没有使用 MoE 模型架构。这也让很多跟随 llama 体系的开源模型也继续坚持着稠密模型的路线。而现在腾讯显然不想跟着 llama 跑了。
在各种实验里寻找 MoE 的 Scaling Law
在 MoE 架构的开源模型里,最吸引开源社区注意的是 Mistral。这家公司成立于 2023 年 5 月,之后开始训练 MoE 架构的模型并提供给开源社区。据腾讯介绍,MoE 架构的模型在 2021 年已经成为腾讯训练大模型的选择。
在大模型因 ChatGPT 火热之后,腾讯并没有第一时间公布它的技术路线和模型,而之后,在 2024 年 3 月发布财报的电话会上,腾讯高管第一次透露了混元已经是一个万亿级别参数的 MOE 架构模型,而在那个时间点前后,业内也开始广泛达成共识,认为 OpenAI 使用的也是 MoE 架构。
在混元 Large 的发布会上,腾讯机器学习平台总监,腾讯混元大语言模型算法负责人康战辉表示,如果 scaling law 的本质是追求模型更大的规模以实现更强的能力,那么 MoE 是必定会走向的路线。他形容腾讯这么多年已经在 MoE 路线上摸索了很久。与过往大家围绕稠密模型建立的 scaling law 不同,因为模型架构上的改变,MoE 模型也有自己的 Scaling Law。
" 如果你只是想把模型撑的非常大,那么专家你可以 8 个,16 个,32 个甚至 64 个都可以。" 康战辉说。" 但如何找到最好的平衡配方,是需要很多的理解和积累的过程。我们从 21 年一路走来花了很多精力就是在理解这件事情。"
"MoE 模型的变量更多,我们需要找到 MoE 自己的 Scaling Law。" 他说。
腾讯为此做了大量的实验,具体方法是,設定了一套自己的中小模型簇,做大量的各种模型组的实验,而不是几个模型的实验。" 我们坚持用一种实验机制来保障它。"
而这次开源的过程,腾讯也把技术 " 秘方 " 做了总结。
它包括几个方面:
共享专家路由策略:混元 Large 有一个共享专家,也就是负责处理共享的通用能力和知识的专家模型,和 16 个特殊专家,负责处理任务相关的特殊能力,这些专家模型动态激活,利用稀疏的神经网络来高效率的进行推理。而训练这些不同的专家时,会遇到数据负载的挑战,在回收路由策略上,混元通过大量实验找到有效激活每个专家的方式,使其保持相对均衡的负载,根据 Batch size 缩放原则,匹配不同的学习率,充分利用训练数据,保证模型的训练稳定性和收敛速度。
高质量合成数据:今天自然数据开始出现瓶颈,根据 Gartner 报告预测,到 2030 年,合成数据在 AI 模型中的使用将完全超过真实数据。但合成数据目前的问题是,它的质量参差不齐,缺乏多样性,部分能力 / 任务相关数据稀缺。腾讯的方法是在天然文本语料库的基础上,利用混元内部系列大语言模型构建大量的高质量、多样性、高难度合成数据,并通过模型驱动的自动化方法评价、筛选和持续维护数据质量,形成一条完整数据辣取、筛选、优化、质检和合成的自动化数据链路。目前,它在数学和代码领網域获得了超过 10% 的提升。
长上下文处理能力:预训练模型支持高达 256K 的文本序列,Instruct 模型支持 128K 的文本序列,显著提升了长上下文任务的处理能力。腾讯还为此做了一个更接近真实世界的评测集,名字叫做 " 企鹅卷轴 ",也即将开源。
此外,在推理加速上,腾讯也使用了 KV 缓存压缩的技术:使用 Grouped-Query Attention (GQA)和 Cross-Layer Attention (CLA) 两种 KV Cache 压缩策略,从 head/layer 两个维度联合压缩 KV cache。同时再搭配上量化技术,提升压缩比。据腾讯数据,通过 GQA+CLA 的引入,最终将模型的 KVCache 压缩为 MHA 的 5%,大幅提升推理性能。
同时,在预训练之外,后训练阶段,腾讯在对齐上也做了很多技术优化。
据腾讯介绍,今天 SFT 通用领網域繁多,数学、代码高质量指令数据获取困难,业界广泛采用的离线 DPO,强化策略效果上限不高,泛化性弱等挑战,腾讯混元 Large 模型分门别类提升数学、逻辑推理、代码等能力,另外在一阶段离线 DPO 的基础上引入了二阶段在线强化策略。
目前混元 large 已经在 HuggingFace 上线,也同步上架了腾讯云 TI 平台。
壮大 MoE 的朋友圈
Llama3 系列当初之所以没有采用 MoE,在它的技术报告里给出的理由,主要指向了模型训练的稳定性。而这种稳定性不仅与模型训练的方法成熟度相关,也和整个训练生态对 MoE 架构的支持有关。比如,在 Llama 背后,支持它训练的 Meta 的计算集群里,像是基于 RoCE 的集群其实对 MoE 这类架构的运作方式有一定的适配问题,会带来控制上的问题从而导致效率的降低。
而据腾讯介绍,它自己的底层训练架构就是为支持 MoE 设计的。而且,这一次开源过程里,腾讯不只开源了模型,还把配套设施也提供了出来。
据腾讯介绍,本次开源提供了配套 Hunyuan-Large 模型的 vLLM-backend 推理框架。" 我们在 vLLM 开源框架的基础上适配了 Hunyuan-Large 模型,新增的 CLA 结构可以很大程度节约显存 ( KV-Cache 部分节省 50% ) ,保障超长文本场景。此外通过 FP8 的量化优化,相比 FP16/BF16 常规量化,在最大限度保障精度的条件下,节省 50% 显存,吞吐提升 70%。"
此外,Hunyuan-Large 也已经支持 huggingface 格式,支持用户采用 hf-deepspeed 框架进行模型精调。" 我们也支持利用 flash-attn 进行训练加速,为此,我们把相关的训练脚本和模型实现也开放给到社区,方便研发者在此基础上进行后续的模型训练和精调的操作。"
在此次混元 Large 背后,它的训练和推理均基于腾讯 Angel 机器学习平台。为了使得混元大模型具备更好的训练和推理性能,腾讯也将陆续开源混元 AnglePTM 和 AngeIHCF 等大模型工程框架。
这是要通过全套的服务来壮大 MoE 的朋友圈。
其实,这次混元 large 的开源,最有意思的并不只是模型本身,而是对于一向低调的腾讯,难得展示了它在大模型这个技术发展上内部所确定的理念和方向。
首先在技术路线选择上,面对 MoE 尚未有充分的生态支持,Llama 路线依然占据主流,并且追随它是 " 出成绩 " 更直接的选择时,它依然认定一直坚持的路线是对的。如果相信有一天大家都要走向 MoE,那么更早的通过开源和生态建设来让开发者聚拢在它这里就是个正确的决定。
这让它看起来有点像坚持 MoE 版的 Meta ——实打实的把大量资源用在了最强的开源模型上。甚至它比 Meta 更笃信它所开源的技术方案—— Meta 的 Llama 在它的 AI 掌舵人 Yann LeCun 眼里,看起来是个 " 过渡方案 ",他领导的研究部门 FAIR 要追求的世界模型,甚至被形容为是和开源 Llama 完全不同的方向。而腾讯正在开源的,自己业务里使用的,以及长期投入的方案都是一套。
" 我们内部说,我们不急于为了开源而开源,在内部业务打磨好后再开源。" 康战辉说。同一天,腾讯还开源了混元 3D 生成大模型,这是业界首个同时支持文字、影像生成 3D 的开源大模型。
" 要开就要有诚意,它必须是与我们自己用的模型同宗同源的。接下来我们还会继续基于 MoE 架构发布更多的模型。"