跳到主要内容文心一言 4.5 开源版本地化部署表现与潜力实测 | 极客日志PythonAI算法
文心一言 4.5 开源版本地化部署表现与潜力实测
综述由AI生成百度文心 ERNIE 4.5 大模型的开源特性,包括多模态异构 MoE 架构及高效训练策略。详细阐述了基于 FastDeploy 工具在本地环境进行模型部署的步骤,涵盖环境准备、依赖安装及服务启动。通过通识、中文语境及写作能力测试,验证了轻量级模型(如 0.3B)在实际应用中的性能与响应速度,展示了其在降低大模型应用门槛方面的潜力。
小熊软糖33 浏览 引言
2025 年 6 月 30 日,百度文心大模型 4.5 系列正式开源。作为国内最早布局大模型研发的企业之一,百度所推出的文心大模型目前已跻身国内顶级大模型行列,此次开源无疑将对各行各业产生深远影响,进一步加速大模型的发展进程。接下来,就让我们一同探究文心一言 4.5 开源版本地化部署的表现与潜力。
一、文心大模型 ERNIE 4.5 开源介绍
1.1 开源版本介绍
文心 ERNIE 4.5 本次开源一次性发布了 10 款模型,覆盖基础、对话、多模态、思考等多个方向,此次开源的模型构建起从 0.3B(3 亿参数)到 424B(4240 亿参数)的完整梯度矩阵,能够精准匹配多样化场景的需求,为不同规模、不同类型的应用场景提供了恰到好处的技术支撑。

从百度文心官方公布的这张图中可以清晰看到,本次开源的大模型主要分为两类:一类是专注于文本处理的语言模型(LLMs);另一类是能够处理多种模态数据的视觉 - 语言模型(VLMs)。其中,普通模型以文本处理为核心,而带有'VL'标识的模型则具备多模态处理能力,能够实现对文本、图像等多种形式数据的理解与生成。
1.2 ERNIE 4.5 的主要特点和区别

其中 MoE 是指专家混合(MoE)架构,除最小的 0.3B 稠密模型外,其他模型都采用了 MoE 架构。MoE 架构可以动态的选择并激活不同的专家网络来处理输入,在保障高性能的同时,又有效提升了训练与推理效率。
模型名称中不带 -Base 后缀的通常表示这些模型在预训练的基础上,经过了进一步的后训练(Post-Trained)或微调,以优化其在特定应用场景下的性能。而带有 -Base 后缀的模型则是基础的预训练模型。
思考模式(Thinking Mode)与非思考模式(Non-Thinking Mode): 在'non-thinking'模式下,模型可以直接给出答案,无需复杂的推理过程。'both'模式(多见于 VL 模型)则使模型能根据任务需求,在直接响应与更深层次的'思考'(即复杂推理和分析)之间灵活切换。
二、文心 ERNIE 4.5 技术解析
2.1 多模态异构 MOE
异构 MoE(Heterogeneous MoE)作为 ERNIE 4.5 的核心架构,其创新的'异构模态 MoE'设计巧妙破解了多模态模型训练中的关键矛盾。该架构不仅支持跨模态参数共享(涵盖自注意力参数与专家参数共享),还能为各独立模态配置专用参数,实现了共享与专属的灵活平衡。

与传统的统一 MoE 不同,ERNIE 4.5 将专家 (Experts) 明确划分为三类:文本专家、视觉专家和共享专家。此外,文心还引入了一种模态感知的专家分配策略,其中视觉专家的参数仅为文本专家的三分之一,从而提高了视觉信息处理的效率。

2.2 高效训练与并行架构
在训练与推理环节文心也实现了关键的技术突破,在训练方面采用了异构并行策略融入 FP8 混合精度训练框架和容错系统,优化内存、通信和计算开销,其最大语言模型采用 8 路专家并行、12 路管道并行和 ZeRO-1 数据并行配置,实现 47% 的 MFU,来支撑超大规模模型开源落地。
2.3 针对特定模态的后训练策略
针对特定模态的后训练:为了满足实际应用的多样化需求,百度针对特定模态对预训练模型的变体进行了微调。其大模型针对通用语言理解和生成进行了优化。
对特定的模态的训练策略进行微调,对每个模型采用 SFT(监督微调)手把手教模型怎么做,DPO(直接偏好优化)通过用户偏好直接优化模型输出,让用户更喜欢模型的回答,UPO(统一偏好优化)使模型在多任务场景,能同时兼顾用户的多种偏好,来满足实际应用的不同要求。
三、文心一言 4.5 开源版本地化部署
相信经过以上介绍,大家对文心 ERNIE 4.5 大模型的架构技术及各开源版本的特点与差异已有清晰认识。接下来,我们就直接进入大家都期待的本地化部署流程。
3.1 部署环境准备
下面是文心 4.5 不同型号模型对配置的要求,我们本次本地部署选择 ERNIE-4.5-0.3B-PT 的这个版本的轻量级模型,仅需一张 4090 系列显卡就满足配置要求了。
| 模型名称 | 上下文长度 | 量化方式 | 最低部署资源 | 说明 |
|---|
| baidu/ERNIE-4.5-VL-424B-A47B-Paddle | 32K/128K | WINT4 | 4×80G GPU 显存/1T 内存 | 128K 长度需启用分块预填充 |
| baidu/ERNIE-4.5-VL-424B-A47B-Paddle | 32K/128K | WINT8 | 8×80G GPU 显存/1T 内存 | 128K 长度需启用分块预填充 |
| baidu/ERNIE-4.5-300B-A47B-Paddle | 32K/128K | WINT4 | 4×64G GPU 显存/600G 内存 | 128K 长度需启用分块预填充 |
| baidu/ERNIE-4.5-300B-A47B-Paddle | 32K/128K | WINT8 | 8×64G GPU 显存/600G 内存 | 128K 长度需启用分块预填充 |
| baidu/ERNIE-4.5-300B-A47B-2Bits-Paddle | 32K/128K | WINT2 | 1×141G GPU 显存/600G 内存 | 128K 长度需启用分块预填充 |
| baidu/ERNIE-4.5-300B-A47B-W4A8C8-TP4-Paddle | 32K/128K | W4A8C8 | 4×64G GPU 显存/160G 内存 | 固定 4-GPU 配置,建议启用分块预填充 |
| baidu/ERNIE-4.5-300B-A47B-FP8-Paddle | 32K/128K | FP8 | 8×64G GPU 显存/600G 内存 | 建议启用分块预填充,仅支持带专家并行的 PD 分离部署 |
| baidu/ERNIE-4.5-300B-A47B-Base-Paddle | 32K/128K | WINT4 | 4×64G GPU 显存/600G 内存 | 建议启用分块预填充 |
| baidu/ERNIE-4.5-300B-A47B-Base-Paddle | 32K/128K | WINT8 | 8×64G GPU 显存/600G 内存 | 建议启用分块预填充 |
| baidu/ERNIE-4.5-VL-28B-A3B-Paddle | 32K | WINT4 | 1×24G GPU 显存/128G 内存 | 需启用分块预填充 |
| baidu/ERNIE-4.5-VL-28B-A3B-Paddle | 128K | WINT4 | 1×48G GPU 显存/128G 内存 | 需启用分块预填充 |
| baidu/ERNIE-4.5-VL-28B-A3B-Paddle | 32K/128K | WINT8 | 1×48G GPU 显存/128G 内存 | 需启用分块预填充 |
| baidu/ERNIE-4.5-21B-A3B-Paddle | 32K/128K | WINT4 | 1×24G GPU 显存/128G 内存 | 128K 长度需启用分块预填充 |
| baidu/ERNIE-4.5-21B-A3B-Paddle | 32K/128K | WINT8 | 1×48G GPU 显存/128G 内存 | 128K 长度需启用分块预填充 |
| baidu/ERNIE-4.5-21B-A3B-Base-Paddle | 32K/128K | WINT4 | 1×24G GPU 显存/128G 内存 | 128K 长度需启用分块预填充 |
| baidu/ERNIE-4.5-21B-A3B-Base-Paddle | 32K/128K | WINT8 | 1×48G GPU 显存/128G 内存 | 128K 长度需启用分块预填充 |
| baidu/ERNIE-4.5-0.3B-Paddle | 32K/128K | BF16 | 1×6G/12G GPU 显存/2G 内存 | 无 |
| baidu/ERNIE-4.5-0.3B-Base-Paddle | 32K/128K | BF16 | 1×6G/12G GPU 显存/2G 内存 | 无 |
对于本地部署百度提供了 FastDeploy 一键部署工具,FastDeploy 是基于 PaddlePaddle 的大型语言模型和可视化语言模型的推理部署工具包。它提供具有核心加速技术的生产就绪型开箱即用部署的解决方案。
以下是对基于 NVIDIA CUDA GPU 安装 FastDeploy,需要满足以下环境
| 依赖项 | 版本要求 |
|---|
| GPU 驱动程序 | ≥535 |
| CUDA | ≥12.3 |
| CUDNN | ≥9.5 |
| Python | ≥3.10 |
| Linux | X86_64 架构 |
建议使用支持 CUDA 的云实例或本地 GPU 环境,适用于各种 AI 深度学习、高性能计算等算力租用场景。服务器配置我们选择 4090 就够用了,镜像方面选择了 PyTorch2.5,它自带了安装文心意见部署工具 FastDeploy 所需的环境要求,这方面就不用我们费心了非常方便。
创建云实例成功后,有两种方式可连接实例:一是通过 SSH 密钥连接,二是借助 JupyterLab 可视化工具连接(推荐使用这种更便捷的方式)。点击进入 JupyterLab 可视化的工具的终端进入工作空间控制台。
然后我们就登录到终端的工作目录,可以来安装文心 4.5 FastDeploy 一键部署工具了。
3.2 安装部署工具
然后我们选择用 python 创建虚拟空间,主要是来保持系统环境清洁和隔离项目依赖。① 避免我们后续操作出现环境上的报错问题,确保依赖互不干扰。② 如果不用虚拟环境我们就可能会出现下面的报错。
1. 安装虚拟环境工具
apt update
apt install -y python3-venv
2. 创建虚拟环境,创建名为 fastdeploy-env 的虚拟环境
python3 -m venv fastdeploy-env/
3. 激活虚拟环境
source fastdeploy-env/bin/activate
4. 下载 GNU 依赖库
libgomp1 是 GNU OpenMP 库的一部分,用于支持程序中的并行计算(多线程并行处理),在后面我们启动服务是需要依赖 libgomp1 来实现并行计算加速。
apt update && apt install -y libgomp1 libssl-dev zlib1g-dev
5. 安装 paddlepaddle-gpu:3.1.0 版本
因为 FastDeploy 的部分核心功能(如模型解析、推理引擎适配)直接依赖 PaddlePaddle 的底层库,未安装 Paddle 的话,FastDeploy 将无法正确加载和运行 Paddle 模型来以提供 CUDA/CUDNN 等 GPU 加速所需的依赖。所以我们先安装一下 paddlepaddle-gpu。① 在这里我们一定要根据自己显卡厂商和 CUDA 的版本来选择安装命令,否则导致依赖冲突。② paddlepaddle-gpu 安装的详细说明请参考官方文档。
python -m pip install paddlepaddle-gpu==3.1.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
检测是否安装成功
paddlepaddle-gpu 安装好了我们可以使用一下代码检测一下,如果没问题那么就证明可以下一步了。① vi check.py 用 vim 编辑器创建一个 python 文件,把代码复制进去。② python check.py 运行代码查看信息。
import paddle
paddle.utils.run_check()
这边可以看命令运行完之后,显示 paddlepaddle-gpu 安装成功,现在就开始使用 PaddlePaddle 进行深度学习吧。
6. 安装 fastdeploy
下载完 fastdeploy 工具后面把模型拉取之后,我们就可以一键启动我们的 ERNIE-4.5-0.3B-PT 了。① 在下载时我们要注意使用自己 CPU 架构对应的版本来安装下载,不然就会启动失败。② fastdeploy 的安装手册请参考官方 GitHub。
我们本次显卡是 4090 所以直接选择对应版本的命令下载就好了。
python -m pip install fastdeploy-gpu -i https://www.paddlepaddle.org.cn/packages/stable/fastdeploy-gpu-86_89/ --extra-index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
看到下面这种就是成功安装了 fastdeploy。
验证 PaddlePaddle GPU 是否支持
安装完成后,再次运行以下命令,确认输出为 True 和 gpu,如果输出结果为 False cpu 表示这意味着 PaddlePaddle 没有使用 CUDA 编译,只能在 CPU 上运行。需要重新安装 paddlepaddle-gpu:3.1.0。
python -c "import paddle; print(paddle.is_compiled_with_cuda()); print(paddle.device.get_device())"
3.3 拉取文心 ERNIE 4.5 启动大模型
以上运行模型需要的环境就全部搭建好,其实整个过程还是非常简单了只需要输入几行命令 5 分钟就可以快速部署起来了,下面我们去官方仓库拉取 ERNIE-4.5-0.3B-PT 开源项目来一键部署文心大模型 4.5 系列开源模型。
1. 下载 git 工具(如果系统有就不用下载了,直接拉取就好)
ERNIE-4.5-0.3B-PT 开源地址请查阅官方发布页。
修改主机映射(避免 DNS 解析失败)
为了避免大模型后续启动解析主机名(或获取本机 IP)时,DNS 解析失败。使用我们这里修改一下主机的配置来让主机名与本机 IP 的映射。
一键启动 ERNIE-4.5-0.3B-PT
当下方显示 8180 端口启动时,咱们的大模型就部署完成了。服务启动了一定要注意,不要 Ctrl+C 退出连接,否则服务会停止,API 也无法访问了。
查看端口是否连接成功,验证服务状态(HTTP 200 表示成功)
curl -i http://0.0.0.0:8180/health
下载 requests 库发送 HTTP 请求
首先我们需要下载一个 requests 库发送 HTTP 请求。
3.4 本地化部署总结
整体来说部署文心 4.5 大模型过程还是非常简单的,利用官方提供的 FastDeploy 部署工具就可以一键完成模型部署,整个部署流程被高度简化,开发者无需复杂配置,只需输入预设命令即可实现模型的一键启动,极大降低了操作难度。
并且在在模型量化、对齐、LoRA 精调等方面也无需担心。百度早已准备好了,开源了文心大模型开发套件 ERNIEKit,提供预训练、全参精调(SFT)、直接偏好优化(DPO)、参数高效精调与对齐(SFT-LoRA/DPO-LoRA)、训练感知量化(QAT)和训练后量化(PTQ)等大模型全流程开发支持,帮我们轻松玩转大模型。
四 部署测试
4.1 测试环境准备
创建测试文件开始测试
这里我给大家准备了一个 python 的大模型交互程序来方便我们进行和大模型交互,把下面代码复制进 test 文件。
import requests
import json
url = "http://127.0.0.1:8180/v1/chat/completions"
headers = {"Content-Type": "application/json"}
messages = []
while True:
user_input = input("你:")
if user_input.lower() in ['exit', 'quit']:
break
messages.append({"role": "user", "content": user_input})
data = {
"model": "baidu/ERNIE-4.5-VL-28B-A3B-PT",
"messages": messages,
"temperature": 0.7
}
try:
response = requests.post(url, headers=headers, data=json.dumps(data))
response_json = response.json()
result = response_json["choices"][0]["message"]["content"]
print("ERNIE: ", result)
messages.append({"role": "assistant", "content": result})
except requests.RequestException as e:
print("请求发生异常:", e)
except KeyError as e:
print("解析响应失败,缺少必要字段:", e)
except json.JSONDecodeError as e:
print("响应内容解析为 JSON 失败:", e)
4.2 通识基础测试
4.3 中文复杂语境测试
问题:请解析以下古诗并仿写一句:
枯藤老树昏鸦,小桥流水人家,古道西风瘦马。夕阳西下,断肠人在天涯。
创建测试文件二
import requests
import json
def test_ernie_model():
url = "http://127.0.0.1:8180/v1/chat/completions"
headers = {"Content-Type": "application/json"}
test_question = """ 请解析以下古诗并仿写一句: 枯藤老树昏鸦,小桥流水人家,古道西风瘦马。夕阳西下,断肠人在天涯。 """
data = {
"model": "baidu/ERNIE-4.5-0.3B-PT",
"messages": [{"role": "user", "content": test_question.strip()}],
"temperature": 0.7,
"max_tokens": 500
}
try:
response = requests.post(
url, headers=headers, data=json.dumps(data), timeout=30
)
response.raise_for_status()
result = response.json()
if "choices" in result and len(result["choices"]) > 0:
answer = result["choices"][0]["message"]["content"]
print("模型回复:\n")
print(answer)
else:
print("未获取到有效回复")
print("完整响应:", result)
except requests.exceptions.RequestException as e:
print(f"请求发生错误:{e}")
except json.JSONDecodeError:
print("响应解析失败,非 JSON 格式")
except Exception as e:
print(f"发生意外错误:{e}")
if __name__ == "__main__":
print("正在测试 ERNIE-4.5-0.3B 模型...")
print("测试问题:解析《天净沙·秋思》并仿写\n")
test_ernie_model()
文心 4.5 这次给了我们一个惊喜。原本以为 0.3B 参数的模型在古诗仿写任务上会有些吃力,没想到它的表现远超预期 —— 不仅完整写出了仿写句子,对原诗的解析也基本抓住了核心意思,整体表现可圈可点。
4.4 写作能力测试
问题:请创作一个 600 字左右的童话故事,要求:
- 主人公是一个小女孩
- 包含'魔法森林'场景
- 故事要有简单的情节发展和温暖的结局
- 语言风格适合儿童阅读,用词生动形象
创建测试文件三
import requests
import json
def generate_fairy_tale():
url = "http://127.0.0.1:8180/v1/chat/completions"
headers = {"Content-Type": "application/json"}
prompt = """ 请创作一个 400 字左右的童话故事,要求: 1. 主人公是一个小女孩 2. 包含'魔法森林'场景 3. 故事要有简单的情节发展和温暖的结局 4. 语言风格适合儿童阅读,用词生动形象 """
data = {
"model": "baidu/ERNIE-4.5-0.3B-PT",
"messages": [{"role": "user", "content": prompt.strip()}],
"temperature": 0.8,
"max_tokens": 600,
"top_p": 0.9
}
try:
response = requests.post(
url, headers=headers, data=json.dumps(data), timeout=60
)
response.raise_for_status()
result = response.json()
if "choices" in result and len(result["choices"]) > 0:
story = result["choices"][0]["message"]["content"]
print("生成的童话故事:\n")
print(story)
return story
else:
print("未能生成故事,请检查模型服务")
return None
except Exception as e:
print(f"生成过程出错:{str(e)}")
return None
if __name__ == "__main__":
print("正在生成包含小女孩和魔法森林的童话故事...\n")
generate_fairy_tale()
文心 4.5 0.3B 模型这次同样交出了令人满意的答卷,完美达成了我们的创作需求。从发送请求到接收完整故事,整个过程仅耗时约 3 秒,响应速度远超预期。生成的童话故事不仅紧扣'小女孩'与'魔法森林'的核心要素,篇幅控制在 400 字左右,语言风格也贴合儿童阅读习惯。
五、总结
文心 ERNIE 4.5 开源版本通过架构创新、高效部署工具与轻量化模型设计,降低了大模型应用门槛,在保证性能的同时,具备快速响应、低资源占用等优势。即便是 0.3B 的参数模型在我们的实际测试中也展现了不错的表现,极具竞争力。
我相信,未来文心 4.5 凭借其在中文领域的深厚根基和百度生态的强大支持,会在国内市场占据重要地位,并进一步推动全球人工智能产业的发展。
相关免费在线工具
- 加密/解密文本
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- 随机西班牙地址生成器
随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
- Gemini 图片去水印
基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online
- curl 转代码
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online