🤗
入门 免费 English

Llm Course

Llm Course

Hugging Face · Hugging Face 团队 · 待确认

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

📖 你将学到

  • [待填写]

01 初识大模型

欢迎来到这门免费的 Hugging Face LLM 课程!我是你的课程编辑,今天咱们就从一个最接地气的问题开始:大模型到底是什么? 你可以把它想象成一个超级聪明的“文字接龙高手”——你给它一句话,它根据学过的海量知识,猜出最合理的下一句。比如你输入“今天天气真”,它可能接“好”或“糟糕”。

这门课用的是 Hugging Face 平台,它是全球最火的 AI 社区,相当于 AI 界的 GitHub。国内可以直接访问,但下载模型有时会慢,别担心,后面我会教你用镜像站。

咱们先来一个最简单的实操:用 Hugging Face 的 Transformers 库跑一个模型。你需要先装 Python(建议 3.8 以上),然后打开终端或命令提示符,按步骤来:

1)安装依赖库:
```
pip install transformers torch
```
如果你在国内,可以加镜像源加速:`pip install transformers torch -i https://pypi.tuna.tsinghua.edu.cn/simple`

2)写一段 Python 代码,让模型帮你生成一句话:
```python
from transformers import pipeline

# 加载一个中文小模型(distilgpt2 是英文的,咱们换个中文的)
generator = pipeline('text-generation', model='uer/gpt2-chinese-lyric')
result = generator("今天天气真", max_length=20, num_return_sequences=1)
print(result[0]['generated_text'])
```
注意:第一次运行会自动下载模型(约 500MB),耐心等几分钟。如果下载太慢,可以手动去 Hugging Face 镜像站(hf-mirror.com)下载模型文件。

3)运行代码,你会看到类似“今天天气真好,我们一起去公园”的输出。恭喜!你已经跑通了一个大模型。

实用技巧:
- 如果模型输出乱码,检查是不是忘了加 `model` 参数,或者换个中文预训练模型,比如 `microsoft/DialoGPT-small`。
- 每次运行都下载模型很慢?设置环境变量 `export TRANSFORMERS_CACHE=/你的路径` 来缓存模型。

这个章节的目标就是让你亲手摸到大模型,别怕报错,报错是正常的,复制错误信息去百度或谷歌,99% 的问题都能解决。下节课咱们玩点更酷的——微调模型!

02 玩转提示工程

上一章咱们只是让模型“自由发挥”,但实际工作中,你得让模型按你的要求干活。这就靠 提示工程(Prompt Engineering)——说白了,就是学会“跟 AI 说话”。你给提示词的质量,直接决定 AI 的回复质量。

咱们用 Hugging Face 的 `pipeline` 来试试不同的提示技巧。先装一个专门做对话的模型:`microsoft/DialoGPT-small`(微软出品,中文效果还行)。

1)基础提示法:直接问问题
```python
from transformers import pipeline
chatbot = pipeline('text-generation', model='microsoft/DialoGPT-small')
prompt = "用户:今天心情不好。\n机器人:"
result = chatbot(prompt, max_length=50, do_sample=True)
print(result[0]['generated_text'])
```
你会发现模型可能回复“为什么呀?”,但不够准确。这是因为提示太简单了。

2)角色扮演法:给模型一个身份
```python
prompt = "你是一个温暖的心理咨询师。用户说:今天心情不好。\n心理咨询师:"
result = chatbot(prompt, max_length=50, do_sample=True)
print(result[0]['generated_text'])
```
这次回复会更贴心,比如“听起来你遇到了烦心事,愿意跟我聊聊吗?”——这就是 角色设定 的力量。

3)结构化提示法:用格式约束输出
假设你想让模型写一份产品介绍:
```python
prompt = """请根据以下信息写一段产品介绍:
产品名称:智能水杯
功能:保温、测温、提醒喝水
目标用户:上班族
格式要求:分三点,每点不超过20字。
产品介绍:"""
result = chatbot(prompt, max_length=100, do_sample=False)
print(result[0]['generated_text'])
```
设置 `do_sample=False` 让输出更确定,适合需要格式的场景。

实用技巧:
- 少样本学习(Few-shot):在提示里给 2-3 个例子,模型会模仿你的模式。比如:
```
例子1:用户问“天气”,机器人答“今天晴”。
例子2:用户问“心情”,机器人答“我很好”。
用户问:“你叫什么?”
```
- 国内用户如果模型下载慢,可以用 Hugging Face 的在线推理 API(免费额度),无需下载:`pip install requests` 然后调用 `https://api-inference.huggingface.co/models/microsoft/DialoGPT-small`,附上你的 API Token(在 Hugging Face 官网注册获取)。

记住:提示工程的核心是 具体、清晰、有示例。下次用 AI 写邮件、写文案,先花 30 秒想清楚你的提示结构,效果翻倍!

03 微调你的模型

上一章咱们用现成的模型,但有时候模型不够懂你。比如你想让它写“周杰伦风格的歌词”,但通用模型可能只会写“阳光、沙滩”。这时候就需要 微调(Fine-tuning)——用你自己的数据,让模型变得更“专一”。

别被“微调”吓到,其实就像教一个新同事:你给他看一堆你的工作文档,他就学会你的风格了。咱们用 Hugging Face 的 `Trainer` 工具,简单三步搞定。

1)准备数据:假设你想让模型学会写“周杰伦歌词”。找 10 首他的歌词,每首保存为一行文本文件 `data.txt`:
```
窗外的麻雀在电线杆上多嘴
你说这一句很有夏天的感觉
手中的铅笔在纸上来来回回
...
```
注意:数据量越大效果越好,但 10 首也能看出变化。

2)写微调代码(用 `distilgpt2` 作为基础模型,轻量快速):
```python
from transformers import AutoTokenizer, AutoModelForCausalLM, Trainer, TrainingArguments
from datasets import Dataset

# 加载模型和分词器
tokenizer = AutoTokenizer.from_pretrained('distilgpt2')
model = AutoModelForCausalLM.from_pretrained('distilgpt2')
# 设置 pad_token(distilgpt2 没有,需要手动设)
tokenizer.pad_token = tokenizer.eos_token

# 读取数据并分词
with open('data.txt', 'r', encoding='utf-8') as f:
texts = f.read().splitlines()
def tokenize_function(examples):
return tokenizer(examples['text'], truncation=True, padding='max_length', max_length=128)
dataset = Dataset.from_dict({'text': texts})
tokenized_dataset = dataset.map(tokenize_function, batched=True)

# 配置训练参数
training_args = TrainingArguments(
output_dir='./results', # 保存路径
num_train_epochs=3, # 训练轮次(3轮足够)
per_device_train_batch_size=2, # 批大小(内存小就调小)
save_steps=500, # 每500步保存一次
)

trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_dataset,
)
trainer.train()
```
运行后等 5-10 分钟(看你电脑配置),模型就微调好了。

3)测试新模型:
```python
from transformers import pipeline
generator = pipeline('text-generation', model='./results/checkpoint-xxx') # 替换为实际路径
print(generator("天青色等烟雨", max_length=30))
```
应该会输出类似“天青色等烟雨,而我在等你”的歌词风格。

实用技巧:
- 国内用户如果下载 `distilgpt2` 慢,去 hf-mirror.com 手动下载模型文件,放到 `~/.cache/huggingface/hub/` 下。
- 数据质量 > 数量:10 条高质量数据比 100 条垃圾数据效果好。
- 如果显存不够(比如 4GB 以下),可以用 Google Colab 免费 GPU(需要科学上网)。

微调完的模型可以保存并上传到 Hugging Face 分享给别人。下节课咱们讲如何部署成 API,让朋友也能用你的专属模型!

04 部署与分享

恭喜你走到最后一章!现在你有了一个微调好的模型,但总不能每次都跑 Python 代码吧?咱们把它部署成 API 服务,这样别人通过网页或微信小程序就能调用。Hugging Face 提供了免费的 Inference API 和 Gradio 界面,一步到位。

1)上传模型到 Hugging Face Hub(免费):
- 先去 huggingface.co 注册账号。
- 在终端登录:`huggingface-cli login`,输入你的 Token(在 Settings -> Access Tokens 生成)。
- 上传微调好的模型文件夹(比如 `./results/checkpoint-500`):
```
huggingface-cli upload 你的用户名/你的模型名 ./results/checkpoint-500
```
比如 `huggingface-cli upload xiaoming/jay-lyric ./results/checkpoint-500`
上传后,你的模型就在 Hugging Face 上公开了(也可以设为私有)。

2)用 Gradio 快速搭建网页界面:
写一个 Python 文件 `app.py`:
```python
import gradio as gr
from transformers import pipeline

# 加载你上传的模型(或者用别人的模型)
generator = pipeline('text-generation', model='你的用户名/你的模型名')

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

iface = gr.Interface(
fn=generate_lyric,
inputs=gr.Textbox(label="输入开头歌词"),
outputs=gr.Textbox(label="生成的歌词"),
title="周杰伦歌词生成器",
description="输入一句,AI 帮你续写周杰伦风格歌词"
)
iface.launch(share=True) # share=True 会生成一个公开链接,有效期72小时
```
运行 `python app.py`,终端会打印一个链接(比如 `https://xxx.gradio.live`),发给朋友就能用。

3)部署到 Hugging Face Spaces(永久在线):
- 在 Hugging Face 网站点击右上角头像 -> New Space。
- 选择 Gradio SDK,Space 名称填 `jay-lyric-demo`。
- 把 `app.py` 和 `requirements.txt`(内容写 `gradio transformers torch`)上传到 Space 的代码仓库。
- 等几分钟,Space 自动部署完成,你的模型就变成永久网页了!链接类似 `https://huggingface.co/spaces/你的用户名/jay-lyric-demo`。

实用技巧:
- 国内用户访问 Hugging Face Spaces 可能慢,可以用 镜像站部署:去 modelscope.cn(阿里云)上传模型,它也有类似 Spaces 的功能。
- 如果想更省钱,可以用 CPU 部署:在 `app.py` 里加 `device=-1` 强制用 CPU,虽然慢但免费。
- 安全提醒:公开部署的模型会被所有人调用,别放敏感数据。如果需要限制访问,可以在 Gradio 加 `auth` 参数设置用户名密码。

现在你完全掌握了从零到部署的全流程!记住,AI 课程只是起点,真正的进步来自动手实践。试着微调一个你喜欢的领域(比如古诗词、菜谱、段子),然后分享给朋友,你会超有成就感。加油!

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

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