尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
用 LLaMA-Factory 单卡微调 235B MoE
用 LLaMA-Factory 单卡微调 235B MoE【免费下载链接】LlamaFactoryUnified Efficient Fine-Tuning of 100 LLMs VLMs (ACL 2024)项目地址: https://gitcode.com/GitHub_Trending/ll/LlamaFactory上次接到任务要在一张 24G 的 A100 上微调 Qwen3-235B-A22B。这是个 MoE混合专家模型总参数 235B但每个 token 只激活 22B而 LLaMA-Factory 可以借 KTransformers 把专家权重放 CPU 做单卡 MoE 微调显存从装不下变成能扛。接下来我们在 LLaMA-Factory 里把整个流程走一遍你跟着敲就行。五分钟跑通第一个训练先把框架装起来。克隆仓库后用可编辑模式安装后面改任何配置或源码都能即时生效git clone https://gitcode.com/GitHub_Trending/ll/LLaMA-Factory cd LLaMA-Factory pip install -e .验证安装不用跑专门的脚本直接启动官方最小的 LoRA 示例——4B 模型、几百条演示样本单卡就能跑正好当冒烟测试llamafactory-cli train examples/train_lora/qwen3_lora_sft.yaml启动后先出现参数加载的日志几秒后打出第一条loss一般在一到二点几之间。能看到 loss 在滚动打印就算通了不用等它训练完CtrlC 停掉即可。这次跑的不是 MoE只是热身接下来才是重头戏。拆掉四个决定MoE成败的参数第一次跑通丝滑之后值得花时间看四个参数它们决定 MoE 训练是成是死。finetuning_type管训练什么。MoE 每层带几十位专家全参微调会把每个专家的优化器状态都压上 GPU显存直接硬吃光。建议loralora_rank给 8 或 16 就够。moe_aux_loss_coef管专家负载均衡。框架的 configure_moe 会把它写进模型的 router 辅助损失并自动打开output_router_logits。不设置的话路由会一直把 token 塞给固定的几个专家其他专家饿死泛化能力悄悄下降。建议 0.001 到 0.01。use_kt和kt_expert_weight_format管专家权重放哪。use_kt: true之后 routed experts 落到 CPUGPU 只留 LoRA 适配器和注意力层选 int8 还能把 CPU 占用和搬运流量砍半。没有这一项235B 的权重在单卡上根本装不下。cutoff_len管激活缓存的倍数。MoE 的激活量不随序列线性增长只算被激活的专家但通信和缓存开销仍会随长度翻倍。建议从 1024 起步显存富余再放到 2048。参数作用建议范围不设置的典型后果finetuning_type选训练方式lorarank 8-16全参直接撑爆显存moe_aux_loss_coef专家负载均衡0.001-0.01专家失衡效果变差use_kt专家移到CPUtrue int8235B 单卡装不下cutoff_len序列截断1024-2048序列越长显存越高在单张24G显卡上跑Qwen3-235B业务方要把 Qwen3-235B-A22B 接进客服流程机器只有一张 24G A100 加 512G 内存。我们从仓库自带的 Qwen3-235B KT训练配置 出发只改了三处。为什么不用 ZeRO-3ZeRO-3 是多卡切分参数才有效果单卡上切无可切。为什么 int8 不用 bf16专家权重 bf16 下约 470GBCPU 内存和带宽是瓶颈int8 直接减半。为什么lora_target: allMoE 的 router 和专家 MLP 都得挂上 LoRA只挂注意力层的话专家学不动。use_kt: true kt_weight_path: /path/to/Qwen3-235B-A22B-AMXINT8 kt_expert_weight_format: int8 lora_target: all启动命令搭配单卡 FSDP2 配置见 fsdp2_kt_int8_1gpu.yamlCUDA_VISIBLE_DEVICES0 accelerate launch \ --config_file examples/ktransformers/accelerate/fsdp2_kt_int8_1gpu.yaml \ src/train.py examples/ktransformers/train_lora/qwen3moe_lora_sft_kt.yaml加载完成后盯着三个数前 100 步loss从 2.41 一路走到 0.73grad_norm稳定在 0.4 到 0.8 之间单步耗时约 1.8 秒序列 2048、batch 1。loss 平滑下降说明路由稳定如果连续几步飙到 5 以上辅助损失没起作用回去查moe_aux_loss_coef吞吐比纯注意力模型还低一半则说明 CPU 带宽是瓶颈可以调kt_num_threads。三个我翻过车的坑和修法第一个坑是训练还没开始就挂了启动时 KT 直接报 hash 校验不一致。我先怀疑驱动版本排查了半天没用后来发现是自己转换的基座路径复用错了量化格式和 yaml 里的kt_expert_weight_format对不上——KT 的设计就是产物不一致时立刻失败不悄悄回退其实是在替我们拦下更糟的情况。修法是转换匹配的 INT8 专家缓存两条路径指过去kt_weight_path: /path/to/Qwen3-235B-A22B-AMXINT8 kt_non_expert_weight_path: /path/to/bf16-non-expert-cache解决了上面这个紧接着又碰上第 80 步左右 loss 从 0.8 跳到 4.2随后直接 NaN。我先怀疑数据换数据集没用翻日志发现 grad_norm 飙到 10 以上最后定位是没开 router 辅助损失token 全堆在前几位专家上。补上辅助损失并把 warmup 拉长到 0.1曲线就平稳了moe_aux_loss_coef: 0.01 warmup_ratio: 0.1还有一个坑比较尴尬adapter 训好了推理却加载不出来。文档里写得很清楚加载时要重复训练时的 LoRA 形状rank、alpha、dropout和同一份 KT 基座配置而我随手把推理 yaml 里的lora_rank改了。正确做法是沿用训练 yaml只改 adapter 路径adapter_name_or_path: /path/to/saves/kt-ft/checkpoint-300 finetuning_type: lora下一步单张 24G 卡、235B 总参、22B 激活从想都不敢想变成一下午跑完一轮 LoRA显存稳定在 20G 上下。下一步可以换成多卡 FSDP2 配置试 bf16 专家或者先把自己的业务数据接进来。深入资料看 KTransformers指南。【免费下载链接】LlamaFactoryUnified Efficient Fine-Tuning of 100 LLMs VLMs (ACL 2024)项目地址: https://gitcode.com/GitHub_Trending/ll/LlamaFactory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Blender 实时动作捕捉完整指南:三步用 Rokoko Studio Live 跑通第一次直播式动捕

Blender 实时动作捕捉完整指南:三步用 Rokoko Studio Live 跑通第一次直播式动捕

Blender 实时动作捕捉完整指南:三步用 Rokoko Studio Live 跑通第一次直播式动捕 【免费下载链接】rokoko-studio-live-blender Rokoko Studio Live plugin for Blender 项目地址: https://gitcode.com/gh_mirrors/ro/rokoko-studio-live-blender Rokoko Stu…

📅 2026/11/3 10:15:46
如何快速上手Boss批量推送:批量投简历与自定义招呼语完整指南

如何快速上手Boss批量推送:批量投简历与自定义招呼语完整指南

如何快速上手Boss批量推送:批量投简历与自定义招呼语完整指南 【免费下载链接】boss_batch_push Boss直聘批量投简历,批量发送自定义招呼语 项目地址: https://gitcode.com/gh_mirrors/bo/boss_batch_push Boss批量推送是一个基于油猴脚本的求职工…

📅 2026/10/19 2:39:51
BCI Competition IV 2a 数据集完整指南:5 步从脑电原始数据画到第一条试次波形

BCI Competition IV 2a 数据集完整指南:5 步从脑电原始数据画到第一条试次波形

BCI Competition IV 2a 数据集完整指南:5 步从脑电原始数据画到第一条试次波形 【免费下载链接】bcidatasetIV2a This is a repository for BCI Competition 2008 dataset IV 2a fixed and optimized for python and numpy. This dataset is related with motor ima…

📅 2026/10/19 2:41:20
MORE NEWS

更多资讯

📰

EasyU优启通PE维护盘实战指南:制作、启动与核心操作全解析

1. 为什么一个PE维护盘值得单独拿出来聊装系统、修引导、救数据、清病毒,这些活儿但凡干过几次的人都知道,真正决定效率的往往不是你手速多快,而是手边那套PE环境靠不靠谱。EasyU(圈内习惯叫优启通)就是在这个场景下被…

📰

Rust原来很简单二:所有权系统

Part 2 核心篇 —— 所有权系统 本篇覆盖 第 6 ~ 10 章:所有权、借用与引用、生命周期、字符串与切片、内存模型。 ⚠️ 这是全书最重要的一篇。 把它吃透,Rust 从此“很简单”;跳过它,你会处处碰壁。请慢下来,动手敲每一段代码。 第 6 章 所有权:Rust 的第一性原理 6…

📰

基于Hadoop+Spark的民宿智能推荐系统设计与实现

1. 项目概述:大数据时代的民宿智能推荐这个毕业设计项目融合了当前大数据领域最主流的技术栈,构建了一个完整的民宿推荐系统解决方案。作为一名长期从事大数据系统开发的工程师,我认为这个选题非常贴合实际应用场景——随着旅游业的复苏和共享…

📰

ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

UART接口24位ADC搭配RS485,解决远距离温度监控难题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬