挥动银剑–AI时代猎魔人手记
起因
去年接触到的 ai 编程工具,我不认为它有多强大。但是到了现在得承认,已经没法离开 ai 了。我已经很久没有亲自写过一段完整的代码了。在使用期间,慢慢开始意识到ai 是个会改变一些东西的新事物。
对于这个新事物,我心态发生好几次的变化,直到最近一段时间,算是可以平静的去面对它了,所以就想和大家分享一下我的手记。
Ai是什么
大家对于ai有认知最早是什么时候?
记得最早开始对ai有深度的接触在高中,在卡牌游戏的模拟器中,丝滑展开、对主流精准的阻断、暴力精妙的解场,这个ai虽然远非不可战胜但在我突破的一个小时内留下的印象已经足够深刻了。
在百度百科中ai的定义是:人工智能(Artificial Intelligence),
阿提非秀·因特利金斯英文缩写为AI。是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。^1
上面说的 ai 很显然是符合这个定义的,是卡牌游戏的专家系统。
当然这个显然和我们今天要讨论的 ai 是一些差别。
我们今天要讨论的应该是 生成式人工智能: 利用大规模算力和数据,驱动神经网络进行概率性映射,从而模拟人类认知功能的数字系统。(之后为了方便我们下文讨论,就还是称呼生成式人工智能为 ai 吧)
在正式开始之前,我想先简单讲一下 ai 是怎么工作的。这对我们认识银剑很有帮助。
数字世界
ai 处于一个由数据和算法构成的数字世界。与现实世界不同,在数字世界中,他们所看到的一切都是由数据构成。
从某种层面上来说,计算机其实看不懂我们现实中的文字。在数字世界中通常是怎么处理文字的
计算机通过编码来表示文字。每一个字符都有一个唯一的编码,这些编码可以被计算机处理和显示,但通过编码在处理时其实也并不理解每个文字具体的含义。不会理解巴黎和法国之间的关系。
词语的含义
很明显,现在ai好像是可以理解每个词语的含义。
为了使数字系统能够”理解”我们的文字,我们需要计算机通过某些方法可以直接使用词语进行计算,一个思路是使用了一组数字来代表一个词的含义,这组数字中的每一个数代表某些特定含义的维度。
一个简单的比方,也许可以用皇室、性别、权力这三个维度来表示一些词语的含义,那么可以用 [1,0.8,0.9] 这组数来描述国王的含义,相对应的王后用 [1,-0.8,0.9] 来描述,而男性女性则用 [0,0.8,0.1] [0,-0.8,0.1] 来描述。
有了这些就可以通过向量的运算来表示词语之间的关系,比如 国王-男人+女人=王后。
按照这样的思路大家可以想一想,巴黎-法国+中国=??
这种用数字来表示词语含义的方式就叫做词向量。^2
在实际的应用中,词向量的维度可能是几百甚至上千维。具体来说在2013年提出词向量概念的论文《向量空间中词表示的有效估计》《Efficient Estimation of Word Representations in Vector Space》[^3]中使用了300维的模型,而现在的 DeepSeek-V4Pro 可以猜猜多维是7168维^4。
而且词向量每个维度具体的含义并不像上文那样,每个维度代表什么,没人知道。它们是通过大量数据训练出来的。虽然每个维度的含义不透明,但事实证明这些数据之间的”关系”是有意义的。
词元
现在我们知道了ai是如何理解词语的含义,不知道各位有没有注意到刚刚词向量的介绍有点奇怪各位可能注意到了介绍词向量时都用词语,而不是字符或字。事实上ai处理文字的最小单位是词元一般称为token,也是通常用来进行计费的单位,与字符不同,词元可以是一个字、一个词,甚至是一个词组。ai模型内部会有一张词元表,词元表中包含了所有词元以及对应编码。
所以不光给ai输入的文字是由词元组成的,ai输出的文字也是由词元组成的,在处理前,ai通过分词器对输入内容进行分词,相当于从某种角度理解输入内容。输出时,会根据最后状态的权重,选出概率最高的词元进行输出。
分词器划分的结果会影响ai对输入的理解与输出的结果。
比如MiniMax M2有过无法输出马嘉祺的情况,调查发现ai模型并没有丢失对马嘉祺的理解能力,只是因为训练分词器时相关数据不足,导致分词器遗忘了嘉祺这个词元,输出时会被附近的其他词元(如亚轩、千玺)抢走。[^5]
神经网络
反正是大概知道了ai是如何从某种程度上理解我们输入的东西了。
距离完全理解似乎只缺一步了,那是哪一步呢?
没错就是ai如何将它理解的东西转换成要输出的内容,就是中间最最关键的思考部分。在刚刚其实提到过
输出时,会根据最后状态的权重,选出概率最高的词元进行输出。
权重!权重是什么,虽然我很不想再引入新的概念来解释,但这应该是最重要的概念了不得不提到神经网络。
权重是神经网络中的概念,用来表示连接两个神经元之间的连接强度系数。
关于神经网络可以简单的看成一个拥有输入层、输出层和若干隐藏层的网络结构,每一层会有若干个节点也就是神经元,神经元会有一些参数比如权重、_偏置_、和哪些神经元连接。
^6
举一个简化例子来说明神经网络是如何工作,不要忘记计算机的世界里只有数据。
输入法国的首都,在经过分词器的处理后到输入层可能变成了法国、的、首都这三个词元了,它们分别被放在输入层不同的神经元上,根据神经元上的参数进行数学运算,根据规则传递给隐藏层中的其他神经元,在隐藏层中经历经过层层加权、激活,这个过程按我理解相当与列出每个词元的语义、寻找它中的关联、收拢判分,到了最后的输出层会变成一个权重的参数,这个数是概率分布的,会根据概率来“抽签”决定下一个词元。对于我们法国的首都这个输入这个词元大概率是是,然后把组装到一起法国的首都是再预测下一个词元,直到结束。
对于法国的首都给出的结果就可能是法国的首都是巴黎。。[^7]
为何而强大
刚刚的介绍应该让大家对ai大概的工作模式有一定的了解了,实际情况中要比讲的要复杂的多,就不展开了主要也是已经看不太懂了。
有几个数字可以让大家感受一下。
- 之前说过
DeepSeek-V4Pro的词向量维度是7168维、 - 词元表大小是12万、神经网络隐藏层有61层,每层7千个节点、
- 还有一个没提到的概念叫上下文长度(理解为模型的短期记忆),这个参数来到了100万个词元,大概180万汉字。^4
像是词向量、_词元表_、词元划分、神经网络这些的参数都是通过大量的数据“试”训练出来的,DeepSeek-V4Pro使用了33万亿词元的数据做训练,这个数据量在10,000张NVIDIA H800 GPU组成的集群上,纯训练耗时估计453小时,19天。[^7]
但也正是这样做让让AI从这33万亿的数据里找到了规律和关联性——这就是它强大能力的来源。没有智能,只有计算。
挥动银剑
何为银剑
回到话题,挥动银剑–AI时代猎魔人手记,灵感来自
在上世纪八十年代有一篇计算机论文,叫做《没有银弹:软件工程的本质性与附属性工作》[^9]
在欧洲中世纪的传说中,有一种叫“人狼”的妖怪,专在月圆之夜去袭击人类,用一般的枪弹作用不大,而用银子作成的特殊子弹可以轻易把它杀死。银弹在这里代表着一种不仅可以用于人类,还可以用于妖怪的武器,是一种通用的武器。
作者表示在软件工程领域中,并没有一种通用的解决方案可以解决所有问题,像是当时的高级语言与面向对象编程这些概念,都解决了许多附属性工作,但是软件开发依旧困难重重。其根本在于本质性的工作,软件的复杂性、隐匿性、配合性与易变性,这些特性不是通过更好的编程语言、设计模式这些附属性工作可以解决的。
视角到现在附属性工作得益于更好的工具应该比当时简化非常多了。那AI可以解决本质性的工作吗?我认为不能,但它解决更多的附属性工作,可以让完全不了解编程的人来发布自己的作品,但是这个过程也并不轻松。
在猎魔人中猎魔人会使用两种武器,银剑与铁剑,银剑用于处理妖魔鬼怪而铁剑用于处理人类,银剑可以轻松的杀死妖怪,但遇到铠甲、盾牌时银剑的硬度不足,无法造成有效的伤害。
AI现在给我的感觉就像是银剑,它可以十分轻松的完成许多的任务,但是有时会不尽如人意,正如我们之前说的那样它会猜测,会犯错,会给出一些奇怪的答案,尤其在非标任务、小众需求上,任务的复杂度会放大这个问题。需要去修正、调整、甚至详细对齐需求重新生成,许多的问题也并不是在实际做之前就清楚的。
轻盈的银剑
AI现在无疑是十分强大,不可忽视的存在,但我们现在对于它的期待有点过高了,它并没有那么万能,AI的原理就决定了它运行时并不稳定,当然现在有许多技术来让它更加稳定、善解人意、甚至更加有想象力。这些技术帮助我们可以更好的掌握这个容易失控的家伙。但是使用的时候还是要好好考虑我们真正需要的是什么,如何挥动它什么力度,什么角度,什么时机。
技术决定历史
我们的这个世界快速发展不过就是这最近几百年的时间,从第一次工业革命开始,之后每次时代的大变革都伴随着技术的进步。
现在的AI其实就算不发展了,它也足以改变许多行业。
下一个变革会是AI吗?我不确定。AI可以解决本质性的工作吗?上文我的回答是不能,但我认为的是现在AI与我们现在使用方式不能。
我想可以多尝试使用AI来完成一些任务,多思考我们真正需要的是什么,多思考我们如何使用它。
期待我们能一起见证下一个时代。这真的让人很兴奋不是吗。
相关资料
[^3]: Efficient Estimation of Word Representations in Vector Space
[^5]: 为什么MiniMax大模型不认识”马嘉祺”?Minimax内部排查稀疏 Token 遗忘问题的记录
[^7]: DeepSeek-V4-Pro训练内幕:从33T tokens到1.6T参数的全链路拆解
[^8]: Convolutional Neural Networks & Neuroscience: A Tutorial Introduction for The Rest of Us
[^9]: No Silver Bullet Essence and Accidents of Software Engineering