Transformers 是由 Hugging Face 开发的一个开源机器学习框架,专注于提供先进的模型定义,支持文本、图像、音频和多模态任务的推理与训练。它简化了模型的使用流程,兼容多种主流深度学习框架,如 PyTorch、TensorFlow 和 Flax。Transformers 提供超过 100 万个预训练模型,涵盖自然语言处理、计算机视觉和语音识别等领域,广泛应用于学术研究和商业开发。用户可以通过简单的代码快速加载模型并执行任务,例如文本生成、图像分割或语音转文本。框架更新频繁,最新版本支持新模型如 Kyutai-STT 和 ColQwen2,保持技术前沿。
功能列表
- 支持多种任务的 Pipeline API,简化文本生成、语音识别、图像分类等操作。
- 提供超过 100 万个预训练模型,覆盖自然语言处理、计算机视觉和多模态任务。
- 兼容 PyTorch、TensorFlow 和 Flax,支持多种训练和推理框架。
- 支持从 Hugging Face Hub 下载和缓存模型,方便离线使用。
- 提供命令行工具
transformers serve
,支持 OpenAI 兼容的 HTTP 服务器。 - 支持模型微调和训练,适配多种训练框架如 DeepSpeed 和 PyTorch-Lightning。
- 提供最新的模型支持,例如 Kyutai-STT(语音转文本)和 ColQwen2(文档检索)。
使用帮助
安装流程
Transformers 的安装简单,支持 Python 3.9+ 环境,推荐使用虚拟环境以避免依赖冲突。以下是详细的安装步骤:
- 创建虚拟环境
使用 Python 的venv
模块创建虚拟环境:python -m venv transformers_env source transformers_env/bin/activate # Linux/Mac transformers_env\Scripts\activate # Windows
- 安装 Transformers
使用pip
安装最新稳定版本:pip install transformers
如果需要 GPU 支持,确保安装合适的 CUDA 驱动,并运行以下命令检查 GPU 可用性:
python -c "import torch; print(torch.cuda.is_available())"
想体验最新功能,可以从 GitHub 安装开发版:
pip install git+https://github.com/huggingface/transformers
- 验证安装
安装完成后,运行以下命令测试:from transformers import pipeline print(pipeline('sentiment-analysis')('hugging face is awesome'))
输出应为类似
{'label': 'POSITIVE', 'score': 0.9998}
的结果。
使用 Pipeline API
Transformers 的核心功能是 Pipeline API,它让用户无需深入了解模型细节即可完成复杂任务。Pipeline API 支持多种任务,例如文本生成、语音识别和图像分割。以下是具体操作:
- 文本生成
使用 Pipeline API 进行文本生成:from transformers import pipeline generator = pipeline(task="text-generation", model="Qwen/Qwen2.5-1.5B") result = generator("The secret to baking a really good cake is") print(result[0]["generated_text"])
模型会自动下载并缓存到默认目录
~/.cache/huggingface/hub
。用户可以通过设置环境变量TRANSFORMERS_CACHE
更改缓存路径。 - 语音识别
对于语音转文本任务,Pipeline API 同样简单:from transformers import pipeline asr = pipeline(task="automatic-speech-recognition", model="openai/whisper-large-v3") result = asr("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac") print(result["text"])
输出为音频文件的文本内容,例如“我有一个梦想……”。
- 命令行交互
Transformers 提供命令行工具transformers serve
,启动一个与 OpenAI API 兼容的 HTTP 服务器:transformers serve
用户可以通过 HTTP 请求与模型交互,适合集成到其他应用。
离线使用
Transformers 支持离线模式,适合无网络环境。用户可以通过以下步骤设置:
- 下载模型到本地:
from huggingface_hub import snapshot_download snapshot_download(repo_id="meta-llama/Llama-2-7b-hf", repo_type="model")
- 设置环境变量以启用离线模式:
export HF_HUB_OFFLINE=1
- 加载本地模型:
from transformers import LlamaForCausalLM model = LlamaForCausalLM.from_pretrained("./path/to/local/directory", local_files_only=True)
离线模式确保模型加载不依赖网络,适合生产环境。
特色功能:新模型支持
Transformers 不断更新,支持最新的模型。例如:
- Kyutai-STT:基于 Mimi 编解码器的语音转文本模型,支持流式音频处理。安装预览版:
pip install git+https://github.com/huggingface/transformers@v4.52.4-Kyutai-STT-preview
- ColQwen2:用于文档检索的模型,处理页面图像的视觉特征。安装方法类似:
pip install git+https://github.com/huggingface/transformers@v4.52.4-ColQwen2-preview
这些模型将在后续版本(如 v4.53.0)正式发布,用户可提前体验。
微调和训练
Transformers 支持模型微调,兼容多种训练框架。用户可以使用 run_clm.py
脚本进行语言模型训练:
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
此功能适合需要定制模型的开发者。
应用场景
- 学术研究
研究人员使用 Transformers 加载预训练模型,快速进行自然语言处理或计算机视觉实验。例如,测试新算法时,可直接调用 Hugging Face Hub 的模型,节省训练时间。 - 商业开发
企业开发者利用 Transformers 构建聊天机器人、语音助手或图像分析工具。例如,使用 Pipeline API 快速部署文本生成或语音识别功能,集成到产品中。 - 教育和学习
学生和初学者通过 Transformers 学习深度学习,借助预训练模型和简单代码实践文本分类、翻译等任务,降低学习门槛。
QA
- Transformers 支持哪些编程框架?
Transformers 兼容 PyTorch、TensorFlow 和 Flax,支持多种训练和推理框架,如 DeepSpeed、PyTorch-Lightning 和 vLLM。 - 如何处理模型下载的缓存问题?
模型默认缓存到~/.cache/huggingface/hub
,可通过环境变量TRANSFORMERS_CACHE
更改路径。设置HF_HUB_OFFLINE=1
可启用离线模式,仅加载本地模型。 - 是否需要 GPU 才能使用 Transformers?
不需要,Transformers 支持 CPU 运行,但 GPU 可加速推理和训练。安装时可选择 CPU-only 版本,避免安装 CUDA 依赖。