【模型測試】大模型評測工具OpenCompass使用方法總結 原創(chuàng)
前言
由于使用 ??lm_evaluation_harness?
? 工具評測時,遇到較多復雜的問題不好處理,例如:
- 連接?
?huggingface?
?? 下載??tokenizer?
? 被墻; - 評測?
?API?
?? 時需要服務器支持??LogProbs?
? 等問題 - 源代碼較為晦澀難懂,?
?Readme?
? 文檔不詳細....
導致評測工具的使用成本以及體驗不佳,因此我們尋求一款國產(chǎn)的、源碼可讀性高,文檔詳細的評測工具:OpenCompass。
簡介
OpenCompass 是由上海人工智能實驗室推出的開源大模型評測體系,主要特點包括:
- 全能力評估- 提供50+評測數(shù)據(jù)集,覆蓋語言/知識/推理/創(chuàng)作等七大能力維度
- 多模型支持- 支持HuggingFace/API等50+主流模型接入,包括LLaMA/GLM/ChatGPT等
- 本土化優(yōu)勢- 內(nèi)置文言文理解、法律倫理等中文特色評測維度
- 說明文檔全- 提供了詳細的說明文檔,包括安裝、使用、配置等
倉庫地址:https://github.com/open-compass/opencompass說明文檔:https://opencompass.readthedocs.io/zh-cn/latest/get_started/quick_start.html
使用方法
1. 創(chuàng)建虛擬環(huán)境
conda create --name opencompass pythnotallow=3.10 -y
conda activate opencompass
2. 安裝工具
該工具提供 ??pip install?
?? 和 ??源碼?
?? 兩種安裝方式。由于我們后續(xù)需要自定義評測模型的 ??API?
? 以及數(shù)據(jù)集,所以此處選擇源碼方式安裝。
git clone https://github.com/open-compass/opencompass opencompass
cd opencompass
pip install -e .
3. 安裝依賴
# 安裝sentencepiece
pip install torch sentencepiece protobuf
# 安裝torch
pip install torch torchvision torchaudio
4. 獲取API Key
訪問Deepseek官網(wǎng)的開發(fā)者平臺,獲取 ??API Key?
?? 以及 ??API URL?
?。
在本地新建Jupyter Notebook文件,測試API是否可用。
# 測試API可用
from openai import OpenAI
openai_api_key = "sk-fe599*******"
openai_api_base = "https://api.deepseek.com/"
model = "deepseek-chat"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
chat_response = client.chat.completions.create(
model=model,
messages=[
{"role": "system", "content": "你是一個很有用的助手。"},
{"role": "user", "content": "中華人民共和國的首都是哪里?"},
]
)
print(chat_response.choices[0].message.content)
運行后,API正常返回:
中華人民共和國的首都是北京。北京是中國的政治、文化、國際交往和科技創(chuàng)新中心,承載著中華民族的悠久歷史和燦爛文化,同時也是中國共產(chǎn)黨中央委員會、全國人民代表大會和國務院等國家最高權力機關的所在地。北京的發(fā)展成就充分展示了中國特色社會主義制度的優(yōu)越性和中國共產(chǎn)黨領導的偉大力量。
5. 創(chuàng)建API測試腳本
在OpenCompass工程目錄下,按照如下路徑創(chuàng)建.py文件
代碼路徑:??opencompass/configs/models/openai/custom_api.py?
?
代碼內(nèi)容:
import os
from opencompass.models import OpenAISDK
internlm_url = 'https://api.deepseek.com/' # 前面獲得的 api 服務地址
internlm_api_key = "sk-fe5990***" # 前面獲得的 API Key
models = [
dict(
type=OpenAISDK,
path='deepseek-chat', # 請求服務時的 model name
key=internlm_api_key,
openai_api_base=internlm_url,
rpm_verbose=True, # 是否打印請求速率
query_per_secnotallow=0.16, # 服務請求速率
max_out_len=1024, # 最大輸出長度
max_seq_len=4096, # 最大輸入長度
temperature=0.01, # 生成溫度
batch_size=1, # 批處理大小
retry=3, # 重試次數(shù)
)
]
6. 配置測試數(shù)據(jù)集
代碼路徑:??opencompass/configs/datasets/demo/demo_cmmlu_chat_gen.py?
?
代碼內(nèi)容:
from mmengine import read_base
with read_base():
from ..cmmlu.cmmlu_gen_c13365 import cmmlu_datasets
# 每個數(shù)據(jù)集只取前2個樣本進行評測
for d in cmmlu_datasets:
d['abbr'] = 'demo_' + d['abbr']
d['reader_cfg']['test_range'] = '[0:1]' # 這里每個數(shù)據(jù)集只取1個樣本, 方便快速評測.
解釋說明:CMMLU(Chinese Massive Multitask Language Understanding)是一個專門針對中文語言模型設計的綜合性評估基準,主要特點包括:
- 領域覆蓋:
- 包含67個學科主題
- 涵蓋自然科學(物理/化學/生物)
- 社會科學(歷史/法律/心理學)
- 工程技術(計算機/電子工程)
- 人文藝術(文學/哲學)等
- 題目類型:
- 單項選擇題
- 多項選擇題
- 推理判斷題
- 知識應用題
- 評估目標:
- 測試模型的中文語言理解能力
- 評估跨學科知識掌握程度
- 檢驗復雜推理和問題解決能力
- 驗證實際場景應用能力
7. 運行測試
完成上述的代碼修改以及配置后,在OpenCompass工程目錄下,運行如下命令:
python run.py --models custom_api.py --datasets demo_cmmlu_chat_gen.py --debug
運行結果:
內(nèi)容小結
- 相比?
?lm_evaluation_harness?
? 工具,OpenCompass 的源碼可讀性更高,文檔更詳細,使用成本更低。 - OpenCompass 支持多種評測數(shù)據(jù)集,包括CMMLU、C-Eval、C-MTEB等,方便用戶選擇合適的評測數(shù)據(jù)集。
- OpenCompass 支持本地部署和API調(diào)用兩種評測方式,方便用戶選擇合適的評測方式。
- 除此之外,OpenCompass 是果然評測軟件,更加適合國情。
本文轉載自公眾號一起AI技術 作者:熱情的Dongming
原文鏈接:??https://mp.weixin.qq.com/s/O_xh6yq-bYev9vFNe2b-tA??
