LLAMA-Factory安装教程(解决报错cannot allocate memory in static TLS block的问题)

步骤一: 下载基础镜像

# 配置docker DNS
vi /etc/docker/daemon.json

# daemon.json文件中

{ "insecure-registries": ["https://swr.cn-east-317.qdrgznjszx.com"], "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }

systemctl restart docker.service 
docker pull swr.cn-east-317.qdrgznjszx.com/donggang/llama-factory-ascend910b:cann8-py310-torch2.2.0-ubuntu18.04 
mkdir /root/llama_factory_model

步骤二:新建基础容器 

docker create -it -u root --ipc=host --net=host --name=llama-factory   -e LANG="C.UTF-8"\
        --device=/dev/davinci0 \
        --device=/dev/davinci1 \
        --device=/dev/davinci2 \
        --device=/dev/davinci3 \
        --device=/dev/davinci4 \
        --device=/dev/davinci5 \
        --device=/dev/davinci6 \
        --device=/dev/davinci7 \
        --device=/dev/davinci_manager \
        --device=/dev/devmm_svm \
        --device=/dev/hisi_hdc \
        -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
        -v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \
        -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \
        -v /mnt/:/mnt/ \
        -v /root/llama_factory_model:/root/llama_factory_model \
        -v /var/log/npu:/usr/slog swr.cn-east-317.qdrgznjszx.com/donggang/llama-factory-ascend910b:cann8-py310-torch2.2.0-ubuntu18.04 \
        /bin/bash \

步骤三:安装llamafactory

docker start llama-factory
docker exec -it llama-factory bash

# 安装llama-factory
wget https://codeload.github.com/hiyouga/LLaMA-Factory/zip/refs/heads/main -O LLaMA-Factory.zip
unzip LLaMA-Factory.zip
mv LLaMA-Factory-main LLaMA-Factory

cd LLaMA-Factory
pip install -e ".[torch-npu,metrics]" 
apt install libsndfile1

# 激活昇腾环境变量(建议加入 ~/.bashrc中)
source /usr/local/Ascend/ascend-toolkit/set_env.sh

#使用以下指令对 LLaMA-Factory × 昇腾的安装进行校验
llamafactory-cli env

# 运行llamafactory webui(访问本机7860端口)
nohup llamafactory-cli webui> llama_factory_output.log 2>&1 &
# 查看llamafactory运行日志
tail -f /home/HwHiAiUser/LLaMA-Factory/llama_factory_output.log

解决报错

问题描述

RuntimeError: Failed to import transformers.generation.utils because of the following error (look up to see its traceback):

/usr/local/python3.10.13/lib/python3.10/site-packages/sklearn/utils/../../scikit_learn.libs/libgomp-d22c30c5.so.1.0.0: cannot allocate memory in static TLS block

解决思路

vim ~/.bashrc

#文档末尾添加
export LD_PRELOAD=/usr/local/python3.10.13/lib/python3.10/site-packages/sklearn/utils/../../scikit_learn.libs/libgomp-d22c30c5.so.1.0.0

source ~/.bashrc

### 解决 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值