近年TransformerというPythonの自然言語処理系ライブラリが公開されたことで、それを基盤としたGPT-3をはじめとした文章生成言語モデルが多くの企業で公開されるようになりました。
このライブラリはその膨大なモデルサイズから、チャットボットのような文脈に沿ったコミュニケーションが必要な機能においても既存のモデルにない性能を誇っていることで注目されています。
その適用範囲は対話のみならず、自然言語のプログラムコードへの変換にも応用できることが以前から言及されていました。それを可能にするサービスとして公開されたのが、OpenAIのcodexやGitHubのcopilotになります。
例えば以下の画像はVScodeにcopilotを導入した時の例です。1行目のコメントに英語で「円周率を求める関数」の説明を入れています。
そして「def process」とPythonの関数記述の際の文法を入力すると、続きの処理が丸ごと提案されます。この関数を実行してみると。
このように実際に円周率が計算されていることがわかります(この例では8桁までの計算精度)。
プログラミングでは実装したい目的の処理を実際のプログラムコードに置き換えることが、入門者にとって大きな壁と言われています。そのような時にこの予測機能は補助として有用だと考えられます。
さらに上記の例ではPythonの場合を説明していますが、他にもJavaScript・TypeScript・Ruby・Goでうまく機能するとリファレンスには記述があります。未経験の言語を習得する際の補助としても有用です。
本レシピではcopilotの申請方法からVScodeへの導入方法、実際の関数自動生成までを解説します。