🚀 ERNIE-4.5-21B
ERNIE-4.5-21B是一款强大的文本生成模型,基于先进的技术创新,在文本理解、生成等多方面表现出色。它具有多模态异构预训练能力、高效的训练和推理架构,能满足不同场景的应用需求。
⚠️ 重要提示
请注意:“-Paddle” 模型使用 PaddlePaddle 权重,而 “-PT” 模型使用 Transformer 风格的 PyTorch 权重。
✨ 主要特性
ERNIE 4.5 模型,特别是基于 MoE 的 A47B 和 A3B 系列,具备先进的能力,这得益于以下几个关键的技术创新:
-
多模态异构 MoE 预训练:我们的模型在文本和视觉两种模态上进行联合训练,以更好地捕捉多模态信息的细微差别,并提高在涉及文本理解与生成、图像理解和跨模态推理等任务中的性能。为了避免一种模态阻碍另一种模态的学习,我们设计了一种异构 MoE 结构,引入了模态隔离路由,并采用了路由正交损失和多模态令牌平衡损失。这些架构选择确保了两种模态都能得到有效表示,从而在训练过程中实现相互强化。
-
高效扩展的基础设施:我们提出了一种新颖的异构混合并行和分层负载均衡策略,用于 ERNIE 4.5 模型的高效训练。通过使用节点内专家并行、内存高效的流水线调度、FP8 混合精度训练和细粒度的重计算方法,我们实现了显著的预训练吞吐量。在推理方面,我们提出了多专家并行协作方法和卷积代码量化算法,以实现 4 位/2 位无损量化。此外,我们引入了具有动态角色切换的 PD 解聚功能,以有效利用资源,从而提高 ERNIE 4.5 MoE 模型的推理性能。基于 PaddlePaddle 构建,ERNIE 4.5 在广泛的硬件平台上都能实现高性能推理。
-
特定模态的后训练:为了满足现实世界应用的多样化需求,我们针对特定模态对预训练模型的变体进行了微调。我们的大语言模型(LLMs)针对通用语言理解和生成进行了优化。视觉语言模型(VLMs)专注于视觉语言理解,并支持思考和非思考两种模式。每个模型在后期训练中都采用了有监督微调(SFT)、直接偏好优化(DPO) 或一种名为统一偏好优化(UPO) 的改进强化学习方法。
📚 详细文档
模型概述
ERNIE-4.5-21B-A3B 是一个文本 MoE 后训练模型,总参数为 210 亿,每个令牌的激活参数为 30 亿。以下是模型配置的详细信息:
属性 |
详情 |
模态 |
文本 |
训练阶段 |
后训练 |
参数(总参数 / 激活参数) |
210 亿 / 30 亿 |
层数 |
28 |
头数(Q/KV) |
20 / 4 |
文本专家(总专家数 / 激活专家数) |
64 / 6 |
视觉专家(总专家数 / 激活专家数) |
64 / 6 |
共享专家 |
2 |
上下文长度 |
131072 |
🚀 快速开始
使用 transformers
库
⚠️ 重要提示
在使用该模型之前,请确保您已安装 transformers
库(版本 4.50.0 或更高)。
以下是一个代码片段,展示了如何使用该模型根据给定输入生成内容:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "baidu/ERNIE-4.5-21B-A3B-PT"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True)
prompt = "Give me a short introduction to large language model."
messages = [
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], add_special_tokens=False, return_tensors="pt").to(model.device)
generated_ids = model.generate(
model_inputs.input_ids,
max_new_tokens=1024
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
generate_text = tokenizer.decode(output_ids, skip_special_tokens=True).strip("\n")
print("generate_text:", generate_text)
vLLM 推理
使用 vllm 的 github 库,采用仅 Python 的 构建方式。
vllm serve baidu/ERNIE-4.5-21B-A3B-PT --trust-remote-code
📄 许可证
ERNIE 4.5 模型采用 Apache License 2.0 许可证。该许可证允许商业使用,但需遵守其条款和条件。版权所有 (c) 2025 百度公司。保留所有权利。
🧾 引用
如果您发现 ERNIE 4.5 很有用,或希望在您的项目中使用它,请引用我们的技术报告:
@misc{ernie2025technicalreport,
title={ERNIE 4.5 Technical Report},
author={Baidu ERNIE Team},
year={2025},
eprint={},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={}
}