LLaMA-Factory大模型微调报错合集

参考github中readme_zh.md的推入门教程:LLaMA-Factory QuickStart

在这里插入图片描述


  1. transformers版本问题:在阿里云服务器上用了最新的transformers出现了报错,后面改为稳定的版本:
    pip install --upgrade transformers==4.51.2

  1. 在模型下载与可用性校验中,跑一下官方raedme里提供的原始推理demo,验证模型文件的正确性和transformers库等软件的可用可能会出现问题(本人是用的Qwen3,也有可能是LLM不一致的问题):
    TypeError: ‘NoneType’ object cannot be interpreted as an integer
    这是由于终止符的设定出现的问题,即eos_token_id=[terminators],,参数eos_token_id是指定生成文本的终止符(End Of Sequence),当模型生成该 token 时立即停止生成,但是terminators值为 [151645, None],由pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>") 生成了None,不符合要求;
    可以直接将改代码删掉以解决该问题,或者配置正确的非None的终止符

  1. 在配置文件/examples/inference/llama3.yaml当中adapter_name_or_path参数作用为指定 LoRA 适配器的存储路径,让加载时自动合并原始模型与适配器权重,所以只是加载初始模型时可以不需要该参数。
    在这里插入图片描述

  1. 关于数据集的配置与介绍:[LLaMA-Factory 数据集参数介绍与配置]
    (https://github.com/hiyouga/LLaMA-Factory/blob/main/data/README_zh.md)
    直接用文本编辑器,notebook或者编译器等打开,直接选择Ctrl + Shift + H快捷键,然后做替换操作。另外,windows下系统字段替换可以直接用命令执行,有可能不够准确,破坏格式:
powershell -Command "(gc data/identity.json) -replace '{{name}}','PonyBot' -replace '{{author}}','LLaMA Factory' | sc data/identity.json"

# 或者,分步骤替换文件中的文本
(Get-Content "data/identity.json") -replace "{{name}}", "PonyBot" | Set-Content "data/identity.json"
(Get-Content "data/identity.json") -replace "{{author}}", "LLaMA Factory" | Set-Content "data/identity.json"

  1. llamafactory命令

llamafactory命令
例如:

llamafactory-cli webchat \
    --model_name_or_path /media/codingma/LLM/llama3/Meta-Llama-3-8B-Instruct \
    --adapter_name_or_path ./saves/LLaMA3-8B/lora/sft  \
    --template llama3 \
    --finetuning_type lora
# 或者使用配置文件代替参数
llamafactory-cli webchat examples/inference/qwen3_lora_sft.yaml

直接调用图形化界面:其具体操作可参考blog六,七章节

llamafactory-cli webui
### 解决 LLaMA-Factory 微调 ChatGLM3 模型时的训练错误 #### 错误描述 在使用 LLaMA-Factory 对 ChatGLM3 进行微调的过程中遇到了 `Segmentation fault (core dumped)` 的错误信息[^3]。 #### 可能原因分析 `Segmentation fault (core dumped)` 是一种常见的运行时错误,通常表示程序尝试访问未分配给它的内存区域。对于深度学习模型来说,这可能是由于以下几个原因之一: - **资源不足**:特别是 GPU 或 CPU 内存不足以支持当前任务的需求。 - **依赖库冲突**:某些特定版本之间的不兼容可能导致崩溃。 - **数据集处理不当**:如果数据预处理过程中存在异常情况也可能引发此问题。 - **代码逻辑缺陷**:可能存在潜在 bug 导致非法操作发生。 #### 解决策略 ##### 调整资源配置 确保有足够的计算资源来支撑模型训练是非常重要的一步。可以考虑增加可用 RAM 和/或显卡 VRAM 容量;如果是分布式设置,则需合理规划节点间通信开销并适当减少批大小(batch size),以降低单次迭代所需占用的空间总量。 ```bash # 修改 Dockerfile 中关于 CUDA_VISIBLE_DEVICES 设置 ENV CUDA_VISIBLE_DEVICES=0,1 # 假设有两块 GPU 卡可选 ``` ##### 更新依赖项至稳定版 有时旧版本软件包之间会存在兼容性问题,因此建议升级所有必要的 Python 库到最新稳定发行版,并保持 PyTorch 版本与所使用的硬件驱动相匹配。 ```bash pip install --upgrade torch torchvision torchaudio transformers datasets accelerate optimum ``` ##### 数据集验证与清理 仔细检查输入的数据文件是否存在损坏或者格式不符的情况,必要时重新生成干净副本用于后续实验。另外还可以简化初始测试阶段采用的小规模样本来排除外部干扰因素的影响。 ##### 优化代码结构 针对具体业务场景定制化改造源码片段,比如调整超参数配置、引入断点续训机制等措施有助于提高整体稳定性。同时注意捕获可能出现的各种异常状况以便及时响应处理。 ```python try: trainer.train() except RuntimeError as e: print(f"Runtime error occurred: {e}") finally: cleanup_resources() # 清理释放不再需要的对象实例 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叁玖27

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值