Type-constrained code generation with language models
a year ago
- #code generation
- #machine learning
- #type systems
- 大语言模型(LLMs)在代码生成方面取得成功,但由于缺乏形式化代码建模,常产生无法编译的输出
- 约束解码技术曾用于领域特定语言或语法特征,但在通用编程语言中难以处理类型错误
- 本文提出类型约束解码方法,利用类型系统引导代码生成并强制类型正确性
- 开发了新型前缀自动机和可居住类型搜索机制,确保LLM生成代码的类型健全性
- 该方法首先在简单类型语言上形式化,后扩展至TypeScript以增强实用性
- 基于HumanEval和MBPP数据集的评估表明,该方法使编译错误减少超50%,并提升功能正确性
- 该技术在不同规模LLM(包括参数量超300亿的模型)和模型家族中均表现有效
- 研究结果证明了用形式化类型系统规则约束LLM代码生成的普适性与有效性