使用LLaMA-Factory进行模型微调

前言

模型微调的工具和框架有很多,本节来看下LLaMA-Factory的用法,也可参考之前的文章《使用Unsloth进行模型微调》。

安装

本次我们依然以Windows的WSL为例进行操作,WSL安装和用法可参考上一篇内容,安装命令如下。

git clone https://github.com/hiyouga/LLaMA-Factory.git
conda create -n llama_factory python=3.10
conda activate llama_factory
cd LLaMA-Factory
pip install -e '.[torch,metrics]'

这里-e加点代表执行当前目录下的setup.py进行相关库的安装,而不是直接从pypi上安装,中括号中的是可选仓库,意思是你安装的时候可以把中括号以及里面的仓库去掉,这里我们按官网命令,也安装一下。

安装后可以通过下面代码来验证下,看安装是否成功。

import torch
torch.cuda.current_device()
torch.cuda.get_device_name(0)
torch.__version__

torch是一个深度学习框架,cuda是一个并行计算程序,可以让开发者调用Nvidia的显卡进行高性能计算,PyTorch和TensorFlow等深度学习框架都有用到cuda。

current_device用来获取当前使用CUDA的GPU设备索引号,如果机器上只有一个GPU,则该索引通常为0,get_device_name接收设备索引号,可得到设备的名称,torch的version可获取当前PyTorch和CUDA的版本,效果如下。

img

数据集准备

LLaMA-Factory自带了一些数据集,都以json格式存在data目录下,后面通过图形化界面微调时,可以直接通过下拉框进行选择,同时也可以添加自己的数据集,如果要添加自己的数据集,需要进行一些配置。

我们先来看下data下面的一个叫做identity.json的数据集,也叫做身份数据集,这个数据集打开后,发现问题都是类似于询问模型你是谁,然后回答是类似于我是XX开发的XX模型,如果我们想把微调后的模型给它个身份,比如让他回答我是AiSec团队训练的AI安全助手模型,那么就需要修改下这个数据集,将里面的{{name}}和{{author}}进行替换,替换为模型的名字和开发者。

批量替换命令参考如下:

sed -i 's/{{name}}/AI安全助手/g'  data/identity.json 
sed -i 's/{{author}}/AiSec团队/g'  data/identity.json 

sed是一个流编辑器,可以执行查找、替换、插入、擅长等操作,i表示编辑模式,s代表进行替换,第一个内容是要搜索的内容,第二个内容是要替换的内容,g代表全局搜索,最后跟要操作的文件,当然如果不想对模型回答我是谁这个问题进行调整,则不用修改,微调时不选择即可。

再来看下我们自己的数据集,还以之前Unsloth微调示例中的ruozhiba为例,具体可参考之前文章《使用Unsloth进行模型微调》,首先要把数据集文件复制到data目录下,然后修改dataset_info.json文件,因为只有把数据集配置到这个文件中,llama-factory才能识别,具体的配置各个参数说明和示例可参考官方说明,如下地址。

https://github.com/hiyouga/LLaMA-Factory/blob/main/data/README_zh.md

我这里比较简单,如下代码:

"ruozhiba": {
       "file_name": "ruozhiba.jsonl"
 }

最开始的是数据集名称,根据自己的情况起一个名字,然后file_name指定数据集文件,该文件要在data目录下。

界面预览

直接运行llamafactory-cli命令,会显示相关的使用方法,其中可通过webui参数来启动图形化操作,里面包含了微调、推理和导出,我们这里直接启用webui,如下图(注意要在llama-factory目录下运行该命令,不然后续会找不到数据集)。

img

启动后程序运行在7860端口,最左上角的语言可设置界面展示语言,zh代表中文,如下图。

img

参数设置

下面我们来看下必须要设置的参数,因为参数过多,后续我们再单独记一篇关于微调的相关参数解释,部分参数和Unsloth是一样的,可参考之前Unsloth微调的内容。

首先看第一行,模型名称处填入要微调的模型,这是个下拉列表,可以直接选择,选择后模型路径框会显示该模型的组织和名称,默认情况下该模型会从huggingface下载,可以修改环境变量,设置从魔塔社区或者魔乐社区下载,命令如下:

export USE_MODELSCOPE_HUB=1 # Windows 使用 `set USE_MODELSCOPE_HUB=1`
export USE_OPENMIND_HUB=1 # Windows 使用 `set USE_OPENMIND_HUB=1`

这里我们为了更方便的管理模型,我们选择手动下载到本地,然后将本地路径粘贴进去,如下:

img

第二行的微调方法选择Lora,检查点路径先不用管。

第三行量化我们这里是0.5b的,仅作测试,所以不进行量化,如果要量化,根据自己需求选择对应参数即可。

然后到训练模块,选择训练方式,这里选择Supervised Fine-Tuning监督微调,数据路径默认data,数据集选择我们刚才准备的ruozhiba以及identity,如下图。

img

之后有一个训练轮数,我们这里数据集比较少,为了充分学习,我们设置大一点,比如20,其它参数暂时不动,后续单独讲解。

然后拉到最后,有一个保存结果的路径和保存配置文件的路径,我们这里不做修改,点击开始即可,右下角会以图形曲线形式展示损失值(最好是1以下)。

开始后可以实时关注当前显卡的状态,有时候报错,可能是显存爆掉了,可以查看显存的使用情况,可以使用传统的nvidia-smi命令,或者nvitop查看。

训练完毕后,Lora模型会保存在llama-factory下的saves目录,如下图。

img

模型推理和评估

模型微调后我们需要进行评估,看训练效果怎么样,数据集可以分训练数据集、推理数据集,我这里用的这个数据集暂时没有推理的,所以这里就不再具体推理了,我们来看下推理的步骤。

详情看下图标注:

img

这个推理后最后会给一个rouge得分,即推理后的答案和数据集标准答案之间的对比所得的分数,分数越高,说明推理效果越好。通常这个分数可以按100分为满分制,通过搜索资料,暂未发现有合格分,所以并不是达到多少分就合格,需要自己根据情况看是否满足需求。

模型对话

比如我们自己的数据集,没有对应的推理数据,则我们可以通过聊天来测试模型推理效果,操作图如下:

img

如下效果:

img

这个身份数据集结果回答的没问题,后续我们可以从训练数据集中找些问题自己询问下,看输出是否符合预期。

模型导出

切换到导出栏,主要就是填一下模型导出的位置,如下图:

img

导出后如下结果:

img

导出结果是safetensors,如果想用gguf,可以使用llama.cpp中的转换脚本,示例如下:

python convert-hf-to-gguf.py /models

直接跟目录所在目录即可。

发布API

为了更好的给下游提供任务,我们通常需要以API形式来提供模型服务,参考命令如下:

CUDA_VISIBLE_DEVICES=0 API_PORT=8000 llamafactory-cli api \
    --model_name_or_path /mnt/c/qwen \
    --adapter_name_or_path ./saves/Qwen1.5-0.5B/lora/train_2025-02-17-16-29-18 \
    --template qwen \
    --finetuning_type lora

运行后API会以OpenAI接口形式运行在8000端口,直接访问8000的docs路径可查看接口文档,如下图:

img

以上就是LLaMA-Factory的基本用法,感谢阅读。

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

👉 福利来袭CSDN大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭CSDN大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值