共计 7979 个字符,预计需要花费 20 分钟才能阅读完成。
我们不禁要问,AlphaCode 的出现,是否意味着程序员的工作将会得到解放呢?
全文约
7365
字
预计阅读
19
分钟
口述:
科普作家 瘦驼
Jina AI 创始人兼 CEO 肖涵
一流科技 OneFlow 创始人兼 CEO 袁进辉
极客公园创始人兼总裁 张鹏
整理:汤一涛
在刚刚过去的春节,负责研发 AlphaGo 的 DeepMind 公司再度推出了一款新型人工智能模型——AlphaCode,这一模型具备自动编程的能力。
在 Codeforces 举办的十场编程比赛中,AlphaCode 的表现令人瞩目,成功跻身前 54.3% 的选手之中。这一成绩表明,它的表现超越了近一半的人类参赛者。而更令人震惊的是,所有参赛代码均由 AlphaCode 独立生成,无需人工干预。
AlphaCode 所取得的成绩究竟意味着什么?它是否会威胁到程序员的职业安全?在基础科学的领域内,AI 又扮演了怎样的角色?我们该如何看待人类与 AI 之间的关系?
上周,《今夜科技谈》节目中,科普作家瘦驼、Jina AI 的创始人兼 CEO 肖涵,以及一流科技 OneFlow 的创始人兼 CEO 袁进辉,共同探讨了与 AI 密切相关的话题。

肖涵指出,AlphaCode 并非单一的算法,而是基于 GPT- 3 模型所构建的一个综合系统。因此,我们并不认为 AlphaCode 在算法层面上有突破,其真正的创新在于创造了一个能够执行复杂任务的系统。
谈到算法的训练过程,人工智能的首要步骤是 预训练,这意味着需要从 GitHub 等平台收集程序代码,以便让模型对编程有一个初步的理解。
接下来的第二步是 微调,因为预训练所获得的知识并不全都适用于实际问题,这些知识提供了一个大致的视角,但为了解决具体的任务,需要进行针对性的调整。
AlphaCode 的评估与发展:从低估到重估的旅程
AlphaCode 的另一项重要成就是建立了一套 评估机制。由于它能够根据特定题目生成多种解答,却无法判断这些解答的准确性,因此将问题及其生成的答案输入该系统后,就能对答案进行有效评估。
这一过程充分体现了 AlphaCode 所宣称的完全无监督能力,确实让人惊叹。
袁进辉:我认为 AlphaCode 的出现是 一个具有里程碑意义的突破,它能够根据自然语言描述自动编写解决算法问题的完整代码,实在是令人钦佩。
对于 AlphaCode,我的看法经历了从低估到高估,再回归低估的复杂心理变化。
在深入了解其论文内容之前,我曾低估了 AlphaCode 的能力。与 GPT- 3 训练自然语言的方式类似,AlphaCode 也是通过抓取数百亿行代码,从 GitHub 获取语言结构信息并加以应用。相比复杂多变的自然语言,代码的语法则显得更加规律。因此,从这个角度来看,AlphaCode 与传统解决问题的方法并无二致。
然而,令我感到意外的是,我原本以为 AlphaCode 是通过检索已有代码片段来完成任务,实际上这些代码是通过预训练生成的。传统观念认为,AI 通常处理的任务精度较低,比如图像识别的 90% 准确率已属高水平,而要实现 100% 准确率却极为困难。然而,编程要求精确无误,哪怕是变量名称写错或者漏掉一个分号,程序都会报错。这让我对 AlphaCode 的能力产生了新的高估。
在深入阅读 AlphaCode 的论文后,我发现其确实能够生成完整的程序,但过程也涉及一些巧妙的处理。例如,它会针对同一问题生成高达 100 万份程序,其中包含正确和错误的解答。经过筛选,AlphaCode 会剔除 99% 的代码,最终保留 1%。在这 1% 的几千份代码中,通过聚类等方式进一步精简,最终提交 10 个答案到 Codeforces,只要其中有一个是正确的,就算成功。
探讨 AlphaCode 的独特生成机制与 AI 编程工具的未来
AlphaCode 并非一次性解决特定问题,而是针对同一问题生成数十万乃至上百万的程序。经过初步的测试与示例筛选,最终选出正确的解答。
袁进辉:我认为主要有两个原因,一个是解决的难题各不相同,另一个则是所采用的方法各异。
AlphaCode 所面对的问题,其实是具有一定挑战性的。
值得注意的是,AlphaCode 并不是简单地从互联网上查找现成的代码片段,而是自主生成的。相较之下,像 Github Copilot 这样的工具则是直接搜索现有的代码片段。有研究表明,它会从 Stack Overflow 等平台提取代码,并包括程序员在代码中留下的注释。

肖涵:实际上,这些 AI 辅助编程工具的目的是为了提升开发者的编程体验。如今,AI 技术已经发展到可以自动完成代码编写,而不仅仅是简单地填入函数名称。
然而,当前所有的 AI 工具还未达到能够完全替代开发者的水平,开发者依然是最终的决策者。AI 生成的代码仅仅可以作为一个参考。
瘦驼:作为一名从事文字工作的专业人士,我希望将这件事情与“自然语言”领域相结合进行探讨。
AI 创作与人类创意的界限探索
首先,生成一段语法无误的代码并不是一件复杂的事情。自然语言中包含了许多不合逻辑和语法的表达,而我们在交流时往往不拘泥于规则。然而,编程语言则是严谨且逻辑明确的,它依赖于一套严格的语法体系。
其次,我认为程序员无需过于焦虑。与文字创作者相比,我们在过去几年的确面对过类似的挑战。如今,许多固定格式的文本,例如体育赛事结果、股市动态、天气预报等,已经被 AI 大量生成。对于这些有固定模式的文本,AI 的生成速度远超人类。然而,要求 AI 创作出具备创造性的内容仍然非常具有挑战性,因为创造性本质上是对现有逻辑和体系的突破,而这其中也包含了允许 AI 犯错误的空间。
对 AI 而言,保持个性化的表达十分困难。以《红楼梦》中的贾宝玉与林黛玉的诗作为例,两者在风格上存在显著差异。当前的 AI 技术在这一点上仍显得力不从心。
肖涵指出:性格的差异主要源自于训练语料的不同。如果我希望生成具有朦胧派风格的作品,只需将相关诗人的文本收集起来进行训练即可。
因此,我认为 AI 所需的核心要素是 数据。如果算法模型能够更有效地挖掘数据,从而充分发挥数据的潜力,那么所谓的个性化也将自然形成。
袁进辉补充道:按照肖涵的思路,若没有朦胧派的相关语料,就无法生成该风格的 AI 作品;同理,若没有梵高这个艺术家,就无法创造出梵高风格的绘画。因此,AI 在创作层面更像是对记忆的重现,其差异在于是机械的记忆还是更为智能的记忆,但本质上都无法超越已有的框架。
在专业术语中,有两个概念值得关注:“exploitation”与“exploration”。前者指的是在既定范围内的保守运作,而后者则是超越界限进行探索。
给人工智能留点犯错的余地
或许我们应当为人工智能创造一些犯错的机会。
袁进辉:人工智能在处理一些机械化的任务时表现得相当出色,但编写代码的过程需要创造力。随着技术的发展,编程的艺术性也愈发明显。
编程中的代码质量是有高低之分的,代码的简洁性与优雅性,以及其中的创造性审美,依旧是人类所独具的优势。
张鹏:然而,这种美感是否也应该体现为效率,只有在效率超过了复杂和丑陋的工作时,商业世界才会给予认可呢?
袁进辉:确实,这种美在效率上是有体现的。判断代码优劣的一个标准是其可复用性。简洁的代码往往更具扩展性,将来可以在更多场合中加以利用。如果一段代码仅能用于当前任务,那显然是不够理想的实践。
肖涵:我想起之前在国外论坛上看到的一个非常热门的帖子,讲述了一家律所聘用一位年轻人负责报表整理等工作。恰巧这位年轻人懂一点编程,于是他将这项工作进行了自动化,结果只需五分钟就完成了原本需要一周的任务。两周后,这位年轻人感到有些愧疚,于是将这件事发布到论坛上,询问大家是否应该告知老板。
我认为这个故事反映了一个重要的事实——无论他是否告知老板,机械化工作终究会被取代。即使他自己也意识到这种工作毫无意义,否则就不会有这样的内心挣扎。人生应该有追求,何必在这样的事情上浪费时间呢?
在我看来,代码辅助 AI 的出现并不是一件坏事。人类在经历了工业革命和流水线引入的洗礼后,已经发展到可以从事更高层次的职业,创造出更大的价值。因此,总的来说,这一现象可以被视为积极的进展。
肖涵指出,低代码技术的产生实际上是由于过去几十年我们积累了大量的代码资源。如今,任何一款软件的开发都不会是从零开始,背后都有其依赖的软件库。
在现代软件的构建过程中,创新的成分并非最重要的,反而是 可复用性 显得尤为关键。可复用性意味着软件在完成后,应当成为更大系统中的一个组件,而不是重复造轮子。
当人们逐渐领悟到可复用性的价值时,低代码和无代码的概念便应运而生。当前我们开发的代码日益复杂,不再局限于操作系统等底层软件,而更多地面向终端用户的应用软件,这使得低代码和无代码的重要性愈加突出。
从人类工程发展的历史来看,可复用性无疑是一个至关重要的转折点。当某个事物被赋予复用的可能性时,文明的进步便会迈向全新的阶段。可以设想,一个原始人偶然用两块石头擦出火花,这难道不是一次偶然的发现吗?亦或是说,这一发现成为了可被传承的经验,从而使人类掌握了使用火的技巧?
因此,我想强调的是,低代码与无代码无疑是未来的发展趋势。而这种趋势的背后,反映出我们目前所关注的是更为复杂的软件开发,这种开发尤其重视复用性。
袁进辉补充道:我想对软件 2.0 作进一步阐述。
软件开发的未来:从代码到模型的转变
在软件开发的演变中,软件 1.0 时代的核心理念是 代码是数据,通过这一基础,我们能够以代码为支撑,构建和训练 AI 模型。
而软件 2.0 则转向了 模型是代码 的理念。在 AlphaCode 之前,AI 已经开始在编程领域发挥作用。例如,图像识别模型的构建,最初依赖于计算机视觉专家设定的各种规则,比如识别图片中的特征来判断其是否为汽车。然而,经过数十年的探索,这种方法的识别准确率却未能达到预期。因此,现代的做法是通过大量数据来训练出有效的模型。
过去,程序员需要先理解问题,然后将其转化为计算机能够理解的语言,才能让计算机助力解决问题。这一过程实际上是将现实世界的复杂性转化为数字世界的操作。如今,模型即代码,意味着我们不再依赖人类大脑的介入,只需收集数据,计算机便能自动识别数据中的规律并生成所需模型。
肖涵:在现实中,确实发生过类似的案例。几个月前,Log4j 软件包的错误引发了众多软件公司的恐慌。在低代码与无代码的环境下,这类问题的发现变得更加困难。因为底层代码的编写者越来越少,大家的关注点往往集中在复杂的软件业务逻辑之上。
在 JavaScript 社区,也曾发生过一件引发广泛关注的事件。一位维护底层代码的开发者因受到网络攻击的指责而愤怒地删除了自己的代码,结果导致整个代码复用的链条断裂。
因此,在低代码和无代码的开发环境中,确保上游系统的稳定性显得尤为重要。即使在出现错误的情况下,也必须能够迅速进行修复,这一点至关重要。
人工智能脆弱性与科学创新的未来
袁进辉指出,AI 模型的脆弱性不可小觑,容易受到攻击。实际上,AI 的训练依赖于大量的数据,这可以简单地理解为在高维空间中存在的某一个特定方向。当输入的数据与这个方向一致时,AI 的判别能力会相对准确;然而,如果数据的方向与之垂直,AI 的判断则可能出现偏差。
前几年,特斯拉的激光雷达曾经被用来进行一个实验,研究者通过简单地改变输入信号的方式,导致了特斯拉系统的识别出现错误。
张鹏提到,近期他也注意到了这一现象。在图像识别领域,ImageNet(视觉影像网数据库)在最初构建时由于数据的局限性,产生了一些偏差,例如对人类的歧视问题。如今,ImageNet 已成为基础设施,众多研究者在其基础上进行扩展,这些偏差逐渐演变为一种难以逆转的问题。
他认为,或许在某些情况下,彻底的重启是解决这一问题的必要途径。
瘦驼强调,对许多数据敏感的行业来说,AI 确实为科学家们解放了双手,使他们能够专注于更具创造性的工作。
在之前的讨论中提到,最容易被 AI 取代的天文学家或许是埃德温·哈勃。他花费数十年时间从海量数据中揭示了星系的“红移 - 距离关系”,这实际上是一个数据相关性的问题,而今天的 AI 能够迅速识别出其中的规律。
另一个例子是快速射电暴,这种现象以前常常被忽略,因其短暂特性而被视为数据中的异常。然而,有了 AI 这样的工具后,它能够从频繁出现的偶然异常中提取出规律。
人工智能的变革:重塑科学发现与工程应用
在我看来,人工智能的引入彻底改变了科学探索的方式,使我们能够从数据中识别出之前未被重视的模式。
肖涵:我非常钦佩 DeepMind,但自身并不打算创建类似的公司。我认为,DeepMind 的风险非常高,且盈利的可能性相对较低。
首先,在深度学习的背景下,计算能力和存储的投入是相当昂贵的,这一点大家都能理解。
其次,人才因素也不可忽视。每年,DeepMind 都会发布一两篇引发轰动的论文,这很大程度上得益于其汇聚了全球顶尖的科研人才。这样的高端人力成本并不是所有企业都能承受得起的。随着深度学习的进展,大公司与小公司的差距实际上正在加大。
我个人更关注的是人工智能在工程领域的创新,重点在于如何更有效地解决现有问题,而不是仅仅寻找未解决的新难题。
袁进辉:的确,DeepMind 的运作模式并不典型,理论上它并非传统意义上的商业公司。大多数商业公司必须开发可复制的产品,并考虑市场规模等实际问题。
DeepMind 更像是一家科研机构,然而与一般科研机构相比,它并不需要经历繁琐的资金申请,因为其背后有谷歌不断注入的资金支持。
肖涵:我认为有两个关键点,一是人工智能的可解释性,二是其训练过程的透明度。
人工智能的可解释性与训练过程探讨1、可解释性的重要性。
在过去的几年中,人工智能的发展经历了一个从可解释到不可解释的转变过程。
最初的人工智能主要依赖于特定规则的制定,例如早期问答机器人 Eliza,它通过识别输入的字符,并基于因果关系进行判断,从而返回固定的答案。这些回应是可以追溯和理解的,因为其程序逻辑是明确的。
随着时间推移,约在 2000 年左右,参数化模型逐渐兴起。这种模型能够将图片、声音和文本等信息转化为数据函数,而人工智能的任务则是将相应的系数填入。这一时期的 AI 同样具备可解释性。
然而,自 2010 年起,人工智能逐渐转向深度学习的架构,导致其变得日益不可解释。深度学习网络的构建是由多个非线性函数层层叠加而成的。单个非线性函数的解释相对简单,但当这些函数叠加后,便形成了复杂的系统,几乎无法追溯其源头。
例如,AlphaCode 的模型参数超过 400 亿,这使得追踪某个特定参数的影响变得极为困难。这种情况类似于我们无法明确指出哪个神经元促成了意识的形成。
当前,许多人开始强调人工智能的可解释性。随着 AI 智能水平的提升,社会对其责任的期待也随之增加,例如,避免对少数族裔的歧视。因此,当问题出现时,需要能够追溯并解释其原因。
2、训练过程的演变
。人工智能的训练机制经历了从最初的“端到端”模式,演变为“预训练”和“微调”两个阶段,这种方法被称为迁移学习。
我个人非常推崇迁移学习,因为它为机器学习提供了清晰的方向。过去,每当解决一个特定问题时,往往需要为其专门开发一个模型。即使是处理两个相似类型的问题,例如区分篮球和足球新闻,传统机器学习也会将其视为完全不同的任务。
在机器学习领域,端到端训练的流程被有效地分为两个阶段。首先,通过对大规模语料的学习,模型获得了一种相对广泛的知识基础,这一过程被称为预训练。接下来,模型会针对特定任务进行微调,以便于运用这项通用知识来解决具体问题。
这种分拆的方式带来了显著的优势,特别是在大规模语料训练下的模型可被重复利用。并非所有企业都有能力去构建这样庞大的模型。通过复用这些模型,中小型企业能够在其特定领域内进行微调,从而创造出更具针对性的商业价值,同时大幅降低人力、物力和时间的投入。
袁进辉:我想进一步指出,当前的大型模型尚未达到极限,未来它们的规模将会不断扩大。以 GPT-3 为例,其参数量已达 1700 亿,但与人类大脑中的神经元连接数量相比,仍然差了 1000 到 10000 倍。
由此可以推测,智能或许并不如我们想象的那样神秘,而只是一个与规模相关的问题,最终大规模的积累将会引发质的飞跃。
另一个观点是,预训练模型的构建在脑科学和神经科学中也有其理论依据。人类的聪明才智既受后天学习的影响,但更大程度上是由基因所决定的。在婴儿出生之前,脑皮层的连接和神经元的生长模式基本上由遗传因素设定。出生后,婴儿通过观察周围的物理世界,神经元之间的连接会因物理信号而调整——一些连接会变得更强,而不常用的连接则可能变得较弱。
这种过程与预训练和微调的模式有着显著的相似性。因此,从某种角度来看,大模型的预训练确实具备生物学的合理性。

肖涵:我对人工智能能力的提升充满信心。然而,基于目前的技术框架,我认为人工智能最终可能难以获得自我意识。
人工智能与自我意识:未来的思考与辩论
然而,我们应当反思,AI 真的需要拥有自我意识吗?
未来五十年,人工智能或许依然没有自我意识,但它却能高效地解决大量复杂问题,远超人类的能力。在那样的情况下,你是否愿意承认这种形式的存在是“智能”呢?
袁进辉:我更倾向于从积极的角度来看待这一现象,AI 的出现能够解放人类的双手,让我们去追求更深层次的目标,这就像蒸汽机使我们摆脱了繁重的体力劳动。
提到这一点,不禁让我想起刘慈欣的小说《朝闻道》,其中描绘了一个设定:地球人能够向外星人提出任何问题,并且外星人将给出答案。但令人痛心的是,询问者在获得答案的瞬间将面临死亡。其中一人问了这样一个问题:宇宙的目的是什么?
外星人对此也无从知晓,结果使其陷入了崩溃。
张鹏:尽管我们被称为“具备自我意识”,但全球范围内仍然有许多人并不清楚自身存在的意义。因此,我认为把自我意识作为衡量标准,可能是一种人类中心主义的表现。
瘦驼:我认为在探讨人工智能时,应考虑多个层面的因素。
人工智能的未来:挑战与思考
首先,我想从哲学的角度切入这个话题。可以说,如果未来的人工智能变得与人类无异,那它必定是一个失败的产物。因为它将继承人类的缺陷以及那些连人类自己都难以理解的逻辑错误。那么,为什么我们还要创造人工智能呢?与其如此,不如直接创造人类来得更为简单。我们开发人工智能的目的,应该是为了解决人类无法解决的问题,这样才能赋予人工智能存在的真正意义。
此外,我还有一些关于应用层面的忧虑。正如几位同仁所提到的,人工智能的脆弱性不容忽视。如果我们对其依赖达到高度,一旦其底层出现问题,将会对我们造成极大的影响。
再来谈谈关于解释性困境的问题。解释性困境的存在,本质上是为了让人类得到某种安慰。即便这个概念本身可能没有实际意义,但它仍然会引起人们的警觉。这种警觉,作为社会性动物的我们,必然会对人工智能的发展产生影响。因此,我们应做好充分准备,以避免这种警惕情绪升级到一个尖锐的地步,那样后果可能会非常严重。
张鹏表示,真正的挑战在于,当今的人工智能仍需完成大量基础工作。我们可以明确的是,人工智能将成为人类未来文明进程中的重要伙伴,但要达到这个目标,它还有很长的路要走。
今天,针对人工智能的讨论,如果能够集中在“避免基础性错误”上,那显然是有意义的。但是,在人工智能能力尚且薄弱的情况下,过度关注“自我意识”等话题,实际上是相当空洞的。
图片


看到AlphaCode的表现让我想,程序员的角色会不会变得更加多样化?