如何5分钟跑通一个大模型:Transformers Pipeline API新手完整教程
【免费下载链接】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 API:只需两三行代码,就能把预训练模型加载起来并直接跑出结果。这篇文章是一份面向新手的完整教程,带你 5 分钟跑通第一个大模型推理任务——无需手动处理 Tokenizer、张量搬运这些细节。
1. 为什么新手应该从 Pipeline API 开始 🚀
大模型推理通常涉及一堆繁琐步骤:加载配置 → 加载权重 → 分词(Tokenizer)→ 转成张量 → 送入模型 → 解码输出。对新手来说门槛很高。
而Transformers Pipeline API把以上所有步骤封装成了一个可调用对象:
- 一行创建:
pipeline("text-generation", model="模型名")即完成加载 - 一行推理:像调用普通函数一样
pipe("输入内容") - 自动适配:自动推断模型架构、自动选择默认预处理方式
- 多任务支持:文本生成、图像分类、目标检测、语音识别等 30+ 任务开箱即用
官方文档中,Pipeline 被描述为"最便捷的推理 API"(docs/source/en/quicktour.md),而完整的参数说明在 docs/source/en/pipeline_tutorial.md。
2. 一键安装:准备你的开发环境
确保已安装 Python 3.9+,然后在终端执行:
# 安装 PyTorch(CPU 版本可直接用默认索引) pip install torch # 安装 Transformers 及常用生态库 pip install -U transformers datasets accelerate💡 提示:如果你没有 NVIDIA 显卡也不用担心,Pipeline 默认运行在 CPU 上(
device=-1),小模型完全可以跑。
仓库中的 docs/source/en/installation.md 提供了 GPU、CPU、Intel XPU 等更多安装组合方式,可按需查阅。
3. 第一个文本生成任务:3 行代码出结果
打开一个 Python 文件或 Jupyter Notebook,输入:
from transformers import pipeline # 创建管线:任务类型 + 模型名(首次运行会自动下载并缓存) pipe = pipeline("text-generation", model="google/gemma-2-2b") # 直接传入一段话,模型接着往下写 print(pipe("The secret to baking a really good cake is "))输出示例:
[{'generated_text': 'the secret to baking a really good cake is 1. the right ingredients 2. the'}]恭喜!你已经跑通了一个大模型 🔥。如果想限制生成长度,只需加一个参数:
pipe("The secret to baking a good cake is ", max_length=50)多输入批量处理也很简单——直接传一个列表即可:
pipe(["the secret to baking a really good cake is ", "a baguette is "])4. 换个赛道:图像理解也能一行搞定
上面这张红苹果图片,来自仓库的测试样本目录(tests/fixtures/tests_samples/COCO/apple.jpg)。Pipeline 对它做图像分类只需:
pipe = pipeline("image-classification", model="google/vit-base-patch16-224") print(pipe("tests/fixtures/tests_samples/COCO/apple.jpg")) # [{'label': 'apple, Granny Smith', 'score': 0.49...}, ...]再看一张更生活化的测试图片(tests/fixtures/tests_samples/COCO/000000039769.png):
用目标检测任务分析它:
pipe = pipeline("object-detection", model="facebook/detr-resnet-50") print(pipe("tests/fixtures/tests_samples/COCO/000000039769.png")) # 返回每个目标框的 label(cat)、score 和坐标你会发现:换任务只需要换任务名和模型名,代码结构完全不变——这就是 Pipeline 的设计精髓。
5. 关键参数速查:GPU、批处理与设备选择
创建 Pipeline 时最常用的是device参数(见 src/transformers/pipelines/base.py):
| 参数 | 作用 | 示例 |
|---|---|---|
device | 指定计算设备,默认 CPU | device=0表示第一块 GPU |
model | 指定模型名或本地路径 | model="google/gemma-2-2b" |
torch_dtype | 权重精度,节省显存 | torch_dtype="auto" |
有显卡时,最简单的写法是:
pipe = pipeline("text-generation", model="google/gemma-2-2b", device=0)如果是多卡环境,可以让Accelerate自动把权重放到最快设备上:
from accelerate import Accelerator device = Accelerator().device pipe = pipeline("text-generation", model="google/gemma-2-2b", device=device)6. 常见任务名速查表
不知道任务名叫什么?下面这张表覆盖新手最常用的场景(各任务的完整说明在 docs/source/en/tasks/):
| 任务名 | 功能 | 文档 |
|---|---|---|
text-generation | 文本续写 / 对话生成 | language_modeling.md |
text-classification | 情感分析、文本分类 | sequence_classification.md |
question-answering | 从段落中抽取答案 | question_answering.md |
summarization | 摘要生成 | summarization.md |
image-classification | 图片打标签 | image_classification.md |
object-detection | 目标检测框 | object_detection.md |
automatic-speech-recognition | 语音转文字 | asr.md |
各任务在源码中的实现位于 src/transformers/pipelines/ 目录,例如文本生成对应 text_generation.py,图像分类对应 image_classification.py。
7. 新手常见问题 FAQ ❓
Q1:第一次运行很慢,是卡住了吗?没有,首次运行会从模型仓库下载预训练权重并缓存到本地,之后再次运行是秒级加载。
Q2:CPU 内存不够跑 7B 大模型怎么办?换小模型(如google/gemma-2-2b),或加上torch_dtype="auto"使用半精度;显存/内存仍然紧张时可参考官方量化文档 docs/source/en/quantization/。
Q3:想用自己的模型文件?把model参数改成本地目录路径即可,Pipeline 会自动加载其中的配置和权重。
8. 小结:你的下一步 🎯
回顾一下今天的 5 分钟成果:
- ✅ 安装 Transformers 环境
- ✅ 用
pipeline()两行代码跑通文本生成 - ✅ 学会切换图像分类 / 目标检测任务
- ✅ 掌握
device等关键参数
想继续深入,推荐两条路线:
- 微调训练:使用
Trainer类训练自己的模型,源码见 src/transformers/trainer.py - 部署服务:了解 pipeline_webserver.md 中的 Web 服务方案
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
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考