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

📅 2026/7/16 18:37:09
llamafactory 大语言模型llm 微调,关键参数深度讲解(法律大模型微调专属版)
完整日志逐段拆解 报错/警告/关键参数深度讲解法律大模型微调专属版环境ROCm AMD GPU LlamaFactory LoRA微调 Qwen2-512048层大模型断点续训 checkpoint-2500单卡训练。训练任务法律领域监督微调法律问答/法条解析/文书生成一、前置脚本报错与优化方案rocm-smi --gpureset # ERROR: No device specified. One device must be specified for GPU reset原因--gpureset必须指定单张GPU序号不能批量重置所有卡无参数会直接报错。修复脚本兼容单/多AMD卡export ACCELERATE_DEBUG1 # 批量杀死训练进程修复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.yamlpkill 警告pattern longer than 15 characters will match zeroLinuxpkill不加-f仅匹配进程名限制15字符llamafactory-cli等长命令会匹配失败你已经加了pkill -9 -f llamafactory这条警告可以忽略属于无害提示。二、Deprecated 日志logging_dir弃用提示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。三、分布式训练基础信息Process rank: 0, world size: 1, device: cuda:0, distributed training: False, compute dtype: torch.bfloat16world_size1单卡训练无多卡DDP/DeepSpeedcuda:0ROCm环境PyTorch依然复用cuda设备标识底层是AMD HIPcompute dtypebfloat16计算精度bf16适合法律大模型长文本训练显存占用低、数值稳定性强适配法条、文书超长上下文。四、Qwen2 模型配置解析48层法律微调基座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 id3. 加载generation生成配置三次加载是正常流程不影响性能。五、数据集加载逻辑法律领域SFT微调任务全新样本结构替换原药物/蛋白任务训练任务法律指令/问题 → 法律专业回答/法条解析/文书续写Instruction法律任务指令法律问答、法条解读、合同撰写、案例分析Input用户法律问题、案件描述、合同片段、法条原文Response标准法律答复、合规分析、法条引用、完整法律文书label_ids 全-100原理法律微调核心逻辑-100在CrossEntropyLoss中会自动忽略计算loss不参与梯度更新输入prompt部分指令、用户法律问题、原文输入全部标记-100只对模型输出的法律答案/文书文本计算损失。作用强制模型只学习「根据法律问题输出合规专业回答」不学习复述用户提问、复述输入法条完全适配法律SFT监督微调范式数据集加载逻辑正常无错误。六、关键警告1FlashAttention-2 is not installed[WARNING] FlashAttention-2 is not installed.影响未启用FlashAttention使用原生SDPA注意力显存占用更高、速度更慢AMD ROCm环境FlashAttention适配差官方FlashAttention对HIP支持残缺无需强行安装。替代方案当前已生效日志后续Using torch SDPA for faster trainingPyTorch原生缩放点积注意力ROCm下AOTriton后端加速是法律长文本微调最优稳定方案。七、ROCm HIP 内存警告expandable_segments not supportedUserWarning: expandable_segments not supported on this platform (Triggered internally at /pytorch/c10/hip/HIPAllocatorConfig.h:36.)原理PyTorch CUDA拥有可扩展内存分段分配机制AMD HIP架构不支持只能按需小块申请显存。影响与优化无害警告不报错、不崩溃仅显存分配效率轻微下降可通过环境变量优化减少频繁显存申请提升法律长文本训练稳定性export PYTORCH_HIP_ALLOC_CONFmax_split_size_mb:2048 export HIP_VISIBLE_DEVICES0八、模型加载核心信息权重加载safetensors安全权重格式100%加载完成无权重缺失、损坏精度策略基座模型加载为bfloat16节省显存LoRA微调参数upcast为float32保证法律文本精细语义微调精度微调方式LoRA微调仅训练少量参数不破坏基座通用能力精准适配法律领域知识trainable params: 275,251,200 || all params: 15,574,150,144 || trainable%: 1.7674155亿大基座仅微调1.77%参数显存压力可控适合法律垂直领域微调。梯度检查点开启大幅降低长文本激活显存占用适配法条、判决书超长文本训练杜绝OOMKV Cache训练关闭训练阶段无需缓存KV仅推理启用属于正常训练机制。九、Token ID 对齐警告重要配置点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否则法律推理时会出现截断异常、乱码、生成不完整问题。十、断点续训核心参数法律微调任务全貌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*1616 # 等效批次16 Total optimization steps 39,333 # 总迭代步数 Resume from global step 2500, epoch 0计算逻辑无误ceil(总样本/等效批次)*轮次 39333当前从2500步断点续训数据加载、梯度更新逻辑正常。十一、AOTriton SDPA 前后向警告解析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微调适配性拉满法律语义学习更精准。提速优化命令# 开启Triton缓存避免每次重启重新编译 export TRITON_CACHE_DIR/workspace/triton_cache # 启用ROCm优化编译器 export ROCM_USE_FLASH_ATTN_V2_TRITON1十二、整体训练状态总结法律微调版1.无任何致命报错训练正常运行所有日志均为无害警告、版本提示、环境适配信息2. 整套环境完美适配法律垂直领域大模型微调超长上下文AMD优化注意力低参LoRA微调梯度显存优化3. 模型正在稳步学习法律问题理解、法条引用、文书生成、合规推理能力4. 可选优化项修复重置脚本、替换废弃参数、配置显存与缓存环境变量、导出时保存最新token配置。label_ids、labels 完整拆解法律微调专属1. label_ids 数组核心规则PyTorch 大模型SFT训练标准规则值为 -100 的token 忽略loss计算、不更新权重仅正常数字token参与训练。分段对应法律训练样本① 超长全部 -100 部分对应整条输入PromptBelow 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 生成