「源力覺醒 創作者計劃」_全方面實測文心ERNIE-4.5-VL-28B-A3B開源大模型
- 1. 文心大模型4.5-28B概述
- 2. 部署ERNIE-4.5-VL-28B-A3B文心大模型
- 2.1. 創建GPU云主機
- 2.2. ERNIE-4.5-VL-28B-A3B部署
- 2.3. 創建大模型API交互接口
- 3. 文心大模型4.5-28B多方面性能評測
- 3.1. 語言理解方面
- 3.2. 邏輯推理方面
- 3.3. 知識問答方面
- 3.4. 代碼理解方面
- 3.5. 圖片識別方面
- 4. 文心大模型實測總結
1. 文心大模型4.5-28B概述
?? 一起來輕松玩轉文心大模型吧一文心大模型免費下載地址:https://ai.gitcode.com/paddlepaddle/ERNIE-4.5-VL-424B-A47B-Paddle
?? 此次百度開源的ERINE-4.5系列模型共22個,包含2個多模態大模型,4個大語言模型及其不同變體的龐大家族,其核心采用了創新的異構多模態混合專家(MoE)架構,在提升多模態理解能力的同時,實現了文本處理性能的同步增強。每個版本的模型都開源了基座(帶Base)版本和后訓練版本(不帶Base)。
?? 本次實測以文心大模型 ERNIE-4.5-VL-28B-A3B
為例,分別從語言理解方面、邏輯推理方面、知識問答方面、代碼理解方面、圖片識別方面評測文心 ERNIE-4.5-VL-28B-A3B
大模型。
?? ERNIE-4.5-VL-28B-A3B
是百度研發的先進多模態大模型,采用異構混合專家架構(MoE),總參數量280億,每token激活30億參數。深度融合視覺與語言模態,支持圖像理解、跨模態推理及雙模式交互(思維/非思維模式)。通過模態隔離路由和RLVR強化學習優化,適用于復雜圖文任務。支持FastDeploy單卡部署,提供開箱即用的多模態AI解決方案。
?? ERNIE-4.5-VL-28B-A3B
專注于三個核心能力:圖像理解、特定任務微調和多模態思維鏈推理,并進行了系統的數據構建和訓練策略優化。使用RLVR(具有可驗證獎勵的強化學習)來進一步提高對齊和性能。經過 SFT和RL階段后,最終得到了ERNIE-4.5-VL-28B-A3B
大模型。
?? ■ 文心大模型下載:https://ai.gitcode.com/theme/1939325484087291906
?? 以下是ERNIE-4.5-VL-28B-A3B
模型需要的配置信息:
2. 部署ERNIE-4.5-VL-28B-A3B文心大模型
2.1. 創建GPU云主機
?? 可以選擇SM80/90架構的GPU或者SM86/89架構的GPUs都可以,本次實測選擇A100顯卡:
?
?? 成功運行一臺A100云主機,操作系統是Ubuntu22.04,接下來我們的操作都是基于該GPU云主機實操:
2.2. ERNIE-4.5-VL-28B-A3B部署
?? ■ 第一步:安裝Python虛擬環境,隔離項目依賴,避免系統環境混亂:
root@10-60-19-102:~# apt update
(py310) root@450f5c84948a:~# python3 -m venv myenv
(py310) root@450f5c84948a:~# source myenv/bin/activate
(myenv) (py310) root@450f5c84948a:~#
(myenv) (py310) root@450f5c84948a:~# python --version
Python 3.10.16
?? ■ 第二步:安裝GPU版本的paddlepaddle:
?? 參考paddlepaddle官方網站:https://www.paddlepaddle.org.cn/install/FastDeploy
python -m pip install paddlepaddle-gpu==3.1.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
?? 安裝完成之后一定要驗證下,當出現PaddlePaddle is installed successfully!
表示安裝成功。
(myenv) (py310) root@450f5c84948a:~# cat check_paddlepaddle_gpu.py
import paddle
paddle.utils.run_check()
?? ■ 第三步:安裝fastdeploy:
?? ● 如果是SM80/90架構的GPU(例如A30/A100/H100),則使用下面的命令安裝,因為我們選擇的GPU就是A100,所以就使用下面的命令進行安裝:
python -m pip install fastdeploy-gpu -i https://www.paddlepaddle.org.cn/packages/stable/fastdeploy-gpu-80_90/ --extra-index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
?? 安裝完成后的結果如下:
?? ● 如果是SM86/89架構的GPUs(例如 A10/4090/L20/L40),則使用下面的命令安裝:
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
?? 安裝完成之后一定要驗證下,當出現True
和gpu:0
的時候表示安裝成功:
python -c "import paddle; print(paddle.is_compiled_with_cuda()); print(paddle.device.get_device())"
?? 如果輸出為False
和cpu
,表示PaddlePaddle未啟用GPU加速,需要重新安裝與CUDA 版本匹配的paddlepaddle-gpu)
?? ■ 第四步:配置主機名與IP的映射關系
部署大模型過程中會因為主機名無法解析為IP地址,導致DNS解析失敗。所以需要提前手動配置主機名與IP的映射關系
(myenv) (py310) root@450f5c84948a:~# hostname
450f5c84948a
(myenv) (py310) root@450f5c84948a:~# vim /etc/hosts
# <nerdctl>
127.0.0.1 450f5c84948a # 加上這一條
#127.0.0.1 localhost localhost.localdomain
::1 localhost localhost.localdomain
?? ■ 第五步:啟動推理:
?? https://gitcode.com/paddlepaddle/ERNIE-4.5-VL-28B-A3B-Paddle
python -m fastdeploy.entrypoints.openai.api_server \--model baidu/ERNIE-4.5-VL-28B-A3B-Paddle \--port 8180 \--metrics-port 8181 \--engine-worker-queue-port 8182 \--max-model-len 32768 \--enable-mm \--reasoning-parser ernie-45-vl \--max-num-seqs 32
?? 整個運行過程如下:
?? 完成之后驗證下API接口是否可達:
(py310) root@450f5c84948a:~# curl -i http://0.0.0.0:8180/health
HTTP/1.1 200 OK
date: Sun, 20 Jul 2025 13:44:49 GMT
server: uvicorn
content-length: 0
2.3. 創建大模型API交互接口
?? ■ 文本交互接口方式
(py310) root@450f5c84948a:~# pip install requests
import requests
import json# 模型服務的API端點,需確保模型服務已啟動并可通過該地址訪問
url = "http://117.50.181.145:8180/v1/chat/completions"
# 請求頭,指定發送數據的格式為JSON
headers = {"Content-Type": "application/json"}# 初始化對話上下文列表,用于保存用戶輸入和模型回復的歷史
messages = []# 啟動對話循環,持續獲取用戶輸入并與模型交互
while True:# 獲取用戶輸入,提示用戶輸入內容user_input = input("請輸入: ")# 如果用戶輸入exit或quit(不區分大小寫),則退出對話循環if user_input.lower() in ['exit', 'quit']:break# 將用戶輸入以指定格式添加到對話上下文,role為user表示是用戶輸入messages.append({"role": "user", "content": user_input})# 構建請求體數據data = {# 指定要使用的模型,需與服務端部署的模型匹配"model": "baidu/ERNIE-4.5-VL-28B-A3B-PT",# 傳入對話上下文,包含歷史交互信息"messages": messages,# 溫度參數,控制模型輸出的隨機性,值越大越隨機"temperature": 0.7}try:# 發送POST請求到模型服務,將data轉為JSON字符串傳入response = requests.post(url, headers=headers, data=json.dumps(data))# 解析響應為JSON格式response_json = response.json()# 提取模型回復內容,從響應的特定結構中獲取result = response_json["choices"][0]["message"]["content"]# 輸出模型回復,標識為ERNIE的回復print("ERNIE: ", result)# 將模型回復添加到對話上下文,role為assistant表示是模型回復messages.append({"role": "assistant", "content": result})except requests.RequestException as e:# 如果請求過程中發生異常(如網絡問題、服務未響應等),捕獲并提示print("請求發生異常: ", e)except KeyError as e:# 如果響應JSON結構不符合預期,捕獲并提示print("解析響應失敗,缺少必要字段: ", e)except json.JSONDecodeError as e:# 如果響應內容無法正確解析為JSON,捕獲并提示print("響應內容解析為JSON失敗: ", e)
?? ■ 前端頁面接口交互方式
import gradio as gr
import requests
import json
import os
from PIL import Image
import io
import time
import uuiddef process_multimodal_input(image, text_input, history):"""處理多模態輸入并調用API"""if image is None and not text_input.strip():return history, "請上傳圖片或輸入文本"# 準備API請求url = "http://127.0.0.1:8180/v1/chat/completions"headers = {"Content-Type": "application/json"}# 構建消息內容content = []# 如果有圖片,添加圖片內容if image is not None:# 保存上傳的圖片到臨時文件temp_dir = "temp_images"os.makedirs(temp_dir, exist_ok=True)temp_path = os.path.abspath(f"{temp_dir}/temp_image_{uuid.uuid4()}.jpg")image.save(temp_path)# 使用本地文件路徑image_url = f"file://{temp_path}"# 添加圖片到內容content.append({"type": "image_url", "image_url": {"url": image_url}})# 添加文本到內容if text_input.strip():content.append({"type": "text", "text": text_input})else:# 如果用戶沒有輸入文本但上傳了圖片,添加默認提示if image is not None:content.append({"type": "text", "text": "描述一下這張圖片"})# 更新歷史記錄中的用戶消息user_message = {"role": "user", "content": content}# 構建完整的請求體,包含歷史消息messages = []# 添加歷史消息(僅文本部分)for msg in history:if msg[0]: # 用戶消息messages.append({"role": "user", "content": [{"type": "text", "text": msg[0]}]})if msg[1]: # 助手消息messages.append({"role": "assistant", "content": msg[1]})# 添加當前消息messages.append(user_message)payload = {"messages": messages}# 更新UI顯示history.append((text_input if text_input.strip() else "圖片查詢", None))yield history, ""try:response = requests.post(url, headers=headers, data=json.dumps(payload))response_data = response.json()# 從響應中提取內容if "choices" in response_data and len(response_data["choices"]) > 0:result = response_data["choices"][0]["message"]["content"]# 更新歷史記錄中的助手回復history[-1] = (history[-1][0], result)yield history, ""else:error_msg = "無法獲取響應,API返回格式異常。"history[-1] = (history[-1][0], error_msg)yield history, ""except Exception as e:error_msg = f"發生錯誤: {str(e)}"history[-1] = (history[-1][0], error_msg)yield history, ""def clear_chat():"""清除聊天歷史"""return [], ""# 創建Gradio界面
with gr.Blocks(title="文心大模型4.5") as demo:with gr.Column():with gr.Row():gr.Markdown("# 文心大模型4.5 - 多模態大模型智能助手,支持文本交互和圖像識別")# 聊天消息區域chatbot = gr.Chatbot(height=500)# 圖片上傳(隱藏)image_input = gr.Image(type="pil",label="",visible=False)# 文本輸入區域獨占一行text_input = gr.Textbox(placeholder="輸入消息或上傳圖片...",label="",lines=4,max_lines=10)# 按鈕組 - 獨立成行with gr.Row(): # 添加scale參數確保按鈕不被拉伸# 上傳圖片按鈕upload_btn = gr.UploadButton("🖼?",file_types=["image"])# 發送按鈕send_btn = gr.Button("發送")with gr.Row():gr.Markdown("? 2025 文心大模型4.5 | 基于Gradio構建的現代大模型交互界面")# 處理圖片上傳def handle_image_upload(image):return imageupload_btn.upload(fn=handle_image_upload,inputs=[upload_btn],outputs=[image_input])# 設置發送按鈕事件send_btn.click(fn=process_multimodal_input,inputs=[image_input, text_input, chatbot],outputs=[chatbot, text_input]).then(fn=lambda: None,inputs=[],outputs=[image_input])# 設置文本框回車發送text_input.submit(fn=process_multimodal_input,inputs=[image_input, text_input, chatbot],outputs=[chatbot, text_input]).then(fn=lambda: None,inputs=[],outputs=[image_input])# 啟動應用
if __name__ == "__main__":demo.queue()demo.launch(server_name="0.0.0.0")
3. 文心大模型4.5-28B多方面性能評測
3.1. 語言理解方面
?? 向大模型提問:文心大模型走向開源,意味著什么?
?? 結論:在對復雜語義、上下文關聯和隱含邏輯的精準把握,能夠處理多輪對話、歧義消除和跨領域知識遷移。
3.2. 邏輯推理方面
?? 小桐操場跑圈,一周2次,一次5圈或6圈。第一次跑5圈或6圈的概率均為0.5,若第一次跑5圈,則第二次跑5圈的概率為0.4,6圈的概率為0.6;若第一次跑6圈,則第二次跑5圈的概率為 0.6,4圏的概率為 0.4。小桐一周跑11圈的概率為?(答案是0.6)
?? 結論:因推理能力依賴上下文學習與模式匹配,文心大模型能夠捕捉復雜邏輯關系,順利完成類比推理、因果推斷和多步推理任務。
3.3. 知識問答方面
?? 向大模型提問:CSDN是一個什么平臺?
?? 結論:文心大模型通過知識問答展現出強大的語言理解與生成能力,能夠基于海量預訓練知識提供連貫、多樣化的答案,尤其在通用領域和上下文關聯性強的場景中表現很好。
3.4. 代碼理解方面
?? 向大模型提問: 使用Python寫一段從1加到100的程序代碼,并計算出總和。
?? 結論:文心大模型在代碼理解方面展現出強大的語法解析和語義推理能力,能夠通過預訓練學習編程語言的語法規則和常見模式,支持代碼補全、錯誤檢測和跨語言轉換等任務。
3.5. 圖片識別方面
?? 使用大模型識別如下圖片:
?
?? 結論:文心大模型在圖片識別方面展現出強大的能力,能夠精準識別圖像中的物體。然而面對復雜場景和特定文化背景的理解需要進一步優化,以更好地適應實際應用需求
?? 每一次對接口的請求其實都是有日志輸出的:
4. 文心大模型實測總結
?? ■ 多模態能力總結
在視覺常識、圖像描述、圖表解析等任務中表現優異,支持“思考模式”(深度推理)和“非思考模式”(快速響應),在視覺感知基準測試中超越同量級模型如 Qwen2.5-VL-32B。為了實現高效的協同訓練,模型引入了隔離路由機制避免特征干擾。
?? ■ 性能效率總結
ERNIE 4.5 基于飛槳(PaddlePaddle)深度學習框架,構建了一套極致高效的基礎設施。在推理端,ERNIE 4.5 同樣表現出色。它支持 4-bit/2-bit 無損量化,并引入了多專家并行協作、動態角色切換的PD解耦(PD disaggregation)等先進技術,在保證模型性能的同時,大幅降低了部署門檻和運行成本。
?? ■ 技術架構總結
?? ERNIE 4.5基于飛槳(PaddlePaddle)深度學習框架,構建了一套極致高效的基礎設施。ERNIE 4.5 對預訓練后的基礎模型進行了精細的模態專屬后訓練。傳統的多模態模型在聯合訓練時,常常面臨不同模態間信息“干擾”或“妥協”的挑戰。為解決這一難題,ERNIE 4.5 獨創性地設計了異構MoE架構。該架構的核心思想是,既允許不同模態(如文本和視覺)共享一部分參數以促進跨模態理解,又為每個模態保留了專用的專家網絡。
?? ● 語言模型(LLMs): 專注于通用語言理解與生成任務,通過監督微調(SFT)、直接偏好優化(DPO)等技術進行對齊,使其在指令遵循和知識問答方面表現卓越。
?? ● 視覺語言模型(VLMs): 重點強化視覺語言理解能力,并創新性地支持“思考模式(thinking mode)”和“非思考模式(non-thinking mode)”。非思考模式擅長快速的視覺感知,而思考模式則能在處理復雜推理任務時表現更佳。
序號 | 名字 | 簡介 |
---|---|---|
1 | ERNIE-4.5-VL-424B-A47B-Base-Paddle | 多模態,4240億參數,A47B版本,基座模型,Paddle框架 |
2 | ERNIE-4.5-VL-424B-A47B-Base-PT | 多模態,4240億參數,A47B版本,基座模型,后續訓練 |
3 | ERNIE-4.5-300B-A47B-Base-Paddle | 文本生成,3000億參數,A47B版本,基座模型,Paddle框架 |
4 | ERNIE-4.5-300B-A47B-Base-PT | 文本生成,3000億參數,A47B版本,基座模型,后續訓練 |
5 | ERNIE-4.5-VL-424B-A47B-Paddle | 多模態,4240億參數,A47B版本,Paddle框架 |
6 | ERNIE-4.5-VL-424B-A47B-PT | 多模態,4240億參數,A47B版本,后續訓練 |
7 | ERNIE-4.5-300B-A47B-Paddle | 文本生成,3000億參數,A47B版本,Paddle框架 |
8 | ERNIE-4.5-300B-A47B-PT | 文本生成,3000億參數,A47B版本,后續訓練 |
9 | ERNIE-4.5-300B-A47B-FP8-Paddle | 文本生成,3000億參數,A47B版本,FP8精度,Paddle框架 |
10 | ERNIE-4.5-300B-A47B-W4A8C8-TP4-Paddle | 文本生成,3000億參數,A47B版本,W4A8C8量化,TP4,Paddle框架 |
11 | ERNIE-4.5-300B-A47B-2Bits-Paddle | 文本生成,3000億參數,A47B版本,2Bits量化,Paddle框架 |
12 | ERNIE-4.5-VL-28B-A3B-Base-Paddle | 多模態,280億參數,A3B版本,基座模型,Paddle框架 |
13 | ERNIE-4.5-VL-28B-A3B-Base-PT | 多模態,280億參數,A3B版本,基座模型,后續訓練 |
14 | ERNIE-4.5-21B-A3B-Base-Paddle | 文本生成,210億參數,A3B版本,基座模型,Paddle框架 |
15 | ERNIE-4.5-21B-A3B-Base-PT | 文本生成,210億參數,A3B版本,基座模型,后續訓練 |
16 | ERNIE-4.5-VL-28B-A3B-Paddle | 多模態,280億參數,A3B版本,Paddle框架 |
17 | ERNIE-4.5-VL-28B-A3B-PT | 多模態,280億參數,A3B版本,后續訓練 |
18 | ERNIE-4.5-21B-A3B-Paddle | 文本生成,210億參數,A3B版本,Paddle框架 |
19 | ERNIE-4.5-21B-A3B-PT | 文本生成,210億參數,A3B版本,后續訓練 |
20 | ERNIE-4.5-0.3B-Base-Paddle | 文本生成,3億參數,基座模型,Paddle框架 |
21 | ERNIE-4.5-0.3B-Base-PT | 文本生成,3億參數,基座模型,后續訓練 |
22 | ERNIE-4.5-0.3B-Paddle | 文本生成,3億參數,Paddle框架 |
23 | ERNIE-4.5-0.3B-PT | 文本生成,3億參數,后續訓練 |
?? ERNIE-4.5大模型還需要更多的生產使用方面的評測,文心大模型4.5系列開源后還是非常值得歡迎的。也希望文心大模型可以更好更強。
?? 一起來輕松玩轉文心大模型吧一文心大模型免費下載地址:https://ai.gitcode.com/paddlepaddle/ERNIE-4.5-VL-424B-A47B-Paddle