活字 从规则到大模型

附 B

实验室

今天天气很□

正在加载 3D
好热冷不错

这台设备或浏览器没有开启 WebGL2,这里显示同一装置的静态图;正文里的演示与文字说明照常可用。

3D 画面没能加载。

把滚筒展开:每段的宽度就是这个词被抽中的概率

1.00
0.1 保守2.5 发散
1.00
0.1 只留头部1.0 全部保留

还没有采样

候选词的打分是预设的教学数据;概率由温度和 Top-p 实时计算,抽样是真随机

工作台

各章的演示拆出来放在这里,可以单独把玩。每件工具都注明它来自哪一章。

  1. 01

    分词器

    输入任何一句话,看它被切成多少个 Token。

    原理见第 03 章 · 注意力 →
    分词器:把一句话切成字模 手工小词表的简化分词器,编号为演示用

    规则只有一条:从左到右,每次取词表里能匹配上的最长片段。词表里没有的生僻字会被拆成 UTF-8 字节(灰色),一个字要占三个 Token。

  2. 02

    温度与采样

    同一个开头,生成二十次,看结果怎样分布。

    原理见第 04 章 · 预训练与生成 →
    摇签筒:同一个开头,连抽 20 次 候选词分数为预设;温度、截断与抽样为真实计算(每批固定随机种子,可复现)
    1.00
    0.05 稳2.0 野
    10
    只留 1 个不限
    1.00
    0.11.0 不截

    从前有一只

    概率(截断后重新归一化)被截掉,不会被抽到20 次里抽中的次数

      讲故事没有标准答案,候选词的分数很接近:调高温度,故事的主角会五花八门。

    1. 03

      注意力矩阵

      换一个提问的词、换一个句尾,看权重怎样流动。

      原理见第 03 章 · 注意力 →
      一次注意力的三步:打分 → 归一化 → 加权汇总(每个词一种颜色) 打分为手工设定的示意值,不来自真实模型

      行:提问的词(Query) 列:被看的词(Key)

      1. ① 打分:「它」和每个词有多相关

      2. ② 归一化(softmax):变成加起来等于 100% 的权重

      3. ③ 加权汇总:按权重把各个词的“值”混进来

    2. 04

      上下文窗口

      把窗口缩小,看模型什么时候“忘了”名字。

      原理见第 03 章 · 注意力 →
      上下文窗口:盘子只有这么大 窗口按 Token 数截取的示意,回答为预设
      50
      650

      小明养了一只猫,名字叫年糕。它每天早上六点叫小明起床,吃完饭就趴在窗台上晒太阳。周末小明带它去公园,它一直躲在包里。问:小明的猫叫什么?

    3. 05

      词向量地图

      找邻居,做“国王 − 男人 + 女人”的算术。

      原理见第 03 章 · 注意力 →
      词向量地图:意思相近,位置就相近 二维示意,坐标为手工摆放;真实向量有几百到上万维
      国王 女王 王子 公主 男人 女人 男孩 女孩 法国 巴黎 日本 东京 中国 北京 猫 狗 老虎 狮子 香蕉 橘子 苹果 手机 电脑

      点一个词,找它的邻居

      或者做一道向量算术

      选一个词,或点一道算式。

    4. 06

      感知机

      调权重,或让它自己学一条分界线。

      原理见第 01 章 · 规则与神经元 →
      感知机:找一条把两类点分开的直线 真实的感知机学习规则,学习率 η = 0.2;初始权重为任意设定

      AND:两个输入都是 1,才输出 1。

      输出 1 0 0 0 1 0011 x₁ → x₂
      应输出 1应输出 0分错了
      0 0 w₁ w₂ b 下一个要检查的样本 Σ 0 z = 0
      -0.60
      0.40
      0.30

    5. 07

      梯度下降

      改学习率,看小球怎样找到山谷——或冲出去。

      原理见第 02 章 · 从数据中学习 →
      在损失地形上下山:梯度下降 地形为手工设定的二维函数;每一步的梯度和更新都是真实计算

      网点越大,损失越高等高线点图上任意位置可以换起点

      0.40
      起点

      第 0 步

      损失随步数的变化
    6. 08

      图文配对

      把说明和图片连起来,看相似度矩阵。

      原理见第 06 章 · 多模态 →
      迷你 CLIP:让 5 句话和 5 张图对上号 8 维向量从随机数开始;余弦相似度、softmax、损失和梯度都是真实计算
      0.07
      0.011

      行:文字 · 列:图像 · 数字:余弦相似度

      粗框 = 训练数据里的一对;圆点 = 模型此刻给这句话挑的图。点任意一格,就把这句话改配给那张图。

      「窗台上的猫」和每张图

      对比损失
      按训练配对选对
      和人眼判断一致
      已训练

    7. 09

      专家路由

      每个词只叫醒几个专家。

      原理见第 07 章 · 推理与 MoE →
      路由表:每个 Token 交给哪几个专家 路由打分为预设示意;softmax、top-k、负载统计与均衡偏置的更新是真实计算
      每个 Token 选
      每个 Token 对 8 个专家的路由概率;橙色框为被选中的专家
      Token专家 1专家 2专家 3专家 4专家 5专家 6专家 7专家 8
      偏置
      负载

      真实模型有多稀疏

    8. 10

      检索

      提一个问题,看哪几张资料卡被找出来。

      原理见第 08 章 · RAG 与 Agent →
      检索增强生成:先查卡片,再写答案 得分为浏览器实时计算;预设问题的回答为预设文本

      ① 资料库:每张卡的得分

      1. 01 感知机

      2. 02 Transformer

      3. 03 Token 与词表

      4. 04 上下文窗口

      5. 05 预训练与 GPT-3

      6. 06 InstructGPT

      7. 07 检索增强生成

      8. 08 ReAct

      9. 09 模型上下文协议

      10. 10 幻觉

      得分 = 问题和卡片的余弦相似度。文字先切成“相邻两个字”的片段(英文和数字按词),少见的片段权重更高(TF-IDF)。点“抽走”可以把卡从资料库里拿掉。

      ② 拼成提示词:问题 + 前三名的原文

       

      ③ 回答

    9. 11

      评分与幻觉

      评分规则一变,“猜”还划不划算?

      原理见第 09 章 · 前沿与边界 →
      为什么模型宁可猜,也不说“不知道”? 期望得分为直接计算,不代表任何具体模型
      30%
      完全没把握十拿九稳

      评分规则

      答对得 1 分;说“不知道”得 0 分;答错按所选规则扣分。

      硬猜一个答案
      说“我不知道”0.00