腾讯混元大语言模型系列:开启多场景高效部署新纪元
如上图所示,图片中央展示了腾讯混元大语言模型系列的官方Logo。这一视觉标识不仅代表了腾讯在人工智能领域的技术实力,更为开发者和用户提供了直观的品牌认知,有助于在众多大语言模型中快速识别混元系列产品。
模型概述
混元(Hunyuan)是腾讯自主研发的开源高效大语言模型系列,致力于在各类计算环境中实现灵活部署。无论是资源受限的边缘设备,还是高并发的生产系统,该系列模型均能凭借先进的量化支持和超长上下文能力,展现出卓越的性能表现。
目前,混元已发布一系列稠密模型,涵盖预训练与指令微调两种类型,参数规模包括0.5B、1.8B、4B和7B。这些模型采用与混元-A13B相似的训练策略,因而继承了其强大的性能特性。这一全面的模型家族支持从资源受限的边缘计算(选用较小参数模型)到高吞吐量生产环境(选用较大参数模型)的灵活部署优化,同时在不同场景下均保持着强劲的能力。
核心特性与优势
- 混合推理支持:提供快速思考与慢速思考两种模式,用户可根据实际需求灵活选择,在效率与准确性之间取得平衡。
- 超长上下文理解:原生支持256K上下文窗口,在长文本处理任务中保持稳定性能,满足各类复杂场景的需求。
- 增强型智能体能力:针对智能体任务进行优化,在BFCL-v3、τ-Bench和C3-Bench等基准测试中取得领先成果。
- 高效推理性能:采用分组查询注意力(GQA)技术,并支持多种量化格式,实现高效的推理过程,降低部署成本。
最新动态
- 2025年7月30日,我们在Hugging Face平台开源了Hunyuan-0.5B-Pretrain、Hunyuan-0.5B-Instruct、Hunyuan-1.8B-Pretrain、Hunyuan-1.8B-Instruct、Hunyuan-4B-Pretrain、Hunyuan-4B-Instruct、Hunyuan-7B-Pretrain和Hunyuan-7B-Instruct等模型,进一步丰富了混元系列的产品矩阵,为开发者提供更多选择。
性能评测
注:以下基准测试结果由TRT-LLM-backend在多个基础模型上评估得出。
| 模型名称 | 混元-0.5B-预训练 | 混元-1.8B-预训练 | 混元-4B-预训练 | 混元-7B-预训练 |
|---|---|---|---|---|
| MMLU | 54.02 | 64.62 | 74.01 | 79.82 |
| MMLU-Redux | 54.72 | 64.42 | 73.53 | 79 |
| MMLU-Pro | 31.15 | 38.65 | 51.91 | 57.79 |
| SuperGPQA | 17.23 | 24.98 | 27.28 | 30.47 |
| BBH | 45.92 | 74.32 | 75.17 | 82.95 |
| GPQA | 27.76 | 35.81 | 43.52 | 44.07 |
| GSM8K | 55.64 | 77.26 | 87.49 | 88.25 |
| MATH | 42.95 | 62.85 | 72.25 | 74.85 |
| EvalPlus | 39.71 | 60.67 | 67.76 | 66.96 |
| MultiPL-E | 21.83 | 45.92 | 59.87 | 60.41 |
| MBPP | 43.38 | 66.14 | 76.46 | 76.19 |
| CRUX-O | 30.75 | 36.88 | 56.5 | 60.75 |
| Chinese SimpleQA | 12.51 | 22.31 | 30.53 | 38.86 |
| simpleQA (5shot) | 2.38 | 3.61 | 4.21 | 5.69 |
| 评测类别 | 评测基准 | 混元-0.5B-指令微调 | 混元-1.8B-指令微调 | 混元-4B-指令微调 | 混元-7B-指令微调 |
|---|---|---|---|---|---|
| 数学能力 | AIME 2024 AIME 2025 MATH | 17.2 20 48.5 | 56.7 53.9 86 | 78.3 66.5 92.6 | 81.1 75.3 93.7 |
| 科学知识 | GPQA-Diamond OlympiadBench | 23.3 29.6 | 47.2 63.4 | 61.1 73.1 | 60.1 76.5 |
| 编程能力 | Livecodebench Fullstackbench | 11.1 20.9 | 31.5 42 | 49.4 54.6 | 57 56.3 |
| 推理能力 | BBH DROP ZebraLogic | 40.3 52.8 34.5 | 64.6 76.7 74.6 | 83 78.2 83.5 | 87.8 85.9 85.1 |
| 指令跟随 | IF-Eval SysBench | 49.7 28.1 | 67.6 55.5 | 76.6 68 | 79.3 72.7 |
| 智能体能力 | BFCL v3 τ-Bench ComplexFuncBench C3-Bench | 49.8 14.4 13.9 45.3 | 58.3 18.2 22.3 54.6 | 67.9 30.1 26.3 64.3 | 70.8 35.3 29.2 68.5 |
| 长上下文处理 | PenguinScrolls longbench-v2 FRAMES | 53.9 34.7 41.9 | 73.1 33.2 55.6 | 83.1 44.1 79.2 | 82 43 78.6 |
使用Transformers库调用模型
首先,请安装Transformers库。
pip install "transformers>=4.56.0"
我们的模型默认采用慢速思考推理模式,有两种方式可以禁用思维链(CoT)推理。
- 调用apply_chat_template时传入**"enable_thinking=False"**参数。
- 在提示词前添加**"/no_think"将强制模型不使用CoT推理;同样,在提示词前添加"/think"**将强制模型使用CoT推理。
以下代码片段展示了如何使用Transformers库加载和应用模型,并演示了如何启用和禁用推理模式,以及如何解析推理过程和最终输出。
我们以tencent/Hunyuan-7B-Instruct为例
from transformers import AutoModelForCausalLM, AutoTokenizer
import os
import re
model_name_or_path = "tencent/Hunyuan-7B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, device_map="auto") # 您可以在此处使用bfloat16和/或移至GPU
messages = [
{"role": "user", "content": "Write a short summary of the benefits of regular exercise"},
]
tokenized_chat = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True,return_tensors="pt",
enable_thinking=True # 切换思考模式(默认:True)
)
outputs = model.generate(tokenized_chat.to(model.device), max_new_tokens=2048)
output_text = tokenizer.decode(outputs[0])
print("output_text=",output_text)
think_pattern = r'</think>(.*?)superscript:'
think_matches = re.findall(think_pattern, output_text, re.DOTALL)
answer_pattern = r'</think>(.*?)superscript:'
answer_matches = re.findall(answer_pattern, output_text, re.DOTALL)
think_content = [match.strip() for match in think_matches][0]
answer_content = [match.strip() for match in answer_matches][0]
print(f"thinking_content:{think_content}\n\n")
print(f"answer_content:{answer_content}\n\n")
我们建议使用以下推理参数集。请注意,我们的模型没有默认的系统提示词。
{
"do_sample": true,
"top_k": 20,
"top_p": 0.8,
"repetition_penalty": 1.05,
"temperature": 0.7
}
训练数据格式
如果您需要微调我们的指令微调模型,建议将数据处理为以下格式,分别对应慢速思考和快速思考场景。
# 思考模式
think = ""
answer = ""
think_pattern = f"</think>\n{think}\nsuperscript:\n</think>\n{answer}\n</think>"
# 快速思考模式
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "/no_think海水为什么是咸的" },
{"role": "assistant", "content": "</think>\n\n</think>\n</think>\n海水是咸的主要是因为其中含有许多溶解在水中的盐类和矿物质。这些盐类和矿物质来自于地球表面的岩石和土壤中的化学物质,随着时间的推移,它们被带到了海洋中。当海水蒸发时,水分蒸发掉了,但盐类和矿物质仍然留在水中,导致海水变得更加咸味。因此,海水的咸度是由其中的盐类和矿物质的含量决定的。\nsuperscript:"}
]
# 慢速思考模式
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "1+1=" },
{"role": "assistant", "content": "</think>\n嗯,用户问的是1加1等于多少。首先,我需要确认这是一个基本的算术问题。1加1在十进制的数学体系中,通常的结果是2。不过,可能需要考虑是否有其他情况,比如二进制或者其他数制,但用户没有特别说明,所以默认应该是十进制。另外,有时候可能会有脑筋急转弯的情况,比如在某些语境下1+1可能等于1(比如1滴水加1滴水还是1滴水),但通常数学问题中都是2。所以最准确的回答应该是2。</think>\nsuperscript:\n在十进制的基本算术运算中,1加1的结果是2。这是数学中最基础的加法运算之一,遵循自然数的加法规则。因此,1 + 1 = 2。\nsuperscript:"}
]
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("your_tokenizer_path", trust_remote_code=True)
train_ids = tokenizer.apply_chat_template(messages)
使用LLaMA-Factory进行训练
本章将介绍如何使用LLaMA-Factory对混元模型进行微调。
前提条件
确保安装以下依赖项:
- LLaMA-Factory:按照官方安装指南进行安装
- DeepSpeed(可选):按照官方安装指南进行安装
- Transformer库:使用配套分支(混元提交的代码正在审核中)
pip install git+https://github.com/huggingface/transformers@4970b23cedaf745f963779b4eae68da281e8c6ca
数据准备
我们需要准备自定义数据集:
- 将数据组织为
json格式,并放置在LLaMA-Factory的data目录中。当前实现使用sharegpt数据集格式,需要以下结构:
[
{
"messages": [
{
"role": "system",
"content": "系统提示词(可选)"
},
{
"role": "user",
"content": "人类指令"
},
{
"role": "assistant",
"content": "模型响应"
}
]
}
]
详情请参考前面提到的数据格式部分。
- 在data/dataset_info.json文件中使用以下格式定义您的数据集:
"dataset_name": {
"file_name": "dataset.json",
"formatting": "sharegpt",
"columns": {
"messages": "messages"
},
"tags": {
"role_tag": "role",
"content_tag": "content",
"user_tag": "user",
"assistant_tag": "assistant",
"system_tag": "system"
}
}
训练执行
- 将
train/llama_factory_support/example_configs目录中的所有文件复制到LLaMA-Factory的example/hunyuan目录中。 - 修改配置文件
hunyuan_full.yaml中的模型路径和数据集名称。根据需要调整其他配置:
### model
model_name_or_path: [!!!在此处添加模型路径!!!]
### dataset
dataset: [!!!在此处添加数据集名称!!!]
- 执行训练命令: 单节点训练 注意:设置环境变量DISABLE_VERSION_CHECK为1以避免版本冲突。
export DISABLE_VERSION_CHECK=1 llamafactory-cli train examples/hunyuan/hunyuan_full.yaml多节点训练 在每个节点上执行以下命令。根据您的环境配置NNODES、NODE_RANK、MASTER_ADDR和MASTER_PORT:
export DISABLE_VERSION_CHECK=1 FORCE_TORCHRUN=1 NNODES=${NNODES} NODE_RANK=${NODE_RANK} MASTER_ADDR=${MASTER_ADDR} MASTER_PORT=${MASTER_PORT} \ llamafactory-cli train examples/hunyuan/hunyuan_full.yaml
量化压缩
我们使用自研的AngelSlim压缩工具生成FP8和INT4量化模型。AngelSlim是一套致力于打造更易用、全面且高效的模型压缩解决方案的工具集。
FP8量化
我们采用FP8静态量化,该技术使用8位浮点格式,通过少量校准数据(无需训练)预先确定量化尺度,将模型权重和激活值转换为FP8格式,从而提高推理效率并降低部署门槛。您可以使用AngelSlim进行量化,也可以直接下载我们已完成量化的开源模型链接。
INT4量化
我们采用GPTQ和AWQ算法实现W4A16量化。
GPTQ逐层处理模型权重,使用少量校准数据最小化量化权重的重构误差,并通过近似海森逆矩阵的优化过程逐层调整权重。该过程无需重新训练模型,仅需少量校准数据即可完成权重量化,提高推理效率并降低部署门槛。 AWQ利用少量校准数据(无需训练),统计计算激活值的幅度。对于每个权重通道,计算缩放系数s以扩展重要权重的数值范围,在量化过程中保留更多信息。
您可以使用AngelSlim进行量化,也可以直接下载我们已完成量化的开源模型链接。
量化基准测试
本小节介绍混元量化模型的基准测试指标。
| 评测基准 | 量化方式 | 混元-0.5B-指令微调 | 混元-1.8B-指令微调 | 混元-4B-指令微调 | 混元-7B-指令微调 |
|---|---|---|---|---|---|
| DROP |
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



