llamafactory 大语言模型llm 微调,关键参数深度讲解(法律大模型微调专属版)

完整日志逐段拆解 + 报错/警告/关键参数深度讲解(法律大模型微调专属版)

环境:ROCm AMD GPU + LlamaFactory LoRA微调 Qwen2-5120(48层大模型),断点续训 checkpoint-2500,单卡训练。

训练任务:法律领域监督微调(法律问答/法条解析/文书生成)

一、前置脚本报错与优化方案

Plain 复制代码
rocm-smi --gpureset
# ERROR: No device specified. One device must be specified for GPU reset

原因

--gpureset 必须指定单张GPU序号,不能批量重置所有卡;无参数会直接报错。

修复脚本(兼容单/多AMD卡)

Plain 复制代码
export ACCELERATE_DEBUG=1
# 批量杀死训练进程(修复pkill警告)
pkill -9 -f python
pkill -9 -f torchrun
pkill -9 -f llamafactory-cli
pkill -9 -f launcher.py

# 自动获取所有GPU并逐个重置
GPUS=$(rocm-smi --showgpuinfo | grep GPU | awk '{print $2}')
for gpu in $GPUS; do
    rocm-smi -d $gpu --gpureset
done

llamafactory-cli train /workspace/training_configs_512/binding_paired.yaml

pkill 警告:pattern longer than 15 characters will match zero

Linux pkill 不加 -f 仅匹配进程名(限制15字符) ,llamafactory-cli等长命令会匹配失败;

你已经加了 pkill -9 -f "llamafactory",这条警告可以忽略,属于无害提示。

二、Deprecated 日志:logging_dir 弃用提示

Plain 复制代码
`logging_dir` is deprecated and will be removed in v5.2. Please set `TENSORBOARD_LOGGING_DIR` instead.

transformers 5.2版本废弃旧参数 logging_dir

修复yaml配置:把 logging_dir: xxx 替换为 tensorboard_logging_dir: xxx

三、分布式训练基础信息

Plain 复制代码
Process rank: 0, world size: 1, device: cuda:0, distributed training: False, compute dtype: torch.bfloat16
  • world_size=1单卡训练,无多卡DDP/DeepSpeed;

  • cuda:0:ROCm环境PyTorch依然复用cuda设备标识,底层是AMD HIP;

  • compute dtype=bfloat16:计算精度bf16,适合法律大模型长文本训练,显存占用低、数值稳定性强,适配法条、文书超长上下文。

四、Qwen2 模型配置解析(48层法律微调基座)

Plain 复制代码
"hidden_size": 5120,          # 模型维度 5120(大参数量,擅长法律长文本语义理解)
"num_hidden_layers": 48,     # 48层Transformer,深层网络适配复杂法律逻辑推理
"num_attention_heads": 40,
"num_key_value_heads": 8,    # GQA分组注意力,大幅节省显存,适配法律长文本批次训练
"max_position_embeddings": 131072, # 128k超长上下文,支持整篇判决书、合同、法条全文输入
"rope_theta": 1000000.0,     # 百万级RoPE缩放,解决法律长文本位置编码衰减问题
"vocab_size": 203711,
"tie_word_embeddings": false # 输入输出embedding不共享,适配法律专业文本专属语义分布

重复加载config日志(连续三次load config.json)

无害,LlamaFactory内部标准流程:

  1. 读取模型基础配置

  2. 初始化分词器对齐token id

  3. 加载generation生成配置

三次加载是正常流程,不影响性能。

五、数据集加载逻辑(法律领域SFT微调任务)

全新样本结构(替换原药物/蛋白任务)

训练任务:法律指令/问题 → 法律专业回答/法条解析/文书续写

  • Instruction:法律任务指令(法律问答、法条解读、合同撰写、案例分析)

  • Input:用户法律问题、案件描述、合同片段、法条原文

  • Response:标准法律答复、合规分析、法条引用、完整法律文书

label_ids 全 -100 原理(法律微调核心逻辑)

-100 在CrossEntropyLoss中会自动忽略计算loss,不参与梯度更新

输入prompt部分(指令、用户法律问题、原文输入)全部标记-100,只对模型输出的法律答案/文书文本计算损失

作用:强制模型只学习「根据法律问题输出合规专业回答」,不学习复述用户提问、复述输入法条,完全适配法律SFT监督微调范式,数据集加载逻辑正常无错误。

六、关键警告1:FlashAttention-2 is not installed

Plain 复制代码
[WARNING] FlashAttention-2 is not installed.

影响

未启用FlashAttention,使用原生SDPA注意力,显存占用更高、速度更慢

AMD ROCm环境FlashAttention适配差,官方FlashAttention对HIP支持残缺,无需强行安装。

替代方案(当前已生效)

日志后续:Using torch SDPA for faster training,PyTorch原生缩放点积注意力,ROCm下AOTriton后端加速,是法律长文本微调最优稳定方案。

七、ROCm HIP 内存警告:expandable_segments not supported

Plain 复制代码
UserWarning: expandable_segments not supported on this platform (Triggered internally at /pytorch/c10/hip/HIPAllocatorConfig.h:36.)

原理

PyTorch CUDA拥有可扩展内存分段分配机制,AMD HIP架构不支持,只能按需小块申请显存。

影响与优化

无害警告,不报错、不崩溃 ,仅显存分配效率轻微下降;

可通过环境变量优化,减少频繁显存申请,提升法律长文本训练稳定性:

Plain 复制代码
export PYTORCH_HIP_ALLOC_CONF=max_split_size_mb:2048
export HIP_VISIBLE_DEVICES=0

八、模型加载核心信息

  1. 权重加载:safetensors安全权重格式,100%加载完成,无权重缺失、损坏;

  2. 精度策略:基座模型加载为bfloat16节省显存,LoRA微调参数upcast为float32保证法律文本精细语义微调精度;

  3. 微调方式:LoRA微调,仅训练少量参数,不破坏基座通用能力,精准适配法律领域知识;

Plain 复制代码
trainable params: 275,251,200 || all params: 15,574,150,144 || trainable%: 1.7674

155亿大基座,仅微调1.77%参数,显存压力可控,适合法律垂直领域微调。

  1. 梯度检查点开启:大幅降低长文本激活显存占用,适配法条、判决书超长文本训练,杜绝OOM;

  2. KV Cache训练关闭:训练阶段无需缓存KV,仅推理启用,属于正常训练机制。

九、Token ID 对齐警告(重要配置点)

Plain 复制代码
The tokenizer has new PAD/BOS/EOS tokens that differ from the model config and generation config.
Updated tokens: {'eos_token_id': 203704, 'bos_token_id': 203703, 'pad_token_id': 203704}

原因

原生Qwen基座无合法pad_token,法律微调新增自定义结束符、占位符,框架自动覆盖对齐token ID,保证训练/推理文本截断、生成逻辑一致。

风险提示

训练无问题,训练结束导出模型必须保存更新后的config,否则法律推理时会出现截断异常、乱码、生成不完整问题。

十、断点续训核心参数(法律微调任务全貌)

Plain 复制代码
Num examples = 209,776      # 总法律训练样本20.9万(问答/文书/法条数据)
Num Epochs = 3              # 完整训练轮次3轮
Instantaneous batch size per device = 1  # 单卡微批次1
Gradient Accumulation steps = 16         # 梯度累积16步
Total train batch size = 1*16=16         # 等效批次16
Total optimization steps = 39,333        # 总迭代步数
Resume from global step 2500, epoch 0

计算逻辑无误:ceil(总样本/等效批次)*轮次 = 39333,当前从2500步断点续训,数据加载、梯度更新逻辑正常。

十一、AOTriton SDPA 前后向警告解析

Plain 复制代码
UserWarning: Using AOTriton backend for Efficient Attention forward...
UserWarning: Using AOTriton backend for Efficient Attention backward..

1. AOTriton 作用

AMD ROCm平台替代FlashAttention的最优注意力内核,预编译Triton算子,专门优化超长法律文本注意力计算。

2. 警告含义

非报错,是信息提示:模型前向、反向传播均启用优化注意力算子,适配128k法律长文本。

3. 适配法律任务优势

  • 支持超长判决书、合同全文并行计算;

  • 兼容bf16精度与GQA注意力,训练稳定不溢出;

  • LoRA微调适配性拉满,法律语义学习更精准。

提速优化命令

Plain 复制代码
# 开启Triton缓存,避免每次重启重新编译
export TRITON_CACHE_DIR=/workspace/triton_cache
# 启用ROCm优化编译器
export ROCM_USE_FLASH_ATTN_V2_TRITON=1

十二、整体训练状态总结(法律微调版)

  1. 无任何致命报错,训练正常运行 ,所有日志均为无害警告、版本提示、环境适配信息;

  2. 整套环境完美适配法律垂直领域大模型微调 :超长上下文+AMD优化注意力+低参LoRA微调+梯度显存优化;

  3. 模型正在稳步学习:法律问题理解、法条引用、文书生成、合规推理能力;

  4. 可选优化项:修复重置脚本、替换废弃参数、配置显存与缓存环境变量、导出时保存最新token配置。


label_ids、labels 完整拆解(法律微调专属)

1. label_ids 数组核心规则

PyTorch 大模型SFT训练标准规则:值为 -100 的token 忽略loss计算、不更新权重,仅正常数字token参与训练

分段对应法律训练样本

① 超长全部 -100 部分

对应整条输入Prompt:

Plain 复制代码
Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction:
legal consultation / legal analysis / document generation
用户法律问题/案件描述/合同文本

这部分全部屏蔽loss,不让模型学习复述用户问题、复述输入文本

② 末尾正常数字token部分

对应模型需要学习预测的法律标准答案/法律文书内容,仅这部分计算损失、反向传播更新LoRA权重。

  • 自定义起始Token:法律回答开头标记

  • 中间数字:逐词法律文本分词ID(法条、专业术语、文书语句)

  • 末尾终止Token:标记法律文本生成完成

2. labels 文本行作用

纯可视化日志,方便肉眼核对,不参与任何训练计算

内容是当前样本对应的标准法律输出答案,与label_ids末尾有效数字一一对应。

3. 该掩码设计对法律微调的核心价值

  • 杜绝模型"复述提问""复述输入法条"的劣质学习行为;

  • 强制模型学习问题→专业法律输出的映射逻辑;

  • 完美适配法律问答、文书生成、法条解析、案例研判全场景微调。

(注:部分内容可能由 AI 生成)

相关推荐
旺仔丶歪歪乐1 小时前
英语启蒙APP分级体系拆解:本土课标分级与海外原版分级有什么区别
人工智能·学习·web app
llgdwuhan1 小时前
自动化耦合设备推动光模块量产模式转型
人工智能·光模块·芯片测试·耦合测试设备·光模块耦合设备
初晴融雪-快雪时晴1 小时前
动产与不动产全景分析:从法律定义到资产配置
大数据·人工智能
SL-staff1 小时前
(二十二)「JVS-Rules规则引擎 V2.5」— 交叉决策表节点
人工智能·机器学习·规则引擎·jvs-rules·jvs·交叉决策表·多维逻辑
ECT-OS-JiuHuaShan1 小时前
严格证明:还原论是ASCII,整体论是UTF-8的历史意义和价值
开发语言·人工智能·算法·量子计算
ShallWeL1 小时前
【机器学习】(19)—— 数据特性与标签
人工智能·算法·机器学习
俊哥V1 小时前
每日 AI 研究简报 · 2026-07-16
人工智能·ai
EMBA寰球网1 小时前
2026年SEM代运营推广公司哪家好:专业机构能力分析与主流选型参考
人工智能