本文继续记录我与 AI 导师的学习对话,涵盖提示工程、文本分词和模型选择等核心知识点。

前言

上一篇文章记录了我学习 Transformer 架构的过程。这次继续学习如何与大语言模型"对话"——也就是提示工程(Prompt Engineering)。


第一章:提示工程

1.1 为什么 Prompt 很重要?

我:Prompt 是什么?

AI导师:Prompt 就是我们与 LLM"大脑"沟通的语言。

我:Prompt 可以让大语言模型知道我们想做什么,好的 Prompt 可以达到事半功倍的效果?

AI 导师:正确!

Prompt(提示)就是我们给大语言模型的指令。好的 Prompt 能让模型更准确地理解我们的需求,给出更好的回答。

例子

  • 差 Prompt:"做道好吃的" → 模糊,结果不确定

  • 好 Prompt:"做道不放辣的粤菜,主食用米饭" → 明确,结果更符合预期


1.2 温度(Temperature)

温度是控制模型输出"随机性"与"确定性"的关键参数。

温度 效果 适用场景
低(0-0.3) 保守、确定、重复率高 事实问答、代码生成
中(0.3-0.7) 平衡、自然 日常对话、邮件撰写
高(0.7-2) 创新、发散、可能不连贯 创意写作、头脑风暴

例子

  • 低温度问"1+1等于几" → 几乎总是回答"2"

  • 高温度问"给我一个公司名" → 可能得到各种创意名字


1.3 Top-k 和 Top-p

模型在生成下一个词时,会计算每个候选词的概率。Top-k 和 Top-p 是控制候选词选择的两种方法。

Top-k:固定选择概率最高的 k 个词

假设有5个候选词:

A: 40%
B: 25%
C: 20%
D: 10%
E: 5%

用 Top-k=3,选择前3个:A、B、C

Top-p:累加概率,直到达到阈值 p

用 Top-p=60%:

  • A: 40%(累加40%)

  • B: 25%(累加65%)→ 超过60%,停止

  • 选中:A、B

两者对比

方法 特点 例子
Top-k 固定数量 不管概率分布如何,都选3个
Top-p 动态适应 概率集中少选,分布均匀多选

为什么 Top-p 更智能?

情况一(概率集中):

A: 90%
B: 5%
C: 3%

Top-k=3 选3个,Top-p=60% 选1个 → 合理!

情况二(概率均匀):

A: 22%
B: 21%
C: 20%

Top-k=3 选3个,Top-p=60% 选3个 → 也合理!


1.4 Zero-shot、One-shot、Few-shot

根据提供的示例数量,提示可以分为三种类型:

Zero-shot(零样本):不给任何示例,直接问

输入:这部电影太精彩了!
情感:

One-shot(单样本):给1个示例

例子:这家餐厅的服务太差了!→ 负面
输入:这部电影太精彩了!
情感:

Few-shot(少样本):给2个或更多示例

例子1:这家餐厅太差了!→ 负面
例子2:这个产品很好用!→ 正面
输入:这部电影太精彩了!
情感:

效果:示例越多,模型理解任务越准确。


1.5 思维链(Chain-of-Thought)

对于需要逻辑推理、计算或多步骤思考的复杂问题,直接让模型给出答案容易出错。

普通回答

问:一个球队80场赢了60%,又赢了15场中的12场,总胜率?
答:63.16%

思维链回答

问:...(同上)
答:好的,我们一步步算。
第一步:80场赢了60% = 48场
第二步:总比赛95场,总胜利60场
第三步:60/95 ≈ 63.16%
答:63.16%

关键:加一句引导语"请一步一步思考"或"Let's think step by step"


第二章:文本分词

2.1 为什么要分词?

计算机只能处理数字,不能处理文本。所以在将文本喂给 LLM 之前,必须先转换成数字格式。

文本:"今天" → 分词 → [101, 205, 340] → 计算机能处理

2.2 三种分词方式

按词分(Word-based)

优点:每个词有独立语义 缺点:词太多(约10万+),存在OOV(未登录词)问题

按字符分(Character-based)

优点:词表小(约几十个字符),无OOV问题 缺点:单个字符无语义,需要组合才能理解

按子词分(Subword):现代主流方法

核心思想:

  • 常用词保持完整:agent、learns

  • 罕见词拆开:Tokenization → Token + ization


2.3 BPE 算法

BPE(Byte Pair Encoding)是最主流的子词分词算法之一,GPT 系列采用这种算法。

核心思想:统计词对频率,逐步合并最高频的相邻词对。

具体例子

初始语料库:

h u g
p u g
p u n
b u n

第一步:统计词对频率

  • "ug" 出现2次(hug、pug)

  • "pu" 出现2次(pug、pun)

  • "un" 出现2次(pun、bun)

  • 其他词对各出现1次

合并"ug":

h ug
p ug
p u n
b u n

第二步:继续合并

  • "un" 出现2次,合并

h ug
p ug
p un
b un

第三步

  • "un" 出现2次(pun、bun)

  • 合并 "un":

pug
bun
h ug
p un

最终词表:学会了"ug"、"un"等常见词对

遇到新词怎么办?

假设遇到未见过的词"bug":

  • 查找"bug" → 不在词表

  • 查找"bu" → 不在

  • 查找"ug" → 找到了!

分词结果:b + ug

重要理解

  • BPE 决定怎么"拆分"词

  • 但模型理解语义,靠的是上下文语境注意力机制,不是拆分本身

  • 训练语料中"bug"出现过多次,模型从上下文学会"bug"=虫子/烦恼


第三章:模型的选择

3.1 选择模型的关键维度

维度 说明
性能与能力 推理强不强?擅长什么任务?
成本 API费用或部署成本
速度/延迟 响应快不快?
上下文窗口 能处理多长的文本?
部署方式 API调用还是本地部署?
生态与工具链 社区支持如何?

3.2 闭源 vs 开源模型

闭源模型(如 GPT-4、Claude、Gemini):

  • 优点:开箱即用、性能最强

  • 缺点:数据要发第三方、花钱

开源模型(如 Llama、Qwen):

  • 优点:数据隐私、完全可控、可微调

  • 缺点:需要自己部署、配置


第四章:缩放法则与局限性

4.1 缩放法则(Scaling Laws)

缩放法则揭示了模型性能与规模之间的可预测关系。

Chinchilla 定律

之前认为"模型越大越好"(GPT-3: 1750亿参数)

后来发现:模型应该更小,但用更多数据训练。

例子:Chinchilla(700亿参数)用4倍数据训练,性能反而超越 GPT-3!

核心结论:参数量和训练数据量要平衡


4.2 能力涌现(Emergence)

当模型规模达到某个阈值时,会突然出现之前没有的能力。

小模型(几百亿参数):做不了复杂数学题
大模型(超过千亿参数):突然能做对了!

4.3 幻觉(Hallucination)

幻觉 = 模型编造不存在的信息

例子

问:《伤寒论》第100条讲什么?
答:第100条讲的是桂枝汤...(可能编造)

解决方案:RAG(检索增强生成)

用户问题 → 检索真实古籍条文 → 基于条文回答

总结

本次学习覆盖了与大语言模型交互的核心知识:

知识点 核心
提示工程 好的 Prompt 事半功倍
温度 低=保守,高=创新
Top-k/p 控制候选词选择
Few-shot 示例越多理解越准
CoT 分步骤推理更准
BPE 子词分词,统计高频词对
幻觉 RAG 可以缓解

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐