使用TRL库在HuggingFace空间训练时遭遇PermissionError权限问题
解决HuggingFace空间Docker环境下TRL训练权限拒绝问题
核心问题定位
你遇到的PermissionError: [Errno 13] Permission denied是因为训练代码尝试创建Qwen3-0.6B-SFT目录时,当前用户没有对应目录的写入权限——这和HF_TOKEN本身权限无关,主要是Docker容器内的文件系统权限配置问题。
具体解决方案
指定可写的输出/缓存目录
不要用默认的当前工作目录,直接把模型输出和缓存路径指向容器内的/tmp目录(该目录默认全局可写):# 在训练代码中修改输出目录 trainer = SFTTrainer( model=model, train_dataset=dataset, output_dir="/tmp/Qwen3-0.6B-SFT", # 替换为/tmp下的路径 args=training_args, ) # 同时设置transformers缓存目录 import os os.environ["TRANSFORMERS_CACHE"] = "/tmp/huggingface_cache"调整Docker容器用户权限
在Dockerfile中添加用户权限配置,避免用root用户运行(部分HuggingFace Spaces环境限制root写入):# 创建非root用户并切换 RUN useradd -m appuser USER appuser # 设置工作目录为用户可写路径 WORKDIR /home/appuser检查工作目录权限
如果坚持使用自定义工作目录,在Dockerfile中赋予该目录可写权限:WORKDIR /app RUN chmod 777 /app # 测试用,生产环境建议缩小权限范围
报错信息复现
创建
Qwen3-0.6B-SFT目录时触发PermissionError: [Errno 13] Permission denied
内容的提问来源于stack exchange,提问作者Vishal Joshi
相关产品推荐
相关产品推荐

