AI 对话与 AI 绘画的底层原理
当你和 AI 对话时,可能会想它是否真的理解了你;当 AI 作画时,你是否好奇它是如何'想象'画面的。答案其实很直接:无论是文字还是图像,AI 生成的核心都是基于概率的模型。
一、统一视角:概率生成
AI 对话的本质是给定前面的文字,预测下一个最可能出现的词(token)。
| 类型 | 输入条件 | 预测目标 |
|---|---|---|
| AI 对话 | 上文 + 用户提示 | 下一个词的概率分布 |
| AI 绘画 | 文字描述 | 符合描述的图像像素分布 |
两者共同点在于学习数据的概率分布 $P(x)$,并在条件约束下采样生成新内容 $P(x|\text{条件})$。
二、AI 对话:下一个词的概率游戏
1. 语言模型的核心任务
语言模型的任务是预测序列中的下一个元素。例如输入'我今天去超市买了一些',模型会计算后续词汇的概率分布:
- 水果 (0.25)
- 蔬菜 (0.18)
- 东西 (0.15)
然后从分布中采样选中一个词,更新上下文后继续预测,直到生成结束符。
2. Transformer 架构
现代大模型如 GPT 系列基于 Transformer 架构,其核心组件包括:
- Token 化:将文本转换为数字 ID。
- 词嵌入层:将 ID 映射为高维向量。
- 自注意力机制 (Self-Attention):让每个词关注句子中其他相关词,捕捉上下文依赖。
- 前馈神经网络 (FFN):进行非线性变换。
以代词指代为例,当处理'他'时,注意力机制会赋予'小明'较高的权重,从而理解指代关系。这不是硬编码规则,而是从海量数据中学到的模式。
3. 采样策略
为了平衡生成的确定性与多样性,我们采用不同的采样策略:
import numpy as np
def sampling_strategies_demo():
"""演示不同的采样策略如何影响生成结果"""
vocab = ["好", "不错", "很棒", "一般", "糟糕", "还行", "极好", "普通"]
probs = np.array([0.25, 0.20, 0.15, 0.12, , , , ])
()
word, prob (vocab, probs):
()
greedy_idx = np.argmax(probs)
()
()
temp [, , ]:
adjusted_probs = np.exp(np.log(probs + ) / temp)
adjusted_probs = adjusted_probs / adjusted_probs.()
()
word, prob (vocab, adjusted_probs):
bar = * (prob * )
()
()
()
sampling_strategies_demo()

