【百度拥抱开源】百度开源文心一言视觉大模型—— ERNIE-4.5-VL
ERNIE 4.5 技术亮点
ERNIE 4.5系列模型(特别是基于混合专家系统的A47B与A3B架构)的卓越能力源于以下核心技术创新:
-
多模态异构MoE预训练:通过文本与视觉模态的联合训练,模型能更精准捕捉跨模态信息的细微差异,显著提升文本理解生成、图像解析及跨模态推理任务的性能。为避免模态间相互干扰,我们创新设计了异构混合专家结构,采用模态隔离路由机制,并引入路由器正交损失与多模态令牌平衡损失函数。这些架构设计确保双模态特征得到充分表征,实现训练过程中的协同优化。
-
高效扩展基础设施:我们提出创新的异构混合并行与分层负载均衡策略来优化ERNIE 4.5训练效率。通过节点内专家并行、内存优化流水线调度、FP8混合精度训练及细粒度重计算技术,实现了卓越的预训练吞吐量。在推理阶段,采用多专家并行协作方法与卷积编码量化算法,达成4比特/2比特无损量化。进一步通过PD解耦架构与动态角色切换机制提升资源利用率,显著增强MoE模型推理性能。基于飞桨框架,ERNIE 4.5可在多种硬件平台上实现高性能推理。
-
模态专项微调:为满足实际应用场景的多样化需求,我们对预训练模型进行模态专项优化。其中通用大语言模型(LLM)专注于语言理解与生成任务,视觉语言模型(VLM)强化图文理解能力并支持\"思维\"与\"非思维\"双模式。各模型采用监督微调(SFT)、直接偏好优化(DPO)或我们改进的统一偏好优化(UPO)强化学习方法进行后期训练。
在视觉语言模型的微调阶段,视觉与语言的深度融合对模型在理解、推理和生成等复杂任务上的表现具有决定性作用。为提升模型在多模态任务上的泛化能力和适应性,我们聚焦图像理解、任务定制微调以及多模态思维链推理三大核心能力,开展了系统化的数据构建与训练策略优化。此外,我们采用RLVR(可验证奖励的强化学习)技术进一步提升对齐效果和性能表现。经过SFT和RL阶段的训练后,最终得到ERNIE-4.5-VL-28B-A3B模型。
模型概览
ERNIE-4.5-VL-28B-A3B是一款多模态MoE对话模型,总参数量达280亿,每个token激活参数量为30亿。以下是模型配置详情:
ERNIE-4.5-VL-424B-A47B是基于ERNIE-4.5-VL-424B-A47B-Base开发的多模态MoE对话模型,总参数量4240亿,单token激活参数470亿。以下是模型配置详情:
快速入门
使用 transformers
库
以下是如何使用transformers库进行推理的示例:
import torchfrom transformers import AutoProcessor, AutoTokenizer, AutoModelForCausalLMmodel_path = \'baidu/ERNIE-4.5-VL-28B-A3B-PT\'model = AutoModelForCausalLM.from_pretrained( model_path, device_map=\"auto\", torch_dtype=torch.bfloat16, trust_remote_code=True)processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True)processor.eval()model.add_image_preprocess(processor)messages = [ { \"role\": \"user\", \"content\": [ {\"type\": \"text\", \"text\": \"Describe the image.\"}, {\"type\": \"image_url\", \"image_url\": {\"url\": \"https://paddlenlp.bj.bcebos.com/datasets/paddlemix/demo_images/example1.jpg\"}}, ] },]text = processor.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, enable_thinking=False)image_inputs, video_inputs = processor.process_vision_info(messages)inputs = processor( text=[text], images=image_inputs, videos=video_inputs, padding=True, return_tensors=\"pt\",)device = next(model.parameters()).deviceinputs = inputs.to(device)generated_ids = model.generate( inputs=inputs[\'input_ids\'].to(device), **inputs, max_new_tokens=128 )output_text = processor.decode(generated_ids[0])print(output_text)
vLLM 推理
我们正在与社区合作,全力支持文心4.5模型的部署,敬请期待。
许可协议
文心4.5模型基于Apache License 2.0开源协议提供。该协议允许商业用途,但需遵守相关条款与条件。版权所有 © 2025 百度公司。保留所有权利。