语音摘要 — 点击播放以跟读:正在朗读的行会保持在顶部附近。
100%可解释的下一个词生成器
发送短信
很久以前,我和朋友们会玩这样一个游戏:拿起手机,只用推荐的下一个词给朋友编辑信息。也许你也玩过。
这里有一个基于少量内容"训练"的模拟器。试试吧!
嘿 有人知道怎么修复这个构建吗
我觉得 |
我们 我
↻ 重新开始
我们曾把这个称为"自我机器人"。我们知道它是根据个人使用模式推荐词语,也能在个性化推荐中看到自己的语言习惯。
当时,我们乐于将其视为科技魔法。我想我们没意识到算法可能如此简单。
如果你想和我一起构建一个,请继续阅读 :)
"训练"你的模型
让我们用几条信息来训练。只需统计词语间的连接关系。逐条信息进行。
\+ 添加信息 1
转移矩阵
添加上方信息开始构建矩阵。
这个完成的词语连接图称为频率表。对每行进行归一化,就能得到下一个词的概率分布。
基于已有内容选择下一个词的过程称为采样。现代语言模型如Claude也使用相同术语。
进行采样
使用基于5条文本构建的相同矩阵,继续玩我们的游戏。我们会显示概率。
↻ 重新开始
高亮行是你当前的上下文。从可选词中选择继续。
扩大规模
5条信息产生了一个微型矩阵和少量预测。更多数据会怎样?
\+ 1条信息 \+ 10条 \+ 50条 全部222条
5条信息
17个独特词
13个上下文
24次转移
2个最大选项
之后:
调节旋钮
采样时你既能看到概率,也会凭直觉选择"感觉正确"的词。
如果用代码代替直觉做选择,你认为哪种编码规则能产生最佳结果?
总是选择概率最高的词 根据概率半随机选择 根据概率选择,但增强最可能选项 忽略低于特定概率阈值的词 只考虑前N个选项 地精模式 — 无视概率随机选择
显示调节旋钮
太棒了。调整下方旋钮,看看采样参数如何影响语言模型的选择。然后验证你的直觉是否匹配。
开发者使用温度和尾部修剪等参数来改进概率生成后的采样。
在"think"之后:
温度 1. 0
聚焦随机
忠实按照分布采样。
尾部修剪
采样前完全移除不太可能的词。
无 Top-k Top-p
顶部词3
只保留3个最可能的词。
概率质量0. 9
保留概率总和达90%的最小词集。
与top-k不同,这会根据置信度调整 — 模型确定时保留的词少,不确定时保留更多。
生成 重置
如果你之前做过选择,你直觉上采用了这些方法之一。
我的直觉如何对应这些参数?
桥梁
你刚使用的采样策略与开发者传递给Claude的采样约束基本相同。对于LLM,有几点不同。
马尔可夫链
LLM
1 读取上下文
最后一个词:"think"
1 读取上下文
整个对话历史
2 计算分布
查表找一行
2 计算分布
通过数十亿参数的前向传递 — 注意力机制、嵌入层、前馈网络、残差连接、层归一化...
3 采样下一个词
我们_32%那个_16%_我_11%
3 采样下一个词相同过程
我们_32%那个_16%_我_11%
马尔可夫查表是非常简单可解释的操作。神经网络的前向传递则复杂得多。但两种情况下输出相同:下一个词或token的概率分布。
虽然采样相同,但训练方式截然不同。之前的指数墙(词汇量N行)不再适用。LLM用可解释性换取了更丰富的上下文和更强的能力。
百年技术
"这是真正的技术吗?"问得好,读者。
马尔可夫1906年发表这个想法。一个世纪后的2010年,这类n-gram模型驱动着手机的下一个词预测(SwiftKey,后苹果QuickType)。约2015年,神经网络 — 先是RNN,后是2017年的Transformer — 开始用学习函数替代查表方法,剩下的就是... 嗯,就是我们正在研究的现在。