HuggingFace 使用指南
HuggingFace 是最流行的 AI 模型和数据集托管平台。本文介绍如何在智川云中高效使用 HuggingFace 资源。
修改缓存目录
HuggingFace 默认将模型缓存到 /root/.cache/huggingface/,会占用系统盘空间。建议修改到数据盘:
方法一:环境变量(推荐)
bash
# 临时设置
export HF_HOME=/root/rivermind-data/cache/huggingface
# 永久设置
echo 'export HF_HOME=/root/rivermind-data/cache/huggingface' >> ~/.bashrc
source ~/.bashrc方法二:代码中设置
python
import os
os.environ['HF_HOME'] = '/root/rivermind-data/cache/huggingface'
# 必须在导入 transformers 之前设置
from transformers import AutoModel, AutoTokenizer下载模型
使用 transformers 库
python
from transformers import AutoModel, AutoTokenizer
# 自动下载并缓存
model = AutoModel.from_pretrained("bert-base-chinese")
tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")使用 huggingface-cli
bash
# 安装 CLI 工具
pip install huggingface_hub
# 下载模型到指定目录
huggingface-cli download bert-base-chinese --local-dir ./models/bert-base-chinese
# 下载特定文件
huggingface-cli download bert-base-chinese config.json --local-dir ./models/使用 snapshot_download
python
from huggingface_hub import snapshot_download
# 下载整个仓库
snapshot_download(
repo_id="bert-base-chinese",
local_dir="/root/rivermind-data/models/bert-base-chinese",
local_dir_use_symlinks=False
)使用镜像加速
国内访问 HuggingFace 可能较慢,可使用镜像:
bash
export HF_ENDPOINT=https://hf-mirror.com或在代码中:
python
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'离线使用模型
下载后离线加载
python
# 先下载
model = AutoModel.from_pretrained("bert-base-chinese")
model.save_pretrained("/root/rivermind-data/models/bert-base-chinese")
# 离线加载
model = AutoModel.from_pretrained(
"/root/rivermind-data/models/bert-base-chinese",
local_files_only=True
)设置离线模式
bash
export HF_HUB_OFFLINE=1下载数据集
python
from datasets import load_dataset
# 下载并缓存
dataset = load_dataset("squad")
# 指定缓存目录
dataset = load_dataset("squad", cache_dir="/root/rivermind-data/datasets")
# 保存到本地
dataset.save_to_disk("/root/rivermind-data/datasets/squad")
# 从本地加载
dataset = load_dataset("path", data_dir="/root/rivermind-data/datasets/squad")常用环境变量
| 变量 | 说明 | 示例值 |
|---|---|---|
HF_HOME | 缓存根目录 | /root/rivermind-data/cache/huggingface |
HF_ENDPOINT | API 端点 | https://hf-mirror.com |
HF_HUB_OFFLINE | 离线模式 | 1 |
TRANSFORMERS_CACHE | transformers 缓存 | /root/rivermind-data/cache/transformers |
清理缓存
bash
# 查看缓存大小
du -sh /root/.cache/huggingface/
# 清理缓存
rm -rf /root/.cache/huggingface/hub/
# 使用 CLI 清理
huggingface-cli delete-cache常见问题
下载中断
使用 huggingface-cli 下载支持断点续传,中断后重新执行相同命令即可继续。
模型太大
- 使用量化版本(如 GPTQ、AWQ)
- 下载到数据盘
- 使用
device_map="auto"自动分配显存
网络超时
python
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="model-name",
local_dir="./model",
resume_download=True, # 支持断点续传
max_workers=4 # 并行下载
)