Inland Cursor

从智能拼音输入法到大语言模型

目录

  1. 具体不同,抽象相同
  2. 什么是智能?
  3. 从WIM和IPIM预测氛围编程的发展
  4. 使用AI的原则

后知后觉,最近才想到智能拼音输入法(以下用IPIM1指代)和现在最流行的人工智能形式——大语言模型(以下用LLM指代)——有很多相似的地方。至少,它们都和“智能”有关。IPIM的流行导致的五笔输入法(以下用WIM2指代)的衰退是否预示着由LLM衍生的氛围编程将要使传统编程方式衰退呢?无论如何,最后给出一个我个人判断使用AI的方式是否“正确”的原则。

具体不同,抽象相同

尽管LLM和IPIM的底层工作方式并不相同,但是抽象地来看,却有相似的地方:

基于统计结果对要生成的文本进行预测。

只是,IPIM的尺度相比于LLM太小,并且最终结果需要收敛到尽可能精确的文字上,可以说是微语言模型(Micro Language Model)。量的差异太大,以至于我一直没有看到它们质上的很多相似。

  1. 它们都基于数据进行预测。

    LLM和IPIM都依据现有的语料进行训练,都可以通过网络,和用户输入,在训练后补充数据,对生成的结果进行调整。

  2. 它们都是非决定性的。

    LLM和IPIM对于使用者来说几乎都是黑盒,甚至LLM的训练者也无法通过训练过程预测给定的输入下LLM会给出什么样的输出。而IPIM在加入联网搜索和按输入频率调整后也难以再预测它的输出结果。

  3. 它们都依赖更多的约束来生成更准确的结果。

    CLAUDE.md 或所有其它用于给LLM提供更多背景信息的工具,其实都是在给LLM 提供更多的约束,在这些具体约束下,LLM更有可能生成用户期望中的输出。而 IPIM也是如此,单独输入一个字的拼音,它很难正确预测结果,但是如果输入的是一个词,或者一个句子,它预测正确的概率就高得多。

  4. 它们都不擅长处理完全新颖的问题。

    由于它们都依赖现有语料数据,显然,可以推出它们不擅长处理全新的问题。如果你的编程任务是基于一套新颖的语法,使用没有公开文档的API,那么LLM几乎不能生成什么有用的信息。而IPIM也不擅长预测数据中没有的词。一个常见的例子就是人的名字。名字往往不是现有的词,所以IPIM在输入人名的时候和传统的拼音输入法效率几乎相同。

什么是智能?

一直有一部分意见坚定地认为LLM展现的特质不能称之为智能,那么究竟什么是智能?

从“智能拼音输入法”的角度来看,智能就是不经指示,就能猜出用户的意图。在英语中常常用DWIM(Do What I Mean)来指代这个意思。很多软件工具都有一个DWIM的选项,它的功能是根据当前的上下文环境,在可能的操作中选择概率最高的一项。那么,至少在智能拼音输入法的智能定义下,这个工具是智能的。

DWIM,我将它翻译成按我心意3。我也尝试让ChatGPT来翻译它,我和它的对话过程如下:

› How do you translate "Do what I mean" to Chinese?

• “按我的意思做” or “照我的意思办” are natural translations for “Do what I mean.”

› Can you make it more poetic? More literate?

• 可译作“契我心意而行”或“体我旨意而为”,比直白的说法更雅致些。

› Make it four Chinese characters.

• “契我心意”。

可以看到,它最初的翻译是完全的直译,当我给出更多的约束条件之后,它开始给出更符合我想法的结果。这再次印证了LLM需要更多的约束条件才能生成更好的结果。值得注意的是,当我增加更多条件的时候,其实也是我本身在接近理想中的最终结果的过程。而LLM在这个过程中,提供了一个我没有想到的内容:“契”。如果不是它,我肯定想不到用这个字,而是想要借用《葫芦兄弟》动画中的典故。

时至今日,我想我们应该承认LLM具有一定的智能,即使这个智能只是“无限猴子定理”中的猴子。但是,当这个猴子真的通过大量的算力而有了相对无限的时间的时候,它至少在结果上变成了智能的。

从WIM和IPIM预测氛围编程的发展

在IPIM出现之前,WIM还相当流行,并且是任何想要显著提高打字速度的人必然考虑学习的。但是随着IPIM出现之后,专业的打字员似乎也逐渐消失了,打字社也不再随处可见,更多人只是使用打印和复印服务。IPIM对拼音输入效率的提高使得投入大量的时间学习和练习WIM换来的极致的输入效率不再划算,WIM也不再主流,只有爱好者才会想要去学习。

现在主流的编程方式和正在涌现的氛围编程会不会也像WIM和IPIM一样?LLM可以让几乎没有受过编程训练的人也能创造并利用计算机程序。虽然现在LLM在维护复杂项目时的表现还不够理想,但是随着模型的进一步发展完善,这些问题或许可以得到解决。就像IPIM使没有受过专业打字训练的人也能高速准确地输入文本一样,LLM或许可以使没有受过编程训练的人也能利用计算机程序来解决自己在数字生活中遇到的各种问题。虽然受过专业训练的人能够更好地使用LLM来更快更好的完成开发任务——就像现在熟练的WIM使用者依然要比IPIM的使用者打字速度快一样——但是LLM可以把开发计算机程序来解决实际问题的门槛降低到像使用IPIM打字输入中文一样低。这并非不可能,或者说,这已经在发生了。

使用AI的原则

虽然LLM可以提高软件的开发速度,但是依然有一部分开发者拒绝使用LLM,即使使用它们真的有利无害。对于这些开发者,软件并不是他们的目的,而开发软件的过程才是。他们更加在乎的是思考和解决问题的过程,而不是解决问题后的结果。看到这些人的态度,让我开始思考我们究竟应该使用AI。这里指的不仅是LLM,而是更广泛的AI,包含将来可能会出现的,完全超乎我们现在想像的AI形式。

概括来说,我理想的原则是:

如果使用AI帮助你完成了你知道如何完成的琐事,从而为你节省了时间让你去从事更有意义的或AI无法完成的事情,那么这是正确的使用AI的方法。如果使用AI帮你完成的是你在乎如何完成但却不知道如何完成的事情,那么此时你需要再思索一下你是否应该利用AI来完成这件事。

当然,任何规则都有例外,“更有意义”本身就是一个非常主观的表述,而且,一个人不可能了解所有事,所以,这个原则只是我对我自己的要求。

这有一个更形象的例子。你不会带着一个机器人去健身房去和那里的人们说:“嘿,看我这个机器人,它的动作更标准,能在更短时间内提起更大的重量。你们不如找个躺椅,躺下来看着它举重吧。”是的,虽然AI可以比人更好地完成某些事情,但是在某些情况下,过程比结果更加重要,而且让AI来替我经历这个过程,我不会有任何的成长。用进废退,肌肉和大脑都是这个道理。4

Footnotes

1 Intelligent Pinyin Input Method

2 Wubi Input Method

3 如意如意,按我心意,快快显灵!

4 为什么不看一看《大雄与白金迷宫》呢?

#Chinese