访谈

CodiumAI 首席执行官兼联合创始人 Itamar Friedman – 采访系列

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

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

您最初是如何对 AI 感兴趣的?

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

您的之前的计算机视觉初创公司 Visualead 最终被阿里巴巴集团收购。这个初创公司是什么,它给您带来了哪些关键的经验教训?

Visualead 专门从事扫描标志、QR 码和其他图像,包括在图像中安全地隐藏信息,以便于点对点交易和互动。我们从 2012 年开始就在移动设备上运行算法,包括模型。那个时候这样做很有挑战性,我们从中吸取了很多关于构建高效模型和防止这些统计模型出错的经验。

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

您能否分享一下推出 CodiumAI 的起源故事?

在阿里巴巴,我亲眼目睹了代码中的一个 bug 如何导致一百万美元的问题,以及开发人员在保持代码质量和完整性的同时面临的挑战。这个问题仍然存在,今天,低质量的代码已经被归咎为一个价值一万亿美元的问题,并且继续增长。

CodiumAI 团队专门从事构建大规模的 AI 驱动工具,并致力于解决开发人员面临的痛点。随着新的大型语言模型和 AI 能力的出现,我们意识到这是我们构建一个全面的代码完整性平台的机会,以帮助像我们一样忙碌的团队减少 bug 和缓解其他完整性问题。随着越来越多的代码由 AI 生成,benchmark 这些代码并确保它们按预期工作的任务变得至关重要,我们也致力于解决这个问题。构建大规模的 AI 驱动工具和 benchmark 是我们的一个基本概念。

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

CodiumAI 对代码执行哪些类型的非平凡分析,并且如何支持开发人员提高代码质量?

直到最近,开发人员可用的工具提供的价值很小,但随着大型语言模型(如 ChatGPT、Copilot 等)的出现,能力开始超过预期,开发人员可用的支持也不再平凡。

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

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

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

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

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

利用 AI,自动代码建议还可以直接在拉取请求界面中建议改进或替代实现。这些建议可以是优化、遵循编码标准,甚至是架构增强,帮助提高代码库的质量。

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

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

我们通过扫描代码仓库以查找与代码相关的相关代码片段来增强测试生成。使用链式思维提示来绘制出所有可能的代码行为,包括典型路径和边缘情况,我们的方法利用上下文特定的获取和针对不同编程语言定制的提示,结合了专家知识以确保测试达到行业标准。另外,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 如何识别代码中的边缘情况和可疑行为?

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

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

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

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

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

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

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

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

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