浅谈人工智能之Llama3微调后使用cmmlu评估
浅谈人工智能之Llama3微调后使用cmmlu评估
引言
随着自然语言处理(NLP)技术的发展,各类语言模型如雨后春笋般涌现。其中,Llama3作为一个创新的深度学习模型,已经在多个NLP任务中展示了其强大的能力。然而,仅仅使用预训练模型往往无法满足特定应用的需求,因此微调成为了提升模型表现的重要步骤。本文将集中讨论Llama3模型在微调后的推理和评估过程
在之前文章中我们已经介绍了如何使用LLaMA-Factory工具进行模型微调和推理,本文介绍如何在微调以后对模型进行评估
评估阶段
模型的评估是验证微调效果的重要步骤。评估通常采用以下方法:
- 性能指标:根据任务类型,选择适合的评估指标。例如,对于分类任务,可以使用准确率、精确率、召回率和F1-score;而对于生成任务,则可以使用BLEU、ROUGE等指标。
- 验证集与测试集:在微调过程中,通常会划分出验证集来监控模型的表现,最终评估则应在未见过的测试集上进行,以评估模型的泛化能力。
- 错误分析:在评估过程中,分析模型的错误输出,以识别潜在的问题和改进方向。
- 用户反馈:在实际应用中,从用户那里获取反馈,进一步评估模型的实用性和准确性。
当前我们可以使用cmmlu进行微调后的模型评估。
CMMLU介绍
CMMLU是针对中国的语言和文化背景设计的评测集,用来评估LLM的知识蕴含和推理能力。该评测集跨多个学科,由67个主题组成。其中大多数任务的答案都是专门针对中国的文化背景设计,不适用于其它国家的语言。如下图所示,除了涵盖人文科学、社会科学、STEM(科学、技术、工程和数学)以及其他在人类日常生活中很重要的四个通用领域的知识外,还涵盖一些特定领域的知识,用于验证模型的中国知识的蕴含能力以及对中文的理解和适应能力。
模型评估
第一步:进入llama_factory虚拟环境,若已经进入请忽略
conda activate llama_factory
第二步:然后进入/mnt/workspace/LLaMA-Factory/examples/train_lora路径
cd /mnt/workspace/LLaMA-Factory/examples/train_lora
第三步:我们可以看到在该目录下有文件llama3_lora_eval.yaml,我们打开文件内容,并且把文件内容修改成如下内容
### model
model_name_or_path: /mnt/workspace/models/Meta-Llama-3-8B-Instruct
adapter_name_or_path: /mnt/workspace/models/llama3-lora-zh### method
finetuning_type: lora### dataset
task: cmmlu_test # choices: [mmlu_test, ceval_validation, cmmlu_test]
template: fewshot
lang: en
n_shot: 5### output
save_dir: saves/llama3-8b/lora/eval_cmmlu### eval
batch_size: 1
第四步:我们回到/mnt/workspace/LLaMA-Factory路径
cd /mnt/workspace/LLaMA-Factory
第五步:我们执行如下命令
llamafactory-cli eval examples/train_lora/llama3_lora_eval.yaml
第六步:我们可以看到模型微调后的模型已经开始评估
Generating test split: 179 examples [00:00, 13736.47 examples/s] | 12/67 [04:35<26:02, 28.41s/it, 中国文学]
Generating train split: 5 examples [00:00, 1315.82 examples/s]
Generating test split: 106 examples [00:00, 11332.20 examples/s] | 13/67 [05:01<24:56, 27.71s/it, 中国教师资格]
Generating train split: 5 examples [00:00, 825.29 examples/s]
Generating test split: 107 examples [00:00, 11506.56 examples/s] | 14/67 [05:19<21:59, 24.90s/it, 大学精算学]
Generating train split: 5 examples [00:00, 1331.61 examples/s]
Generating test split: 106 examples [00:00, 11195.51 examples/s] | 15/67 [05:33<18:31, 21.38s/it, 大学教育学]
Generating train split: 5 examples [00:00, 1258.64 examples/s]
Generating test split: 108 examples [00:00, 11522.52 examples/s] | 16/67 [05:46<16:02, 18.87s/it, 大学工程水文学]
Generating train split: 5 examples [00:00, 1374.28 examples/s]
Generating test split: 105 examples [00:00, 10783.59 examples/s] | 17/67 [06:02<15:01, 18.03s/it, 大学法律]
Generating train split: 5 examples [00:00, 959.49 examples/s]
Generating test split: 106 examples [00:00, 11444.80 examples/s] | 18/67 [06:20<14:40, 17.98s/it, 大学数学]
Generating train split: 5 examples [00:00, 1384.17 examples/s]
Generating test split: 237 examples [00:00, 14848.76 examples/s] | 19/67 [06:34<13:25, 16.78s/it, 大学医学统计]
第七步:评估的时间会比较久,这里笔者用了差不多半个小时,评估分数结果如下
Average: 47.70 STEM: 41.05
Social Sciences: 49.23Humanities: 47.61Other: 51.65
至此分数评估结束。
相关文章:
浅谈人工智能之Llama3微调后使用cmmlu评估
浅谈人工智能之Llama3微调后使用cmmlu评估 引言 随着自然语言处理(NLP)技术的发展,各类语言模型如雨后春笋般涌现。其中,Llama3作为一个创新的深度学习模型,已经在多个NLP任务中展示了其强大的能力。然而,…...
为什么需要MQ?MQ具有哪些作用?你用过哪些MQ产品?请结合过往的项目经验谈谈具体是怎么用的?
需要使用MQ的主要原因包括以下几个方面: 异步处理:在分布式系统中,使用MQ可以实现异步处理,提高系统的响应速度和吞吐量。例如,在用户注册时,传统的做法是串行或并行处理发送邮件和短信,这…...
Flutter项目打包ios, Xcode 发布报错 Module‘flutter barcode_scanner‘not found
报错图片 背景 flutter 开发的 apple app 需要发布新版本,但是最后一哆嗦碰到个报错,这个小问题卡住了我一天,之间的埪就不说了,直接说我是怎么解决的,满满干货 思路 这个报错 涉及到 flutter_barcode_scanner; 所…...
RWSENodeEncoder, KER_DIM_PE(lrgb文件中的encoders文件中的kernel.py)
该代码实现了一个基于核的节点编码器 KernelPENodeEncoder,用于在图神经网络中将特定的核函数编码(例如随机游走结构编码 RWSE)与节点特征相结合。通过将预先计算的核统计信息(如 RWSE 等)与原始节点特征结合,该编码器可以帮助模型捕捉图中节点的结构信息。该代码还定义了…...
技术文档:基于微信朋友圈的自动点赞工具开发
概述 该工具是一款基于 Windows 平台的自动化操作工具,通过模拟人工点击,实现微信朋友圈的自动点赞。主要适用于需频繁维护客户关系的用户群体,避免手动重复操作,提高用户的互动效率。 官方地址: aisisoft.top 一、开发背景与技术…...
kubernetes_pods资源清单及常用命令
示例: apiVersion: v1 kind: Pod metadata:name: nginx-podnamespace: defaultlabels:app: nginx spec:containers:- name: nginx-containerimage: nginx:1.21ports:- containerPort: 80多个容器运行示例 apiVersion: v1 kind: Pod metadata:name: linux85-nginx-…...
科目二侧方位停车全流程
科目二侧方位停车是驾考中的重要项目,主要评估驾驶员将车辆准确停放在道路右侧停车位的能力。以下是对科目二侧方位停车的详细解析: 请点击输入图片描述(最多18字) 一、考试要求 车辆需在库前右侧稳定停车,随后一次性…...
2024源鲁杯CTF网络安全技能大赛题解-Round2
排名 欢迎关注公众号【Real返璞归真】不定时更新网络安全相关技术文章: 公众号回复【2024源鲁杯】获取全部Writeup(pdf版)和附件下载地址。(Round1-Round3) Misc Trace 只能说题出的太恶心了,首先获得一…...
10.24学习
1.const 在编程中, const 关键字通常用来定义一个常量。常量是程序运行期间其值不能被改变的变量。使用 const 可以提高代码的可读性和可靠性,因为它可以防止程序中意外修改这些值。 不同编程语言中 const 的用法可能略有不同,以下是一…...
社交媒体与客户服务:新时代的沟通桥梁
在数字化时代,社交媒体已成为人们日常生活中不可或缺的一部分,它不仅改变了人们的沟通方式,也深刻影响着企业的客户服务模式。从传统的电话、邮件到如今的社交媒体平台,客户服务的渠道正在经历一场前所未有的变革。社交媒体以其即…...
设置虚拟机与windows间的共享文件夹
在 VMware Workstation 或 VMware Fusion 中设置共享文件夹的具体步骤如下: 1. 启用共享文件夹 对于 VMware Workstation 打开 VMware Workstation: 启动 VMware Workstation,找到你要设置共享文件夹的虚拟机。 设置虚拟机: 选…...
微信小程序性能优化 ==== 合理使用 setData 纯数据字段
目录 1. setData 的流程 2. 数据通信 3. 使用建议 3.1 data 应只包括渲染相关的数据 3.2 控制 setData 的频率 3.3 选择合适的 setData 范围 3.4 setData 应只传发生变化的数据 3.5 控制后台态页面的 setData 纯数据字段 组件数据中的纯数据字段 组件属性中的纯数据…...
【加密系统】华企盾DSC服务台提示:请升级服务器,否则可能导致客户端退回到旧服务器的版本
华企盾DSC服务台提示:请升级服务器,否则可能导致客户端退回到旧服务器的版本 产生的原因:控制台版本比服务器高导致控制台出现报错 解决方案 方法:将控制台回退到原来的使用版本,在控制台负载均衡查看连接该服务器各个…...
直连南非,服务全球,司库直联再进一步
yonyou 在全球化经济背景下,中国企业不断加快“走出去”的步伐,寻求更广阔的发展空间。作为非洲大陆经济最发达的国家之一,南非以其丰富的自然资源、完善的金融体系和多元化的市场,成为中国企业海外投资与合作的热门目的地。 作为…...
【spring】从spring是如何避免并发下获取不完整的bean引发的思考 什么是双重检查锁 什么是java内存模型
本文将通过简述spring是如何避免并发下获取不完整的bean,延伸出双重检查锁、volatile、JMM的概念,将这些知识点都串联起来; 若发现错误,非常欢迎在评论区指出;csdn博主:孟秋与你 文章目录 双重检查锁(Doubl…...
【计算机网络一】网络学习前置知识
目录 网络中必备概念 1.什么是局域网与广域网? 2.什么是IP地址 3.什么是端口号 4.什么是协议 5.OSI七层模型 6.TCP/IP四层模型 网络中必备概念 本篇文章旨在分享一些计算机网络中的常见概念,对于初学者或者准备学习计算机网络的人会有帮助。 1.什么…...
nuScenes数据集使用的相机的外参和内参
因为需要用不同数据集测试对比效果,而一般的模型代码里实现的检测结果可视化都是使用open3d的Visualizer在点云上画的3d框,展示出来的可视化效果很差,可能是偷懒,没有实现将检测结果投影到各相机的图像上,所以检测效果…...
数据结构与算法:贪心算法与应用场景
目录 11.1 贪心算法的原理 11.2 经典贪心问题 11.3 贪心算法在图中的应用 11.4 贪心算法的优化与扩展 总结 数据结构与算法:贪心算法与应用场景 贪心算法是一种通过选择当前最佳解来构造整体最优解的算法策略。贪心算法在很多实际问题中都取得了良好的效果&am…...
音频编解码器音频文件格式
0 Preface/Foreword 1 音频编解码器 算法压缩越高,那么音频延迟越大,音频效果越好。 1.1 SBC SBC: sub-band coding,自带编码 A2DP强制规定使用的audio编解码器。 在音视频中,为了增加用户体验,规避视频和音频的不…...
FreeSWITCH JSON API
仅举几例: fs_cli -x json {"command" : "status", "data" : ""} fs_cli -x json {"command" : "sofia.status", "data" : ""} fs_cli -x json {"command" : "…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
