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 | 
