Program synthesis strives to generate a computer program as a solution to a given problem specification, expressed with input-output examples or natural language descriptions. The prevalence of large language models advances the state-of-the-art for program synthesis, though limited training resources and data impede open access to such models. To democratize this, we train and release a family of large language models up to 16.1B parameters, called CODEGEN, on natural language and programming language data, and open source the training library JAXFORMER. We show the utility of the trained model by demonstrating that it is competitive with the previous state-of-the-art on zero-shot Python code generation on HumanEval. We further investigate the multi-step paradigm for program synthesis, where a single program is factorized into multiple prompts specifying subproblems. To this end, we construct an open benchmark, Multi-Turn Programming Benchmark (MTPB), consisting of 115 diverse problem sets that are factorized into multi-turn prompts. Our analysis on MTPB shows that the same intent provided to CODEGEN in multi-turn fashion significantly improves program synthesis over that provided as a single turn. We make the training library JAXFORMER and model checkpoints available as open source contribution: https://github.com/salesforce/CodeGen.
翻译:以投入-产出实例或自然语言描述来表示,大型语言模型的普及程度提高了用于方案合成的先进水平,尽管有限的培训资源和数据妨碍了开放使用这种模型。为了实现这一点民主化,我们培训和释放一个拥有16.1B参数的大语言模型的大家庭,称为CODEGEN,关于自然语言和编程语言数据,以及培训图书馆JAXFORMER的公开来源。我们展示了经过培训的模型的效用,展示了该模型与之前的零发Python代码生成人文的先进工艺相比具有竞争力。我们进一步调查了方案合成的多步模式,其中将一个单一方案纳入多个提示性参数,具体说明子问题子。为此,我们建立了一个公开基准,即多发式规划基准,由115个不同的问题集组成,并纳入多转速度提示。我们对MTPB的分析表明,以多转式模式向CODEGEN提供的相同意图大大改进了作为单一来源的AFORA/FORA/ODFA/ODFRANSLA/FORG 。我们建立了一个单一来源。