LlamaFactory-webui:训练大语言模型的入门级教程

LlamaFactory是一个开源框架,支持多种流行的语言模型,及多种微调技术,同时,以友好的交互式界面,简化了大语言模型的学习。

本章内容,从如何拉取,我已经搭建好的Llamafactory镜像开始,以及构建webui界面,在到加载模型推理、私有化模型的训练及其验证,最后模型的导出。全程都有截图流程,一站式服务,无需你懂代码,无需你拥有高大上的AI基础知识,任何小白都可尝试训练属于自己的私有模型,并部署在自己的服务器上。

一、拉取镜像

大家可点击下方链接,使用Autodl算力云平台

AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDLhttps://www.autodl.com/home

注册登录充值后,在算力市场上,就可以选择租赁的机器了。

提供多种计费方式,注意下方的显卡数量,初次尝试,选择单卡即可.大家按需选择。

机器确定后,选择社区镜像,然后搜索Llamafactory-webui ,就会出现下方镜像,注意辨别账号名称为 HuiFei-AI

我的镜像,大约15个G,初次拉取镜像会有点慢,不过还好并不计费,他会在拉取镜像成功之后,自动开机。大家完全可以去干别的事,成功后会以短信的形式通知你。

给大家展示下,我这次选择的机器,为了测试多卡训练,我这里选择了2个 32GB vGPU。另外,大语言模型一般都不会小,所以这里我就付费扩容了数据盘的大小。

大家首次拉取镜像时,如果选择的GPU配置太低,带不起来训练的,又或者磁盘太小,不够下载模型的。别慌,进入容器实例中,找到你现在运行的机器,点击查看详情,可以升降配置,以及扩充磁盘。但必须得在关机状态下修改,在重新开机就行。

二、构建webui界面

开机后,如何链接到租赁的服务器呢?有多种方式...

1、使用平台提供的JupyterLab。容器实例中,快捷工具,如下图中右上角

2、Xshell,Xftp工具,一般配套使用。使用平台提供的登录指令及其密码。不知道如何使用这两个工具的,可自行百度。

我选择搭配使用,平台快捷工具,使用终端,xftp用来拷贝文件

打开JupyterLab后,直接选择终端,进入服务器的命令行窗口

终端下,按下面两条指令依次键入即可

cd LLaMA-Factory

llamafactory-cli webui

上述指令执行后,终端会出现如下字样,生成可访问的链接。

租赁的服务器不具备打开web界面的能力,所以需要做端口暴漏至本机,这里也有两种方式:

1、使用平台上的快捷工具,点击自定义服务

他会让你下载一个压缩包到本机,按照图中步骤去做,没啥难度。

2、第二种方式,我比较常用,使用ngrok工具。官网链接如下

Setup - ngrokhttps://dashboard.ngrok.com/get-started/setup/linux这里需要用到 Authtoken,所以需要你注册和登录ngork账号,获取属于你自己的认证密钥。

在服务器的终端上(一台服务器上可同时打开多个终端),键入以下指令,安装ngrok工具。

curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
	| sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
	&& echo "deb https://ngrok-agent.s3.amazonaws.com buster main" \
	| sudo tee /etc/apt/sources.list.d/ngrok.list \
	&& sudo apt update \
	&& sudo apt install ngrok

安装后,终端键入如下指令 ,确认安装是否成功,以及版本。

ngrok version

接下来就是配置你的认证密钥,服务器终端下,键入如下指令,记得切换你的认证密钥。

ngrok authtoken <你的auth token>

配置好以后,执行端口暴漏命令,llamafactory默认使用的端口号为7860。

ngrok http 7860

暴漏成功后,会生成一个链接,点击链接,即可在本机上,打开llamafactory的webui界面了 。

此时,就正式开启了我们的训练大语言模型的奇妙之旅了。

三、下载模型

Llamafactory默认会根据你选择的模型名称,从huggingface中现下载模型,这个过程需要外网,所以一般会下载失败,不建议这种方式。

这里推荐使用 modelscope,内网就可直接下载,官网链接如下。

ModelScope魔搭社区https://community.modelscope.cn/

进入官网后,大家可直接从模型库,搜索你想要的模型。市面上流行的模型,这里一般都有。

找到你要的模型后,这里假设准备使用deepseek-1.5b的模型,点进该模型后,找到模型文件。

右侧会有个下载模型按钮,点击

modelscope 支持多种下载方式,我这里选择的是SDK下载方式。

服务器终端,键入python,进入交互式编程界面

粘贴我下方的命令,会指定下载路径,官网给的代码默认会将模型下载到系统盘,模型太大,会爆的,建议大家将模型都下到数据盘中(autodl-tmp),数据盘可随便扩容,也可在克隆实例时,连同数据盘一起克隆,避免在不同机器上重复下载,非常方便。

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B',cache_dir='/root/autodl-tmp')

接下来就是等待时间了,建议大家早上(8点之前)或者夜晚下载,速度很快。大白天下载,速度慢到怀疑人生。

四、加载模型推理

模型下载好以后,大家可在webui界面,加载本地模型进行推理聊天了,如下图所示:

模型路径 ->填写你下载到服务器上的模型位置

选择 chat 模式,然后点击加载模型

模型加载成功后的界面如下,右侧是推理时的超参调节。

切记:模型不用时,记得先卸载模型。因为模型是要加载到内存中的,而模型本身又很大,占用相当大的内存空间。

五、加载数据集

接下来就是调用我们自己的私有数据,微调基础模型,首先就是如何加载数据集:

llamafactory指定了数据路径,图中data,大家不用修改

数据集下拉选项,有一些 llamafactory 自带的数据集

比如 alpaca_zh_demo 这个中文数据集,选中后,可预览

那大家如何加载到自己的数据集呢 ?请看Llama-factory目录下的data目录,下图是我在本地机器上打开的,大家可在平台快捷工具,或者xftp中查看。

这里就有我们刚选中的 alpaca_zh_demo 数据集,是一个 json 文件。

大家可以将自己的数据集文件放到该目录下

这里有个注意事项:llamafactory 并不会自动检索data目录下的文件,而是通过一个配置文件,叫dataset_info,也是一个json格式的:

定义key为 "alpaca_zh_demo",即webui界面,下拉选项中的数据集名称

value为{ "file_name": "alpaca_zh_demo.json"},记录的是数据集在data目录下的真实文件名

六、微调模型

选择 Trian 模式,即训练模式

基础模型还是选择本地路径,数据集选择自带的 alpaca_zh_demo 数据集。剩下的就是微调方式选择,以及超参数的设置,这里不过多讲解,整体都放到第八章,参数详解中说。

如果大家选择的显卡配置较低,建议 批处理大小为1,截断长度 1024,这些都会降低对机器的要求,保证能训练起来。

模型、数据集、参数都配置好后,点击下方的预览命令,会出现一串指令,是llamafactory 训练的指令集,其中,一些参数就是根据我们上面配置而生成的。

这串指令,可以键入到终端下,执行训练,也可以点击 webui 界面上的 开始按钮。

保存训练参数,保存至服务器中,路径自动生成。

载入训练参数,保证模型训练被中断后,可从断点开始训练,而不用重新开启训练。

保存检查点,是模型训练完以后,保存的重要文件,根据时间自动生成文件名。整体路径,会根据上方模型名,以及微调方式,自动生成,具体可看预览命令中的 output_dir。为了方便管理训练后的模型,建议大家除了从本地导入模型路径,还应将模型名称修改为对应名称,这样训练后保存的检查点,大家也知道是基于那个基础模型训练的。

开始训练后,webui 上会出现损失曲线,也会在下方打出日志。

当然,在终端也能查看训练进度,如下图所示。

超参中,有个设备数量,这个不需要自己填写,程序会自动识别你当前用的GPU数量。

DeepSpeed stage 是一种加速器,后续参数详解会说,感兴趣的可以直接跳转。

我用的是2卡,直接训练后,终端查看英伟达显卡的使用情况。

nvidia-smi

也可以使用平台的快捷工具,实例监控,查看GPU的使用情况。

平台上的实例监控,能展示的信息太少了。

这里推荐一个好用的工具 wandb,首先得在官网注册登录账号,我是直接使用github登录的。然后,获取个人密钥。

服务器新开一个终端窗口,安装以及登录wandb

#安装依赖包
pip install wandb
#登录
wandb login

上述指令执行成功后,终端会让你 填入密钥,复制你的个人密钥,粘贴进去,回车即可。

wandb认证成功后,在启用 webui 的训练功能时,其他参数设置选项中,启用外部记录面板,选择wandb就行。

此时在开启训练时,终端会弹出链接,直接点进去就进入到你的wandb帐号了。

这里记录的训练日志信息,比较全面。

七、模型验证及导出

训练结束后,就可以直接加载训练后的模型,进行推理了。

该工具训练后,只会保存检查点,不是一个完整的模型格式。如果大家直接在该webui上加载模型,采用如下图的方式

  • 选中本地模型路径,即训练用的基础模型
  • 选中保存后的检查点

加载模型,此时就是我们微调后的模型了。此时,可以用训练数据集中的问题,和模型聊天了。

下图就是我们刚才用到的数据集:

同样的问题,提问训练后的模型。

接下来就是将训练后的模型导出来,刚才说了,训练后只保存检查点,需要搭配原模型文件使用。

  • 模型路径,检查点,确定都无语后
  • 选中 export 模式
  • 模型一般较大,分块是指每一个文件的大小,可将模型分为几块保存
  • 选择导出目录,开始导出

这个也可以去终端看导出流程,页面上可能长时间没动静,后台依然在工作。

这是我导出来的模型文件,和基础模型的文件配置是一样的

八、参数详解

稍等,稍后会补充

相关推荐
车载诊断技术3 小时前
人工智能AI在汽车设计领域的应用探索
数据库·人工智能·网络协议·架构·汽车·是诊断功能配置的核心
AuGuSt_814 小时前
【深度学习】Hopfield网络:模拟联想记忆
人工智能·深度学习
jndingxin4 小时前
OpenCV计算摄影学(6)高动态范围成像(HDR imaging)
人工智能·opencv·计算机视觉
Sol-itude4 小时前
【文献阅读】Collective Decision for Open Set Recognition
论文阅读·人工智能·机器学习·支持向量机
没事偷着乐琅5 小时前
人工智能 pytorch篇
人工智能·pytorch·python
邪恶的贝利亚5 小时前
Pytorch常用函数
人工智能·pytorch·python
Ironben5 小时前
看好 MCP,但用不了 Claude,所以做了一款 MCP 客户端
人工智能·claude·mcp
佛州小李哥5 小时前
构建逻辑思维链(CoT)为金融AI消除幻觉(保险赔付篇)
人工智能·科技·ai·金融·云计算·aws·亚马逊云科技
xilu05 小时前
MCP与RAG:增强大型语言模型的两种路径
人工智能·llm·mcp
阿正的梦工坊6 小时前
PyTorch 中的 nn.ModuleList 是什么?与普通列表有啥区别?
人工智能·pytorch·python