“它在你的设备上运行语言模型”这句话会让人想到风扇开始转动,以及笔记本电脑什么都没做却开始发热。这种想象并不奇怪,因为这正是运行不当的聊天模型会出现的情况。

输入建议属于另一种工作负载。下面说明它实际会消耗什么资源,方便你根据自己的设备来选择。

四项开销,只有一项是持续的

磁盘。 模型文件只需下载一次。从几百 MB 到几 GB,下载时一次性占用空间。

内存。 模型加载后,其权重必须常驻内存:大致相当于文件大小再加上适度的工作开销。这是持续存在的开销,也是决定某种模型大小能否适用于你的设备的关键。在 16 GB 内存的笔记本电脑上,让模型常驻占用 1 GB 并不起眼。在打开浏览器的 8 GB 笔记本电脑上,3 GB 就不是小数目了。

计算。 只在生成建议时发生。对于句子补全,这只是持续几百毫秒的短暂运算,每分钟进行几次,而且时间远短于你自己敲击键盘之间的停顿。相比之下,聊天助手生成六百个词时,会让处理器满负荷运行好几秒。

电池。 耗电随计算量而变。短暂运算耗电很少;但坦率地说,如果设备一直无法进入深度省电状态,耗电就会高于能够进入这些状态的设备,所以影响并非完全为零。

请记住这个数字:输入预测几乎一直处于空闲状态。常驻内存才是真正的开销;除非模型相对于设备而言过大,否则其他开销都微不足道。

为什么模型文件比你预期的小

标称只有几百 MB 的模型,并不意味着它只有几亿个参数。模型以量化形式分发,权重采用较低精度存储——通常是 4 位或 5 位,而不是 16 位。这样可以将大小和内存占用减少约四倍,代价是质量会有适度且可测量的损失。

对于开放式推理,这种损失很重要。但对于补完一个你已经开始输入的句子,影响通常很小,因为限制条件来自你自己的文本,而非模型的深度。这就是小型本地模型适用于这项任务、却不适用于其他任务的技术原因。

真正的限制是延迟,而非质量

建议有一个严格的截止时间。如果你自己都已经把那些词打出来了,建议才出现,那还不如没有:它恰好在你输入完时显示出来,让你白白读一遍。

无论你的内存有多少,这个截止时间都会限制模型大小。超过一定程度后,模型越好,速度就越慢;速度一慢,建议就会被弃用。实际目标是在你手指仍停留在两个词之间的间隙时显示建议——也就是几百毫秒左右,而不是一秒半。

这与通常的直觉相反。在这里,模型大到会错过时机后,再大就没有更好。合适的大小,是你的硬件能够在输入间隙内及时回复的最大模型;2019 年的超薄笔记本电脑与配备独立显卡的台式机,适合的大小并不相同。

选择模型大小

Typeahead 提供三个模型大小,直接对应这项取舍。

大小 磁盘占用 标注的要求 适用对象
快速(默认) 约 600 MB — 适用于任何受支持的设备,也是最合适的起步选择
均衡 约 1.2 GB 8 GB 系统内存 内存余量充足的设备:建议更好,运行仍然流畅
最高质量 约 2.5 GB 配备 8 GB 自有显存的独立显卡、16 GB 系统内存 配备独立 GPU 的台式机和工作站

关于这张表,有两点需要说明。

即使你的设备能够运行更大的模型,也请从快速版开始。 先用一周。如果建议准确且实用,更大的模型在输入聊天消息时也不会带来任何你能察觉的好处。如果建议明显不准确,再升级——这样你就能了解自己是在用什么换取更低延迟。

最高级别需要一块自带 8 GB 显存的独立显卡,而不是 8 GB 共享系统内存。笔记本电脑上的集成显卡不符合要求;强行让模型在必须依靠分页调取数据的硬件上运行,正是导致本文开头所说风扇狂转的原因。

确实资源紧张的设备

  • 8 GB RAM,同时打开浏览器、Teams 和 Office。 其他程序尚未加载,你的内存就已经接近上限。请使用最小的模型,而且你会比拥有 16 GB 内存的人更明显地感受到它。如果你的设备平时就会发生内存交换,那么常驻模型会让情况更糟。
  • 不支持 AVX2 的旧款处理器。 推理库会充分利用向量指令。2013 年以前的处理器会比任何标称数据都慢,而上面所说的延迟上限就是关键所在。
  • 散热受限的轻薄笔记本电脑。 单靠这项工作负载造成持续降频的可能性很低,因为运算持续时间很短;但如果设备已经因其他负载而降频,就没有多余的性能余量了。
  • 使用电池供电,远离电源插座。 建议仍然可以使用,因为它们在本地生成,无需网络连接。如果你要为长途飞行优化设备,应使用较小的模型。

如何在自己的设备上检查

别人笔记本电脑上的测量数据对你帮助不大。只需进行两次测量,花费十分钟。

  1. 1. 安装之前,打开任务管理器 → 性能,并记录正常工作状态下的内存使用量:打开你平时使用的浏览器标签页、邮件和聊天工具。
  2. 2. 安装并加载模型之后,查看同一项数据,并在“进程”选项卡中查看应用自身的内存占用。

如果增加后仍与内存上限有充足余量,就没问题。如果已经接近上限,就换小一个型号。

延迟因人而异,这反而是好事:输入一句你平常会打的话,留意手指暂停时建议是否已经出现,还是等你输入完才出现。试用期正适合用来判断这一点——Typeahead 的试用期为七天,所有模型大小均已解锁。

你为这些开销换来了什么

  • 你输入的内容不会离开设备。 这不是关于服务器如何处理你文本的政策承诺,而是由处理发生的位置决定的事实。
  • 无需网络连接也能使用。 无论在飞机上、火车上,还是在 DNS 解析已经失效的酒店 Wi-Fi 环境中。
  • 没有按席位收费的订阅,也不需要账户,因为没有需要付费使用的服务器。
  • 没有延迟波动。 本地模型在上午 9 点和下午 5 点的速度相同,而共享服务并非如此。

这是否值得占用 1 GB 常驻内存,确实是个问题,每个人的答案都不同。这个问题没听起来那么难,而且一周之内就能找到答案。

常见问题

用于输入预测的本地模型需要多少 RAM?
大致相当于模型文件的大小再加上额外开销;模型加载后会常驻内存。600 MB 的模型会占用几百兆字节的实际内存;2.5 GB 的模型则会占用几 GB。决定这是否算多之前,不妨先看看浏览器已经用了多少内存。
它会使用 GPU 吗?
可以,最高级别的模型需要配备 8 GB 自有显存的独立显卡。较小的模型用处理器运行完全能胜任这项工作。
它会耗尽电池电量吗?
耗电量仅与运行量成正比;对于输入建议来说,它每分钟只会短暂运行几次。这与聊天助手生成长篇回复不可相提并论,耗电也远低于视频通话。
更大的模型会提供更好的建议吗?
会有所改善,但超过一定程度后,它给出建议的时间会更晚,而这反而更糟。合适的大小,是在你手指移向下一处之前仍能给出回复的最大模型。
离线时会怎样?
一切照常。模型下载后,建议会在你的设备上生成。只有下载模型或检查更新时才需要联网。
购买后可以更改模型大小吗?
可以。这是一个设置选项,而不是不同版本。下载其他大小的模型并切换使用,正是为了找到最适合你的型号。
小模型会不会写得很糟?
它不是在写作,而是在补完你的句子;光标前的文字已经提供了大部分限制条件。这就是为什么一个小到根本无法起草文章的模型在这里仍然够用,也解释了需要注意的失误类型:它可能给出流畅却并非你本意的建议——所以接受建议始终需要你明确按键确认。