LLaMA-Factory微调ChatGLM3报错: Segmentation fault (core dumped)

SFT训练模型的命令

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
    --stage sft \
    --model_name_or_path models/chatglm3-6b \
    --do_train \
    --dataset self_cognition \
    --template chatglm3 \
    --finetuning_type lora \
    --lora_target query_key_value \
    --output_dir output/chatglm3_sft_lora_self/ \
    --overwrite_cache \
    --per_device_train_batch_size 4 \
    --gradient_accumulation_steps 4 \
    --lr_scheduler_type cosine \
    --logging_steps 10 \
    --save_steps 200 \
    --learning_rate 5e-5 \
    --num_train_epochs 100 \
    --plot_loss \
    --fp16

模型基座是下载正确的,torch.cuda.is_available()也是True

训练报错:

11/21/2023 09:11:23 - INFO - llmtuner.data.loader - Loading dataset self_cognition.json...
Using custom data configuration default-aaabbbccc
Loading Dataset Infos from /usr/local/lib/python3.10/site-packages/datasets/packaged_modules/json
Generating dataset json (/root/.cache/huggingface/datasets/json/default-aaabbbccc/0.0.0/34bc96c741b2e8a1f18598ffdd8bb11242116d54740a1d4f2a2872c7a28b6900)
Downloading and preparing dataset json/default to /root/.cache/huggingface/datasets/json/default-aaabbbccc/0.0.0/34bc96c741b2e8a1f18598ffdd8bb11242116d54740a1d4f2a2872c7a28b6900...
Downloading data files: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 6364.65it/s]
Downloading took 0.0 min
Checksum Computation took 0.0 min
Extracting data files:   0%|                                                      | 0/1 [00:00<?, ?it/s]train.sft.1gpu.lora.fp16.self.sh: line 19:  2551 Segmentation fault      (core dumped) CUDA_VISIBLE_DEVICES=0 python src/train_bash.py --stage sft --model_name_or_path models/chatglm3-6b --do_train --dataset self_cognition --template chatglm3 --finetuning_type lora --lora_target query_key_value --output_dir output/chatglm3_sft_lora_self/ --overwrite_cache --per_device_train_batch_size 4 --gradient_accumulation_steps 4 --lr_scheduler_type cosine --logging_steps 10 --save_steps 200 --learning_rate 5e-5 --num_train_epochs 100 --plot_loss --fp16

调试

  • 用pycharm,跟踪入口,从src/train_bash.py进去,一步一步看
  • 根据报错log,找到"Loading dataset {}..."
  • 然后加断点,单步调试

调试后定位到:Segmentation fault (core dumped)是在 运行 datasets的 load_dataset() 函数发生的,单独调用这个函数也复现问题了: https://github.com/hiyouga/LLaMA-Factory/blob/main/src/llmtuner/data/loader.py#L56

试了好几个和datasets的Segmentation fault (core dumped)报错相关的修复方案,都也没有解决,包括网上搜到要更新一些相关库的版本,也都不行。

最终从报错的ubuntu18.04切换到20.04,换了个操作系统,就没有这个报错了

相关推荐
寰宇视讯15 分钟前
“津彩嘉年,洽通天下” 2024中国天津投资贸易洽谈会火热启动 首届津彩生活嘉年华重磅来袭!
大数据·人工智能·生活
Light6028 分钟前
低代码牵手 AI 接口:开启智能化开发新征程
人工智能·python·深度学习·低代码·链表·线性回归
墨绿色的摆渡人29 分钟前
用 Python 从零开始创建神经网络(六):优化(Optimization)介绍
人工智能·python·深度学习·神经网络
春末的南方城市40 分钟前
开源音乐分离器Audio Decomposition:可实现盲源音频分离,无需外部乐器分离库,从头开始制作。将音乐转换为五线谱的程序
人工智能·计算机视觉·aigc·音视频
矢量赛奇1 小时前
比ChatGPT更酷的AI工具
人工智能·ai·ai写作·视频
KuaFuAI1 小时前
微软推出的AI无代码编程微应用平台GitHub Spark和国产AI原生无代码工具CodeFlying比到底咋样?
人工智能·github·aigc·ai编程·codeflying·github spark·自然语言开发软件
Make_magic1 小时前
Git学习教程(更新中)
大数据·人工智能·git·elasticsearch·计算机视觉
shelly聊AI1 小时前
语音识别原理:AI 是如何听懂人类声音的
人工智能·语音识别
源于花海1 小时前
论文学习(四) | 基于数据驱动的锂离子电池健康状态估计和剩余使用寿命预测
论文阅读·人工智能·学习·论文笔记
雷龙发展:Leah1 小时前
离线语音识别自定义功能怎么用?
人工智能·音频·语音识别·信号处理·模块测试