摘要
大型语言模型已成功应用于编程辅助任务,如代码补全、代码插入和指令代码编辑。然而,这些应用的自动化程度仍然不足,在编程过程中难以有效整合各种类型的信息,包括编码历史、当前代码和用户指令。在这项工作中,我们提出了一种新的对话框架,该框架全面整合了这些信息来源,收集数据以训练我们的模型并评估其性能。首先,为了全面评估模型与不同类型信息的一致性及其输出质量,我们引入了一个新的基准 APEval(辅助编程评估),以全面评估模型在编程辅助任务中的性能。然后,为了数据收集,我们开发了一个数据生成管道 Programming-Instruct,它从 GitHub 和在线裁判平台等不同来源合成训练数据。该管道可以自动生成编程过程中各种类型的信息。最后,利用该管道,我们生成了 219K 个样本,微调了多个模型,并开发了 CursorCore 系列。我们证明了 CursorCore 优于其他同等规模的模型。该框架统一了内联聊天和自动编辑等应用程序,有助于推动编码助手的发展。代码、模型和数据可在 https://github.com/TechxGenus/CursorCore 免费获取。