前言
模型微调的工具和框架有很多,本节来看下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的版本,效果如下。
数据集准备
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目录下运行该命令,不然后续会找不到数据集)。
启动后程序运行在7860端口,最左上角的语言可设置界面展示语言,zh代表中文,如下图。
参数设置
下面我们来看下必须要设置的参数,因为参数过多,后续我们再单独记一篇关于微调的相关参数解释,部分参数和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`
这里我们为了更方便的管理模型,我们选择手动下载到本地,然后将本地路径粘贴进去,如下:
第二行的微调方法选择Lora,检查点路径先不用管。
第三行量化我们这里是0.5b的,仅作测试,所以不进行量化,如果要量化,根据自己需求选择对应参数即可。
然后到训练模块,选择训练方式,这里选择Supervised Fine-Tuning监督微调,数据路径默认data,数据集选择我们刚才准备的ruozhiba以及identity,如下图。
之后有一个训练轮数,我们这里数据集比较少,为了充分学习,我们设置大一点,比如20,其它参数暂时不动,后续单独讲解。
然后拉到最后,有一个保存结果的路径和保存配置文件的路径,我们这里不做修改,点击开始即可,右下角会以图形曲线形式展示损失值(最好是1以下)。
开始后可以实时关注当前显卡的状态,有时候报错,可能是显存爆掉了,可以查看显存的使用情况,可以使用传统的nvidia-smi命令,或者nvitop查看。
训练完毕后,Lora模型会保存在llama-factory下的saves目录,如下图。
模型推理和评估
模型微调后我们需要进行评估,看训练效果怎么样,数据集可以分训练数据集、推理数据集,我这里用的这个数据集暂时没有推理的,所以这里就不再具体推理了,我们来看下推理的步骤。
详情看下图标注:
这个推理后最后会给一个rouge得分,即推理后的答案和数据集标准答案之间的对比所得的分数,分数越高,说明推理效果越好。通常这个分数可以按100分为满分制,通过搜索资料,暂未发现有合格分,所以并不是达到多少分就合格,需要自己根据情况看是否满足需求。
模型对话
比如我们自己的数据集,没有对应的推理数据,则我们可以通过聊天来测试模型推理效果,操作图如下:
如下效果:
这个身份数据集结果回答的没问题,后续我们可以从训练数据集中找些问题自己询问下,看输出是否符合预期。
模型导出
切换到导出栏,主要就是填一下模型导出的位置,如下图:
导出后如下结果:
导出结果是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路径可查看接口文档,如下图:
以上就是LLaMA-Factory的基本用法,感谢阅读。
如何学习AI大模型?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?
”“谁的饭碗又将不保了?
”等问题热议不断。
不如成为「掌握AI工具的技术人」
,毕竟AI时代,谁先尝试,谁就能占得先机!
想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高
那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
👉 福利来袭
CSDN大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈
全套AGI大模型学习大纲+路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉 福利来袭
CSDN大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。