Transformers 三步上手指南:多模态模型推理与训练
【免费下载链接】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 是一个开源模型框架,统一管理文本、图像、音频与多模态的预训练模型,一套 Pipeline 接口就能完成推理,也支持用 Trainer 训练。官方 Hub 上已有 100 万+ 可直接使用的模型检查点,覆盖数百种模型架构,是目前最主流的模型定义层。
三步跑通:从安装到第一次文本生成
新手不需要懂模型内部结构:装好依赖,调一行 Pipeline,传入提示词就能拿到生成结果。相比自己搭分词器、写前向、管解码循环,它把"数据进、结果出"封装成了一个统一接口。
环境要求(一行一项):
- Python 3.10 及以上
- PyTorch 2.5 及以上
- 可选 GPU;CPU 也能跑,速度更慢
创建虚拟环境并激活:
python -m venv .my-env source .my-env/bin/activate安装:
pip install "transformers[torch]"最小可运行示例,4 行代码完成一次文本生成:
from transformers import pipeline generator = pipeline(task="text-generation", model="Qwen/Qwen2.5-1.5B") print(generator("the secret to baking a really good cake is "))模型首次会自动下载并缓存,之后重复调用直接读本地。
能力解读:它能做什么,不只能做文本
多模态任务共用一套 pipeline 接口
结论:同一个pipeline()函数,换任务名和模型名就能切换文本、语音、图像能力,代码结构几乎不变。官方示例给出的对照:
| 任务 | task 参数 | 官方示例模型 | 返回内容 |
|---|---|---|---|
| 文本生成 | text-generation | Qwen/Qwen2.5-1.5B | generated_text |
| 语音识别 | automatic-speech-recognition | openai/whisper-large-v3 | text |
| 图像分类 | image-classification | facebook/dinov2-small-imagenet1k-1-layer | label 与 score 列表 |
| 视觉问答 | visual-question-answering | Salesforce/blip-vqa-base | answer |
模型定义一次,多框架复用
结论:Transformers 的定位是"模型定义层"。一个模型定义被支持后,即可在大多数训练框架(Axolotl、Unsloth、DeepSpeed、FSDP、PyTorch-Lightning)、推理引擎(vLLM、SGLang、TGI)以及 llama.cpp、mlx 等相邻库中使用。训练和推理还能各选各的框架,同一个模型可在 PyTorch、JAX、TensorFlow 2.0 之间切换权重,避免重复维护多份代码。
部署与兼容要求
- 语言:Python 3.10+,核心依赖 PyTorch 2.5+
- 硬件:CPU 与 GPU 均可;大模型建议 bf16 精度加
device_map="auto"自动分片到多卡 - 模型来源:首次调用自动下载并缓存,离线场景需提前把模型拉到本地
- 体验方式:除 Python API 外,还可用
transformers chat <模型名>在命令行直接对话
实用技巧与常见坑
- examples 里的训练脚本只是示例,不保证开箱即用——README 明确说明需要按自己的数据格式改,直接套用容易踩坑。
- 用
pip install "transformers[torch]"而不是裸装——不带[torch]的 extra 装完可能缺 PyTorch 依赖。 - 源码安装只适合尝鲜或贡献——main 分支可能不稳定,生产环境请用稳定发布版。
- 显存不够时先加
dtype=torch.bfloat16和device_map="auto"——bf16 能显著省显存,device_map="auto"自动把模型分片到多卡。 - 离线或内网环境提前下载模型并缓存——避免运行时才发现拉不到模型卡住。
适合用在哪些场景
- 对话与文本生成应用:pipeline 加一个模型名即可搭原型,也可用命令行
transformers chat零代码试模型效果。 - 语音识别与多模态功能:ASR、图像分类、视觉问答共用同一套 API,接新任务只需换参数。
- 微调与训练:examples/pytorch 下按架构提供训练脚本,可复现原文结果或用自己的数据微调,Trainer 是主要训练入口。
- 模型迁移与部署评估:同一模型定义可对接多种训练框架与推理引擎,选型时不必重写模型代码。
配置与文件速查
常用任务 pipeline 速查:
| 你想做的事 | 写法 | 模型示例 |
|---|---|---|
| 文本生成 | pipeline("text-generation", model=...) | Qwen/Qwen2.5-1.5B |
| 语音转文本 | pipeline("automatic-speech-recognition", model=...) | openai/whisper-large-v3 |
| 图像分类 | pipeline("image-classification", model=...) | facebook/dinov2-small-imagenet1k-1-layer |
| 视觉问答 | pipeline("visual-question-answering", model=...) | Salesforce/blip-vqa-base |
核心文件位置:
src/transformers/pipelines/:Pipeline 推理实现src/transformers/trainer.py:Trainer 训练入口src/transformers/models/:数百个模型的 configuration 与 modeling 定义docs/source/en/:英文文档examples/pytorch/:分任务训练示例脚本
常用命令:
- 安装:
pip install "transformers[torch]" - 命令行聊天:
transformers chat <模型名>
一句话总结
Transformers 把多模态模型的推理和训练收敛到一个统一接口,三行代码即可跑通,预训练模型库超过 100 万个。适合做对话应用、多模态功能或想微调模型的新手。装好后跑一次pipeline("text-generation"),今天就能看到结果。
【免费下载链接】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),仅供参考