LLaMA-Factory 大模型微调超简单,从零开始玩转大模型微调

微调神器LLaMA-Factory官方保姆级教程来了,从环境搭建到模型训练评估全覆盖 数据集的格式要求在不同的阶段是不同的,本教程以sft阶段的数据集需求,将以系统自带的identity数据集和将自定义的一个商品文案生成数据集为例,介绍数据集的使用。更多详情可以在https://github.com/hiyouga/LLaMA-Factory/blob/main/data/README_zh.md 中找到相关解释。系统目前支持 alpaca 和sharegpt两种数据格式,以alpaca为例,整个数据集是一个json对象的list,具体数据格式为。 阅读详情
AI摘要

LLaMA-Factory简化了大模型微调流程,无需深厚技术背景和大量资源。它支持从安装到模型评估、对话测试和导出的全流程操作,特别适合希望在性能较弱设备上运行模型的用户。

为什么要使用LLaMA-Factory进行微调?

在处理大模型微调的工作中,我们常常会面临各种棘手的问题。比如,传统的微调方法不仅复杂繁琐,还对技术和资源有着很高的要求,让很多人望而却步。然而,LLaMA-Factory 的出现改变了这一局面。

它最大的优势就是让大模型的微调变得轻而易举。不再需要您具备深厚的技术功底和大量的计算资源投入,就能实现对模型的优化和改进。

同时,在模型量化方面,它能够有效地压缩模型的规模,大大减少了模型运行所需的计算量和存储空间。这意味着您可以在性能稍弱的设备上也能流畅地运行模型,使其应用不再受限于高端硬件。

还有很重要的一点,LLaMA-Factory 提供了一站式的服务。从开始的模型微调,到中间的量化处理,再到最后的顺利运行,整个过程一气呵成,无需您在不同的工具和流程之间来回折腾,节省了大量的时间和精力。

如何使用LLaMA-Factory进行微调?

安装

使用它,比较简单,首先需要到它的github地址:github.com/hiyouga/LLa… 下载这个项目代码,你可以使用git clone 下载 该代码。

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git

下载到本地后进入项目目录,安装相关依赖。

pip install -e .[metrics]

注:-e表示以可编辑(editable)模式安装当前目录下的项目。这意味着安装后,你对项目源代码的修改会直接反映在已安装的版本中,无需重新安装。点(.)表示当前目录,即要安装当前目录下的项目。

如果安装完成后,可以通过如下命令检查是否安装成功

llamafactory-cli version

如果安装成功,会返回类似如下内容:


| Welcome to LLaMA Factory, version 0.8.3.dev0 |

| |
| Project page: github.com/hiyouga/LLa… |

启动

安装完成之后,可以启动查看它的WebUI界面,在界面上更加方便我们微调模型。

llamafactory-cli webui

命令执行之后,出现如下响应代表成功启动了webui界面。

在这里插入图片描述
​编辑

默认开启端口7860,在浏览器中输入地址即可访问。

在这里插入图片描述
​编辑

这里有很多的参数,不过大多数参数并不需要改动,使用默认的即可。其他的参数用到时再说。

数据准备

LLaMA-Factory提供了很多内置的数据可供微调,在界面的数据集选择框中可以选择,不过我们微调肯定是希望使用自己准备的数据,下面就说下如何准备自己的数据。

目前LLaMA-Factory 只支持两种格式的数据集,alpaca 格式和 sharegpt 格式。我们只需要按照格式准备数据,然后将数据文件放入到 LLaMA-Factory项目的 data 目录下,然后在 dataset_info.json中 填写 你自定义的数据集名称和 你的数据集文件名称 即可。

Alpaca 格式

需要注意的是,该格式数据集包括 指令监督微调数据集、预训练数据集、偏好数据集、KTO 数据集和多模态数据集等不同类型的格式。

指令监督微调数据集

在指令监督微调时,instruction 列对应的内容会与 input 列对应的内容拼接后作为人类指令,即人类指令为 instruction\ninput。而 output 列对应的内容为模型回答。

如果指定,system 列对应的内容将被作为系统提示词。

history 列是由多个字符串二元组构成的列表,分别代表历史消息中每轮对话的指令和回答。注意在指令监督微调时,历史消息中的回答内容也会被用于模型学习。

例如 data.json的内容如下:

[
{
“instruction”: “人类指令(必填)”,
“input”: “人类输入(选填)”,
“output”: “模型回答(必填)”,
“system”: “系统提示词(选填)”,
“history”: [
[“第一轮指令(选填)”, “第一轮回答(选填)”],
[“第二轮指令(选填)”, “第二轮回答(选填)”]
]
}
]

对于上述格式的数据,dataset_info.json 中的_数据集描述_应为:

{"自定义数据集名称": {
  "file_name": "data.json",
  "columns": {
    "prompt": "instruction",
    "query": "input",
    "response": "output",
    "system": "system",
    "history": "history"
  }
}

columns字段里的内容可以省去不写,可以简写为:

“数据集名称”: {
“file_name”: “data.json”
}

预训练数据集

在预训练时,只有 text 列中的内容会用于模型学习。

data.json内容如下:

[  {"text": "document"},  {"text": "document"}]

对于上述格式的数据,dataset_info.json 中的_数据集描述_应为:

"数据集名称": {
  "file_name": "data.json",
  "columns": {
    "prompt": "text"
  }
}

更加详细的数据格式介绍可以到官方文档查看:github.com/hiyouga/LLa…https://github.com/hiyouga/LLaMA-Factory/blob/main/data/README_zh.md

具体的实际数据格式都在 data 目录下的 dataset_info.json 文件,比如下面的法律方面的数据:

在这里插入图片描述
​编辑

在微调模型的过程中,最麻烦的莫过于准备数据了,因为训练或微调需要的数据只能是特定格式的数据,你不可能把混乱的、自己都看不懂的数据交给模型去训练。那如何将混乱的原始数据转为特定格式的数据,是模型微调前要准备的。

开始微调

当准备好数据之后,剩下的就交给LLaMA-Factory吧,操作起来还是比较简单的。

基本的过程如下:

  1. 启动WebUI界面,启动命令 :llamafactory-cli webui
  2. 选择基础模型
  3. 选择一个或多个你准备好的数据集
  4. 选择微调方法,默认是lora,还可以选择full(全量微调)、freeze (冻结微调)。
  5. 设置训练参数,比如学习率、训练轮数、批处理大小、
  6. 点击开始按钮,开始进行微调,在右边会出现模型的损失曲线图。当下面显示训练完毕时,就训练完成了。
  7. 微调结果的lora权重参数在输出目录下可以看到,配置路径也被保存起来了。
  8. 训练过程中,你可以选择中断训练,然后在检查点输入 之前 lora权重的目录,就可以在之前的训练结果上接着训练了。

在这里插入图片描述
​编辑

如果你不想通过界面微调的话,可以点击预览命令,那么会显示微调的命令,你拷贝这个命令就可以在命令行执行。

模型评估

在这里插入图片描述
​编辑

模型评估完成后会在界面上显示评估数据集的分数。其中,ROUGE分数衡量了模型输出答案和评估集中的标准答案的相似度,ROUGE分数越高代表模型学习得越好。

对话测试

在Web UI的 界面 Chat页签下,通过使用你之前微调结果的输出的检查点路径,加载微调后的模型进行对话测试。先点击加载模型,然后就可以在下面的文本框中输入文本了。

在这里插入图片描述
​编辑

如果你想看没有微调的效果是如何的,取消检查点路径中选中的路径即可。

模型导出

在Web UI的 界面 Export 页签下,填写你要保存的输出地址,然后点击开始导出即可。

在这里插入图片描述
​编辑

因为我这边模型的量化是通过其他方式实现的,比如Ollama,有关模型导出后,如何量化、部署、运行的,请关注我哦,后续会出相关的文章讲解~~

Llama-factory详细基础使用说明 对于初入算法的童鞋来说,有的可能还不知道llama-factory是什么,只知道大模型用到了这个框架,这是不行的。LLaMA-Factory 是一个低代码的大规模语言模型(LLM)训练框架,它主要面向研究人员和开发者,旨在简化大型语言模型的微调、评估和部署过程。白话说就是集合了当下LLM领域各种好用的开源或者自研的框架以及工具,进行封装以及优化,简化使用方法,方便大家对大模型进行微调和评估部署等工作,降低了使用难度。包括推理框架vllm等(具体可以看官网哈,下面有地址)易用性 vs. 性能。 阅读详情

相关推荐

12 大模型学习——LLaMA-Factory微调

Alpaca 格式由斯坦福大学的研究人员提出,主要用于单轮指令微调任务。针对不同任务,数据集的格式要求不同。应用场景:- 适用于单轮任务,如问答、文本生成、摘要、翻译等。- 结构简洁,任务导向清晰,适合低成本的指令微调。

weixin_54388827的博客 4622

LLaMA-Factory:手把手教你从零微调大模型!

在深度学习领域,模型微调通常指的是在预训练模型的基础上进行的进一步训练。预训练模型是在大量数据上训练得到的,它已经学习到了语言的基本规律和丰富的特征表示。然而,这些模型可能并不直接适用于特定的任务或领域,因为它们可能缺乏对特定领域知识的理解和适应性。模型微调通过在特定任务的数据集上继续训练预训练模型来进行,使得模型能够学习到与任务相关的特定特征和知识。这个过程通常涉及到模型权重的微幅调整,而不是从头开始训练一个全新的模型。

php源码 1万+

模型微调-基于LLaMA-Factory进行微调的一个简单案例

接下来就可以通过 LLaMa-Factory 进行微调了,这里先做一个简单的演示,为了不让这篇文章篇幅过长,先不具体讲解各种微调参数的含义和作用,数据集也只使用 LLaMa-Factory 自带的示例数据集,演示一下对模型认知设定的微调。需要注意的是,加载本地模型的时候,需要修改填写模型本地路径,这里的路径是模型快照的唯一哈希值,而不是模型文件夹的路径。之后就可通过和模型进行对话,测试下载下来的模型是否正常了,也可以看下对话中模型输出的风格,和我们微调之后的做下对比。

weixin_37648525的博客 2019

LLaMA-Factory部署以及微调大模型

安装成功后,输入python能出现截图表示安装成功。

qq_35594661的博客 1万+

LLaMa Factory大模型微调

如果有all_proxy的设置,使用下面命令设置为空就行。以Qwen/Qwen2.5-7B-Instruct为例。比如我的数据集没有history,我就把。看看有没有出现下面的all_proxy的设置。,搜相应的模型名字,比如我这里直接搜。微调自我认知+微调特定领域数据集。,使用下面命令查看系统的代理设置。如果数据集没有相应的键,就先去掉。不确定模型的名字的话,打开链接。按Alpaca格式准备好数据集。关于history的部分去掉。,然后得知模型全称是。

laonafahaodange的博客 1480

【大模型】使用 LLaMA-Factory 进行大模型微调:从入门到精通

使用 LLaMA-Factory 进行模型微调:从入门到精通

weixin_43988131的博客 1854

新手教程之使用LLaMa-Factory微调LLaMa3

如果你尝试过微调大模型,你就会知道,大模型的环境配置是非常繁琐的,需要安装大量的第三方库和依赖,甚至需要接入一些框架。 但是大模型微调的方法又是非常类似的,那有没有一种工具可以统一这些操作,让大模型微调变成一个简单易上手的事情,LLaMa-Factory就是为了解决这个问题应运而生

David_house的博客 1万+

LLaMA-Factory 让大模型微调变得更简单!!

如果只需要构建一份任务相关的数据,就可以轻松通过网页界面的形式进行 Fine-tuning 微调操作, 那么必将大大减轻微调工作量。今年的 ACL 2024见证了北航和北大合作的突破—论文《LLAMAFACTORY: 统一高效微调超百种语言模型》。他们打造的 LLaMA-Factory,集成了顶尖的训练效率技术,让用户能轻松通过网页界面 LLAMABOARD,无须编码,即对上百个语言模型进行个性化微调。

weixin_42924914的博客 1340

从零开始的LLaMA-Factory的指令增量微调

LLaMA-Factory是开源的大模型微调框架,在模型微调方式、参数配置、数据集设置、模型保存、模型合并、模型测试以及模型试用上,提供了非常完备的开发接口。

9481

LLaMA Factory单机微调的实战教程

本文主要介绍了使用LLaMA Factory对大模型进行单机微调的实战教程,希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 配置环境 2.1 安装虚拟环境 2.2 安装依赖库 2.3 模型选型与下载 3. 运行代码 3.1 构建训练数据 3.2 修改配置文件 3.3 微调

herosunly的博客 21万+

保姆级教程:用Protege 5.5.0从零构建你的第一个知识图谱(附实战案例文件)

本文提供了一份详细的Protege 5.5.0使用指南,从零开始构建知识图谱。涵盖环境配置、本体结构设计、实例填充到可视化展示的全流程,特别适合初学者快速掌握知识建模技术。通过实战案例演示,帮助读者理解如何定义类、属性及建立实例关系,是学习知识图谱构建的实用教程。

weixin_42548816的博客 554

小白也能微调大模型:LLaMA-Factory使用心得

本文介绍了初学者如何使用LLaMA-Factory进行大模型的微调,包含训练、测试数据集的构建,训练任务相关的参数,训练完成后的测试集上推理等环节

MeetLight 1万+

概述DeepLab系列(deeplab v1, deeplab v2, deeplab v3, deeplab v3+)

前言:图像分割是指像素级别的图像识别,即标注出图像中每个像素所属的对象类别。 语义分割更注重类别之间的区分,而实例分割更注重个体之间的区别。 DeepLab是由Google团队提出的一系列图像分割算法。 DeepLab v1 (2014年) Paper (ICLR 2015) Code 创新点: 空洞卷积(Atrous Conv); <解决编码过程中信号不断被下采样,细节丢失的问题> 全连接条件随机场(Fully-connected Conditional Random Field)。

ZSH12345678900的博客 5528

LLaMA Factory微调Llama3模型

是一款开源低代码大模型微调框架,集成了业界最广泛使用的微调技术,支持通过Web UI界面零代码微调大模型,目前已经成为开源社区内最受欢迎的微调框架。

小森的博客 4139

深入解析STM32定时器中央对齐模式3的双中断机制

本文深入解析了STM32定时器中央对齐模式3的双中断机制。该模式在一个PWM周期内,会在计数器到达ARR(上溢)和0(下溢)时各触发一次更新中断,实现更精细的实时控制。文章详细阐述了其工作原理、配置方法,并指导如何在中断服务函数中通过DIR位区分中断来源,同时探讨了其在电机控制、数字电源等场景下的应用优势与CPU负载挑战。

weixin_29164185的博客 493

CYUSB3065配置CMOS

按照OG02B10的时序电路,在通过SCCB配置CMOS之前,需要三个电源上电,Xshutdown高电平和配置时钟电路。找到手册的第6章SCCB(跟IIC很像),可以看到SCCB的地址与SID引脚有关,这个需要到硬件原理图上确认下。这是Cypress的一个支持MIPI和UVC的模块,有例程支持OV5640,现在要替换替换成OG02B10。寄存器参数需要找到厂家的FAE,由他们提供,OG02B10的资料已经上传。(2)参考得宏的电路,时钟由主控提供,目前程序未实现。这里有两个重要参数需要搞定,摄像头的。

qq_40773212的博客 2947
上一篇: 人工智能大模型原理与应用实战:大模型的安全问题
下一篇: 为什么有很多程序员想转产品经理?
AI大模型_学习君
博客等级 码龄3年 6137粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值