news 2026/9/7 18:00:32

Transformers 安装实战指南:从 uv 虚拟环境到 GPU 加速与离线模式配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Transformers 安装实战指南:从 uv 虚拟环境到 GPU 加速与离线模式配置

Transformers 安装实战指南:从 uv 虚拟环境到 GPU 加速与离线模式配置

【免费下载链接】transformers🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers

Transformers 是 Hugging Face 出品的大模型框架,覆盖文本、视觉、音频与多模态模型的推理与训练。本文基于仓库官方安装文档 installation.md 与 setup.py 等仓库源码,完整讲解如何在不同硬件环境(CUDA、CPU、Intel XPU、NVIDIA Spark ARM64)下安装 Transformers、如何验证安装、如何从源码或以可编辑模式安装,以及如何配置模型缓存目录与离线运行环境。读完本文,你可以独立完成一套干净、可复现、可离线运行的 Transformers 开发环境。

一、环境前提:Python 与 PyTorch 版本要求

官方文档明确指出:Transformers 与 PyTorch 配合工作,已在Python 3.10+ 与 PyTorch 2.5+上完成测试。这一说法与仓库构建配置一致——setup.py 中定义了支持的 Python 版本范围与 PyTorch 最低版本:

# setup.py SUPPORTED_PYTHON_VERSIONS = (10, 14) # 3.10 to 3.14 ... "torch>=2.5", "python>=3.10.0",

同时setup.py生成的python_requires>=3.10.0。当前仓库中的开发版本号为5.16.0.dev0(见 src/transformers/init.py)。因此动手安装前请先确认:

  • Python 版本在 3.10~3.14 之间;
  • 如果使用 NVIDIA GPU,已按 PyTorch 官方指引 装好匹配的 CUDA 驱动。

二、用 uv 创建虚拟环境

官方推荐使用 [uv](一个基于 Rust 的高性能 Python 包与项目管理器)来管理虚拟环境,它能隔离不同项目的依赖、避免版本冲突。uv 可以作为 pip 的直接替代品——如果你偏好 pip,只需把下文命令中的uv去掉即可。

创建并激活一个虚拟环境:

uv venv .env source .env/bin/activate

三、按硬件选择安装命令

Transformers 的基础安装是transformers,GPU 场景则通过 extras 语法transformers[torch]一并装上 PyTorch 与accelerate[torch]这个 extra 的具体内容可以在 setup.py 中确认:

extras["torch"] = deps_list("torch", "accelerate") # torch>=2.5, accelerate>=1.1.0

文档给出了四种典型场景,下面逐一说明。

1. NVIDIA GPU(CUDA)

先确认系统能检测到 NVIDIA GPU:

nvidia-smi

然后安装带 torch extra 的 Transformers(CUDA 版的 PyTorch 需要事先按 PyTorch 官方指引装好对应驱动):

uv pip install "transformers[torch]"

等价的 pip 写法即 README.md 中展示的pip install "transformers[torch]"

2. NVIDIA Spark(ARM64 设备)

在运行 ARM64 的 NVIDIA Spark 设备(如 RTX Spark 笔记本)上,PyTorch 需要 NVIDIA 官方的 ARM64 构建,这些 wheel 不在默认 PyPI 索引或标准 PyTorch wheel 索引中,必须从 NVIDIA PyPI 索引安装:

nvidia-smi # 先确认能检测到 NVIDIA GPU uv pip install torch --index-url https://pypi.nvidia.com uv pip install transformers

注意这里的顺序:先固定 PyTorch 来源,再安装 Transformers,避免依赖解析器从默认索引拉取不兼容的 ARM64 版本。

3. 纯 CPU

CPU 版本直接从 PyTorch 官方 CPU wheel 索引安装 torch,再安装 Transformers:

uv pip install torch --index-url https://download.pytorch.org/whl/cpu uv pip install transformers

4. Intel GPU(XPU)

需要先按 Intel 官方指引安装 XPU 版 PyTorch 驱动,然后用xpu-smi确认系统检测到了 Intel GPU,再追加 XPU 索引 URL 安装:

xpu-smi uv pip install "transformers[torch]" --extra-index-url https://download.pytorch.org/whl/xpu

四、验证安装是否成功

安装完成后,运行下面这条命令做冒烟测试。它会加载一个预训练情感分析模型,对输入文本返回标签与置信度分数:

python -c "from transformers import pipeline; print(pipeline('sentiment-analysis')('hugging face is the best'))" # 期望输出形如: # [{'label': 'POSITIVE', 'score': 0.9998704791069031}]

这条命令同时验证了三件事:transformers 包可正常导入、能访问 Hub 下载并缓存模型、pipeline推理链路完整。如果你看到类似输出,即表示安装成功。

五、从源码安装与可编辑安装

源码安装:拿到最新(latest)版本

从源码安装装的是latest版本而非stable版本,适合实验尚未进入稳定版的新特性、或修复尚未正式发布的 bug。代价是最新版本不一定稳定——遇到问题可以提交 GitHub Issue 帮助官方尽快修复。

uv pip install git+https://github.com/huggingface/transformers

安装后仍用第四节的情感分析命令验证。

可编辑安装:本地开发 Transformers 本身

可编辑安装(editable install)把本地的 Transformers 代码目录直接链接进 Python 的导入路径,而不是复制文件——修改源码后无需重装即可生效,是参与 Transformers 本地开发的推荐方式:

git clone https://github.com/huggingface/transformers.git cd transformers uv pip install -e .

注意:本地 Transformers 文件夹必须一直保留,删除后该安装即失效。

后续同步上游最新改动:

cd ~/transformers/ git pull

六、conda 安装方式

如果你使用 conda 生态,可以直接从 conda-forge 频道安装。在刚创建好的虚拟环境中执行:

conda install conda-forge::transformers

七、配置缓存目录:HF_HUB_CACHE 与优先级规则

当你通过PreTrainedModel.from_pretrained加载预训练模型时,模型会从 Hub 下载并缓存到本地。每次加载时都会检查缓存是否仍是最新版本:一致则直接读本地,不一致则下载并更新缓存。

默认缓存目录由环境变量HF_HUB_CACHE决定,通常为~/.cache/huggingface/hub(Windows 上为C:\Users\username\.cache\huggingface\hub)。这个默认值在源码中可以直接看到——当调用方没有显式传cache_dir时,下载逻辑就回落到constants.HF_HUB_CACHE

# src/transformers/utils/hub.py if cache_dir is None: cache_dir = constants.HF_HUB_CACHE

见 src/transformers/utils/hub.py。同文件中还定义了动态模块缓存路径HF_MODULES_CACHE,默认落在HF_HOME/modules下(见 hub.py)。

要把模型缓存到别的目录,按以下优先级修改 shell 环境变量(优先级从高到低):

  1. HF_HUB_CACHE(直接指定 Hub 缓存目录,最精确);
  2. HF_HOME(指定整个 HF 数据主目录,Hub 缓存固定为其子路径hub);
  3. XDG_CACHE_HOME+/huggingface(仅在HF_HOME未设置时生效)。

八、离线模式:防火墙环境下的完整方案

在离线或防火墙环境中,需要提前把模型文件下载并缓存好。官方给出了三种互补的手段。

1. 预下载:snapshot_download

在有网机器上使用huggingface_hubsnapshot_download一次性拉取整个模型仓库:

from huggingface_hub import snapshot_download snapshot_download(repo_id="meta-llama/Llama-2-7b-hf", repo_type="model")

snapshot_download支持按 revision 下载、通过 CLI 下载、以及按文件模式过滤等更多选项。

2. 环境变量禁网:HF_HUB_OFFLINE=1

设置HF_HUB_OFFLINE=1可以彻底禁止加载模型时的任何 HTTP 请求,强制只走本地缓存:

HF_HUB_OFFLINE=1 \ python examples/pytorch/language-modeling/run_clm.py --model_name_or_path meta-llama/Llama-2-7b-hf --dataset_name wikitext ...

其中 run_clm.py 就是仓库中真实存在的语言模型训练示例脚本。

3. 加载参数兜底:local_files_only=True

另一种更细粒度的方式是只在特定加载调用上限定只读本地文件,通过PreTrainedModel.from_pretrainedlocal_files_only=True参数实现:

from transformers import LlamaForCausalLM model = LlamaForCausalLM.from_pretrained("./path/to/local/directory", local_files_only=True)

从源码结构看,local_files_only是下载链路上一贯透传的参数:src/transformers/utils/hub.py 中它被声明在DownloadKwargs里,并在调用hf_hub_download/snapshot_download时原样传递(该文件中共有 18 处引用),因此无论是单文件下载还是整仓快照,离线约束都能生效。

小结与延伸阅读

本文完整覆盖了官方安装文档的六大板块:uv 虚拟环境、四种硬件场景的安装命令、安装验证、源码/可编辑安装、conda 安装,以及缓存目录与离线模式的配置。几个便于自查的要点:

  • 版本底线:Python 3.10+、PyTorch 2.5+,extras 细节见 setup.py(如torchextra 绑定accelerate>=1.1.0);
  • 验证命令:pipeline('sentiment-analysis')一行脚本即可确认环境完整可用;
  • 缓存优先级:HF_HUB_CACHE>HF_HOME>XDG_CACHE_HOME + /huggingface
  • 离线三件套:snapshot_download预下载、HF_HUB_OFFLINE=1禁网、local_files_only=True局部兜底。

如需进一步深入,可以继续参考 README.md 中的快速上手示例与 docs/source/en/installation.md 的原始表述。

【免费下载链接】transformers🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 18:00:08

基于JGit的分布式Git仓库实时查询系统设计与优化

## 1. 项目背景与核心价值在分布式团队协作和持续集成场景中,Git仓库信息的实时查询能力是基础设施的重要组成部分。我们团队最近基于JGit库开发了一套MCP(Microservice Control Protocol)服务,专门用于聚合分析多仓库的提交记录、…

作者头像 李华
网站建设 2026/9/7 17:59:46

三数之和算法解析与双指针优化

1. 三数之和问题解析三数之和(3Sum)是LeetCode上经典的算法问题,编号为第15题,也是Hot100高频面试题库中的第六题。这个问题要求我们在给定的整数数组中找到所有不重复的三元组,使得这三个数的和等于零。1.1 问题核心理…

作者头像 李华
网站建设 2026/9/7 17:59:40

低代码平台怎么选?开发者避坑指南来了

最近这两年,低代码平台是真火。打开朋友圈、技术社区,铺天盖地都是“告别996开发”、“人人都是产品经理”的论调。感觉再不搞低代码,咱搞开发的都要被时代抛弃了。但火归火,真到自己要选型的时候,很多人都犯了难。市面…

作者头像 李华
网站建设 2026/9/7 17:58:18

AI零代码开发104协议调试助手实践

1. 项目背景与核心价值作为一名在电力自动化领域摸爬滚打多年的工程师,我深知104/101协议调试过程中的痛点。传统调试工具要么功能臃肿,要么需要编写大量脚本,而这次我尝试用AI工具零代码开发了一个轻量级调试助手,整个过程完全颠…

作者头像 李华
网站建设 2026/9/7 17:55:50

项目命名规范与版本控制最佳实践

1. 项目背景与核心价值"dragonballz_e251-1"这个看似神秘的代号,实际上代表着一类特定领域的项目命名方式。在技术开发、创意设计或是内容创作领域,这种组合式命名越来越常见。它通常由项目主题词(dragonballz)加版本标…

作者头像 李华