AI Coding,亦或 AI for Coding?

Go+编程语言创始人、七牛云创始人兼CEO许式伟中国科学院软件研究所PLCT实验室负责人、建立中国RISC-V生态的甲辰计划主理人吴伟专注RISC-V编译器和硬件笔记本开发的鉴释科技联合创始人兼CEO梁宇宁 聚首 2024 IDEA大会 ,从软件与硬件的双重视角,剖析大模型时代,编程语言的软硬件发展机会。
IDEA研究院基础软件中心负责人张宏波主持这场讨论。

基础软件行业的变革之所以显著,是因为它紧随人机交互方式的演进。

人工智能技术的发展不仅推动了编程语言的技术进步,而且由于编程语言是人与机器沟通的桥梁,人机关系的变化,也在直接驱动编程语言的变革。

人工智能在编程语言领域,目前实质性的改变是什么?我们进入了"AI Coding"时代,即AI直接参与编程的过程,亦或是"AI for Coding",AI辅助人类编程?编程语言会逐渐"消失"吗?

本场讨论,从人机交互呼唤全民编程、AI与编程语言的现实关系、以及基础软件领域,开源与商业化的可持续发展的角度,进行拆解。

(从左到右)IDEA研究院基础软件中心负责人张宏波、鉴释科技联合创始人兼CEO梁宇宁、七牛云创始人兼CEO许式伟、中国科学院软件研究所PLCT实验室负责人吴伟。

"人人编程"会出现吗?

"我认为编程语言正迈入一个全新的历史阶段,伴随着特别强烈的需求。"七牛云创始人兼CEO许式伟提出,"这个需求是什么呢?就是从'精英掌握编程语言',向'人人都能掌握编程语言'的转变。且这种转变,正在急剧加快。"

在这样的背景下,**需要一门新的编程语言来适应"人人编程"。未来,"程序员"这个词可能会更像人类社会中的"作家",**他认为。

每个人都可以写点文章,不过依然有专业的作家。同样,编程语言也是如此,或许人人都能写几行代码,但编程仍然是一个专业职业。

背后的原因在于,人机交互方式正在逐渐经历变革。

"马斯克提了一个他对未来的看法,认为机器人的数量会远超于人类,"许式伟提到。"我跟马斯克的判断是一样的。目前人类有 80 亿,而机器人的数量可能至少会达到 800 亿。" 800 亿机器人,将催生全新的交互方式。

正如人与人之间的信息传递在一定程度上依赖Word、PowerPoint等工具,人机交互则基于不同的原理。

机器人和电脑作为自动化工具,需要通过编程来实现自动化控制,这与简单的指令式交互有本质区别。自动化控制允许机器执行更复杂的任务,而不仅限于简单的逐条指令。

因此,适应人机交互方式的变革,编程语言趋向于简化和普及,许式伟认为。

AI之于编程:尚处于辅助阶段

大模型技术崛起后,人类不再需要编程的这个观点,是个误区,许式伟认为。

他提出,人类接触的语言分为三类:数学语言用于表达科学,自然语言用于沟通和交互,而编程语言则是一种自动化语言,用于精准、高效地完成复杂任务。

自然语言因其大量的歧义,无法直接作为编程语言,必须通过约束和消解歧义才能形成类似编程语言的工具。

如果大模型能够完全替代编程,就意味着它已达到了通用人工智能(AGI)的水平。但AGI面临的最大难题,在于无法实现模糊的目标。即AI只能通过交互和迭代,不断接近用户的期望。

而自动驾驶是一个成功的例子,因为它的目标------安全到达目的地------非常明确,因此AI在这种场景下,能很好地实现自动化。

相比之下,大多数人类需求是模糊的,需要反复调整目标

例如建网站时,用户的初始要求并不明确,AI需要通过交互帮助用户描述需求。

这说明当前的AI更适合辅助编程,而非完全替代编程。真正的AGI应能实现自我编程和能力迭代,才是AI编程的本质,但当前的大模型浪潮还远未达到这一水平,许式伟认为。

中国科学院软件研究所PLCT实验室负责人吴伟进一步指出,编程可以分为很多不同的门类,其中有些对出错率的容忍度较高。

比如写网页时,AI已经能根据图像自动生成JavaScript和HTML代码,这种情况下,容错率高,AI的尝试是可行的。

然而,一旦需要高准确性的编程任务,AI在目前阶段是无法胜任的,因为编程本身涉及深层的内在复杂性。这并非编程语言的表面问题,而是要解决的核心问题自身的复杂性。

吴伟进一步举例说明,像编程语言中的类型系统或操作系统中的锁机制,这些知识对普通程序员来说都非常难以掌握,只有系统程序员或专门从事系统库开发的程序员才能深入理解。因此,让AI达到这种深度,吴伟持谨慎和怀疑态度。

以陶哲轩的例子,吴伟说明AI在高容错率场景中的作用。

陶哲轩利用ChatGPT生成大量随机逻辑路径,用于定理证明的研究。这种模式就像研究者在人脑中探索多种可能性,但AI可以同时模拟成千上万个脑子,提供更多尝试的机会。

然而,即使AI能帮助找到一些"神来之笔",这些结果依赖人类的判断来筛选正确路径。这再次表明,AI更多是辅助工具,而非替代人类深度理解的手段。

基于这个现状,以编程语言MoonBit为例,其解决思路之一,是在开发初期加入大量的测试以及形式化验证。目的是让用户快速获得机器检查过的代码,以提高代码的准确性和可靠性,从而提高开发效率。

"可能终端设备是第一个可以把人工智能充分利用起来的。"鉴释科技联合创始人兼CEO梁宇宁提到。

终端的发展目标,是实现无需依赖网络连接即可独立完成任务。随着AI大模型的出现,各种垂直领域的小模型不断涌现,推动了终端设备的智能化转型。

如今,笔记本电脑已经从传统设备升级为更高效的AIPC(人工智能个人计算机)。AIPC是一种内置AI加速器的电脑,可以本地运行AI模型,快速完成任务,比如图像识别和语言处理,无需依赖云端。

梁宇宁认为,在未来,甚至可以跳过额外工具,直接实现功能,真正普及无层编程的便捷性。无层编程,是指用户无需复杂的中间步骤或额外工具,直接与设备交互,实现所需功能的方式。

开源与商业化的可持续,以RISC-V为例

RISC-V 的开源指令集是一种颠覆性的理念,梁宁宇认为。不属于任何公司、国家或政府,这让它在全球化的风险与挑战中,有特殊的价值。

相比 ARM 等封闭的指令集,RISC-V 赋予硬件行业一种类似 Linux 内核的开放模式,让技术的传承和发展更具有韧性,也摆脱了商业控制的束缚。

同时,大模型的兴起进一步推动了 RISC-V 的应用。相比 ARM 架构,RISC-V 在大模型任务中的表现更有优势,比如第二代笔记本已经能够运行 70亿参数的大模型。RISC-V 的开放性和 AI 的需求契合,给予了硬件新的发展机遇。

从商业的角度来说,RISC-V作为开放标准,允许任何人基于其指令集设计硬件和产品,并利用其软件生态的优势。但是这种开放性带来了一些问题。"先发劣势"就是其中之一,吴伟表示。

早期投入者需要承担高昂的开发成本,而后来的竞争者却可以直接受益。这种情况让很多企业在是否参与早期生态建设时犹豫,影响了RISC-V的推广和发展。

一个解决办法,是通过社区分担早期投入成本,让更多企业共同参与生态建设。

具体来说,硬件企业和软件公司可以集中资源开发关键基础设施,比如编译器、内核和LLVM,降低开发门槛,方便更多人使用。

同时,通过联合推动软件的适配工作,让RISC-V可以支持更多应用场景,逐步形成行业内的参考方案。这种方式既能保护早期投入者的利益,也能吸引更多企业加入,共同完善生态。

吴伟以其主导的中国科学院软件研究所PLCT实验室"甲辰计划"为例,指出,甲辰计划运用了上述思路,通过联合企业和社区力量,以期推动RISC-V生态的发展。

创业的第"0"关是选题

创业路上充满了各种"坑",而这些坑是无论谁都无法完全避免的。"但如果要给创业者一些建议,最重要的一点就是选题,这是"第0关"。"许式伟表示。

相比"投机型"、"风口型"项目,许式伟认为,一个好的选题应是创始人真正热爱的领域。这种热爱应该强烈到即使没有资金支持,也愿意坚持去做,因为创业是一场持久战。"就像小米从创立到上市用了将近 8 到 9 年,如果没有对赛道的热情,难以坚持到最后。"

此外,创始人需要成为目标群体心目中的专家,或者不断努力让自己被认知为领域内的权威,"让市场相信你在这个赛道上是靠谱的 。"

再者,创业的关键在于速度和强度,同时要把品牌、实力、风口和趋势绑在一起。"无论做什么事情,一定要找到一个足够大的赛道去落地,这一点非常重要。"梁宇宁强调。

相关推荐
**之火4 分钟前
(五)机器学习 - 数据分布
人工智能·机器学习
martian6656 分钟前
人工智能机器学习基本概念详解
人工智能·机器学习
抽风侠10 分钟前
qt实现窗口的动态切换
开发语言·qt
嘟嘟实验室13 分钟前
PDFMathTranslate,PDF多语言翻译,批量处理,学术论文,双语对照(WIN/MAC)
人工智能·macos·aigc·自动翻译
远洋录17 分钟前
大型前端应用状态管理实战:从 Redux 到 React Query 的演进之路
前端·人工智能·react
liuweni20 分钟前
Next.js系统性教学:深入理解缓存交互与API缓存管理
开发语言·前端·javascript·经验分享·缓存·前端框架·交互
coldstarry23 分钟前
sheng的学习笔记-AI-自然语言处理(NLP),机器翻译,情感分类,词嵌入
人工智能·深度学习·自然语言处理·机器翻译
高山莫衣33 分钟前
【返璞归真】-Lasso 回归(Least Absolute Shrinkage and Selection Operator,最小绝对值收缩和选择算子)
人工智能·数据挖掘·回归
AI人H哥会Java35 分钟前
【JAVA】Java高级:多数据源管理与Sharding:在Spring Boot应用中实现多数据源的管理
java·开发语言
Thomas_YXQ37 分钟前
Unity3D项目为什么要使用FairyGUI
开发语言·unity·游戏引擎·unity3d·游戏开发