来源:互联网 更新时间:2026-08-03 14:23
大型语言模型的微调,说白了就是个“烧钱又烧脑”的活儿。计算资源得够,技术细节还得掰扯清楚,让人还没开始就想打退堂鼓。今天聊的这个开源项目,算是把这条路给铺平了不少——它不仅反赌,还能在微调过程中实时可视化,名字叫 LLaMA Factory。
冻结微调(Freeze-tuning)是种比较直接的办法:大部分参数固定不动,只微调解码器的少数几层。成本降下来了,但模型性能可能也会跟着打折扣。
梯度低秩投影(GaLore)的思路更巧妙——把梯度投影到低维空间,实现全参数学习的效果,但内存占用却大幅降低。这个方法在大模型上表现不错,毕竟大模型本身冗余就多,投影后损失有限。
低秩适配(LoRA)则是当前最火的方案之一。它不碰预训练模型的原始权重,而是在需要调整的层上塞进一对小小的可训练矩阵(也就是低秩矩阵)。前向计算时,原始权重和这个小矩阵一通相乘,得到调整后的权重;反向传播时,只需更新这对小矩阵的梯度就好。好处很明显:不用存新权重就能做微调,把内存省了下来。对大语言模型这种“吃”显存的大户来说,LoRA 只需额外一点点显存就能开干。
如果配合量化(Quantization)技术,LoRA 的优势就更突出了。量化就是把 float32/float16 这种占用空间较大的权重压缩成 int8/int4 等低比特格式,存储需求大降。量化后的 QLoRA 能把参数内存占用从每个参数 18 字节压到不到 1 字节,堪称“极致省内存”的代表。
实验表明,LoRA 和 QLoRA 在较小模型上的效果尤其出彩,只需极小的内存开销,就能达到接近全量微调的性能。一旦加上量化(QLoRA),内存占用还能再降一截。
还有种方法叫分解权重低秩适配(DoRA),它在 LoRA 基础上做了改良。DoRA 把预训练权重矩阵拆成量级分量和方向分量两部分,只对方向分量做低秩适配,量级分量保持原样。这一做法的逻辑在于:方向分量往往承载了更多与任务相关的知识,而量级分量更多是控制输出数值的范围。只对方向部分做调整,效果可能更好。
DoRA 的优点在于,相同内存开销下,往往能跑出更高性能。当然,它也要多花点计算量——得先对权重做分解。所以在不同场景下,LoRA 和 DoRA 各有千秋。
LoRA、QLoRA、DoRA 这些优化型方法大幅拉低了 LLM 微调的内存门槛,是整个高效微调生态中不可或缺的角色。LLaMA Factory 这个框架,把上述技术统一实现了一遍,用户操作起来省心不少。
LLaMA Factory 采用模块化设计,可以灵活地切换各种优化技术。用户甚至不用写代码,直接在界面上勾选所需方法就行。
混合精度训练和激活重计算是两类最常用的“省算力”手段。前者用 FP16 等低精度格式来存激活值和权重;后者通过重新计算激活值来节省存储,从而降低内存占用。
闪电注意力(Flash Attention)是对注意力层的一次革新,它以硬件友好的方式重新排布计算流程,大幅提升性能。S2 注意力(S2 Attention)则专门解决长文本注意力计算时的内存压力。
此外,LLM.int8 和 QLoRA 这类量化技术也能把权重和激活值压到低精度表示,大幅节约内存。不过,量化后的模型只能走基于适配器的微调路线(比如 LoRA)。
Unsloth 则聚焦 LoRA 层的反向传播优化,降低了梯度计算所需的浮点运算数,让 LoRA 训练跑得更快。
LLaMA Factory 把这些技术整合到了一起,能自动识别模型结构来决定该启用哪些优化手段。用户不必纠结技术细节,只需根据自己的内存和性能期望去选择就好。同时,这个框架还支持分布式训练加速等功能——不过分布式训练需要在命令行下操作。国内已有不少大模型用这套技术完成微调,以下是作者 GitHub 仓库中列出的一些案例:
StarWhisper:天文大模型,基于 ChatGLM2-6B 和 Qwen-14B 在天文数据上微调而成。
DISC-LawLLM:中文法律领域大模型,基于 Baichuan-13B 微调而得,具备法律推理和知识检索能力。
Sunsimiao:孙思邈中文医疗大模型,基于 Baichuan-7B 和 ChatGLM-6B 在中文医疗数据上微调而得。
CareGPT:医疗大模型项目,基于 LLaMA2-7B 和 Baichuan-13B 在中文医疗数据上微调而得。
MachineMindset:MBTI 性格大模型项目,可根据数据集与训练方式让任意 LLM 拥有 16 种不同的性格类型。
CBT-LLM:一个基于认知行为治疗的心理健康问题分类中文大语言模型。
如果你想尽快推出自己的大模型,这个框架学起来成本最小。
LLaMA-Factory 是个统一的框架,集成了多种高效训练方法。用户可以通过内置的 Web UI 对 100 多个 LLM 做定制微调,无需写任何代码。
项目的特色包括:
与 ChatGLM 官方的 P-Tuning 微调相比,LLaMA Factory 的 LoRA 微调提供了
LLaMA Factory 的部署过程相当直接,按官方仓库的步骤走就行:
# 克隆仓库 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 -r requirements.txt
接下来下载 LLM,可以根据自己常用的模型选择,比如 ChatGLM、BaiChuan、QWen、LLaMA 等。这里以 BaiChuan 模型为例:
# 方法一:开启 git lfs 后直接 git clone 仓库 git lfs install git clone https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat # 方法二:先下载仓库基本信息,不下载大文件,再通过 huggingface 上的文件链接下载大文件 GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat cd Baichuan2-13B-Chat wget "https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat/resolve/main/pytorch_model-00001-of-00003.bin"
方法一会把仓库的 git 记录一并下载,导致整体文件偏大。推荐用方法二,速度更快、文件更小。
启动 WebUI 页面的命令如下:
CUDA_VISIBLE_DEVICES=0 python src/train_web.py
启动后的界面分为上下两部分:
上半部分是模型训练的基本配置,参数包括:
Baichuan2-13B-Chat。下半部分是个页签窗口,分为 Train、Evaluate、Chat、Export 四个页签。先看 Train 界面,参数如下:
Pre-Training:在大型数据集上做预训练,学习基础语义和概念。
Supervised Fine-Tuning:在带标签的数据集上微调,提升特定任务准确性。
Reward Modeling:学习从环境中获得奖励,便于未来决策。
PPO Training:用策略梯度方法训练,优化模型在环境中的表现。
DPO Training:用深度强化学习方法训练,进一步提升表现。
data 目录。self_cognition 数据集——用于调教 LLM 回答“你是谁”、“谁制造了你”这类问题,数据量只有 80 条左右。微调前需要先修改文件内容,把 和 替换成自己的机器人和公司名称。选好数据集后,可以点“预览数据集”查看前几行内容。5e-5。30。fp16 和 bf16 是数字的数据表示格式,用于节省内存和加速计算。这里选 bf16。linear(线性):学习率线性下降。
cosine(余弦):按余弦函数下降,初始较高,结束时最低。
cosine_with_restarts(带重启的余弦):类似余弦但会周期重启。
polynomial(多项式):按多项式函数下降,可设定次数。
constant(常数):学习率不变。
constant_with_warmup(带预热的常数):先慢慢上升到一个固定值,再保持。
inverse_sqrt(反平方根):按反平方根方式下降。
reduce_lr_on_plateau(在平台上减少):模型进展停滞时自动降低学习率。
参数设置完毕后,可以点击“预览命令”查看本次微调的命令。确认无误后,点击“开始”按钮就开始微调。因为数据量少,大概几分钟就能跑完(具体时间视机器配置而定,笔者用的是 A40 48G GPU)。界面右下方还能看到微调过程中的损失函数曲线,损失值越低,模型预测效果通常越好。
进入 Chat 页签,可以试试微调后的模型。先点“刷新断点”,选择最近的断点名称,再点击“加载模型”。加载完成后即可开始对话。输入微调数据集中的问题,看看模型会怎么回答。

LLaMA-Factory 由三个主要模块组成:模型加载器(Model Loader)、数据处理器(Data Worker)和训练器(Trainer)。

模型加载器为微调准备了多种架构,支持超过 100 个 LLM。
数据处理器通过一个设计良好的管道处理来自不同任务的数据,支持超过 50 个数据集。
训练器统一了高效微调方法,使模型能适应不同任务和数据集,提供了四种训练方法。
LLaMA Board 为上述模块提供了友好的可视化界面,用户无需编写代码就能配置和启动 LLM 微调过程,还能实时监控训练状态。
在人工智能领域,大型语言模型的微调无疑是当下最热门的话题之一。这些模型的语言理解和生成能力令人惊叹,但要让它们适应特定任务,微调和部署往往需要大量的计算资源和专业知识,代码调试更是对技术功底的考验。整体来说,LLaMA Factory 是一个非常出色的工具,能帮用户在 LLM 微调中省下大量精力。

项目名称:LLaMA Factory
GitHub 链接:https://github.com/hiyouga/LLaMA-Factory
Star 数:20K
Ondo将于今日上线股票永续合约
暗黑4S14野蛮人终局BD攻略
晶核艾尔莎角色盘点 晶核艾尔莎强度分析与实战表现
区块链OTC交易所有哪几家比较正规?
Binance新增15种bStocks代币化证券为杠杆抵押资产
彩云天气怎么看分钟级降雨预报 彩云天气精准预报方法【技巧】
AMD英特尔集体失眠!英伟达Rosa CPU搭载Rigel核:单核性能碾压x86
黄金价格不断创新高!黄金稳定币XAU、PAXG市值达11亿美元
异环伊洛伊阵容怎么搭配
潜水员戴夫丛林DLC接吻的鱼任务攻略
五千元以下的笔记本几乎消失!经销商:至少一年看不到涨价尽头
Intel喜讯连连:18A工艺良率提升到85%、CPU将涨价15%
遗忘之海密室通关教程 遗忘之海密室全关卡解谜思路与难点解析
Windows环境下Claude Code从C盘迁移至D盘的完整操作教程
华为Mate 70系列首发的红枫镜头下放至千元档:全员普及原色影像
币安投票上币与下币机制解析:买票争议与规则边界
合集38个项目筹集5.406亿美元 Figure融资2亿
硬刚苹果!华为9月新品阵容出炉:Mate 90系列、全新三折叠
微软Copilot AI漏洞可致敏感数据泄露,企业用户需及时更新
新破天一剑太极刀任务攻略 破天一剑怎么取太极刀
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc