Transformers · Lesson 1 / 4

Transformers 基础

Hugging Face 核心模型库

Transformers 是 Hugging Face 维护的核心 Python 库,提供数千个预训练模型(BERT、GPT、Llama、T5 等)的统一接口。 一行代码就能加载模型做文本分类、生成、翻译、摘要——是 AI 开发的基础设施。

什么是 Transformers?

transformers 是 Hugging Face 最知名的 Python 库,支持 NLP、计算机视觉、音频 三大领域的预训练模型。 它把不同模型架构(BERT、GPT、Llama、ViT、Whisper……)统一成一套 API,你不需要懂每个模型的内部实现就能使用它。

💡 和之前学的工具的区别

yt-dlp、Strix 是应用工具——安装就能用。Transformers 是开发库——你要写 Python 代码调用它。

你需要 Python 基础,不需要深度学习知识也能开始。

安装

# 核心库 + PyTorch(推荐)
pip install transformers torch

# 只装核心库(用 CPU 也能跑)
pip install transformers

# 验证安装
python -c "from transformers import pipeline; print('OK')"

Pipeline API——最简单的入口

Pipeline 是 transformers 的"一键式"接口——你指定任务名,它自动加载合适的模型和分词器:

from transformers import pipeline

# 创建情感分析 pipeline(一行代码)
分类器 = pipeline("sentiment-analysis")

# 直接使用
结果 = 分类器("今天天气真好啊")
print(结果)
# [{'label': 'POSITIVE', 'score': 0.998}]
🔍 pipeline() 背后做了什么?
  1. 根据任务名 "sentiment-analysis" 自动选择一个默认模型(通常是 distilbert-base-uncased-finetuned-sst-2-english)
  2. 从 Hugging Face Hub 下载模型和分词器(首次运行需联网下载)
  3. 把输入文本转成模型能理解的数字(tokenize)
  4. 运行模型,得到预测结果
  5. 把数字结果转回人类可读的标签和分数

支持的任务

任务名作用示例
"sentiment-analysis"情感分析"电影太棒了" → POSITIVE
"text-generation"文本生成"从前有座山" → "山里有座庙"
"summarization"摘要长文 → 一句话概括
"translation"翻译"Hello" → "你好"
"fill-mask"完形填空"我今天去<MASK>" → "上班"
"question-answering"问答根据文章回答问题
"zero-shot-classification"零样本分类不用训练,直接分类到自定义类别
"ner"命名实体识别识别出人名、地名、组织
"image-classification"图片分类"这张图是猫还是狗"
"automatic-speech-recognition"语音识别音频 → 文字

动手:第一个 Pipeline

from transformers import pipeline

# ── 情感分析 ──
分类器 = pipeline("sentiment-analysis")
print(分类器("这个产品太好用了!"))
print(分类器("质量很差,不值这个价"))

# ── 文本生成 ──
生成器 = pipeline("text-generation", model="distilgpt2")
print(生成器("人工智能的未来是", max_length=30, num_return_sequences=2))

# ── 零样本分类 ──
零样本 = pipeline("zero-shot-classification")
结果 = 零样本(
    "我想学一门编程语言,容易上手且能找到工作",
    candidate_labels=["Python", "Java", "C++", "Rust"]
)
print(结果)

动手练习

🎯 安装并跑通第一个模型

  1. 安装
    pip install transformers torch
  2. 运行情感分析

    复制上面的"第一个 Pipeline"代码,保存为 test_pipeline.py 并运行。

  3. 换个任务试试

    把任务改成 "fill-mask",看看完形填空的效果。

课后推荐阅读

下一课讲常用场景——文本分类、生成、翻译、摘要等任务的详细用法。