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