cpu只能识别0和1的二进制指令,而汇编语言是最接近机器语言的低级语言。早期硬件性能比较差的时候,开发时用汇编语言的目的是为了提升程序的性能和反应速度,但如今硬件设备发展很快,编译器的优化也已经很好了,手写汇编未必更高效,反而因为难读、复杂、量大,后续带来的维护困难远远超出它带来的那一丢丢不足道的性能提升。
实际上大多数情况下,如果追求性能,用c++就够了,用c的情况都已经很少。除了嵌入式开发等少数场景,大多数开发人员并不需要直接用到汇编语言来搞开发。
但是向坤却是主动地在给自己“找麻烦”,因为他做这个项目,目的是为了找到他的“ai助理计划”的灵感。
而汇编既然最贴近机器语言,更容易为cpu理解,那么向坤就想要通过这一小部分代码的编写和思考,来“代入”电脑的思维方式,想着有没有什么办法,能够突破现在人工智能的各种实现方式。
而且汇编在某些情况下,也比其他高级语言拥有更灵活的优势。
他甚至在做完了那一小部分核心模块arm下的汇编代码后,又自虐式地手写了那部分代码的x86版本。
但项目的进展飞快,向坤关于“ai助手”的灵感,却依然还没有任何头绪。
向坤现在心有点野,有点贪,他实在是不想弄个简单的“沙雕ai”,他想弄一个“超级ai”。
做个简单的比喻:
小伙子小明养了一群鸟,这群鸟在他的驯养下十分地听话。
王老板对邻居杨小姐很不满,于是找到养鸟的小伙子小明。
王老板:“帮我报复她。”——这是甲方爸爸提出需求。
小明:“我让这群鸟在小红家上空飞,一会摆成s,一会摆成b,怎么样?”——这是沟通方案。
王老板:“可以,就这么干。”
如果把这群鸟当成是“计算机”,那么小明就是“程序员”或者说“开发者”。
这个训练的过程,就是编程的过程。
鸟群明白的“机器语言”只有:给吃的、不给吃的。
至于其他的内容,都是在这个基础上组合训练出来的。
“让这群鸟在小红家上空飞,一会摆成s,一会摆成b。”——这是具体需求。
“小明思考:我先引导几只头鸟的位置,然后其他鸟自然就跟上了,如此重复,就能让他们摆出我想要的图形。”——这是算法。
“鸟不到正确的位置我就不给吃的,到了就给吃的。”——这是函数。
不论小明把这鸟训得多好,多如臂使指,甚至依靠口令就能让鸟做特定的事情,一声呼啸就能让鸟飞上天一会摆成s,一会摆成b,看起来好像真的通人性,但实际上,它们本质能理解的,依然是:
给吃的,不给吃的。
所以超级ai这种存在,相当于要让鸟群直接明白:“我要让你们在小红家上空飞,一会摆成s,一会摆成b。”
甚至更进一步,能直接理解:“帮我报复她。”
到那时候,王老板直接和鸟**流,小明就可以狗带了,或者专心伺候鸟儿们吃喝拉撒,让它们过舒坦。
现在向坤要做的事情,就是从孵化开始训练一只鸟,赋予它鸟王的权力,然后让它理解自己的话——真正的理解!
到时候,需要做什么,直接告诉鸟王,鸟王便能带领一群打工鸟自发地去完成任务,至于具体怎么完成,向坤不需要关心也不需要知道。
如果训练好了,别说是让它们摆个s或者b了,就是让鸟王带着群鸟跳极乐净土都行,它甚至还会揣摩上意,给你唱个威风堂堂。
你说:“我要报复杨小姐。”
它会主动回:“那我带着小弟们去杨小姐家上空一起拉便便?不解气?那我们半夜去啄她家窗户?还是组队飞她家头上,一会摆个s一会摆个b?”
当然,更大的概率是它领了你给的鸟食跑去和其他打工鸟分了,然后躺着晒太阳,屁事不干。甚至还会跑你头顶上拉屎,并且表示这不是针对谁,你只是被随机到了。
<!--over-->