前言
时间过的真快,转眼间我也毕业了有一年。我对AI的研究从ChatGPT爆火的那一年开始,其实在之前,我对AI这个概念是非常模糊不清的,我更多的时间是投入在了虚拟化、云原生与云计算这些方面。
在第一份工作,我是一位云平台研发工程师,专注于虚拟化与云计算。在这份工作中,我从中学到了很多东西,特别是和信创支持有关的内容。有过手改KVM、脚踢Qemu,顺便处理下Linux内核只为了适配华为910B的vNPU切分。
而我现在这份工作,则更多的是和AI打交道。在这份工作中,我深入了解到了Cursor、Trae等优秀效能产品的设计理念、也给我打开了一扇新的,通往AI的大门。故在此,我也简单总结一下我目前对AI浅显的研究。
我尽可能不在这篇文章里长篇大论大谈技术,因为我也没有什么技术,既然没有,那就聊天吧。
早期现实
在比较早期的时候,我认为所谓的AI,无非就是从设定好的模式下,执行特定的任务。最典型的案例,就是早期的AI人工智能对话系统。
最之初让AI正常说人话都很难,对于回答不了的用户的提问,人机对话系统最后的兜底是一个闲聊系统,都是通过QA(Question/Answer),QQ(Question/Question)匹配来知识库中已有的语料。
但是,这个效果有多么差,应该都体验过,只要有人工客服,很多用户第一时间会选择人工客服,直接跳过智能客服。但是无论如何,这都是AI人工智能对话系统第一个起步阶段。
偶然一天,我看着手里的小米手机,突然想起来了满天宣传的智能AI音响,小爱同学,小度,这些新生的人机对话系统,效果如何?但是实际尝试之后,仍然还是很失望。仍然脱离不了传统的束缚,给人一种“人工智障”的感受。
人机对话系统的应用场景本来是很广泛,适合一切有对话的场景,为啥成功不了呢?本质原因:
人机对话系统是不确定性、不可控性、弱可反馈。人机对话太难了,没有一个超级模型能解决,所以大家只能采用分而治之方式解决,将问题拆解成若干个子问题,但是每一个子问题用模型或者算法处理,大概也就0.9分的水平(满分是1分),所以10个0.9分连乘在一起,就低于及格线0.6了,人工智能变成人工智障了。
0.900.900.900.900.900.900.900.900.90*0.90 = 0.349
举个例子:针对用户输入的一句话,可能需要使用各种自然语言处理技术来辅助处理,比如词性标注,中文分词等,但是每个模块都没法确保100%准确性。做的越多,整体链路反而效果越差。
阅读与思考
后面看了弘晨大佬的文章之后,找到了The Bitter Lesson (苦涩的教训),这个是由Rich Sutton(强化学习领域的奠基人之一)在2019年发表的,我个人将其总结为一句话:
我们需要的,不是知识的镜面,而是能孕育新绿的沃土。
之后,我又在思考一个问题:AI带来的真的是革新的技术吗?还是说只是泡沫?
一次偶然的机会,我读了比尔盖茨(我小时候的偶像)在1995年出版的一本书:《未来之路》,本书之中基本上所有的预言都成为现实了,如电子商务,即时通讯等等,除了这个AI智能助理。
为何AI智能助理至今仍然无法达到想要的效果呢🤔?在搞不明白一些问题的时候,去阅读先贤的书,总是能得到灵感。我随后读了一下两篇论文:
Computing Machinery And Intelligence (1950年 图灵)
A Theory of the Learnable(1984年 L,G. VALIANT ACM通信)
在阅读过程中我发现,图灵先生对“机器能否思考”其实是持乐观态度的,这篇论文让我知道了:人类的思考能力也不是那么神奇和与众不同,正如地球不是宇宙中心。
L. G. Valiant 在1984年发表于ACM通信的论文《A Theory of the Learnable》中,为机器学习理论奠定了重要基础。
就像密码学一样,从数学证明这个密码是可以破解的,就指明了方向。但具体怎么破解,仍然要继续探索。 人工智能也一样,机器从理论上是可以思考有智能的,但实现途径是什么呢?
在探索这个问题的时候,我发现一个非常有趣的问题,自然语言的二义性。发展至今的大模型,无论是不是推理性大模型,对二义性都不够优秀。举个最简单的例子:
”中国足球队谁都踢不赢“
“中国乒乓球队谁也打不赢”
同样的表达方式,意思截然相反。那有没有一种语言,没有二义性,永远就像直男,什么就是什么呢?有的,兄弟,有的。那就是代码。
代码是英文的“自然语言”,代码没有歧义性,代码有自己的语言规范,结构化的。相对而言,代码是一个更加简单规范的自然语言,如果人工智能都不能解决代码的问题,更别说解决复杂的自然语言问题。
此外,自然语言离人更近,代码是编程语言,离机器更近,按照道理,代码应该更容易被机器理解,所以人工智能解决代码也应该更加容易。此外:代码可能是人和机器的桥梁,未来是人机共生的时代,解决代码这个核心问题,才能才能真正到达人机共生世界?
当然,我并不想升华主题,但是我是一位程序🦍,代码是我吃饭的工具。有时候真的感觉,和一些人沟通了这么久,不如写几行代码甩给他。
AI编码
各种新的模型,如Calude 4,在代码能力一次又一次的刷榜。现在在我的实际开发之中,AI可能要占40%左右。对于AI辅助代码,我有一个心得,也有一个信条:
告诉AI Need,不要告诉AI Think。
永远不要相信AI写的内容,是你主导AI,不是AI主导你。
对于第一条,要先认清AI的能力,其就是一个辅助工具,他会给你一个他能思考的假象,但实际会给你带来更多的麻烦。所以,先思考,定方案,敲步骤,在告诉AI,What do i Need,而不是有了个思路,告诉AI,What am i thinking。
对于第二条,目前最牛的AI,仍然也有Context的窗口,对于小项目还可以,但是对中大型项目,他无法完全理解。所以会出现:我写了,但是我就没按照项目要求写。最经典的问题就是,项目用MyBatis,但是它会给你引入JPA,给你写JPA的代码。所以无论如何,不要相信它,要做Review。
Encoder与Decoder之争
继续说回大模型。
虽然OpenAI公司产生了巨大影响,但是前些年也很不容易。
Tansformer有Encoder和Decoder组成,《Attention is All you need》发表之后,国内国外的大模型的技术路线基本都是Follow 谷歌的Encoder路线,各种魔改bert,论文引用量非常多。但是OpenAI是Decoder技术路线早期引用量非常少。现在业界大模型技术路线基本都是统一到Decoder技术路线。
继续阅读一些文章之后,发现大模型并非完全是大力出奇迹,而是量变引起质变。
诺贝尔物理学奖得主Philip Anderson,1972年的一篇文章《More is Different》有这样一句话:
Emergence is when quantitative changes in a system result in qualitative changes in behavior.
大规模语言模型的涌现能力(Emergent Ability),一种不可预测的现象。涌现这一概念已经在物理、生物、等领域被讨论了很长时间。
比如:将水加热,一直加热到99摄氏度,都是液体,一旦到100摄氏度,就变成了气体。
所以,我知道有些人好像对“堆算力”有点嗤之以鼻。但是,我个人认为,堆算力也许真的是可以发生质变前的量变。
结语
回顾历史:人造飞行器最开始实现途径是:研究鸟类的翅膀,仿生学角度去做,后来发现得用物理空气动力学。
目前来看,计算机科学是最有可能实现人工智能,很庆幸,我可以窥看到这个圈子的门槛。 而在计算机各种技术中,神经网络最优可能实现,在神经网络众多模型中,gpt系列技术最有可能实现的。
自从用上AI之后,几乎我所有的文档都会找AI润色一遍,已经很久没有像这样完全手敲。虽然这篇文章通篇在讨论AI,但是我还是决定不让AI插手。
AI将解放脑力劳动者。后代很难想象,之前的我们,需要从头开始很多工作,耗时耗力,比如写一篇文章,写一段程序,修一个图片,拍一段视频。
正如我们很难想象,之前的复制一本书需要抄书人劳动几个月。也许今后,我们的孩子们像呼吸空气般使用AI时,愿他们仍能像如今一样,思考,探索,学习和总结