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

【06】LLaMA-Factory微调大模型——微调模型评估

上文【05】LLaMA-Factory微调大模型——初尝微调模型,对LLama-3与Qwen-2进行了指令微调,本文则介绍如何对微调后的模型进行评估分析。

一、部署微调后的LLama-3模型

激活虚拟环境,打开LLaMA-Factory的webui页面

conda activate GLM
cd LLaMA-Factory/
llamafactory-cli webui

选择 模型的名称,并选择微调参数保存的路径(test1),之后选择Chat对话中加载模型

模型加载成功后即可进行问答交互,输入一条测试数据,来观察微调后模型的回复

请根据基本案情,利用三段论的推理方式得到判决结果,判决结果包括:1.罪名;\n2.刑期。
基本案情:\n广东省鹤山市人民检察院指控被告人李某甲于2014年7月7日9时许,在鹤山市宅梧镇双和公路宅梧收费站附近路段被民警抓获。民警当场从李某甲身上搜获搜获白色晶体38小包。经鉴定,从李某甲处缴获的白色晶体净重12.9克,检出甲基苯丙胺成分。被告人李某甲到案后如实供述自己的罪行,可以从轻处罚。建议对被告人判处有期徒刑六个月至一年六个月,并处罚金。提请法院依法惩处。上述事实,被告人李某甲在开庭审理过程中亦无异议,并有抓获被告人及破案的经过材料、被告人的供述、证人李X锋的证言、扣押物品清单、鉴定意见、辨认笔录、现场勘某足以认定。

模型的回答如下:

加载一个原始模型,输入相同的问题,分析微调前后模型回答的变化 

可直观发现微调后的模型回答以三段论的形式展开,逻辑性更强,也具有参考意义 

二、评估微调后的LLama-3模型

上传评估用的数据集并对数据集进行注册。

【提示】在模型训练与评估过程中,对数据集划分训练集、验证集和测试集极为重要。通常情况下,可以按照60%-20%-20%的比例进行划分,即60%的数据作为训练集,20%的数据作为验证集,剩下的20%作为测试集。这种划分方法具有广泛的适用性,但也可以根据具体应用场景进行调整。

训练集是机器学习模型训练过程中使用的数据集。通过对训练集进行数据预处理、特征提取和模型训练,可以使得模型能够更好地拟合数据,并能够在未知数据上进行有效的预测。在训练过程中,需要对模型进行参数选择和调整,以使得模型在验证集上的表现达到最佳。
验证集主要用于调整模型的超参数,以及在训练过程中对模型进行验证和评估。超参数是在模型训练过程中需要手动设置的参数,例如学习率、迭代次数等。这些参数对模型的性能有着重要的影响,需要通过验证集来进行调整,以使得模型在验证集上的性能达到最佳。
测试集是在模型训练和参数调整完成后,用于评估模型性能的数据集。模型的最终性能如何,需要通过测试集来进行评估。在测试过程中,需要对数据进行预处理和特征提取,以使得模型能够更好地适应测试数据。同时,需要对模型的预测结果进行分析和评估,以确定模型的性能如何,以及是否需要进行进一步的优化。

具体可参考以下这篇博文

大模型训练:训练集、验证集与测试集的划分策略-百度开发者中心 (baidu.com)icon-default.png?t=N7T8https://developer.baidu.com/article/details/1900656数据集包含11236条,本文按照9:1的比例划分训练集和测试集。即训练集:10112条、测试集:1123条。模型使用训练集训练,在测试集上评估。将原始数据集切分的python代码如下:

使用Python的`json`模块来加载和保存JSON数据,以及使用`random`模块来随机划分数据。以下是一个简单的示例代码,它将读取`law_train.json`文件,然后将数据随机分为训练集和测试集,并将它们分别保存到`llm_law_train.json`和`llm_law_test.json`文件中。```python
import json
import random# 定义分割比例
train_ratio = 0.9# 读取原始JSON文件
with open('law_train.json', 'r', encoding='utf-8') as f:data = json.load(f)# 随机打乱数据顺序
random.shuffle(data)# 计算训练集和测试集的划分点
split_index = int(len(data) * train_ratio)# 分割数据为训练集和测试集
train_data = data[:split_index]
test_data = data[split_index:]# 将训练集保存到JSON文件
with open('llm_law_train.json', 'w', encoding='utf-8') as f:json.dump(train_data, f, ensure_ascii=False, indent=4)# 将测试集保存到JSON文件
with open('llm_law_test.json', 'w', encoding='utf-8') as f:json.dump(test_data, f, ensure_ascii=False, indent=4)print("数据已成功分割并保存到文件。")
```此脚本将创建两个新的文件:`llm_law_train.json`和`llm_law_test.json`,分别包含原始数据的90%和10%。此外,请注意,根据您的具体需求,您可能需要调整文件路径或编码方式。此代码假设您的JSON文件使用的是UTF-8编码。如果您的数据使用的是其他编码,请相应地更改`encoding`参数。

在data文件夹下新建tool.py

运行tool.py,完成数据集的切分

之后在dataset_info.json中进行数据集注册

选择检查点路径,即模型微调的参数,数据集选择新注册的测试数据集,配置相应的输出目录

预览命令如下

llamafactory-cli train \--stage sft \--model_name_or_path /home/dell/LLaMA-Factory/model/Llama3-8B-Chinese-Chat \--preprocessing_num_workers 16 \--finetuning_type lora \--quantization_method bitsandbytes \--template llama3 \--flash_attn auto \--dataset_dir data \--eval_dataset llm_law_test \--cutoff_len 1024 \--max_samples 100000 \--per_device_eval_batch_size 2 \--predict_with_generate True \--max_new_tokens 512 \--top_p 0.7 \--temperature 0.95 \--output_dir saves/LLaMA3-8B-Chinese-Chat/lora/eval_model_test1 \--do_predict True \--adapter_name_or_path saves/LLaMA3-8B-Chinese-Chat/lora/test1 

 开启测试评估后页面如图所示,预计时间2.5小时

命令行运行状态如下:

三、评估结果分析

运行结束后结果如图所示 

{"predict_bleu-4": 65.52780035587189,"predict_rouge-1": 77.68434395017793,"predict_rouge-2": 65.68475258007118,"predict_rouge-l": 69.22845044483986,"predict_runtime": 10781.344,"predict_samples_per_second": 0.104,"predict_steps_per_second": 0.052
}

 BLEU、ROUGE-L两个指标进行评价。BLEU通过计算模型生成句与原句的相似度,用于评估模型文本生成的精确率,ROUGE则计算评估文本中的内容被模型生成的文本所涵盖的比率,用于评估模型的召回率。

指标含义

BLEU-4  

 BLEU(Bilingual Evaluation Understudy)是一种常用的用于评估机器翻译质量的指标。BLEU-4 表示四元语法 BLEU 分数,它衡量模型生成文本与参考文本之间的 n-gram 匹配程度,其中 n=4。值越高表示生成的文本与参考文本越相似,最大值为 100。
predict_rouge-1 和 predict_rouge-2

ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一种用于评估自动摘要和文本生成模型性能的指标。ROUGE-1 表示一元 ROUGE 分数,ROUGE-2 表示二元 ROUGE 分数,分别衡量模型生成文本与参考文本之间的单个词和双词序列的匹配程度。值越高表示生成的文本与参考文本越相似,最大值为 100。

predict_rouge-lROUGE-L 衡量模型生成文本与参考文本之间最长公共子序列(Longest Common Subsequence)的匹配程度。值越高表示生成的文本与参考文本越相似,最大值为 100。
predict_runtime预测运行时间,表示模型生成一批样本所花费的总时间。单位通常为秒。
predict_samples_per_second每秒生成的样本数量,表示模型每秒钟能够生成的样本数量。通常用于评估模型的推理速度。
predict_steps_per_second每秒执行的步骤数量,表示模型每秒钟能够执行的步骤数量。对于生成模型,一般指的是每秒钟执行生成操作的次数。

 小结

本文介绍了如何对微调后的模型进行使用与简单评估。下文【07】LLaMA-Factory微调大模型——微调模型导出将对微调后的模型进行导出,欢迎您持续关注,如果本文对您有所帮助,感谢您一键三连,多多支持。

相关文章:

【06】LLaMA-Factory微调大模型——微调模型评估

上文【05】LLaMA-Factory微调大模型——初尝微调模型,对LLama-3与Qwen-2进行了指令微调,本文则介绍如何对微调后的模型进行评估分析。 一、部署微调后的LLama-3模型 激活虚拟环境,打开LLaMA-Factory的webui页面 conda activate GLM cd LLa…...

数学建模学习(1)遗传算法

一、简介 遗传算法(Genetic Algorithm, GA)是一种用于解决优化和搜索问题的进化算法。它基于自然选择和遗传学原理,通过模拟生物进化过程来寻找最优解。 以下是遗传算法的主要步骤和概念: 初始化种群(Initialization&a…...

NumPy冷知识66个

NumPy冷知识66个 多维切片: NumPy支持多维切片,可以通过指定多个索引来提取多维数组的子集。 复杂数支持: NumPy可以处理复数,提供了复数的基本运算和函数。 比特运算: NumPy支持比特运算,如与、或、异或等。 数据存储格式: NumPy可以将数…...

Wi-SUN无线通信技术 — 大规模分散式物联网应用首选

引言 在数字化浪潮的推动下,物联网(IoT)正逐渐渗透到我们生活的方方面面。Wi-SUN技术以其卓越的性能和广泛的应用前景,成为了大规模分散式物联网应用的首选。本文将深入探讨Wi-SUN技术的市场现状、核心优势、实际应用中的案例以及…...

在 Ubuntu Server 22.04 上安装 Docker 的详细步骤

在 Ubuntu Server 22.04 上安装 Docker 的详细步骤 本文档详细记录了在 Ubuntu Server 22.04 上安装 Docker 的完整过程,包括解决过程中遇到的问题。希望能对读者有所帮助。 安装过程,重点需要看官方文档。https://docs.docker.com/engine/install/ubu…...

前端使用 Konva 实现可视化设计器(18)- 素材嵌套 - 加载阶段

本章主要实现素材的嵌套(加载阶段)这意味着可以拖入画布的对象,不只是图片素材,还可以是嵌套的图片和图形。 请大家动动小手,给我一个免费的 Star 吧~ 大家如果发现了 Bug,欢迎来提 Issue 哟~ github源码 g…...

vue3 -layui项目-左侧导航菜单栏

1.创建目录结构 进入cmd,先cd到项目目录&#xff08;项目vue3-project&#xff09; cd vue3-project mkdir -p src\\views\\home\\components\\menubar 2.创建组件文件 3.编辑menu-item-content.vue <template><template v-if"item.icon"><lay-ic…...

Spring AOP(1)

目录 一、AOP 概述 什么是Spring AOP&#xff1f; 二、Spring AOP 快速入门 1、引入AOP依赖 2、编写AOP程序 三、Spring AOP 详解 1、Spring AOP的核心概念 &#xff08;1&#xff09;切点&#xff08;Pointcut&#xff09; &#xff08;2&#xff09;连接点&#xff…...

第1关 -- Linux 基础知识

闯关任务 完成SSH连接与端口映射并运行hello_world.py ​​​​ ssh -p 37367 rootssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyCheckingno可选任务 1 将Linux基础命令在开发机上完成一遍 可选任务 2 使用 VSCODE 远程连接开发机并创建一个conda环境 …...

tensorflow keras Model.fit returning: ValueError: Unrecognized data type

题意&#xff1a;TensorFlow Keras 的 Model.fit 方法返回了一个 ValueError&#xff0c;提示数据类型无法识别 问题背景&#xff1a; Im trying to train a keras model with 2 inputs: an image part thats a tf.data.Dataset and a nor mal part represented by a pd.DataF…...

虚拟机固定配置IP

在Hyper-V中&#xff0c;vEthernet (Default Switch) 是Hyper-V自带的默认虚拟交换机&#xff0c;它允许虚拟机直接连接到宿主机网络或外部网络。这个虚拟交换机可以通过Hyper-V管理器或PowerShell等工具进行管理和配置。以下是具体的操作步骤&#xff1a; 一、通过Hyper-V管理…...

【Pytorch实用教程】pytorch中random_split用法的详细介绍

在 PyTorch 中,torch.utils.data.random_split 是一个非常有用的函数,用于将数据集随机分割成多个子集。这在机器学习和深度学习中非常常见,特别是当你需要将数据集分割成训练集和测试集或验证集时。这里是 random_split 的详细用法介绍: 功能 random_split 用于随机地将…...

第二讲:NJ网络配置

Ethernet/IP网络拓扑结构 一. NJ EtherNet/IP 1、网络端口位置 NJ的CPU上面有两个RJ45的网络接口,其中一个是EtherNet/IP网络端口(另一个是EtherCAT的网络端口) 2、网络作用 如图所示,EtherNet/IP网络既可以做控制器与控制器之间的通信,也可以实现与上位机系统的对接通…...

pytorch中常见的模型3种组织方式 nn.Sequential(OrderedDict)

在nn.Sequential中嵌套OrderedDict组织网络,以对层进行命名 import torch import torch.nn as nn from collections import OrderedDictclass OrderedDictCNN(nn.Module):def __init__(self):super(OrderedDictCNN, self).__init__()# 使用 OrderedDict 定义网络层self.model …...

达梦数据库DM8-索引篇

目录 一、前景二、名词三、语法1、命令方式创建索引1.1 创建索引空间1.2.1 创建普通索引并指定索引数据空间1.2.2 另一种没验证&#xff0c;官方写法1.3 复合索引1.4 唯一索引1.5 位图索引1.6 函数索引 2、创建表时候创建索引3、可视化方式创建索引3.1 打开DM管理工具3.2 找到要…...

【中项】系统集成项目管理工程师-第4章 信息系统架构-4.5技术架构

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…...

随机梯度下降 (Stochastic Gradient Descent, SGD)

SGD 是梯度下降法的一种变体。与批量梯度下降法不同&#xff0c;SGD 在每次迭代中仅使用一个样本&#xff08;或一个小批量样本&#xff09;的梯度来更新参数。它能更快地更新参数&#xff0c;并且可以更容易地跳出局部最优解。 原理 SGD 的基本思想是通过在每次迭代中使用不…...

TDengine 3.3.2.0 发布:新增 UDT 及 Oracle、SQL Server 数据接入

经过数月的开发和完善&#xff0c;TDengine 3.3.2.0 版本终于问世了。这一版本中既有针对开源社区的功能优化&#xff0c;也有从企业级用户需求出发做出的功能调整。在开源版本中&#xff0c;我们增强了系统的灵活性和兼容性&#xff1b;而在企业级版本中&#xff0c;新增了关键…...

Ubuntu 24.04 LTS 无法打开Chrome浏览器

解决办法&#xff1a; 删除本地配置文件&#xff0c;再次点击Chrome图标&#xff0c;即可打开。 rm ~/.config/google-chrome/ -rf ref: Google chrome not opening in Ubuntu 22.04 LTS - Ask Ubuntu...

linux中RocketMQ安装(单机版)及springboot中的使用

文章目录 一、安装1.1、下载RocketMQ1.2、将下载包上传到linux中&#xff0c;然后解压1.3、修改runserver.sh的jvm参数大小&#xff08;根据自己服务器配置来修改&#xff09;1.4、启动mqnamesrv &#xff08;类似于注册中心&#xff09;1.5、修改runbroker.sh的jvm参数大小&am…...

亚信安全终端一体化解决方案入选应用创新典型案例

近日&#xff0c;由工业和信息化部信息中心主办的2024信息技术应用创新发展大会暨解决方案应用推广大会成功落幕&#xff0c;会上集中发布了一系列技术水平先进、应用效果突出、产业带动性强的信息技术创新工作成果。其中&#xff0c;亚信安全“终端一体化安全运营解决方案”在…...

Django视图与URLs路由详解

在Django Web框架中&#xff0c;视图&#xff08;Views&#xff09;和URLs路由&#xff08;URL routing&#xff09;是Web应用开发的核心概念。它们共同负责将用户的请求映射到相应的Python函数&#xff0c;并返回适当的响应。本篇博客将深入探讨Django的视图和URLs路由系统&am…...

怎么关闭 Windows 安全中心,手动关闭 Windows Defender 教程

Windows 安全中心&#xff08;也称为 Windows Defender Security Center&#xff09;是微软 Windows 操作系统内置的安全管理工具&#xff0c;用于监控和控制病毒防护、防火墙、应用和浏览器保护等安全功能。然而&#xff0c;在某些情况下&#xff0c;用户可能需要关闭 Windows…...

洛谷看不了别人主页怎么办

首先&#xff0c;我们先点进去 可以看到&#xff0c;看不了一点 那我们看向上方&#xff0c;就可以发现&#xff0c;我们那有个URL&#xff0c;选中 把光标插到n和/中间 把.cn删了&#xff0c;变成国际服 我们就可以看了 但是国际服还没搭建完&#xff0c;跳转的时候可能503&a…...

邮件安全篇:企业电子邮件安全涉及哪些方面?

1. 邮件安全概述 企业邮件安全涉及多个方面&#xff0c;旨在保护电子邮件通信的机密性、完整性和可用性&#xff0c;防止数据泄露、欺诈、滥用及其他安全威胁。本文从身份验证与防伪、数据加密、反垃圾邮件和反恶意软件防护、邮件内容过滤与审计、访问控制与权限管理、邮件存储…...

软件测试09 自动化测试技术(Selenium)

重点/难点 重点&#xff1a;理解自动化测试的原理及其流程难点&#xff1a;Selinum自动化测试工具的使用 目录 系统测试 什么是系统测试什么是功能测试什么是性能测试常见的性能指标有哪些 自动化测试概述 测试面临的问题 测试用例数量增多&#xff0c;工作量增大&#xff…...

记录解决springboot项目上传图片到本地,在html里不能回显的问题

项目场景&#xff1a; 项目场景&#xff1a;在我的博客系统里&#xff1a;有个相册模块&#xff1a;需要把图片上传到项目里&#xff0c;在html页面上显示 解决方案 1.建一个文件夹 例如在windows系统下。可以在项目根目录下建个photos文件夹&#xff0c;把上传的图片文件…...

C++ 中 const 关键字

C 中 const 关键字 2009-02-19 2024-07-23 补充C11后的做法 在 C 中&#xff0c;const 是一个关键字&#xff08;也称为保留字&#xff09;&#xff0c;它用于指定变量或对象的值在初始化后不能被修改。关键字是编程语言中具有特殊含义的词汇&#xff0c;编译器会识别这些词并…...

客梯自动监测识别摄像机

当今社会&#xff0c;随着城市建设的快速发展&#xff0c;客梯作为现代化建筑不可或缺的一部分&#xff0c;其安全性与效率显得尤为重要。为了提升客梯的安全管理水平&#xff0c;智能监测技术应运而生&#xff0c;尤其是客梯自动监测识别摄像机系统的应用&#xff0c;为乘客和…...

为什么那么多人学习AI绘画?工资香啊!

在当今这个科技日新月异的时代&#xff0c;AI绘画作为数字艺术与人工智能融合的璀璨成果&#xff0c;正吸引着无数人投身其中&#xff0c;而“工资香啊&#xff01;”无疑是这一热潮背后不可忽视的驱动力之一。 AI绘画的高薪待遇是吸引众多学习者的关键因素。随着市场对AI艺术…...

网站开发建设/行业关键词查询

这几天我的上篇长篇大论引来一堆回复&#xff0c;大家基本上都表扬了我。 其实我公开发表之前还是有些犹豫&#xff0c;因为我话说得比较冲&#xff0c;火药味比较重。严格的说点发表前我甚至删了不少火箭只剩下温柔的子弹&#xff0c;使得文章温和一些。不知道何时开始&#x…...

光谷企业网站建设/全国十大跨境电商排名

数据可视化可以让我们很直观的发现数据中隐藏的规律&#xff0c;察觉到变量之间的互动关系&#xff0c;可以帮助我们更好的给他人解释现象&#xff0c;做到一图胜千文的说明效果。常见的数据可视化库有&#xff1a;matplotlib 是最常见的2维库&#xff0c;可以算作可视化的必备…...

金融街做网站的公司/重要新闻今天8条新闻

首先下载React 的安装包&#xff0c;可以到官网下载。也可以使用React Demos 已经自带 React 源码&#xff0c;不用另外安装&#xff0c;只需把这个库拷贝到硬盘中使用。 &#xff08;可参考http://www.ruanyifeng.com/blog/2015/03/react.html 此网址的具体操作&#xff09; 1…...

长沙网站建设公司哪家好/网站关键词怎么快速上排名

06/01 2020 日论文提交&#xff0c;我是国内普通211本科毕业专业计算机科学与技术&#xff0c;本科毕业后直接来英国读博士&#xff0c;由于本科期间并没有认真学习&#xff0c;导致直博第一年压力巨大&#xff0c;前前后后花了5年时间完成博士论文&#xff0c;中间的进步提升是…...

wordpress棋牌插件/高端营销型网站建设

Java中的 ? extends T和 ? super T? 通配符类型<? extends T><? super T>PECS原则总结? 通配符类型 <? extends T>表示类型的上界: 表示参数化类型的可以是T或者T的子类 <? super T>表示类型的下界: 表示参数化类型是这个类型的超类型,即父类…...

java做的网站怎么打开网页/友情链接翻译

官网地址https://nikcollection.dxo.com/著名的图像处理插件套装 Nik Collection 一直受到众多摄影师的青睐&#xff0c;是Photoshop、Lightroom等软件最常用的插件之一&#xff0c;全面支持 Windows 和苹果系统&#xff0c;简单易用&#xff0c;效果显著。Nik Collection 3 包…...