当前位置: 首页 > 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.lryc.cn/news/468570.html

相关文章:

  • 为什么需要MQ?MQ具有哪些作用?你用过哪些MQ产品?请结合过往的项目经验谈谈具体是怎么用的?
  • Flutter项目打包ios, Xcode 发布报错 Module‘flutter barcode_scanner‘not found
  • RWSENodeEncoder, KER_DIM_PE(lrgb文件中的encoders文件中的kernel.py)
  • 技术文档:基于微信朋友圈的自动点赞工具开发
  • kubernetes_pods资源清单及常用命令
  • 科目二侧方位停车全流程
  • 2024源鲁杯CTF网络安全技能大赛题解-Round2
  • 10.24学习
  • 社交媒体与客户服务:新时代的沟通桥梁
  • 设置虚拟机与windows间的共享文件夹
  • 微信小程序性能优化 ==== 合理使用 setData 纯数据字段
  • 【加密系统】华企盾DSC服务台提示:请升级服务器,否则可能导致客户端退回到旧服务器的版本
  • 直连南非,服务全球,司库直联再进一步
  • 【spring】从spring是如何避免并发下获取不完整的bean引发的思考 什么是双重检查锁 什么是java内存模型
  • 【计算机网络一】网络学习前置知识
  • nuScenes数据集使用的相机的外参和内参
  • 数据结构与算法:贪心算法与应用场景
  • 音频编解码器音频文件格式
  • FreeSWITCH JSON API
  • 学习docker第三弹------Docker镜像以及推送拉取镜像到阿里云公有仓库和私有仓库
  • 一文掌握Kubernates核心组件,构建智能容器管理集群
  • 正则表达式快速入门
  • 【小程序】-基础语法(二)
  • js 填充数组
  • AI创作3款软件分享,助力内容创作者高效产出优质作品
  • A survey of loss functions for semantic segmentation——论文笔记
  • docker部署es与kibana Mac
  • redis的渐进式哈希?说一下细节?------面试题分享
  • javaWeb项目-springboot+vue-车辆管理系统功能介绍
  • redis和memcached的区别