Connect with us

访谈

Itamar Friedman,CodiumAI 的 CEO 和联合创始人 – 采访系列

mm

Itamar Friedman 是 CodiumAI 的 CEO 和联合创始人。Codium 专注于代码生成的“代码完整性”方面,生成自动化测试、代码解释和审查。他们已经发布了关于生成竞争性编程挑战的代码解决方案的研究,这些解决方案甚至超过了 Google DeepMind 的表现。

您最初是什么时候以及如何对 AI 产生了兴趣?

2009 年,我在 Mellanox (被 NVIDIA 收购) 工作,并学习电气工程。意识到 Mellanox 中的许多繁琐的开发过程可以通过机器学习算法来自动化,我改变了我的专业,转向优化和机器学习,并在这个领域完成了硕士学位。到 2010 年,我已经在从事一个深度学习项目(具有 3 层深度神经网络),为我在 Alibaba 的工作奠定了基础,在那里我领导了一个专门从事神经架构搜索、训练模型和为开发人员构建 AutoML 工具的研究小组。到了 2021 年,我不再羞于将我们的工作称为“AI”,因为大型语言模型已经成为强大的工具,我对它们能够实现的可能性也越来越广阔。

您的前一家计算机视觉专注的初创公司 Visualead 最终被 Alibaba 集团收购,您可以告诉我们这家初创公司的故事以及您从这段经历中获得的主要收获吗?

Visualead 专门从事扫描标志、QR 码和其他相关事项,包括在图像中安全地隐藏信息,以便于点对点交易和参与。我们从 2012 年开始就在移动设备上运行算法,包括模型。那个时候这样做很有挑战性,我们从中学习了很多关于构建高效模型和围绕这些统计模型建立防护措施的知识。

直到今天,我仍然将那段时间学到的经验应用于我目前的项目。例如,当我们构建开源解决方案生成工具 AlphaCodium 时,我们引入了流程工程的概念,并将其应用于构建流程来防护 LLM 模型的输出。

您能分享一下启动 CodiumAI 的起源故事吗?

在 Alibaba,我亲眼见证了代码中的一个 bug 可能导致一百万美元的问题,以及开发人员在保持代码质量和完整性的同时面临的挑战。这个问题仍然存在,今天低质量的代码已经被归咎为一个日益增长的万亿美元问题。

CodiumAI 团队专门从事构建大规模的 AI 驱动工具,并致力于解决开发人员面临的痛点。随着新一代 LLM 和 AI 能力的出现,我们理解这是我们建立一个全面的代码完整性平台的机会,以帮助像我们一样繁忙的团队减少 bug 和缓解其他完整性问题。随着更多代码由 AI 生成,benchmark 这些代码并确保它们按预期工作的能力成为一个关键的痛点,也是我们渴望解决的问题。构建大规模的 AI 驱动工具,并因此进行 benchmark,是我们的一个基本概念。

作为一群经验丰富的开发人员,我们深刻理解处理诸如测试和代码审查等繁琐任务的挫败感。我们非常有动力,最终使繁忙的团队能够提高和管理他们的代码完整性。

您能描述一下 CodiumAI 对代码执行的非平凡分析类型,以及这如何支持开发人员提高代码质量吗?

直到最近,现有的工具为开发人员提供的价值很小,但随着 LLM(ChatGPT、Copilot 等)能力的到来,支持开发人员的能力开始超出预期。

由 CodiumAI 开发的 Codiumate 编码代理为开发人员提供了独特的工具来提高他们的工作流程和增强代码生成。Codiumate 通过提供自动化的帮助来简化开发过程,在整个编码任务中。使用人类开发人员在其环境中突出显示的现有代码片段,代理可以自动草拟一个易于遵循的连贯开发计划,根据该计划编写代码,识别开发人员可能想要使用或删除的重复代码,草拟文档,并建议测试以确保代码在部署到生产环境之前正常工作。

Codiumate 为开发人员提供了对代码行为的深入分析,阐明了代码可能的行为和分支。这使得开发人员能够检查生成的代码并创建涵盖所有行为的测试,从而比开发人员自己处理所有可能的情况更有效地提高代码质量。

PR 代理提供了哪些特定的功能来分析拉取请求,并如何简化 GitHub 和 GitLab 等平台上的审查过程?

PR 代理提供了一系列功能,旨在增强和简化拉取请求(PR)分析和审查过程,适用于各种 Git 提供商。

自动 PR 描述生成自动为拉取请求生成全面详细的描述。该功能解决了开发人员可能由于时间限制或疏忽而省略详细 PR 描述的问题。通过自动描述,每个 PR 都配备了足够的上下文,使审查者更容易理解更改,而无需广泛地解读代码差异。

我们还构建了自动 PR 审查,以提供开发人员对 PR 的全面概述,允许他们提前发现潜在问题,例如 bug、安全漏洞或代码异味。这种预防性反馈使开发人员能够在审查过程开始之前进行更正,从而提高到审查者的代码质量。

利用 AI,自动代码建议也可以直接在 PR 界面中建议改进或替代实现,帮助提高代码库的质量。

PR 代理支持许多自定义命令的选项。其中最有用的自定义选项之一是使用自定义标签来增强 GitHub 和 GitLab 等平台上拉取请求的组织和管理。该功能有助于开发和审查过程的运营效率和清晰度。

CodiumAI 如何生成有意义的测试,以及这些测试与标准单元测试相比有什么优势?

我们通过扫描代码仓库中与代码-under-测试相关的代码片段来增强测试生成。使用链式思维提示来绘制所有潜在的代码行为,包括典型路径和边缘情况,我们的方法使用上下文特定的获取和针对不同编程语言量身定制的提示,结合语言领域专家知识以确保测试达到行业标准。另外,CodiumAI 设置特定的运行时环境,以更好地检测 bug 和生成自愈测试。这些功能使 CodiumAI 生成的测试比标准单元测试更全面,因为开发人员固有的偏见和预见所有可能场景的局限性往往会导致标准单元测试忽略意外行为。

根据用户反馈,CodiumAI 的最有价值的功能是什么,以及这些功能如何影响开发人员的生产力?

根据我们收到的用户反馈,我们看到 Codiumate 代理的 /ask with code block context/test generation 功能备受青睐,并提高了开发人员的工作流程。

使用 /ask with code block context(见文档:/ask),开发人员可以就其代码提出开放性问题或请求代码改进或审查,所有这些都可以在免费聊天会话中完成。该功能特别有助于更深入地理解代码库,因为模型保留了项目的全部上下文,能够处理高度详细和特定的查询。

/test generation(见文档:/test)工具允许开发人员只需单击一下即可为其代码生成全面测试套件。探索代码行为、识别和及时解决 bug 以及快速扩展代码覆盖是生产力的巨大资产。

PR 代理的 /review(见文档:/review)功能扫描 PR 代码更改并自动生成 PR 审查,以便在开发人员将代码推送到生产环境之前捕获问题。

/describe(见文档:/describe)功能扫描 PR 代码更改并生成 PR 的描述,包括标题、类型、摘要、演练和标签,节省了开发人员的时间和精力,使他们能够将这些时间和精力投入到更具挑战性或创造性的任务中。

CodiumAI 如何识别代码中的边缘情况和可疑行为?

我们的工具扫描开发人员的仓库以查找与代码-under-测试相关的相关代码片段,并使用链式思维提示来绘制所有可能的代码行为,并将其显示给开发人员。CodiumAI 可以直接识别可疑行为(无论测试生成如何),方法是识别代码片段之间或代码片段和伴随文档之间的不一致或不一致。

CodiumAI 支持主要编程语言;您能详细说明它如何处理代码分析和测试生成中的语言特定细微差别吗?

对于主要编程语言,我们的平台通过实施专门的技术超越了基本支持。这些技术包括针对每种语言独特的语法和语义量身定制的上下文特定获取和提示。这些定制提示结合了语言领域专家的知识,以获得行业级别的结果。另外,我们提供了建立特定于这些语言的运行时环境的能力,这增强了我们的工具检测 bug 和生成自愈测试的能力。

对于较少使用的语言,我们利用了大型语言模型(LLM),这些模型天然地理解多种编程语言。这得到了我们的一般上下文基础设施和自适应提示系统的补充,这些系统共同促进了准确的代码分析和测试生成,适用于多种编程环境。通过采取双层次的方法,我们可以确保对各种编程语言的全面支持。

计划为 CodiumAI 添加哪些未来增强功能,以进一步支持和简化开发人员的任务?

CodiumAI 的未来发展战略强调了增强现有的 AI 工具套件,以便在软件开发生命周期的所有阶段无缝集成。通过采用高级流程工程原则来简化和流程化开发人员的工作流程,我们的代理将在不同开发阶段提供显著的价值。另外,CodiumAI 致力于确保这些工具在处理复杂的现实世界代码和文本场景时表现出色,使它们成为日常编程任务中不可或缺的工具。这种整体方法旨在提升我们的产品作为开发人员日常使用的强大工具,提高生产力和效率的能力。

感谢这次精彩的采访,希望了解更多的读者请访问 CodiumAI

安托万是一位具有远见的领导者和Unite.AI的创始合伙人,他被对塑造和推广AI和机器人人的未来充满不动摇的热情所驱动。作为一位连续创业者,他相信AI将对社会产生与电力一样的颠覆性影响,他经常被听到对颠覆性技术和AGI的潜力大加赞赏。

作为一位未来学家,他致力于探索这些创新将如何塑造我们的世界。另外,他也是Securities.io的创始人,这是一个专注于投资于重新定义未来和重塑整个行业的尖端技术的平台。