书生大模型实战营学习[9] OpenCompass 评测 InternLM-1.8B 实践

news2024/9/27 13:55:09

在这里插入图片描述

准备工作

打开开发机,选择cuda11.7环境,A100选择10%,点击创建,然后进入开发机即可,和之前的操作一样。接下来创建环境,下载必要的依赖包

conda create -n opencompass python=3.10
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia -y
cd ~
conda activate opencompass
git clone -b 0.2.4 https://github.com/open-compass/opencompass
cd opencompass
pip install -e .
apt-get update
apt-get install cmake
pip install -r requirements.txt
pip install protobuf

数据的准备:

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

查看所有跟 InternLM 及 C-Eval 相关的配置:

python tools/list_configs.py internlm ceval

结果:

+----------------------------------------+----------------------------------------------------------------------+
| Model                                  | Config Path                                                          |
|----------------------------------------+----------------------------------------------------------------------|
| hf_internlm2_1_8b                      | configs/models/hf_internlm/hf_internlm2_1_8b.py                      |
| hf_internlm2_20b                       | configs/models/hf_internlm/hf_internlm2_20b.py                       |
| hf_internlm2_7b                        | configs/models/hf_internlm/hf_internlm2_7b.py                        |
| hf_internlm2_base_20b                  | configs/models/hf_internlm/hf_internlm2_base_20b.py                  |
| hf_internlm2_base_7b                   | configs/models/hf_internlm/hf_internlm2_base_7b.py                   |
| hf_internlm2_chat_1_8b                 | configs/models/hf_internlm/hf_internlm2_chat_1_8b.py                 |
| hf_internlm2_chat_1_8b_sft             | configs/models/hf_internlm/hf_internlm2_chat_1_8b_sft.py             |
| hf_internlm2_chat_20b                  | configs/models/hf_internlm/hf_internlm2_chat_20b.py                  |
| hf_internlm2_chat_20b_sft              | configs/models/hf_internlm/hf_internlm2_chat_20b_sft.py              |
| hf_internlm2_chat_20b_with_system      | configs/models/hf_internlm/hf_internlm2_chat_20b_with_system.py      |
| hf_internlm2_chat_7b                   | configs/models/hf_internlm/hf_internlm2_chat_7b.py                   |
| hf_internlm2_chat_7b_sft               | configs/models/hf_internlm/hf_internlm2_chat_7b_sft.py               |
| hf_internlm2_chat_7b_with_system       | configs/models/hf_internlm/hf_internlm2_chat_7b_with_system.py       |
| hf_internlm2_chat_math_20b             | configs/models/hf_internlm/hf_internlm2_chat_math_20b.py             |
| hf_internlm2_chat_math_20b_with_system | configs/models/hf_internlm/hf_internlm2_chat_math_20b_with_system.py |
| hf_internlm2_chat_math_7b              | configs/models/hf_internlm/hf_internlm2_chat_math_7b.py              |
| hf_internlm2_chat_math_7b_with_system  | configs/models/hf_internlm/hf_internlm2_chat_math_7b_with_system.py  |
| hf_internlm_20b                        | configs/models/hf_internlm/hf_internlm_20b.py                        |
| hf_internlm_7b                         | configs/models/hf_internlm/hf_internlm_7b.py                         |
| hf_internlm_chat_20b                   | configs/models/hf_internlm/hf_internlm_chat_20b.py                   |
| hf_internlm_chat_7b                    | configs/models/hf_internlm/hf_internlm_chat_7b.py                    |
| hf_internlm_chat_7b_8k                 | configs/models/hf_internlm/hf_internlm_chat_7b_8k.py                 |
| hf_internlm_chat_7b_v1_1               | configs/models/hf_internlm/hf_internlm_chat_7b_v1_1.py               |
| internlm_7b                            | configs/models/internlm/internlm_7b.py                               |
| ms_internlm_chat_7b_8k                 | configs/models/ms_internlm/ms_internlm_chat_7b_8k.py                 |
+----------------------------------------+----------------------------------------------------------------------+
+--------------------------------+-------------------------------------------------------------------+
| Dataset                        | Config Path                                                       |
|--------------------------------+-------------------------------------------------------------------|
| ceval_clean_ppl                | configs/datasets/ceval/ceval_clean_ppl.py                         |
| ceval_contamination_ppl_810ec6 | configs/datasets/contamination/ceval_contamination_ppl_810ec6.py  |
| ceval_gen                      | configs/datasets/ceval/ceval_gen.py                               |
| ceval_gen_2daf24               | configs/datasets/ceval/ceval_gen_2daf24.py                        |
| ceval_gen_5f30c7               | configs/datasets/ceval/ceval_gen_5f30c7.py                        |
| ceval_ppl                      | configs/datasets/ceval/ceval_ppl.py                               |
| ceval_ppl_1cd8bf               | configs/datasets/ceval/ceval_ppl_1cd8bf.py                        |
| ceval_ppl_578f8d               | configs/datasets/ceval/ceval_ppl_578f8d.py                        |
| ceval_ppl_93e5ce               | configs/datasets/ceval/ceval_ppl_93e5ce.py                        |
| ceval_zero_shot_gen_bd40ef     | configs/datasets/ceval/ceval_zero_shot_gen_bd40ef.py              |
| configuration_internlm         | configs/datasets/cdme/internlm2-chat-7b/configuration_internlm.py |
| modeling_internlm2             | configs/datasets/cdme/internlm2-chat-7b/modeling_internlm2.py     |
| tokenization_internlm          | configs/datasets/cdme/internlm2-chat-7b/tokenization_internlm.py  |
+--------------------------------+-------------------------------------------------------------------+

选择configs/models/hf_internlm/的hf_internlm2_chat_1_8b.py

使用OpenCompass 评测

使用命令行配置参数法进行评测

将下面代码贴到hf_internlm2_chat_1_8b.py中:

from opencompass.models import HuggingFaceCausalLM


models = [
    dict(
        type=HuggingFaceCausalLM,
        abbr='internlm2-1.8b-hf',
        path="/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b",
        tokenizer_path='/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b',
        model_kwargs=dict(
            trust_remote_code=True,
            device_map='auto',
        ),
        tokenizer_kwargs=dict(
            padding_side='left',
            truncation_side='left',
            use_fast=False,
            trust_remote_code=True,
        ),
        max_out_len=100,
        min_out_len=1,
        max_seq_len=2048,
        batch_size=8,
        run_cfg=dict(num_gpus=1, num_procs=1),
    )
]

配置环境变量

#环境变量配置
export MKL_SERVICE_FORCE_INTEL=1

使用命令行评估

python run.py --datasets ceval_gen --models hf_internlm2_chat_1_8b --debug

评估结果

dataset                                         version    metric         mode    internlm2-1.8b-hf
----------------------------------------------  ---------  -------------  ------  -----------------------
ceval-computer_network                          db9ce2     accuracy       gen      47.37                                                                           
ceval-operating_system                          1c2571     accuracy       gen      47.37                                                                                 
ceval-computer_architecture                     a74dad     accuracy       gen      23.81                                                                                 
ceval-college_programming                       4ca32a     accuracy       gen      13.51                                                                                 
ceval-college_physics                           963fa8     accuracy       gen      42.11                                                                                 
ceval-college_chemistry                         e78857     accuracy       gen      33.33                                                                                 
ceval-advanced_mathematics                      ce03e2     accuracy       gen      10.53                                                                                 
...          

在这里插入图片描述

使用配置文件修改参数法进行评测

除了通过命令行配置实验外,OpenCompass 还允许用户在配置文件中编写实验的完整配置,并通过 run.py 直接运行它。配置文件是以 Python 格式组织的,并且必须包括 datasets 和 models 字段。
首先在configs文件夹下创建eval_tutorial_demo.py

cd /root/opencompass/configs
touch eval_tutorial_demo.py

将以下代码粘贴到eval_tutorial_demo.py中:

from mmengine.config import read_base

with read_base():
    from .datasets.ceval.ceval_gen import ceval_datasets
    from .models.hf_internlm.hf_internlm2_chat_1_8b import models as hf_internlm2_chat_1_8b_models

datasets = ceval_datasets
models = hf_internlm2_chat_1_8b_models

测评:

cd /root/opencompass
python run.py configs/eval_tutorial_demo.py --debug

结果:

dataset                                         version    metric         mode    internlm2-1.8b-hf
----------------------------------------------  ---------  -------------  ------  -----------------------
ceval-computer_network                          db9ce2     accuracy       gen      47.37                                                                           
ceval-operating_system                          1c2571     accuracy       gen      47.37                                                                                 
ceval-computer_architecture                     a74dad     accuracy       gen      23.81                                                                                 
ceval-college_programming                       4ca32a     accuracy       gen      13.51                                                                                 
ceval-college_physics                           963fa8     accuracy       gen      42.11                                                                                 
ceval-college_chemistry                         e78857     accuracy       gen      33.33                                                                                 
ceval-advanced_mathematics                      ce03e2     accuracy       gen      10.53                                                                                 
...      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2170159.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是网络安全自动化以及优势与挑战

目录 网络安全自动化的工作原理 网络安全自动化的好处 增强的安全功能 改善表现和姿势 降低安全成本 简化的安全合规性和审计 更好的端点管理 网络安全自动化的挑战 耗时且容易出错的安全流程 可见性降低,风险和成本增加 合规管理 有用的网络安全自动化…

2024年合肥市职业院校技能大赛(中职组)赛 网络安全 竞赛样题

2024年合肥市职业院校技能大赛(中职组)赛 网络安全 竞赛样题 (总分100分) 培训、环境、资料、考证 公众号:Geek极安云科 网络安全群:624032112 网络系统管理群:223627079 网络建设与运维群:870959784 极安云科专注于技能提升&am…

基于nodejs+vue的旅游管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

Docker启动失败,Failed to start docker,只需三个步骤,看我怎么搞定它!

在项目部署上线的时候 1打开hyper-v虚拟机 怎么打开呢? 命令提示符输入control,点击回车,打开控制面板,打开“程序和功能”,“启用和关闭windows功能”,选择Hyper-v,勾选下面的每一项内容。完成之后又点…

机器学习-模型集成

文章目录 模型集成为什么要集成?模型集成要解决的问题主要的集成思想 Committees多个模型的结果进行融合。BaggingBagging 特点 BoostingAdaBoost算法过程 GBDT负梯度拟合 XGBoostXGBoost 参数通用参数booster 参数学习目标参数 模型保存 模型集成 三个臭皮匠顶一个…

结构连接能否成为精神病早期的功能预后标志?

TLDR: 该研究发现精神病首次发作的患者(未经药物治疗)脑部存在广泛的结构连接减少,尤其是前额叶-纹状体-丘脑系统的连接异常。基线时的脑部结构连接可以有效预测患者12个月后的功能恢复情况。研究表明,脑部结构连接的减少可能与精…

【游戏策划 还能这么玩】

长期陷入低迷的桌游圈最近重新焕发出希望的光芒。由腾讯和网易离职的策划及美术团队开发的桌游《王冠继承者之战》在一小时内众筹金额突破20万。 对于游戏策划者来说,不妨拓展思路,将目光转向尚未充分挖掘的桌游市场,那里可能蕴藏着让人意想…

C++ 标准模板库(STL)之集合(set)

啊,哈喽,小伙伴们大家好。我是#张亿,今天呐,学的是集合(set) C 标准模板库(STL)之集合(set) (下面代码中的std::要去掉) 在C标准模板库(STL&am…

HCIP——HCIA回顾

第一章.HCIA复习 引入场景 其实IA我们主要学习的无非就是数据包在网络中传递的基本过程,我们设计一个场景,通过回顾web页面的请求过程,将IA学过的基本网络工作原理来串一遍。 (在本例中,ISP网络为学校提供了DNS服务,…

数据恢复新宠!2024年Top3宝藏工具

在这个离不开电脑和手机的时代,U盘是我们存储照片、文档、视频的得力助手。万一U盘格式化了,别担心,数据很可能能恢复。2024年流行的三种恢复方法,都能帮你找回丢失的数据。记住,格式化后数据并非真正消失,…

【SpringBoot详细教程】-05-整合Druid操作数据库【持续更新】

文末看往期系列教程:给个关注可好? 🌲 SpringData简介 对于数据访问层,无论是 SQL (关系型数据库) 还是 NoSql (非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理。 Spring Boot 底层都是采…

Python实现:时间序列趋势外推法应用-龚珀兹曲线拟合

龚珀兹曲线 下表数据为某跨国公司1989-2021年的年销售量数据,使用适合的模型预测该公司2022年的销售额,并得出理由。 部分数据如下表(具体数据从主页资源下载): 年份时序(t)总额(y…

Spring JDBC及声明式事务

目录 Spring JDBC基础概念 Spring声明式事务 事务传播方式 Spring JDBC基础概念 Spring JDBC 封装了原生的JDBC API,使得处理关系型数据库更加简单。Spring JDBC的核心是JdbcTemplate,里面封装了大量数据库CRUD的操作。使用Spring JDBC…

八大核心能力铸就销售精英:解锁成功销售的密钥

成功销售,既是精妙绝伦的艺术展现,也是融汇多元技能的卓越实践。无论企业处于初创的萌芽阶段,还是屹立行业的巅峰之列,跨越销售高峰的征途上,销售人员所掌握的八大核心能力,如同星辰指引,不可或…

高性能、高可靠,MK SD卡让数据存储无忧!

文章目录 SD卡(Secure Digital Memory Card),作为当代数字生活中不可或缺的存储媒介,凭借其卓越的数据传输效率、灵活的热插拔功能以及惊人的存储容量,在多个领域大放异彩。从日常使用的智能手机、平板电脑到追求极致体…

【ARM】解决ArmDS Fast Models 中部分内核无法上电的问题

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决ArmDS Fast Models 中部分内核无法上电的问题。 2、 问题场景 在调用ArmDS的Fast Models中的Cortex-A55的模型,只有Core 0是上电状态,而Core 1处于掉电状态,如图2-1所示&…

美国林氏集团宣布全面进军Web3领域

吉隆坡,马来西亚——近日举行的第六界博览会上,美国林氏集团董事局主席林建中先生宣布,集团将通过旗下的大东亚银行创建一个全新的、合规的区块链交易所,并正式进军Web3、元宇宙及AI领域。同时,美国林氏集团将利用其在…

物流的总结

pc端(商家端到仓、冷链,管理端冷链数据)、H5、小程序(冷链) 冷链快运系统介绍文档 1. 系统概述 冷链快运系统致力于确保温控产品在运输过程中的安全与质量,通过高效的运单管理、异常处理及预约服务&#…

彻底解决找不到vcomp140.dll,无法继续执行代码问题

1. msvcp140.dll 简介 1.1 定义与作用 msvcp140.dll 是 Microsoft Visual C 2015 Redistributable Package 的一部分,它是一个动态链接库(DLL)文件,包含了运行使用 Visual C 2015 编译的应用程序所必需的 C 运行时库函数。这个文…

【web阅读记录】web相关概念及知识整理

刷到了一篇web相关的入门贴。解答了一些多年来的疑惑。这是一些在阅读过程中的笔记记录. 参考链接: https://www.jianshu.com/nb/4686146 服务器/客户机 ---->浏览器 JavaScript与Java没有任何关系 Node.js:一个javaScript运行环境 框架(FrameWork):由基本原…