AIが書いたコードの品質向上目指す–マイクロソフトの「Jigsaw」プロジェクト
今回は「AIが書いたコードの品質向上目指す–マイクロソフトの「Jigsaw」プロジェクト」についてご紹介します。
関連ワード (ソフトウェア等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Microsoftによると、機械が自動生成したコードは「楽観的な見方と警戒心」をもって取り扱われるべきだという。その理由として同社は、大規模な言語モデルによってプログラミングの自動化が可能であるとはいえ、生成されたコードは必ずしも信頼できるわけではないという点を挙げている。
大規模な訓練済み言語モデルの実例として、OpenAIの「OpenAI Codex」や、Googleの自然言語処理モデル「BERT」、DeepMindのコード生成システム「AlphaCode」などがある。なお、2021年8月にプライベートベータ版がリリースされたCodexは、Microsoft傘下にあるGitHubの「GitHub Copilot」で利用されている。
Microsoftのリサーチャーらは、これらの言語モデルによって生み出されるコードの品質面での課題に取り組むために「Jigsaw」というツールを開発した。このツールは、「プログラムのシンタックスやセマンティクスを解釈した上で、ユーザーからのフィードバックを活用して将来的なパフォーマンスを向上させるというポストプロセッシング技法」を用いることで、これらモデルのパフォーマンス向上を図るものだという。
Microsoftによると同ツールは現在のところ、マルチモーダル入力を用いて「pandas」のAPI用コードを生成するよう設計されているという。pandasは、プログラミング言語Pythonを使用しているデータサイエンティスト向けの、人気の高いデータ操作/分析用ライブラリーだ。
Codexのような言語モデルでは、開発者による英語での説明をコード片に適用することができるため、同モデルは意図通りのコードをPythonやJavaScriptなどの言語で生成できる。しかしMicrosoftによると、生成されたコードは誤っているかもしれず、コンパイルや実行に失敗するかもしれないため、使用にあたっては開発者側でコードをチェックする必要があるという。
Microsoft ResearchのJigsawチームは、「われわれはJigsawプロジェクトにおいて、こうしたチェック作業を自動化し、Codexのような大規模言語モデルを使用してコードを生成している開発者の生産性を向上させたいと考えている」と説明している。