LlamaFactory-webui:训练大语言模型的入门级教程
LlamaFactory是一个开源框架,支持多种流行的语言模型,及多种微调技术,同时,以友好的交互式界面,简化了大语言模型的学习。
本章内容,从如何拉取,我已经搭建好的Llamafactory镜像开始,以及构建webui界面,在到加载模型推理、私有化模型的训练及其验证,最后模型的导出。全程都有截图流程,一站式服务,无需你懂代码,无需你拥有高大上的AI基础知识,任何小白都可尝试训练属于自己的私有模型,并部署在自己的服务器上。
一、拉取镜像
大家可点击下方链接,使用Autodl算力云平台
AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL
https://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 - ngrok
https://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 模式
- 模型一般较大,分块是指每一个文件的大小,可将模型分为几块保存
- 选择导出目录,开始导出

这个也可以去终端看导出流程,页面上可能长时间没动静,后台依然在工作。
这是我导出来的模型文件,和基础模型的文件配置是一样的

八、参数详解
稍等,稍后会补充
相关文章:
LlamaFactory-webui:训练大语言模型的入门级教程
LlamaFactory是一个开源框架,支持多种流行的语言模型,及多种微调技术,同时,以友好的交互式界面,简化了大语言模型的学习。 本章内容,从如何拉取,我已经搭建好的Llamafactory镜像开始࿰…...
手机打电话时如何识别对方按下的DTMF按键的字符-安卓AI电话机器人
手机打电话时如何识别对方按下的DTMF按键的字符 --安卓AI电话机器人 一、前言 前面的篇章中,使用蓝牙电话拦截手机通话的声音,并对数据加工,这个功能出来也有一段时间了。前段时间有试用的用户咨询说:有没有办法在手机上ÿ…...
Spring Cloud LoadBalancer详解
一、介绍 Spring Cloud LoadBalancer是Spring Cloud官方自己提供的客户端负载均衡器,抽象和实现,用来替代Ribbon(已经停更), 二、Ribbon和Loadbalance 对比 组件组件提供的负载策略支持负载的客户端Ribbon随机 RandomRule轮询 RoundRobinRule 重试 RetryRule最低并发 Bes…...
使用Spring Boot与达梦数据库(DM)进行多数据源配置及MyBatis Plus集成
使用Spring Boot与达梦数据库(DM)进行多数据源配置及MyBatis Plus集成 在现代企业级应用开发中,处理多个数据源是一个常见的需求。本文将详细介绍如何使用Spring Boot结合达梦数据库(DM),并通过MyBatis Plus来简化数据库操作&…...
基于SpringBoot和PostGIS的省域“地理难抵点(最纵深处)”检索及可视化实践
目录 前言 1、研究背景 2、研究意义 一、研究目标 1、“地理难抵点”的概念 二、“难抵点”空间检索实现 1、数据获取与处理 2、计算流程 3、难抵点计算 4、WebGIS可视化 三、成果展示 1、华东地区 2、华南地区 3、华中地区 4、华北地区 5、西北地区 6、西南地…...
【Qt】详细介绍如何在Visual Studio Code中编译、运行Qt项目
Visual Studio Code一只用的顺手,写Qt的时候也能用VS Code开发就方便多了。 理论上也不算困难,毕竟Qt项目其实就是CMake(QMake的情况这里就暂不考虑了)项目,VS Code在编译、运行CMake项目还是比较成熟的。 这里笔者打…...
【Linux】修改 core 文件大小和路径
在 Linux 系统中,默认情况下,核心转储文件(core dump)会生成在当前工作目录下。为了将核心转储文件生成在指定路径下,可以通过以下方法进行配置。 1. 设置核心转储文件路径 Linux 系统提供了两种方式来指定核心转储文…...
本地部署大语言模型-DeepSeek
DeepSeek 是国内顶尖 AI 团队「深度求索」开发的多模态大模型,具备数学推理、代码生成等深度能力,堪称"AI界的六边形战士"。 Hostease AMD 9950X/96G/3.84T NVMe/1G/5IP/RTX4090 GPU服务器提供多种计费模式。 DeepSeek-R1-32B配置 配置项 规…...
【03】STM32F407 HAL 库框架设计学习
【03】STM32F407 HAL 库框架设计学习 摘要 本文旨在为初学者提供一个关于STM32F407微控制器HAL(Hardware Abstraction Layer)库框架设计的详细学习教程。通过本文,读者将从零开始,逐步掌握STM32F407的基本知识、HAL库的配置步骤…...
鸿蒙HarmonyOS NEXT开发:组件-样式-基础 2
// 1 // 2 ArkUI 基本语法 // 方舟开发框架(简称:ArkUI),是一套 构建HarmonyOS应用 界面 的框架。 // 构建页面的最小单位就是 "组件"。 // 组件名(参数) { // 内容 // } // .属性1() // .属性2() // .属性N() import text from @ohos.graphics.text // @En…...
SQLAlchemy系列教程:SQLAlchemy快速入门示例项目
SQLAlchemy是与数据库交互的Python开发人员不可或缺的库。这个强大的ORM允许使用python结构进行简单的数据库操作。设置过程很简单,并且允许可扩展的数据库应用程序开发。本文通过入门项目完整介绍SQLAlchemy的应用过程,包括安装依赖包,创建连…...
【Linux网络#10】:Https协议原理
📃个人主页:island1314 🔥个人专栏:Linux—登神长阶 ⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞 生活总是不会一帆风顺…...
蓝桥杯备考:记忆化搜索之function
这道题是有重复的问题的,所以我们可以选择记忆化搜索 #include <iostream> using namespace std; typedef long long LL; const int N 25; LL ret[N][N][N]; LL dfs(LL a,LL b, LL c) {if(a<0 || b<0 || c<0) return 1;if(a>20 || b>20 || c…...
在Nginx上配置并开启WebDAV服务的完整指南
在Nginx上配置并开启WebDAV服务的完整指南 如何在 Nginx 上开启 WebDAV 服务 要在 Nginx 上开启 WebDAV 服务,你需要配置 Nginx 以支持 WebDAV 请求。以下是详细的步骤: 1. 确保 Nginx 安装了 WebDAV 模块 Nginx 的 WebDAV 功能由 http_dav_module 模…...
mysql 全方位安装教程
下载 MySQL 【官网下载地址】 注意要选择较大的哪个安装包,小的安装包是一个安装器。 我们不用登录,直接下载 直接运行下载好的安装包 MySQL如果是 安装包安装, 可以图形化界面自主配置 如果是压缩包解压, 可以配置 配置文件, 可以解压安装到指定的…...
设计模式Python版 观察者模式
文章目录 前言一、观察者模式二、观察者模式示例 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式:关注类和对象之间的组…...
如何在Python用Plot画出一个简单的机器人模型
如何在Python中使用 Plot 画出一个简单的模型 在下面的程序中,首先要知道机器人的DH参数,然后计算出每一个关节的位置,最后利用 plot 函数画出关节之间的连杆就可以了,最后利用 animation 库来实现一个动画效果。 import matplo…...
如何使用ArcGIS Pro制作横向图例:详细步骤与实践指南
ArcGIS Pro,作为Esri公司推出的新一代地理信息系统(GIS)平台,以其强大的功能和灵活的操作界面,在地理数据处理、地图制作和空间分析等领域发挥着重要作用。 在地图制作过程中,图例作为地图的重要组成部分&…...
MySQL 创建指定IP用户并赋予全部权限(兼容8.0以下及8.0以上版本)
在MySQL中,为用户指定访问IP并授予权限是常见的运维操作。但由于MySQL 8.0对用户创建和权限管理机制进行了升级,不同版本的操作存在差异。以下是针对MySQL 8.0以下版本和8.0及以上版本的具体实现方法。 一、MySQL 8.0以下版本(如5.7、5.6) 在MySQL 8.0之前,可以通过一条G…...
每日十个计算机专有名词 (7)
Metasploit 词源:Meta(超越,超出) exploit(漏洞利用) Metasploit 是一个安全测试框架,用来帮助安全专家(也叫渗透测试人员)发现和利用计算机系统中的漏洞。你可以把它想…...
【Python 数据结构 3.顺序表】
目录 一、顺序表基本概念 1.顺序表的概念 2.顺序表的元素插入 元素插入的步骤 3.顺序表的元素删除 元素删除的步骤 4.顺序表的元素查找 元素查找的步骤 5.顺序表的元素索引 元素索引的步骤 6.顺序表的元素修改 元素修改的步骤 二、Python中的顺序表 1.顺序表的定义 2.顺序表的插…...
C# 装箱(Boxing)与拆箱(Unboxing)
C# 装箱(Boxing)与拆箱(Unboxing) 在 C# 中,装箱和拆箱是与值类型(如结构体)和引用类型(如类)之间的转换相关的操作。它们是类型系统的一部分,但如果不正确使…...
[ComfyUI][AI生图]如何在Comfyui中安装插件管理器
如何在ComfyUI便携版中安装插件管理器 在现代软件环境中,图形用户界面(GUI)提供了一种直观的方式来与应用程序交互。ComfyUI是一个出色的GUI框架,它使用户能够通过图形化方式配置和管理他们的应用程序。特别是ComfyUI的便携版,它允许用户在没有安装的情况下使用这一工具,…...
从零开始构建高效Spring Boot应用:实战案例与最佳实践
摘要 本文旨在为初学者及有一定基础的开发者提供一份详尽的指南,以帮助大家深入理解并掌握如何使用Spring Boot框架来快速开发企业级应用程序。通过实际案例分析、代码示例以及架构设计思路分享,读者不仅能够学习到理论知识,还能获得宝贵的实…...
EdgeNext模型详解及代码复现
架构特点 EdgeNeXt是一种集CNN与Transformer于一体的混合架构,其核心创新在于引入了 分割深度转置注意力(SDTA)编码器 。这种设计巧妙地将深度卷积与自适应核大小以及转置注意力相结合,实现了最佳的精度-速度平衡。 SDTA编码器主要由两个组件构成: 特征编码模块 :受Res…...
SQL经典题型
查询不在表里的数据,一张学生表,一张学生的选课表,要求查出没有选课的学生? select students.student_name from students left join course_selection on students.student_idcourse_selection.student_id where course_selecti…...
物联网小范围高精度GPS使用
在园区内实现小范围高精度GPS(全球定位系统)定位,通常需要结合多种技术来弥补传统GPS在精度和覆盖范围上的不足。以下是实现小范围高精度GPS定位的解决方案,包括技术选择、系统设计和应用场景。 一、技术选择 在园区内实现高精度…...
【deepseek第二课】docker部署dify,配置私有化知识库,解决网络超时,成功安装
【deepseek第二课】docker部署dify,配置私有化知识库,解决网络超时,成功安装 1. dify安装1.1 官网安装文档介绍1.2 安装报错,网络连接问题使用镜像加速器处理1.3 dify后台启动很多docker进程 2. 页面探索2.1 设置管理账号2.2 添加…...
P8651 [蓝桥杯 2017 省 B] 日期问题--注意日期问题中2月的天数 / if是否应该连用
P8651 [P8651 [蓝桥杯 2017 省 B] 日期问题--注意日期问题中2月的天数 / if是否应该连用 题目 分析代码 题目 分析 代码中巧妙的用到3重循环,完美的解决了输出的顺序问题【题目要求从小到大】 需要注意的是2月的值,在不同的年份中应该更新2月的值 还有…...
动态规划多阶段报童模型,c++ 实现, java 实现
借助 chaptgpt 和 deepseek,成功实现了c上的多阶段报童模型的动态规划。花费了几天,将以前的 java 程序用 c 实现。 文章目录 C 代码Java 代码 总结: c 还是比 java 快点,30个阶段快了零点几秒c 使用了 unordered_map ࿰…...
