人工智能崛起编程难度高 普通AI开发者将成香饽饽
根据Forbes.com的说法,从在FORTRAN中穿孔卡片到在Go中编写分布式系统,这门学科基本上保持相同的思维:深入思考问题,并提出一种巧妙的方法(即算法)来为机器提供一组执行指令。
这种方法可以被称为“显式编程”,从大型机到智能手机,从互联网热潮到移动革命,这种编程都是不可或缺的。它促进了一个全新市场的诞生,并让苹果、微软、谷歌、脸书和其他公司家喻户晓。
然而,仍然缺少一些东西。早期计算机时代作家设想的智能系统,如菲利普·迪克的《银翼杀手》中的机器人出租车和乔治·卢卡斯的《星球大战》系列中的C-3PO机器人,仍然是科幻小说的内容。看似简单的任务顽固地拒绝最有才华的计算机科学家设计的自动化方法。专家指责硅谷在面临这些挑战的同时,回避在这些基本问题上的进展,而是专注于增量或受欢迎的业务。
当然,这将会改变。Waymo的自动驾驶汽车最近完成了800万英里的道路测试。在将中文翻译成英文的任务中,微软的翻译引擎几乎和人类翻译一样准确。初创公司不断在智能助理、工业自动化和欺诈检测等领域取得新的突破。
这些新技术有望从不同方面影响我们的日常生活。总的来说,它们代表了我们对软件开发的看法的巨大变化,这显然不同于显式编程模式。
这些进步背后的核心突破是深度学习,一种受人脑结构启发的人工智能技术。它最初是一个相对狭窄的数据分析工具,现在几乎扮演了通用计算平台的角色。在广泛的任务中,它的性能优于传统软件,这可能最终导致智能系统的出现,而这对于计算机科学家来说是很难实现的。媒体有时会夸大人工智能技术的前景。
然而,在对深度学习的大肆宣传中,许多观察家忽略了对其未来持乐观态度的最大理由:深度学习要求程序员编写非常少的实际代码。深度学习系统不依赖于预设规则,而是根据过去的例子自动编译规则。软件开发人员只需要创建一个“粗略的框架”,然后让计算机完成剩下的工作。例如,特斯拉聘请了安德烈,一个深入学习和计算机视觉专家?安德烈·卡帕斯只是想让他将深度学习技术融入自动驾驶业务。
在这个新世界中,开发人员不再需要为每个问题设计独特的算法。相反,大部分工作集中在生成反映所需行为和管理培训过程的数据集上。谷歌张量流团队的彼得?皮特·沃登早在2014年就指出了这一点:他写道,“我过去是一名程序员,现在我教计算机编写自己的程序。”
今天,推动最重要软件进步的编程模型不需要很多实际编程。
这对软件开发的未来意味着什么?
编程和数据科学将日益融合。在可预见的未来,大多数软件将不会采用“端到端”的学习系统,而是依靠数据模型来提供核心认知能力和清晰的逻辑来与用户互动和解释结果。人们会越来越多地问一个问题:“我应该用人工智能还是传统方法来解决这个问题?”事实上,智能系统的设计者需要精通两者。
人工智能从业者将成为热门人才。人工智能技术很难发展。普通人工智能开发者将成为未来软件公司最有价值的资源之一。对于传统的程序员来说,这确实有点讽刺。自20世纪50年代以来,他们已经自动化了其他行业的工作,但现在他们自己的工作已经部分自动化了。对他们工作的需求肯定不会减少,但那些想保持领先地位的人必须以适度的怀疑态度测试人工智能。
我们需要建立一个人工智能工具链。Lyft的机器学习主管吉尔·阿迪提(Gil Arditi)非常清楚地阐述了这个问题。他说,“机器学习还处于初始阶段。它类似于20世纪80年代初或70年代末的数据库。你必须成为一名全球专家,才能让它们正常工作。”研究还表明,许多人工智能模型很难解释,容易被欺骗,容易有偏见。为了发掘人工智能开发者的潜力,掌握解决这些问题的工具是非常必要的。
我们都需要接受不可预测的行为。开发者和用户已经习惯了计算机“指令”的隐喻。“指令”强化了这样一种信念,即计算机完全遵循我们的指令,输入总是产生大致相等的输出。相比之下,人工智能模型就像活的呼吸系统。新工具将使它们更像显式编程,特别是在关键的安全设置中,但是如果我们把限制设置得太紧,我们将面临失去这些人工智能系统的特殊价值的风险,比如AlphaGo的意外举动。当我们开发和使用人工智能应用程序时,我们需要理解和接受各种概率结果。
人们希望人工智能接管世界的可能性接近于零。