访谈

以色列理工大学教授、Tabnine联合创始人兼联合首席执行官Eran Yahav – 采访系列

mm
将 Unite.AI 添加到您在 Google 上的首选来源

以色列理工大学教授Eran Yahav,Tabnine联合创始人兼联合首席执行官,是一位计算机科学教授,研究领域包括编程语言、机器学习和软件工程,特别是程序综合和大规模代码分析。在学术工作的同时,他联合创立了Tabnine(最初名为Codota),将多年的研究成果应用于实际的开发者工具,帮助开创了AI驱动的代码补全和自动化。他的工作连接了学术界和工业界,重点是使AI生成的代码更加可靠、安全和上下文感知,以适应真实的企业环境。

Tabnine是一个AI驱动的编码平台,旨在整个软件开发生命周期中协助开发者,从编写和调试代码到生成测试和文档。最初作为代码补全工具启动,Tabnine已经演变成一个更广泛的企业级平台,集成了生成式AI和基于代理的工作流程,允许团队自动化复杂的开发任务,同时保持对隐私、安全和合规性的强控制。支持数十种编程语言和跨主要IDE的集成,Tabnine的目标是提高开发者生产力,同时确保AI生成的代码保持可靠和符合组织标准。

您在以色列理工大学花费多年时间研究程序分析和综合,并在IBM研究院工作过。是什么问题在软件开发中说服您联合创立Tabnine,您的学术研究如何塑造了公司最初的愿景?

我的学术工作集中在程序分析和综合上,这基本上是教机器理解和生成代码。我在程序分析领域完成了我的博士学位,并在那里花费了我的前几年应用研究时间。解决软件质量问题时,程序分析使我清楚地认识到,一旦程序被错误地编写,一些问题将非常难以解决。预防比治疗更好,如果您愿意的话,这使我相信解决软件质量问题的正确方法是通过程序综合,这也是我花费大部分研究时间和精力的领域。

我最初在并发程序中使用机器学习进行程序综合,尝试自动从顺序程序创建并发程序,然后我转向更广泛适用的机器学习程序综合。

机器学习程序综合也是Tabnine背后的基本理念。这个想法,现在看来很明显,是模型可以直接从大型代码库中学习编码模式,并在实时中协助开发者。这个一般理念适用于软件开发生命周期的所有阶段,从代码创建到代码审查、部署和更远。我们的愿景一直是通过提供加速开发过程和消除摩擦的工具来增强人类开发者。软件开发是一种创造性和解决问题的学科,目标是让AI消除过程中的摩擦,处理例行任务,并帮助开发者保持专注状态。这个愿景今天仍然指导着我们,尽管技术自那时以来已经有了显著的进步。

Tabnine在OpenAI的模型等生成式AI成为主流之前的几年就开创了AI编码助手。回顾过去,自那时以来软件开发中的AI角色如何演变,行业从第一代编码副驾驶中学到了什么?

最早一代AI编码助手主要专注于预测。它们基本上是高级自动补全系统,帮助开发者更快地编写代码,通过预测下一行或函数来实现这一点。

随着代理循环的出现,AI现在可以处理具有更大自治权的任务,甚至可以被视为具有适当指导的独立初级开发者。

但这也教会了行业一个重要的教训。原始模型能力不足以满足企业软件开发。训练在公共数据上的模型可以产生令人印象深刻的输出,但它们通常缺乏对组织架构、依赖关系和惯例的认识。

这就是为什么下一个演变阶段不仅仅是更大的模型或更大的上下文窗口,而是将这些模型连接到软件构建的实际上下文中。

许多企业正在发现,扩展AI代理需要的不仅仅是更大的模型,还需要更深的组织上下文。您为什么认为上下文正成为可靠AI驱动开发的真正前沿?

软件系统是关系的复杂网络。一个单一的更改可能会影响多个服务、API或下游组件。

今天的AI模型非常擅长生成可信的代码,但它们通常在没有结构化理解这些关系的情况下运行。没有这种理解,AI无法可靠地推理更改的后果。

企业正在发现,AI系统的可靠性取决于它们运行的上下文质量。如果AI系统理解系统架构、服务之间的依赖关系和组织的编码标准,它可以生成更符合实际工作系统的代码。

在这种意义上,上下文正在成为企业AI开发的下一个前沿。

您的新企业上下文引擎旨在为AI代理提供对组织架构、依赖关系和工程实践的结构化理解。这种方法与许多公司当前依赖的检索增强生成等常见方法有何不同?

检索增强生成是一种有用的技术。它允许模型在生成答案时检索相关文档或代码片段。

但检索本身并不创造理解。它提供了信息的访问,但不是结构。

企业上下文引擎的设计更进一步,通过构建软件环境的结构化表示来实现这一点。它分析存储库、服务、依赖关系、API和架构关系,并将它们组织成一个模型,描述系统的实际工作方式。

这使得AI系统能够推理组件之间的关系,而不仅仅是检索文本片段。对于复杂的企业环境,这种区别变得非常重要。

您如何看待未来五年中人类开发者和代理系统之间的平衡变化?

AI代理将越来越多地承担例行开发任务。它们已经能够从头到尾实现功能,包括测试和文档。每个开发者都将成为AI开发者的团队负责人。主要挑战将是向这个团队传达要求并验证生成的工件是否符合概述的要求。

然而,软件开发本质上是关于问题解决和设计。人类开发者将继续定义架构、做出权衡和指导系统的整体方向。

会发生变化的是开发者工作的抽象层次。开发者将不再关注代码,而是越来越多地编排更高层次的工作流程,并与能够执行这些工作流程部分的AI系统合作。

换句话说,开发者的角色变得更加战略,而AI处理更多的机械工作。

Tabnine表示,企业用户可以在某些环境中看到AI生成的代码接受率达到80%。组织应该使用哪些指标来确定AI编码工具是否真正提高了开发者生产力,而不是仅仅生成更多代码?

关键问题不是AI生成了多少代码,而是它实际产生了多少有用的工作。

组织应该跟踪几个指标。一个是首次接受率,即AI生成的代码可以在不修改的情况下使用的频率。另一个是审查周期时间,即在可以合并拉取请求之前需要多少次迭代。

组织还应查看开发人员在返工上花费的时间,以及从开发到生产的变更时间。

如果AI工具真正提高了生产力,您应该会看到这些指标的改善。开发人员花费的时间更少用于修复生成的代码,更多用于高价值任务。

企业仍然对将专有代码暴露给外部模型持谨慎态度。所谓的“可信AI编码”概念如何解决由于安全、治理和合规问题而减缓企业采用AI开发工具的顾虑?

信任是企业采用AI的最重要因素之一。

信任是实现AI工程师的最终挑战。我们如何信任AI工程师自主地完成关键的软件工程任务?我们如何确保其行为符合我们的质量、安全和合规性期望?如果AI工程师要成为我们工程团队中被接受的成员,它必须像我们的经过严格审查和适当入职的同事一样值得信赖。

解决这个挑战依赖于两个关键支柱:

  • 个性化:为AI工程师提供对贵组织、代码库和最佳实践的深入理解。
  • 控制:实施健全的系统,以确保AI生成的代码和人类编写的代码都符合贵组织的质量、安全、性能和可靠性标准。

此外,可信AI编码意味着为组织提供对AI部署的控制,并确保集中治理和控制。

您曾经建议,组织上下文可能会成为企业AI堆栈的基础层,类似于数据库或云基础设施在以前的计算时代。这种未来架构是什么样的?

如果您查看企业技术的演变,我们经常看到新的基础设施层出现。

数据库成为管理数据的基础。云平台成为在大规模运行应用程序的基础。

在AI时代,组织将需要能够让AI系统理解企业内部结构的基础设施,包括其系统、关系和运营约束。

该基础设施层将为多个AI系统提供结构化的上下文,用于理解系统的实际工作方式。

在这种意义上,上下文成为企业AI的共享基础。

许多公司正在紧密地将编码助手与单个基础模型绑定。Tabnine允许企业根据需要连接不同的模型。为什么模型灵活性对企业AI开发工具的长期演进如此重要?

AI生态系统正在迅速演变。新模型发布频繁,不同模型通常在不同领域具有优势。

企业不应该因为模型景观的变化而需要重新设计其开发工作流程。通过允许组织选择和切换模型,我们提供了有助于未来证明其AI战略的灵活性。

模型灵活性还允许组织在性能、成本、隐私要求和部署约束之间取得平衡。

从长远来看,企业可能会在多模型环境中运行,并且开发平台应该被设计为考虑到这一现实。

对于今天正在评估AI开发平台的CTO和工程领导者,组织在部署AI编码工具时最常犯的错误是什么,他们如何避免这些错误?

一个常见的错误是仅仅关注模型能力。更大的模型绝对是关键组件,但在真实的环境中可靠性取决于AI对系统的理解程度。

另一个错误是部署AI工具而不考虑治理和安全要求。企业需要围绕代码访问、模型部署和输出验证制定明确的政策。

最后,组织有时期望AI能够在不适应工作流程或提供足够上下文的情况下立即带来生产力收益。成功的部署通常涉及将AI集成到现有的开发流程中,并将其连接到组织的代码和架构中。

当这些元素结合在一起时,AI可以成为软件开发的强大加速器,而不仅仅是另一个工具。

感谢您接受这次精彩的采访,希望了解更多的读者可以访问Tabnine

安托万是一位具有远见的领导者和Unite.AI的联合创始人,他对塑造和推广人工智能和机器人技术的未来充满热情。作为一位连续创业者,他相信人工智能将对社会产生电力的影响一样的颠覆性影响,并经常对颠覆性技术和通用人工智能的潜力大加赞扬。

作为一位未来学家Securities.io的创始人,这是一个专注于投资尖端技术的平台,这些技术正在重新定义未来并重塑整个行业。