论文
Hydra:以检查点和回滚支持高效代码生成修复
Hydra: Efficient, Correct Code Generation via Checkpoint-and-Rollback Support
摘要
大语言模型 越来越多地用于代码生成,但许多生成的程序无法编译,这是进一步正确性检查(例如单元测试)的先决条件。现有的修复静态错误的解决方案在延迟和词元消耗方面都代价高昂。事后修复会延迟错误检测,直到生成完成,并且通常会重新生成先前有效代码的大区域。在每个词元之后进行受约束的语义解码检查,从而产生每个词元的开销,同时限制对当前词元的修复,即使根本原因较早也是如此。我们推出了 Hydra,一个用于在代码生成期间有效恢复静态错误的系统。 Hydra 允许检查与生成异步进行,从而在生成的代码语义正确时避免检查器开销。此外,它还为有针对性的修复提供检查点和回滚支持,避免重新生成和重新检查有效前缀。我们改进了 Clang C/C++ 编译器,通过适度的修改来支持 Hydra。与词元高效的修复策略相结合,相对于遇到静态错误的 C/C++ 代码生成任务的事后修复,Hydra 可将延迟最多减少 71%,词元消耗最多减少 70%。