Published on

更多问题

Authors
  • avatar
    Name
    风哥AI

作为对我们原始问题帖的后续,这里是我们认为对下一阶段AI编程最重要的更多问题。

下一步动作预测

Cursor配备了Copilot++,这是一个更智能的助手版本,可以预测您的下一个编辑。我们能否将这个想法推向其自然极限?

在编码时,您不仅仅是进行低熵的_编辑_。在整个编辑器中,您进行低熵的击键、点击、操作。我们能否构建一个模型来低延迟地预测每一个操作?

首先,我们已经扩展了Copilot++以预测您的下一个位置。将其与下一个编辑预测结合,模型可以通过一系列低熵的变化进行推演:

我们按下Tab键11次,其他所有键3次。我们称之为Cursor Flow(显而易见的原因)。

我们正在努力预测您将移动到的下一个文件。您将运行的下一个终端命令。下一个编辑,基于您之前的终端命令!一个下一步动作预测模型

此外,模型应在您需要信息的瞬间提供信息。无论是正确的代码片段还是文档。

Cursor应该让人感觉像是您意志的延伸。当您想到一个更改时,语言模型只需最小的意图即可立即执行。

有前景的方向

  • 在代码库中进行关于_动作预测_的基础研究。
  • 在约5-13B活跃参数代码模型上持续进行预训练和后训练(用于预填充绑定的低延迟预测)。
  • 额外的推理技巧,类似于投机编辑
  • 以非侵入的方式呈现“动作”的巧妙用户体验。(您如何建议用户应该移动到的下一个文件?或者当前视口外的下一个位置?)

完美编辑

我们能否扩大推理时间计算,以产生更高质量、更大规模的编辑?我们如何补偿增加的延迟?

可能需要在_后台_执行编辑。生成一个您可以信任的智能模型的工作单元。

我们需要具有强大编辑器特定工具使用能力的模型,更智能的代码库上下文,以及改进的长期推理能力。

我们如何使异步代码生成_保持流畅_。这听起来像是自相矛盾,但我们相信在模型能力和用户体验方面的巧妙研究可能使这成为可能。

幻想伪代码

我们实现不存在的函数/代码,然后模型在后台为我们创建它们。

用户将编写描述所需更改的伪代码。然后我们可以信任Cursor在后台将伪代码编译成完整的更改。

多文件编辑

Cmd-k已经很棒,但如果您可以请求在整个代码库中进行通用编辑呢?特别是,能够准确跨多个文件?

有前景的方向

  • 扩大推理时间计算。我们知道奖励模型和拒绝采样将显示快速而简单的改进,但我们还能走多远?
  • 更好的推理模型(gpt-5,claude-4,gemini 2.0)
  • 为给定用户工作区运行多个语言服务器/文件系统副本。这将需要模型工具使用和远程重现运行时环境。
  • 在代理轨迹上训练/提高模型性能
  • 在流中异步编辑的重大用户体验实验

最优上下文

可能有数百万个文档标记,数千万个源代码标记,以及数千万个提交历史标记,所有这些标记都可能对解决单个查询有用。

更不用说,您UI中的像素、生产和本地主机中的日志、Slack中的消息等...

我们相信,最佳编码系统将使用检索、重复和长上下文注意力的混合来摄取所有这些信息。

我们强调系统,因为在短期内,这可能是一个模型和基础设施的集合,构成一个无限上下文引擎用于编码。在长期内,我们希望它能融入架构中。

当我们创造性地思考检索的未来时,我们特别兴奋。超越嵌入,考虑到昂贵的索引步骤和便宜的查询步骤(在语料库大小下的次线性),最佳性能可能是什么?

也许它看起来像某种变体。也许完全是其他东西。这是一个未被充分探索的研究方向。

多跳上下文

在我的代码库中,我想计算两个字符串之间的差异。通过嵌入,我得到了这个块:

function computeDiff(
 firstModel: ITextModel,
 secondModel: ITextModel,
): string {
 //...
}

为了满足原始查询,我必须确定如何从字符串创建一个ITextModel。这是一个需要两次跳跃才能解决的查询。

代码库中最困难的问题和查询需要多个跳跃。普通检索仅适用于一次跳跃。

有前景的方向

  • 针对代码库的专门/改进的嵌入和重排序器。
  • 训练多跳嵌入器。给定一个查询和我们迄今为止找到的相关代码,确定下一个要跳转的代码片段。
  • 聪明的前缀缓存,也许还有更适合代码库的自定义注意力掩码。
  • 关于代码库级检索的新颖研究。
  • 教会模型在权重中_学习_代码库,类似于将变压器作为搜索索引。

错误检测与调试

现有的错误检测系统在校准和足够的代码库理解方面存在困难。

模型足够智能,可以正确识别错误,但受到误报的困扰。识别最棘手的错误需要对代码库有更深入的理解。而看似有错误的代码在看到更大图景后可能是良性的。

这种情况可能通过使用语言模型提供更好的代码审查体验来显现:

在AI审查中检测错误

“AI审查”的好处在于用户对误报的容忍度更高,因为他们请求的是审查。缺点是这需要改变用户行为。

AI静态检查

最佳的错误检测版本是一个始终在线的静态检查器,可以在后台捕获您的错误。它需要比AI审查更便宜、更快的模型,因为我们每分钟会运行几次。它还必须调优到较低的误报率。

更智能的调试

也许比错误检测更令人印象深刻的是调试困难问题。

我们需要超越基于LLM的静态分析。例如,我们构建了一个cursor/debug包。当注入到您的代码中时,它跟踪运行时信息。

在后台,我们甚至可以使用它来跟踪额外的变量状态(类似于将相关输出通过Cursor的上下文进行打印调试)。

有前景的方向

  • 聪明的数据集策划(可能是合成数据)和在前沿代码模型上进行强化学习以改善校准。
  • 从其他表面(浏览器或非集成终端)跟踪相关信息。
  • 提高前沿模型在调试器特定工具使用和链上的性能。
  • 无限上下文和近乎完美的代码库理解。
  • 扩大我们的cursor/debug库的范围,以跟踪所有有用的程序状态信息。

如果您对这些问题中的任何一个感兴趣,请与我们联系。