
要約
自然言語による記述から自動的にコードを生成することは、ソフトウェア開発プロセスにおいて極めて有益な手法である。本研究では、Pythonの構文的制約および意味的制約に基づいた、ガイド付き自動Pythonコード生成手法であるGAP-Genを提案する。まず、抽象構文木(Abstract Syntax Tree: AST)の簡略化版として、構文フロー(Syntax-Flow)と呼ばれる構文制約を導入する。構文フローは、ASTのサイズと高複雑性を低減しつつ、Pythonコードの重要な構文情報を保持するものである。さらに、コード全体にわたって変数名および関数名を一貫して抽象化する変数フロー(Variable-Flow)を導入する。本研究では、事前学習(pretraining)に焦点を当てるのではなく、微調整(finetuning)プロセスの改良に注力することで、計算リソースの削減を実現しつつ、自動Pythonコード生成タスクにおける高い生成性能を維持している。GAP-Genは、EdinburghNLPが提供するCode-to-DocstringデータセットであるCodeSearchNet、CodeSearchNet AdvTest、およびCode-Docstring Corpusを用いて、Transformerベースの言語モデルT5およびCodeT5を微調整する。実験の結果、GAP-Genは従来の手法と比較して、自動Pythonコード生成タスクにおいて優れた性能を達成した。