当前位置: 首页 > news >正文

文心一言大模型4.5系列开源测评

一、模型介绍

6月30日,百度多模态大模型 ERNIE-4.5-VL-424B-A47B 正式开源,该模型支持文本与视觉理解,总参数量424B,激活参数量47B。基于异构混合专家架构MoE,融合跨模态预训练与高效推理优化,具备强大的图文生成、推理和问答能力,适用于复杂多模态任务场景。

文心4.5系列开源模型共10款,涵盖了激活参数规模分别为47B和3B的混合专家(MoE)模型(最大的模型总参数量为424B),以及0.3B的稠密参数模型。
在这里插入图片描述

快速体验入口:https://gitcode.com/paddlepaddle/ERNIE-4.5-VL-424B-A47B-Paddle
Hugging Face:https://huggingface.co/baidu
GitHub:https://github.com/PaddlePaddle/ERNIE

二、模型架构分析

2.1 核心优势

多模态异构 MoE 预训练

  • 目标:该模型基于文本和视觉模态进行联合训练,以更好地捕捉多模态信息的细微差别,并提升文本理解与生成、图像理解以及跨模态推理等任务的性能。
  • 方法:为了实现这一目标,避免一种模态阻碍另一种模态的学习,设计了一种异构 MoE 结构,并引入了模态隔离路由,并采用了路由器正交损失和多模态标记平衡损失。
  • 优势:这些架构选择确保两种模态都得到有效表示,从而在训练过程中实现相互强化。

可扩展高效的基础设施

提出了一种新颖的异构混合并行和分层负载均衡策略,以实现 ERNIE 4.5 模型的高效训练。通过采用节点内专家并行、内存高效的流水线调度、FP8 混合精度训练和细粒度重计算方法,实现了卓越的预训练吞吐量。

在推理方面,我们提出了多专家并行协作方法和卷积码量化算法,以实现 4 位/2 位无损量化。此外,我们引入了具有动态角色切换的 PD 分解,以有效利用资源,从而提升 ERNIE 4.5 MoE 模型的推理性能。基于PaddlePaddle构建的ERNIE 4.5 可在各种硬件平台上提供高性能推理。

针对特定模态的后训练

为了满足实际应用的多样化需求,我们针对特定模态对预训练模型的变体进行了微调。我们的 LLM 针对通用语言理解和生成进行了优化。VLM 专注于视觉语言理解,并支持思考和非思考模式。每个模型都结合使用了监督微调 (SFT)、直接偏好优化 (DPO)或一种名为统一偏好优化 (UPO)的改进强化学习方法进行后训练。

2.2 实验测评分析

文心4.5系列模型均使用飞桨深度学习框架进行高效训练、推理和部署。在大语言模型的预训练中,模型FLOPs利用率(MFU)达到47%。实验结果显示,该系列模型在多个文本和多模态基准测试中达到SOTA水平,在指令遵循、世界知识记忆、视觉理解和多模态推理任务上效果尤为突出。模型权重按照Apache 2.0协议开源,支持开展学术研究和产业应用。此外,基于飞桨提供开源的产业级开发套件,广泛兼容多种芯片,降低后训练和部署门槛。
在这里插入图片描述

2.3 模型参数介绍

ERNIE-4.5-VL-424B-A47B 是在 ERNIE-4.5-VL-424B-A47B-Base 基础上训练而来的,其总参数达 424B、其中每个 token 激活 47B 参数。以下是模型的配置细节:
在这里插入图片描述

三、模型本地部署

1. 环境准备

在开始部署之前,请确保您的硬件环境满足以下要求:

GPU 驱动程序 >= 535
CUDA >= 12.3
CUDNN >= 9.5
Linux X86_64
Python >= 3.10
80G A/H 8 GPU

2. 模型下载

在部署期间可指定–model baidu/ERNIE-4.5-VL-424B-A47B-Paddle从 AIStudio 自动下载模型,并支持断点续传。你也可以从其他来源手动下载模型。

3. 启动服务

执行以下命令启动服务:由于模型参数大小为424B-A47B,在80G * 8 GPU机器上,请指定–quantization wint4(wint8也支持)

python -m fastdeploy.entrypoints.openai.api_server \--model baidu/ERNIE-4.5-VL-424B-A47B-Paddle \--port 8180 --engine-worker-queue-port 8181 \--cache-queue-port 8182 --metrics-port 8182 \--tensor-parallel-size 8 \--quantization wint4 \--max-model-len 32768 \--max-num-seqs 32 \--enable-mm \--mm-processor-kwargs '{"video_max_frames": 30}' \--limit-mm-per-prompt '{"image": 10, "video": 3}' \--reasoning-parser ernie-45-vl

4. 请求服务
启动后,当出现以下日志时,表示服务已准备就绪:

api_server.py[line:91] Launching metrics service at http://0.0.0.0:8181/metrics
api_server.py[line:94] Launching chat completion service at http://0.0.0.0:8180/v1/chat/completions
api_server.py[line:97] Launching completion service at http://0.0.0.0:8180/v1/completions
INFO:     Started server process [13909]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8180 (Press CTRL+C to quit)

5. 通过cURL请求

curl -X POST "http://0.0.0.0:8180/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{"messages": [{"role": "user", "content": [{"type":"image_url", "image_url": {"url":"https://paddlenlp.bj.bcebos.com/datasets/paddlemix/demo_images/example2.jpg"}},{"type":"text", "text":"From which era does the artifact in the image originate?"}]}]
}'

6. 通过python请求
FastDeploy 的 API 与 OpenAI 兼容,可以使用 Python 进行流式请求:

import openai
host = "0.0.0.0"
port = "8180"
client = openai.Client(base_url=f"http://{host}:{port}/v1", api_key="null")response = client.chat.completions.create(model="null",messages=[{"role": "user", "content": [{"type": "image_url", "image_url": {"url": "https://paddlenlp.bj.bcebos.com/datasets/paddlemix/demo_images/example2.jpg"}},{"type": "text", "text": "From which era does the artifact in the image originate?"},]},],stream=True,
)
for chunk in response:if chunk.choices[0].delta:print(chunk.choices[0].delta.content, end='')
print('\n')

7. 模型输出实例
带有推理的示例输出(推理内容在reasoning_content,响应在content):

{"id": "chatcmpl-c4772bea-1950-4bf4-b5f8-3d3c044aab06","object": "chat.completion","created": 1750236617,"model": "default","choices": [{"index": 0,"message": {"role": "assistant","content": "The artifact in the image ...","reasoning_content": "The user asks about ..."},"finish_reason": "stop"}],"usage": {"prompt_tokens": 1260,"total_tokens": 2042,"completion_tokens": 782}
}

四、产品测评

4.1 产品地址

  • 产品官网地址:https://yiyan.baidu.com/
    在这里插入图片描述

4.2 各项基础能力

1. 语言能力

在这里插入图片描述

2. 多语种能力

在这里插入图片描述

3. 数学能力

在这里插入图片描述

4. 代码能力

在这里插入图片描述
模型给出了很多不同正确的解法:
在这里插入图片描述
在这里插入图片描述

4.3 其他项目

为方便社区开发者适配和拓展应用场景,官方提供了文心大模型多种能力的技术实践手册,涵盖对话、检索增强、知识库问答以及 SFT/DPO 模型微调示例,大家可以在星河社区应用中心与精品项目中使用与探索!

星河社区:https://aistudio.baidu.com/overview
在这里插入图片描述

http://www.dtcms.com/a/276962.html

相关文章:

  • 【Leetcode】2410. 运动员和训练师的最大匹配数
  • 预处理器完整功能介绍和示例演示(LESS/SCSS)
  • 笔记-极客-DDD实战-基于DDD的微服务拆分与设计
  • MongoDB数据基本介绍
  • 决策树的相关理论学习
  • [论文阅读] 软件工程 | 首个德语软件工程情感分析黄金标准数据集:构建与价值解析
  • Java设计模式之行为型模式(命令模式)介绍与说明
  • 什么时候会用到 concurrent.futures?要不要背?
  • 【Linux | 网络】应用层
  • 003_了解Claude
  • 基于SpringBoot3集成Kafka集群
  • MongoDB性能优化实战指南:原理、实践与案例
  • 【设计模式】职责链模式(责任链模式) 行为型模式,纯与不纯的职责链模式
  • 前端框架状态管理对比:Redux、MobX、Vuex 等的优劣与选择
  • ALB、NLB、CLB 负载均衡深度剖析
  • 闲庭信步使用图像验证平台加速FPGA的开发:第十二课——图像增强的FPGA实现
  • axios拦截器
  • spring cloud负载均衡分析之FeignBlockingLoadBalancerClient、BlockingLoadBalancerClient
  • 【Qt开发】Qt的背景介绍(一)
  • 时序预测 | Matlab代码实现VMD-TCN-GRU-MATT变分模态分解时间卷积门控循环单元多头注意力多变量时序预测
  • [特殊字符] Python自动化办公 | 3步实现Excel数据清洗与可视化,效率提升300%
  • 开源链动2+1模式、AI智能名片与S2B2C商城小程序在私域运营中的协同创新研究
  • 从零开始跑通3DGS教程:(五)3DGS训练
  • 《区间dp》
  • 一文读懂现代卷积神经网络—深度卷积神经网络(AlexNet)
  • 深入理解观察者模式:构建松耦合的交互系统
  • Redis技术笔记-从三大缓存问题到高可用集群落地实战
  • ESP-Timer入门(基于ESP-IDF-5.4)
  • JVM:内存、类加载与垃圾回收
  • 每天一个前端小知识 Day 30 - 前端文件处理与浏览器存储机制实践