🤗
入门 免费 English

Cookbook

Cookbook

Hugging Face · Hugging Face 团队 · 待确认

[待填写] Cookbook — 来自 Hugging Face 的免费课程

📖 你将学到

  • [待填写]

01 环境准备

别一上来就搞复杂了,咱们先搭个能跑起来的“厨房”。这门课用的是 Hugging Face 的 Cookbook,说白了就是一套现成的 AI 菜谱,你跟着做就行。

1)注册 Hugging Face 账号
去 huggingface.co 注册,免费。国内访问可能有点慢,建议用 Chrome 开个 VPN 或直接换国内镜像站(比如 hf-mirror.com)。注册完记得去 Settings 里生成一个 Access Token,后面要用。

2)装 Python 和必要的库
你电脑上得有 Python 3.8 以上。打开终端(Windows 用 cmd 或 PowerShell),敲下面这行:
```
pip install transformers datasets accelerate sentencepiece
```
如果下载慢,加个国内源,比如:
```
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple transformers datasets accelerate sentencepiece
```

3)验证环境
写个简单的 Python 脚本测试一下:
```python
from transformers import pipeline
generator = pipeline('text-generation', model='gpt2')
result = generator("你好,今天天气不错", max_length=30)
print(result)
```
跑出来有结果就说明环境没问题。如果报错,多半是网络或版本问题,别慌,检查下 Python 版本和 pip 是否最新。

4)下载 Cookbook 示例代码
Hugging Face 官方有 Cookbook 仓库,地址:https://github.com/huggingface/cookbook。直接 git clone 或者下载 ZIP 都行。国内网络慢的话,用 Gitee 镜像搜一下“huggingface cookbook”也能找到。

实用技巧:每次跑代码前,先 `import torch` 看看有没有 GPU,有的话速度飞起。没有也别怕,CPU 也能跑,就是慢点。

02 文本生成实战

这一章咱们玩文本生成,就是让 AI 帮你写东西。用 Hugging Face 的 pipeline 最省事,一行代码就能调模型。

1)加载模型
pipeline 会自动下载模型,第一次跑会慢点。选一个中文模型,比如“uer/gpt2-chinese-cluecorpussmall”:
```python
from transformers import pipeline
generator = pipeline('text-generation', model='uer/gpt2-chinese-cluecorpussmall')
```

2)写第一个 Prompt
Prompt 就是你对 AI 说的话,质量决定输出。试试这个:
```python
result = generator("人工智能的未来是", max_length=50, num_return_sequences=1)
print(result[0]['generated_text'])
```
你会看到模型接着“人工智能的未来是”往下写,有时靠谱有时胡扯,正常

3)调参数让输出更靠谱
几个关键参数:
- `max_length`: 输出最大长度(包括你给的输入)
- `temperature`: 控制随机性,0.7 左右比较稳,太高容易胡说,太低太死板
- `top_p`: 另一种随机策略,0.9 常用
- `do_sample`: 设为 True 才启用随机,否则模型只会选最可能的词(很无聊)
试试这个组合:
```python
result = generator("写一段关于机器学习的介绍:", max_length=100, temperature=0.8, top_p=0.9, do_sample=True)
print(result[0]['generated_text'])
```

4)实用 Prompt 模板
你可以直接拿来用,改改主题就行:
```
请用通俗易懂的语言解释[概念],要求:
- 不超过100字
- 举一个生活中的例子
- 语气轻松
```
在代码里这样用:
```python
prompt = "请用通俗易懂的语言解释深度学习,要求:不超过100字,举一个生活中的例子,语气轻松"
result = generator(prompt, max_length=150, temperature=0.7)
print(result[0]['generated_text'])
```

5)保存和复用模型
不想每次下载?可以保存到本地:
```python
generator.save_pretrained('./my_gpt2_model')
```
下次加载直接用:
```python
from transformers import pipeline
generator = pipeline('text-generation', model='./my_gpt2_model')
```
这样断网也能用,特别适合国内用户

03 文本分类与情感分析

文本分类就是让 AI 判断一段话属于哪一类,比如正面还是负面。Hugging Face 上有现成的情感分析模型,直接调。

1)加载情感分析 pipeline
最经典的是“distilbert-base-uncased-finetuned-sst-2-english”,但它是英文的。中文用这个:
```python
from transformers import pipeline
classifier = pipeline('text-classification', model='lxyuan/distilbert-base-multilingual-cased-sentiments-student')
```
这个模型支持中文,能输出 positive(正面)或 negative(负面)以及置信度。

2)测试几个句子
```python
texts = ["这部电影太棒了,我哭了好几次", "这服务真差,再也不来了", "今天天气不错"]
for text in texts:
result = classifier(text)
print(f"文本: {text} -> 情感: {result[0]['label']}, 置信度: {result[0]['score']:.2f}")
```
你会看到“太棒了”被识别为正面,“真差”为负面,“天气不错”可能偏正面。置信度小于0.6时,结果可能不准,别全信。

3)自定义分类任务
如果你想分“技术、娱乐、体育”这类,需要找一个合适的模型或自己微调。这里用零样本分类(zero-shot-classification)快速演示:
```python
classifier_zs = pipeline('zero-shot-classification', model='facebook/bart-large-mnli')
candidate_labels = ["技术", "娱乐", "体育"]
result = classifier_zs("OpenAI发布了GPT-5,性能提升十倍", candidate_labels)
print(result['labels'][0], result['scores'][0])
```
输出大概率是“技术”,因为提到了GPT。零样本不需要训练数据,适合快速验证想法

4)批量处理文本
如果你有几百条评论要分析,别一条条跑,用列表一次搞定:
```python
reviews = ["产品很好用", "物流太慢了", "性价比高", "客服态度恶劣"]
results = classifier(reviews)
for review, res in zip(reviews, results):
print(f"{review}: {res['label']} ({res['score']:.2f})")
```
注意:模型有最大输入长度限制(一般512 token),太长的文本要截断或分段。

5)实用技巧:结果可视化
装个 matplotlib,画个柱状图看看分布:
```python
import matplotlib.pyplot as plt
labels = [res['label'] for res in results]
plt.hist(labels)
plt.show()
```
如果大部分是 positive,说明你的产品口碑不错;反之就得改进了。

04 模型本地部署与分享

前面都是在 Hugging Face 上现用现跑,但如果你想离线用或者分享给别人,就得学会本地部署。这一章教你两步搞定。

1)下载模型到本地
用 `from_pretrained` 加 `cache_dir` 参数,指定一个文件夹:
```python
from transformers import AutoModel, AutoTokenizer
model_name = "uer/gpt2-chinese-cluecorpussmall"
tokenizer = AutoTokenizer.from_pretrained(model_name, cache_dir="./my_models")
model = AutoModel.from_pretrained(model_name, cache_dir="./my_models")
```
下载完后,`./my_models` 里就有模型文件了。以后断网也能加载:
```python
tokenizer = AutoTokenizer.from_pretrained("./my_models/uer/gpt2-chinese-cluecorpussmall")
model = AutoModel.from_pretrained("./my_models/uer/gpt2-chinese-cluecorpussmall")
```
注意:模型文件可能很大(几个G),确保硬盘够用。

2)用 Gradio 做个网页界面
想让别人通过浏览器用你的模型?Gradio 最方便。先装:
```
pip install gradio
```
然后写个简单界面:
```python
import gradio as gr
from transformers import pipeline

generator = pipeline('text-generation', model='./my_models/uer/gpt2-chinese-cluecorpussmall')

def generate_text(prompt, max_length):
result = generator(prompt, max_length=int(max_length), do_sample=True)
return result[0]['generated_text']

iface = gr.Interface(
fn=generate_text,
inputs=[gr.Textbox(label="输入提示"), gr.Slider(10, 200, value=50, label="最大长度")],
outputs="text",
title="中文文本生成器",
description="输入一段话,AI 帮你续写"
)
iface.launch()
```
运行后会在本地开一个网页(默认 http://127.0.0.1:7860),点开就能用。如果想让别人远程访问,加个 `share=True` 参数,Gradio 会生成一个临时公网链接。

3)上传到 Hugging Face 分享
想永久分享?把你的模型上传到 Hugging Face Hub。先装 `huggingface_hub`:
```
pip install huggingface_hub
```
登录(用之前生成的 Token):
```python
from huggingface_hub import notebook_login
notebook_login()
```
然后上传整个模型文件夹:
```python
from huggingface_hub import upload_folder
upload_folder(
folder_path="./my_models/uer/gpt2-chinese-cluecorpussmall",
repo_id="你的用户名/你的模型名",
repo_type="model"
)
```
别人就能用 `from_pretrained("你的用户名/你的模型名")` 下载了。上传前记得删掉不必要的缓存文件,省流量。

4)实用技巧:模型压缩
模型太大?用 `quantization`(量化)把参数从32位浮点转成8位整数,体积缩小4倍,精度损失很小:
```python
model = AutoModel.from_pretrained("./my_models/uer/gpt2-chinese-cluecorpussmall", load_in_8bit=True)
```
这样在低配电脑上也能跑。

💡 想要更系统的 AI 学习路线?

去 ganhuo.ai 看完整路线图 →
🐑 小羊助手