1. HF 相关的环境变量
HF(Hugging Face)库使用了多个环境变量来配置其行为,特别是在模型下载和缓存管理方面。以下是一些常见的Hugging Face相关环境变量:
- TRANSFORMERS_CACHE:用于设置Transformers库模型和配置文件的缓存目录。
- HF_HOME:设置Hugging Face库的主目录,用于存放模型和tokenizers的缓存。
- HF_DATASETS_CACHE:用于设置Datasets库的缓存目录。
- HF_METRICS_CACHE:用于设置Metrics库的缓存目录。
- HF_MODULES_CACHE:用于设置Hugging Face Hub的模块缓存目录。
- TRANSFORMERS_VERBOSITY:用来设置库的日志级别,如”info”、”error”、”warning”等。
- HF_HUB_CACHE:用于设置模型和其他文件的默认缓存位置。
- HF_HUB_DISABLE_OUTDATED_WARNING:设置为”1″可以禁用过时警告。
- TRANSFORMERS_OFFLINE:设置为”1″后,Transformers库将在离线模式下运行,只使用本地缓存的文件。
- HF_HUB_TOKEN:用于认证和下载需要权限的模型。
- HF_ENDPOINT: 用于指定与 Hugging Face Hub 连接的自定义服务器地址
这些环境变量可以帮助用户自定义和优化他们的工作流程,特别是在处理大量数据和模型时,或者在有限的网络连接环境下工作。通过设置这些环境变量,用户可以控制模型和数据的下载、缓存和存储位置。
设置环境变量的方法取决于你使用的操作系统。下面我将为Windows、Linux和macOS操作系统提供一些示例。
1.1 对于Windows
在Windows系统中,你可以使用命令提示符或PowerShell来设置环境变量。例如,设置TRANSFORMERS_CACHE
:
命令提示符:
1 |
set TRANSFORMERS_CACHE=C:\path\to\your\cache |
PowerShell:
1 |
$env:TRANSFORMERS_CACHE="C:\path\to\your\cache" |
这些命令只会在当前的命令行会话中有效。若要永久设置环境变量,你可以在系统的“环境变量”设置中添加它们。
1.2 对于Linux和macOS
在Linux或macOS系统中,你可以在shell中使用export
命令设置环境变量。这可以在终端中临时设置,或者添加到你的~/.bashrc
、~/.zshrc
或其他shell配置文件中,以实现持久设置。
1 |
export TRANSFORMERS_CACHE=/path/to/your/cache |
添加到配置文件后,每次打开新的终端窗口时,环境变量就会自动设置。
1.3 实用示例
1.3.1 设置模型缓存位置
1 |
export TRANSFORMERS_CACHE=/home/user/huggingface/transformers/ |
1.3.2设置数据集缓存位置
1 |
export HF_DATASETS_CACHE=/home/user/huggingface/datasets/ |
1.3.3 在离线模式下运行Transformers
1 |
export TRANSFORMERS_OFFLINE=1 |
1.3.4 设置日志级别为警告
1 |
export TRANSFORMERS_VERBOSITY=warning |
1.3.5 自定义服务器地址
可以设置国内的镜像网站
1 |
export HF_ENDPOINT=https://hf-mirror.com |
通过这些示例,你可以根据自己的需求配置Hugging Face库的行为,优化本地开发环境。
1.3.6 使用 huggingface-cli 下载
1 2 3 4 |
pip install transformers huggingface-cli login huggingface-cli download Qwen/Qwen2-VL-7B-Instruct-GPTQ-Int4 --local-dir ./Qwen/Qwen2-VL-7B-Instruct-GPTQ-Int4 --local-dir-use-symlinks False |
如果需要下载数据集,则需要在download 后面加上 –repo-type dataset,例如:
1 |
huggingface-cli download --repo-type dataset Idavidrein/gpqa --local-dir ./Idavidrein/gpqa |
如果不想登录,可以在后面加上 –token,例如:
1 |
huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct --local-dir ./meta-llama/Meta-Llama-3-8B-Instruct --token hf_xxxxxx |
2. 常用的 PyPI 镜像源
在 pip 安装的时候,可以使用 pip 的 -i 参数
1 |
pip install -r requirements.txt -i https://pypi.org/simple/ |
原生地址
1 |
https://pypi.org/simple/ |
清华大学
1 |
https://pypi.tuna.tsinghua.edu.cn/simple |
阿里云
1 |
https://mirrors.aliyun.com/pypi/simple/ |
中国科技大学
1 |
https://pypi.mirrors.ustc.edu.cn/simple/ |
豆瓣(douban)
1 |
https://pypi.doubanio.com/simple/ |
3. 设置 CUDA_VISIBLE_DEVICES 参数
CUDA_VISIBLE_DEVICES
是一个环境变量,用于控制 CUDA 应用程序(如 TensorFlow 或 PyTorch 使用的应用)可见的 GPU 设备。通过设置这个环境变量,你可以指定哪些 GPU 设备应该被应用程序识别和使用。这是在多GPU系统上进行资源管理和隔离的一种有效方式。
使用单个GPU:
1 |
export CUDA_VISIBLE_DEVICES=0 |
这个设置使得只有编号为 0 的 GPU 对 CUDA 应用程序可见。
指定多个GPU:
1 |
export CUDA_VISIBLE_DEVICES=0,1,2 |
这将使应用程序能看到编号为 0、1 和 2 的 GPU。
禁用所有GPU
1 |
export CUDA_VISIBLE_DEVICES="" |
这将导致没有 GPU 被 CUDA 应用程序检测到,可以用来测试 CPU-only 的代码路径。
4. 设置CUDA的动态库路径和运行路径
在Linux 环境下可能需要设置 cuda 的一些路径
1 2 |
export PATH=/usr/local/cuda-12.4/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:/usr/local/cuda-12.4/extras/CUPTI/lib64:$LD_LIBRARY_PATH |
5. 查看 torch 版本
1 |
python -c "import torch; print(torch.__version__)" |
如果是CUDA版本,显示 2.3.0+cu121
查看 cuda 是否有效
1 |
python -c "import torch; print(torch.cuda.is_available())" |
如果有效,则返回 True
6. torch 的安装方法
6.1 Linux + Python + Conda
6.1.0 Conda + CPU
1 |
conda install pytorch torchvision torchaudio cpuonly -c pytorch |
6.1.1 Conda + CUDA11.8
1 |
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia |
6.1.2 Conda + CUDA12.1
1 |
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia |
6.1.3 Conda + CUDA12.4
1 |
conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia |
6.2 Linux + Python + pip
6.2.0 Pip + CPU
1 |
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu |
6.2.1 Pip + CUDA11.8
1 |
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 |
6.2.2 Pip + CUDA12.1
1 |
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 |
6.2.3 Pip + CUDA12.4
1 |
pip3 install torch torchvision torchaudio |
6.2.4 Pip + ROCm6.0 (AMD)
1 |
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.0 |
6.3 Mac + Python
6.3.1 Conda
1 |
conda install pytorch::pytorch torchvision torchaudio -c pytorch |
6.3.2 Pip
1 |
pip3 install torch torchvision torchaudio |
6.4 Windows + Python + Conda
6.4.0 Conda + CPU
1 |
conda install pytorch torchvision torchaudio cpuonly -c pytorch |
6.4.1 Conda + CUDA11.8
1 |
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia |
6.4.2 Conda + CUDA12.1
1 |
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia |
6.4.3 Conda + CUDA12.4
1 |
conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia |
6.5 Windows + Python + pip
6.5.0 Pip + CPU
1 |
pip3 install torch torchvision torchaudio |
6.5.1 Pip + CUDA11.8
1 |
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 |
6.5.2 Pip + CUDA12.1
1 |
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 |
6.5.3 Pip + CUDA12.4
1 |
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 |
7. 判断 当前使用的 python 路径
1 |
python -c "import sys; print(sys.executable)" |
8. 安装 transformers
8.1 正常安装
1 |
pip install transformers |
8.2 更新
1 |
pip install --upgrade transformers |
8.3 使用最新版本(dev)
1 |
pip install git+https://github.com/huggingface/transformers |