当前位置: 首页 > news >正文

浅谈人工智能之Llama3微调后使用cmmlu评估

浅谈人工智能之Llama3微调后使用cmmlu评估

引言

随着自然语言处理(NLP)技术的发展,各类语言模型如雨后春笋般涌现。其中,Llama3作为一个创新的深度学习模型,已经在多个NLP任务中展示了其强大的能力。然而,仅仅使用预训练模型往往无法满足特定应用的需求,因此微调成为了提升模型表现的重要步骤。本文将集中讨论Llama3模型在微调后的推理和评估过程
在之前文章中我们已经介绍了如何使用LLaMA-Factory工具进行模型微调和推理,本文介绍如何在微调以后对模型进行评估

评估阶段

模型的评估是验证微调效果的重要步骤。评估通常采用以下方法:

  1. 性能指标:根据任务类型,选择适合的评估指标。例如,对于分类任务,可以使用准确率、精确率、召回率和F1-score;而对于生成任务,则可以使用BLEU、ROUGE等指标。
  2. 验证集与测试集:在微调过程中,通常会划分出验证集来监控模型的表现,最终评估则应在未见过的测试集上进行,以评估模型的泛化能力。
  3. 错误分析:在评估过程中,分析模型的错误输出,以识别潜在的问题和改进方向。
  4. 用户反馈:在实际应用中,从用户那里获取反馈,进一步评估模型的实用性和准确性。
    当前我们可以使用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

至此分数评估结束。


http://www.mrgr.cn/news/58435.html

相关文章:

  • 压缩传感革命——自动验证算法证明了神经网络的准确性
  • ETCD未授权访问风险基于角色认证和启用https的ca证书修复方案
  • 【运维心得】U盘启动安装Dell服务器踩坑指南
  • Android Room(SQLite) too many SQL variables异常
  • 机器学习——数据隐私与安全学习
  • CZX前端秘籍1
  • 联通国际云视频:高清、稳定、易用的云端会议平台
  • mysql——事务详解
  • Python 代码实现用于进行水质模拟和优化加氯量
  • 常见异常处理及程序调试方法
  • 数据流与重定向
  • fastjson/jackson对getter,setter和constructor的区分
  • 代码随想录算法训练营第四十三天|322. 零钱兑换, 279. 完全平方数,139. 单词拆分
  • 揭秘!亿赛通和Ping32如何以加密技术筑牢防泄密防线?
  • MTK使用atms获取app包名编译报错
  • qss设置Q_PROPERTY不生效
  • 从零搭建Lazada自养号高效测评体系
  • 社交媒体与客户服务:新时代的沟通桥梁
  • vue2项目 上传文件时部分信息上传失败,并下载失败信息(.xlsx文件模板)
  • 什么是域名?什么是泛域名?
  • 多线程加锁与手搓智能指针实践
  • 深入拆解TomcatJetty——Tomcat如何实现IO多路复用
  • 获取每个访客的第一条访问日志(获取网站的UV)
  • 「 自动化测试 」面试题..
  • 请简述同步和异步的区别。
  • 【嵌入式】全面解析温度传感器:PT1000、热电偶、热敏电阻与红外传感器的原理与应用