【模型測試】ai-eval-system在線評測系統v0.2預覽版本介紹 原創
ai-eval-system
這是一個基于OpenCompass的模型評測系統,該系統提供了前端頁面UI以方便用戶自助開展評測工作。
項目地址
??https://github.com/domonic18/ai-eval-system??
版本發布
v0.2:
- 支持API方式進行Dify平臺應用的評測
- 優化評測任務創建時的交互過程,包括API_URL等信息的輸入、數據集的選擇、評測信息的確認
- 優化評測任務頁面的顯示,區分我的評測和全部評測
- 優化評測任務終止時使用Celery原生方法不穩定的問題
- 服務進行Docker化,方便快速部署
v0.1:
- 支持基于OpenCompass的B/S架構的模型評測
- 支持API方式提交評測任務
- 支持評測任務的隊列管理功能,包括創建、排隊、運行、終止等
- 支持評測過程的日志的實時監控
- 支持評測結果的導出
系統功能
1. 創建評測任務
a.注冊并登錄系統
b.頂部菜單→在線評測→創建評測
c.選擇自定義API類型
d.在編輯框內輸入要測評的API_URL、API_KEY、MODEL_NAME
e.點擊下一步,選擇預置的數據集,例如:demo_math_chat_gen
f. 點擊下一步,開始評測即可。
2. 查看評測進程
a.創建評測任務之后
b.在評測記錄列表中,點擊日志按鈕,可以實時查看任務執行的日志情況
3. 查看評測結果
a.當評測任務執行完畢之后
b.在評測記錄列表中,點擊結果按鈕,可以查看評測執行結果
c.點擊"下載完整結果",可以將執行任務的完整記錄下載分析
說明:
- ?
?predictions?
? 目錄中的日志為對應評測數據集的詳細記錄,其中:- ?
?origin_prompt?
? 是測試的問題描述。- ?
?prediction?
? 是模型預測的答案。- ?
?gold?
? 是該問題的標準答案。
測試Dify平臺上的應用
第一步:頂部菜單→在線評測→創建評測
第二步:選擇 ??新建API方式?
?? -> ??Dify接入?
?
第三步:獲取Dify應用信息。獲取方法如下:
- 訪問自己搭建Dify平臺,例如:?
?https://guanghua.bj33smarter.com/?
?。 - 選擇要測試的應用,例如:?
?DeepSeek聊天?
? - 選擇?
?訪問API?
? - 獲取該應用的?
?Dify URL?
??和??Dify API KEY?
?
第四步:在評測系統中,輸入Dify平臺??Dify URL?
??和??Dify API KEY?
??,Dify應用類型選擇??Chat?
?,然后下一步選擇要測試的模型。
備注:
- Dify平臺上的應用類型為:?
?聊天助手?
??、??Agent?
??兩類應用,經過測試可用,在選擇應用類型時都選擇??Chat?
?類型。 - ?
?workflow?
? 類型應用還未進行測試,可能存在不可用問題。
備注:目前僅預置了幾個最為常見的評測數據集,后續需要根據實際業務場景配置或自定義數據集,如果大家有需求及建議,歡迎隨時與我溝通。
提交評測任務。確認信息無誤之后,點擊提交評測即可。
評測過程中,如果想查看提交給Dify應用的問題以及回答,可以通過Dify平臺的日志功能查看。
項目架構
系統架構流程
┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ ┌───────────────┐
│ │ │ │ │ │ │ │
│ 前端應用 │───?│ FastAPI │───?│ Celery 任務隊列 │───?│ OpenCompass │
│ (Vue3) │ │ 服務 │ │ (Redis) │ │ 評測引擎 │
│ │?───│ │?───│ │?───│ │
└─────────────┘ └─────────────┘ └─────────────────────┘ └───────────────┘
│ │ │ │
│ │ │ │
│ ▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ 數據存儲層 │
│ (MySQL + Redis ) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
1. 分層架構設計
- 前端層:Vue3 + WebSocket(實時狀態)
- 服務層:
a.API服務:FastAPI(RESTful API)
b.異步任務引擎:Celery + Redis(分布式任務隊列)
c.核心評測引擎:OpenCompass封裝層(Python API調用)
- 持久層:
a.MySQL(關系型數據)
c.Redis(緩存/消息中間件)
2. 關鍵技術組件
FastAPI: 提供高性能API服務,支持異步請求處理和自動API文檔生成
SQLAlchemy: ORM框架,實現數據模型與數據庫的映射
Celery: 分布式任務隊列,處理長時間運行的評測任務
Redis: 作為Celery的消息代理和后端存儲,同時提供緩存功能
OpenCompass: 核心評測引擎,提供模型性能評估能力
3. 目錄結構
ai-eval-system/
├── apps/ # 主應用目錄
│ ├── web/ # 前端工程
│ │ ├── src/
│ │ └── package.json
│ ├── server/ # 后端服務
│ │ ├── src/
│ │ └── start_celery_worker.py # 啟動Celery Worker
│ │ └── start_fastapi_server.py # 啟動FastAPI服務器
├── libs/ # 第三方依賴庫
│ └── OpenCompass/ # 通過git子模塊引入(保持獨立更新)
│ └── Dify2OpenAI/ # 通過git子模塊引入(保持獨立更新)
├── docker/ # 容器化配置
│ ├── docker-compose-dev.yml # 開發環境配置
│ └── docker-compose.yml # 生產環境配置
├── docs/ # 項目文檔
│ └── 架構設計文檔.md # 架構設計文檔
├── scripts/ # 運維腳本
│ ├── init_database.py # 初始化數據庫
│ ├── init_environment.sh # 初始化環境
├── README.md # 項目說明
快速部署
你可以通過Docker方式快速部署,也可以通過開發者模式進行部署運行。
Docker方式部署(推薦)
1. 拉取代碼
git clone https://github.com/domonic18/ai-eval-system.git
cd ai-eval-system
# 拉取子模塊
git submodule update --init --recursive
2. 配置環境變量
cd docker
cp .env.example .env
編輯.env文件,配置數據庫連接信息
3. 啟動服務
# 前提:在docker目錄下
docker-compose up -d
4. 訪問系統
待docker容器啟動完畢后,訪問系統
http://localhost
開發模式運行
這種模式下,適用于開發者本地調試場景下。
1. 創建虛擬環境
conda create -n eval pythnotallow=3.10
conda activate eval
2. 安裝依賴
# 源碼方式安裝OpenCompass
cd libs/OpenCompass
pip install -e .
# 安裝基礎依賴(切換至根目錄下)
pip install -r requirements.txt
# 安裝ai-eval-system(切換至根目錄下)
pip install -e .
備注:
- 1. 安裝過程如果比較慢,可以在在pip命令后添加-i {鏡像地址}
- 2. 清華源地址:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
3. 啟動mysql和redis
# 切換至docker目錄
cd docker
# 啟動mysql和redis
docker-compose -f docker-compose-dev.yml up -d
4. 啟動FastAPI服務器
cd apps/server
python start_fastapi_server.py
服務器將在 http://localhost:8000 啟動,可以通過訪問 http://localhost:8000/docs 查看API文檔。
5. 啟動Celery Worker
cd apps/server
python start_celery_worker.py
這將啟動Celery Worker處理異步評測任務。
6. 啟動前端服務
cd apps/web
npm install
npm run dev
前端服務將在 http://localhost:5173 啟動,可以通過訪問 http://localhost:5173 查看評測系統UI。
本文轉載自公眾號一起AI技術 作者:熱情的Dongming
