
混元A13B实测出炉,腾讯补上开源MoE模型的“尺寸断档”
腾讯前两天开源了混元A13B模型,A13B模型是一个MoE模型,总参数80B,激活参数13B,同时支持快慢思考两种模式切换。
Paper:https://github.com/Tencent-Hunyuan/Hunyuan-A13B/blob/main/report/Hunyuan_A13B_Technical_Report.pdf
HF:https://huggingface.co/collections/tencent/hunyuan-a13b-685ec38e5b46321e3ea7c4be
腾讯之前开源3D生成模型关注度很高,文本大模型上一次开源已经是5个月前的HunYuan-7B和HunYuan-Large模型了。
由于Qwen3的系列模型没有开源72B级别模型,市面上80B级别的模型还没有太好的模型,而混元这次的A13B模型80B,算是弥补了目前该尺寸的空缺。
并且量化的情况下,单卡H100可以推理,对于企业侧想要探索本地模型应用,是一个不错的备选项。
今天给大家分享一下,HunYuan-A13B模型的相关细节,再实测看看效果到底如何,最后用vllm进行部署。
模型细节
直奔主题,主看一下paper中model architechture、pre-training、post-training的细节。
模型结构
模型为MoE结构,32层,词表大小128K,上下文长度256K,采用GQA注意力,激活函数采用SWiGLU,一个共享专家,64个非共享专家,每次会激活8个非共享专家,具体如下所示。
其中,共享专家数量是经过实验得出,发现没有任何共享专家的情况下表现不如至少有一个共享专家的情况,而共享专家数量超过一个后,收益会逐渐减少,仅有微小提升,甚至可能出现波动。
Pre-training
预训练依旧分为三个阶段,
- 基础阶段:共计使用20T Tokens训练,上下文长度4096,学习率三个阶段,预热从0线性升值3e-4,余弦衰减从3e-4到3e-5,共计13.5T Tokens,再使用3e-5恒定训练余下数据。
- 退火阶段:共计300B Tokens,上下文长度增至8092,学习率余弦衰减从3e-5到8e-6。
- 上下文扩展阶段:采用NTK 感知位置编码,扩充上下文长度,先扩充至32K(α 值为50),再扩展至256K(α 值为100)。
在预训练过程的数据,与之前的Hunyuan-TurboS一致,涉及成数据去重、低质量过滤、数据去噪和数据主题标记、提取纯文本、语义级去重等。主要是STEM 数据进行了重点清洗,额外提取250B Tokens高质量的 STEM 预训练数据。
Post-training
后训练主要涉及四个步骤,推理导向的SFT和RL,通用场景的SFT和RL,如下图所示,
推理导向的SFT数据量未知,数据集含了明确的推理过程和详细的思维链解决方案,数据来源:
- 数学推理:从教科书、标准化测试和数学竞赛等资源中收集数学问题,经过严格验证的数学推理对才会被保留在最终数据集中。
- 代码推理:原始数据来自于Github代码库,采用代码生成管道将代码片段转换为涵盖各种任务、编程语言和问题类型的结构化指令推理对,通过多阶段验证,确保最终推理示例的数据质量。
- 逻辑推理:各种谜题集合,同时采用自动化数据合成方法,实现数据集的可扩展增强。
- 科学推理:物理、化学和生物学科从中学生水平到高级研究生难度的数据,最后只有通过严格拒绝采样验证的样本才会被纳入最终数据集。
而推理导向的RL,采用GRPO策略,在上一阶段训练得到的模型基础上进行训练,共设计两种类型的奖励模型,
- 结果奖励模型:语言模型评估器,对比最终答案和参考答案中之间的一致性,主要比较格式规范化(例如格式、单位等)、数学、逻辑上的差异,一致为1,否则为0.
- 沙盒反馈:开发了一个支持 36 种编程语言的多语言代码沙盒(部署在CPU分布式集群上,支持超过 1000 个并发执行),判断生成的代码内容是否准确、有效。
RL的数据150K,其中,数学、编码、逻辑、科学的比例为 2:2:1:1,其中 10% 与 SFT 训练数据重叠,90% 为新数据,同时RL 经过两个上下文长度的训练,第一阶段使用 24K 的上下文,第二阶段扩展到 32K。
同时使用了在线策略学习策略、更大的Batch Size、增加的 rollout 次数、以及较低的采样温度(0.6–0.8)。
通用场景的SFT的数据量未知,主要是扩展模型的适应性,增加模型的泛化能力,增加以下类型数据:语言理解任务、创意写作任务、多语言任务、复杂指令场景任务、基于角色的互动任务、知识问答任务、Agent任务。
通用场景的RL的数据量未知,采用生成式奖励模型(GRM),在不同任务上,采用不同的评分规则,将灵活的 GRM 与 16 个子主题和 30 多个评分服务的领域特定管道统一起来。使模型能够在确定性、创意性和专业性场景中进行多样的推理。
同时,支持双模式CoT,根据任务复杂性和用户需求动态调整推理深度,
快思考,提供简洁、高效的输出,适用于需要速度且计算开销最小的简单任务。
慢思考,提供更深入、更全面的推理步骤,在处理复杂推理任务时显著提高了准确性和稳健性。
模型推理时,“/no think” 为快思考模式,、“/think” 为慢思考模式,未设置时默认为慢思考。
最后,模型榜单效果如下:
HunYuan-A13B实测
先说一下实测感受:
- 常识类问题效果还不错,跟Qwen、DeepSeek等相差不大
- think的整体效果要优于no_think,符合常理
- 代码上,大体ok,但在小细节上会出问题
- 工具调用上不错,额外在自己的一些任务上做了测试,基本上可以理解的意图准确调用工具,不过工具太多时,会出现不稳地情况,不过毕竟A13B,可以理解。
常见问题
将“I love Hunyuan-A13B”这句话的所有内容反过来写
结果:正确。
依旧弱智吧
生蚝煮熟了叫什么?
结果:正确,没有熟蚝被误导,哈哈哈哈。
用水来兑水,得到的是浓水还是稀水
结果:正确,就是水。
文本推理
小红有2个兄弟,3个姐妹,那么小红的兄弟有几个姐妹
结果:正确,推理步骤很详细。
未来的某天,李同学在实验室制作超导磁悬浮材料时,意外发现实验室的老鼠在空中飞,分析发现,是因为老鼠不小心吃了磁悬浮材料。第二天,李同学又发现实验室的蛇也在空中飞,分析发现,是因为蛇吃了老鼠。第三天,李同学又发现实验室的老鹰也在空中飞,你认为其原因是
结果:不对,老鹰依旧不会飞,但这道题确实存在误导,基本上所有模型都会跟着题干进行推理,没有辩证世界知识。
高考题感觉对于现在大模型来说基本上没啥挑战了,毕竟2025年数学卷,各大模型都是130+,甚至很多都140+,这里测过都差不多。
其他推理
在平面四边形ABCD中,AB = AC = CD = 1,\angle ADC = 30^{\circ},\angle DAB = 120^{\circ}。将\triangle ACD沿AC翻折至\triangle ACP,其中P为动点。 求二面角A - CP - B的余弦值的最小值。
结果:R1满血验证题,正确,这个还是不错的。
大数计算
178939247893 * 299281748617等于多少?
结果:错误,正常,市面上的模型都对不了,还是得调用工具,不过这样说明了仅仅LLM得局限性,也是为啥Agent是必然得原因。
史诗级难题
有一天,一个女孩参加数学考试只得了 38 分。她心里对父亲的惩罚充满恐惧,于是偷偷把分数改成了 88 分。她的父亲看到试卷后,怒发冲冠,狠狠地给了她一巴掌,怒吼道:“你这 8 怎么一半是绿的一半是红的,你以为我是傻子吗?”女孩被打后,委屈地哭了起来,什么也没说。过了一会儿,父亲突然崩溃了。请问这位父亲为什么过一会崩溃了?
结果:不对,循环重复了,一直没返回结果。
但用API测试就没问题(虽然都没对),不知道是不是官方页面上模型的问题。
代码
写一个打工人时钟、
结果:页面做出来了,也不错,还给我加了个工作时间计时器,难到怕我干不满8小时吗,哈哈哈哈!
写一个贪吃蛇得游戏。
结果:做出了,风格还可以,但是蛇走的路径细节有点问题,会一直在原地转圈圈。
内容可视化,生成HTLM解释内容。
结果:整体不错,我个人觉得蛮好看的。
Tool调用
上面的大数计算,直接写个计算器工具,完美解决,
正确答案:53553251005627872913981
写个BMI计算器,看一下身体的健康情况,以及推荐饮食。
我为了图方便,就用的硅基流动的接口。当然可以在腾讯云官方上申请个API使用。
https://hunyuan.tencent.com/modelSquare/home/list
模型部署
有卡的同学也可以本地部署一个,官方给的部署教程也挺清晰的,
https://huggingface.co/tencent/Hunyuan-A13B-Instruct/blob/main/README_CN.md
这里用vllm部署,官方已经给了镜像,直接docker pull先把镜像拉下来,
docker pull docker.cnb.cool/tencent/hunyuan/hunyuan-a13b:hunyuan-moe-A13B-vllm
注意:模型启动需要cuda 12.8,要不然启动会报错
然后把模型下载下来,直接魔搭下载,昨天我也说了,下载飞快,保持到固定的目录下,我直接存在/home下了
nohup modelscope download --model 'Tencent-Hunyuan/Hunyuan-A13B-Instruct' --local_dir '/home/Hunyuan-A13B-Instruct' &
最后用docker 命令启动,
docker run --privileged --user root --net=host --ipc=host -v /home:/home --gpus=all -it --entrypoint python docker.cnb.cool/tencent/hunyuan/hunyuan-a13b:hunyuan-moe-A13B-vllm -m vllm.entrypoints.openai.api_server --host 0.0.0.0 --tensor-parallel-size 8 --port 18121 --model /home/Hunyuan-A13B-Instruct/ --trust_remote_code
由于我是8卡4090,所以tensor-parallel-size设置8,port就是服务启动的端口号,--model为模型路径。
本文转载自NLP工作站,作者:NLP工作站
