【解决】AutoDL系统盘爆满(hugging face的默认缓存在系统盘)

出现"No space left on device"可能由存储路径配置或缓存文件积累导致。

[rank0]: return _hf_hub_download_to_cache_dir( [rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [rank0]: File "/root/miniconda3/envs/FlexWorld/lib/python3.11/site-packages/huggingface_hub/file_download.py", line 1011, in _hf_hub_download_to_cache_dir [rank0]: _download_to_tmp_and_move( [rank0]: File "/root/miniconda3/envs/FlexWorld/lib/python3.11/site-packages/huggingface_hub/file_download.py", line 1545, in _download_to_tmp_and_move [rank0]: http_get( [rank0]: File "/root/miniconda3/envs/FlexWorld/lib/python3.11/site-packages/huggingface_hub/file_download.py", line 457, in http_get [rank0]: temp_file.write(chunk) [rank0]: OSError: [Errno 28] No space left on device

​删除HuggingFace缓存路径
下载过程涉及huggingface_hub模块,其默认缓存路径为~/.cache/huggingface。执行以下命令清理:

rm -rf ~/.cache/huggingface/hub/*

但是往往我们不想要把下好的模型从缓存中删除,于是我们可以使用存储路径重定向(适用于大文件下载)的方法,基于符号链接方式将HuggingFace缓存重定向到AutoDL数据盘的具体操作步骤。这样就算数据盘不够,也可以扩容数据盘。

步骤:

在数据盘创建专用缓存目录:

mkdir -p /root/autodl-tmp/huggingface_cache
  • 参数说明:
    • -p:递归创建多级目录
    • 路径规范:建议保持huggingface_cache命名一致

建立符号链接 

删除原缓存目录(如已存在):

rm -rf ~/.cache/huggingface  # 强制删除原目录

 创建软链接:

ln -sf /root/autodl-tmp/huggingface_cache ~/.cache/huggingface

验证

测试缓存写入:

python -c "from huggingface_hub import hf_hub_download; hf_hub_download('bert-base-uncased', 'config.json')"

验证存储位置:

du -sh /root/autodl-tmp/huggingface_cache  # 查看下载文件是否存入数据盘

解决 !

### 使用Hugging Face AutoDL的相关方法 Hugging Face 提供了一个名为 `transformers` 的库,其中包含了大量预训练模型以及工具函数。对于想要使用或下载 Hugging Face 上的 AutoDL 模型的内容,可以通过以下方式实现。 #### 安装必要的依赖项 为了能够顺利运行 Hugging Face 中的功能模块,首先需要安装对应的 Python 库。以下是推荐的命令用于安装必要环境: ```bash pip install transformers datasets accelerate ``` 如果计划在 GPU 或者混合精度环境下工作,则还需要额外安装 PyTorch 并指定对应版本[^2]。 #### 下载并加载 AutoDL 模型 假设目标是从 Hugging Face Model Hub 获取特定名称下的 AutoDL 模型实例化对象,可以按照如下方式进行操作: ```python from transformers import AutoTokenizer, AutoModelForSequenceClassification model_name_or_path = "your_model_identifier_here" tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) model = AutoModelForSequenceClassification.from_pretrained( model_name_or_path, trust_remote_code=True, low_cpu_mem_usage=True, torch_dtype=torch.float16 # 如果硬件支持半精度计算可选此项 ).eval() ``` 上述代码片段展示了如何利用 `AutoTokenizer` 和 `AutoModelForSequenceClassification` 来分别获取分词器与分类任务专用模型。注意这里设置了参数 `torch_dtype=torch.float16` 是为了让整个流程兼容后续可能调用到基于 VLLM 构建的服务端部署需求[^1]。 #### 关于数据类型的匹配性说明 当准备将本地已有的 Huggingface 预训练成果迁移到其他框架比如 VLLM 进行推理服务搭建时,务必保证两者间所采用数值表示形式的一致性。例如,在上面例子中指定了浮点数为单精度一半长度即 FP16 类型存储权重矩阵之后,同样应该告知后者遵循相同设定完成初始化过程。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值