OpenCompass大模型测评实战学习笔记

一、OpenCompass介绍:

评测相关:

评测意义:

研究评测对于我们全面了解大型语言模型的优势和限制至关重要;研究评测有助于指导和改进人类与大型语言模型之间的协同交互;研究评测可以帮助我们更好地规划大型语言模型未来的发展;评测能了解不同语言模型之间的性能、舒适性和安全性,能够帮助人们更好地选择适合的模型。

如何通过评测促进模型发展:

评测中的面临挑战:

如何评测:

按模型类别不同划分评测:基座模型、公开权重的开源模型、对话模型、API模型

按评测方式:客观评测与主观评测

提示词工程将题目变得更加丰富,然后再进行推理或者评测

长文本评测(大海捞针)。

OpenCompass提供了什么:

CompassRank:中立全面的性能榜单

CompassKit:大模型评测全栈工具链

OpenCompass评测流水线:

CompassHub:高质量评测基准社区

二、项目实践:

书生浦语在 C-Eval 基准任务上的评估(它们的配置文件可以在 configs/eval_demo.py 中找到)

环境配置

配置conda环境:

studio-conda -o internlm-base -t opencompass

激活环境,克隆opencompass代码仓库的0.2.4分支,进入opencompass文件夹,从源码进行安装

source activate opencompass
git clone -b 0.2.4 https://github.com/open-compass/opencompass
cd opencompass
pip install -e .

数据准备:

解压评测数据集到 data/ 处:

cp /share/temp/datasets/OpenCompassData-core-20231110.zip /root/opencompass/
unzip OpenCompassData-core-20231110.zip

将会在 OpenCompass 下看到data文件夹

查看支持的数据集和模型

列出所有跟 InternLM 及 C-Eval 相关的配置:

python tools/list_configs.py internlm ceval

运行命令后,先后缺少依赖包“tabulate”“mmengine”

使用pip install 命令安装后,重新执行命令,获得结果:

启动评测:

输入命令:

python run.py --datasets ceval_gen --hf-path /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --tokenizer-path /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --tokenizer-kwargs padding_side='left' truncation='left' trust_remote_code=True --model-kwargs trust_remote_code=True device_map='auto' --max-seq-len 1024 --max-out-len 16 --batch-size 2 --num-gpus 1 --debug

官方命令解析:

python run.py
--datasets ceval_gen \
--hf-path /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b \  # HuggingFace 模型路径
--tokenizer-path /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b \  # HuggingFace tokenizer 路径(如果与模型路径相同,可以省略)
--tokenizer-kwargs padding_side='left' truncation='left' trust_remote_code=True \  # 构建 tokenizer 的参数
--model-kwargs device_map='auto' trust_remote_code=True \  # 构建模型的参数
--max-seq-len 1024 \  # 模型可以接受的最大序列长度
--max-out-len 16 \  # 生成的最大 token 数
--batch-size 2  \  # 批量大小
--num-gpus 1  # 运行模型所需的 GPU 数量
--debug

运行命令:

报错。

安装缺失依赖包后,运行

报错。

。。。。。。后续不清楚缺了多少包,运行以下命令

pip install -r requirements.txt

重新安一遍项目所需依赖包

重新运行评测命令,

报错:

官方给出解决错误方案:加入环境变量:

export MKL_SERVICE_FORCE_INTEL=1

重新运行评测命令,继续报错:

根据官方解决方案,并观察运行日志,缺少模块protobuf,运行以下命令:

pip install protobuf

重新执行评测命令,顺利运行,得到结果:

至此评测实践跑通。

### OpenCompass 大模型评测方法分析 OpenCompass大模型评测方法主要分为客观评测和主观评测两部分。对于具有明确答案的任务,通过构建丰富的评测集来进行综合评价[^1]。具体来说,客观评测依赖于定量指标来衡量模型输出与标准答案之间的差异,并引入提示词工程和语境学习技术以降低噪声的影响[^2]。 #### 客观评测 在客观评测中,OpenCompass 使用两种核心方法: - **判别式评测**:该方法将问题与其可能的候选答案组合起来,计算每种组合的困惑度(Perplexity),最终选取困惑度最低的答案作为最优选项。这种方法适用于有固定答案的选择题形式任务。 - **生成式评测**:此方法主要用于评估模型的语言生成能力,例如翻译、摘要生成等任务。它通过对输入问题进行补全操作并结合后处理手段完成评测。 为了进一步提升评测质量,Objective Evaluation 还会考虑如何优化提示设计以及上下文理解过程中的干扰因素消除等问题[^3]。 #### 主观评测 针对开放性较强或者涉及安全性考量的内容,则更多依靠人工判断力来进行定性分析。在这种情况下,OpenCompass 设计了一套专门用于收集人类意见的数据结构——即所谓的“主观测试问题集合”。这套体系允许参与者依据个人体验对多个版本的回答给予分数评定;同时也会借助其他高级算法模拟真人反馈机制从而实现更高效的大规模样本采集工作流程。 此外,在实际应用过程中还会运用到诸如单个模型回复满意程度统计学分布规律研究以及跨平台对比实验等方式增强整体结论可靠性水平。 ### 数据准备与环境搭建 关于具体的实施步骤方面,用户需先下载官方发布的压缩包文件至指定目录下解压即可获得所需资源材料[^4]。而在开发环境中则推荐按照文档指南说明执行相应命令行脚本来配置好必要的软硬件设施条件以便顺利开展后续各项功能模块调试验证活动[^5]。 ```bash cp /share/temp/datasets/OpenCompassData-core-20231110.zip /root/opencompass/ unzip OpenCompassData-core-20231110.zip studio-conda -o internlm-base -t opencompass source activate opencompass git clone -b 0.2.4 https://github.com/open-compass/opencompass.git cd opencompass pip install -e . ``` 以上代码片段展示了从获取基础数据直至部署运行环境所需的全部关键指令序列。 ### 结果分析 尽管当前并未提供确切数值层面的表现详情描述,但从理论框架角度来看,上述提到的各种策略共同作用能够有效保障整个评估系统的科学性和公正性特征得以充分体现出来。因此可以预期经过这样一套严谨程序筛选出来的优秀作品必然具备较高的可信度值得信赖采纳推广使用价值极高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值