生成AIによってプログラミングの自動化が実現できるか


生成AIの活用によって、これまで困難だった人間と機械の自然言語によるコミュニケーションが容易くできるようになっています。ビル・ゲイツ氏は、「携帯電話やインターネットと同じくらい革命的であって、人々の働き方や学び方、旅行の仕方、医療の受け方、そしてコミュニケーションの仕方を変えるでしょう」とコメントしています[1]。実際に、GAFAMのいずれも生成AIに対して積極的な態度を示しています。そして、マッキンゼー社の予測では、2030年まで米国現在の労働時間の30%が自動化されます[2]。プログラミング作業の一部も、自動化を実現できると思われています。

プログラミングの自動化は、お客様の要望をスピーディーに弊社製品に反映することに繋がるため、現状の生成AIを使ってどこまで実現できるのかについて、弊社はいち早く調査・検証しました。本記事にてご紹介します。

マッキンゼー社の調査結果

マッキンゼー社の調査[3]によると、生成AIを使用した開発者は、最大2倍の速さでコーディングタスクを完成します。具体的に、ドキュメントの作成と新規コード作成での効果が最も大きく、作業時間はほぼ半減されます。そして、コードのリファクタリング(構造や可読性の改善作業)は、2~3割の工数削減効果を示しています。ただし、複雑さの高いタスクの場合は、効果は10%未満となり、若手開発者はむしろ7~10%悪化することになります。

プログラミング自動化製品の比較

本記事執筆時点で最も活用されているGithub CopilotとAmazon CodeWhisperに焦点を当てて比較しました。以下にまとめます。

  1. 利用料金:組織で利用する場合はいずれも1ユーザーあたり$19/月です。
  2. サポート言語:Copilotはパブリックリポジトリで学習しているため、ほぼ全ての言語をサポートしています[4]。ただ、パブリックリポジトリであまり使われていない言語の場合は、生成される候補の信頼度が低下することがありそうです。これに対して、CodeWhisperは合計15種類の言語[5]しかサポートしておらず、HTML/CSSもサポートされていないため、弊社の利用としてはやや不便です。
  3. AIエンジン:CopilotはGPT3ベースです。CodeWhisperは未公開です。
  4. 独特な機能:CodeWhisperはソースコードの脆弱性チェック機能がついています。

CodeWhisperはHTML/CSSをサポートしていない、かつ日本語へのサポートが少し弱いとの声もある[6]ことから、Github Copilotを調査対象としました。

Gihub Copilotを試してみて気付いたこと

Copilotを利用すると、コメントや関数名を入力するだけで、それを補完できるような複数の候補を自動的にサジェストしてくれます。待ち時間も短めです。

生成コードの精度については、そのまま動作する部分もありますが、概ね人間のチェックが必要な感触です。ただし、CSSの属性や常用関数などはその場ですぐに生成されるため、グーグルで検索する時間が減り、より開発に集中できるようになります。生成コードの規模感に関しては、1行レベルの候補もあれば、ウェブサイト全体レベルの候補もあります。コメントの書き方で影響を加えられるが、コードの規模をコントロールすることが難しいのです。

Copilotを利用するときの機密性については、自社のソースコードは学習に勝手に使われないように設定することが可能です。そして、パブリックリポジトリに自動的にマッチングし、ライセンス問題のあるコードを回避することも可能です。ただ、ソースコードはGithubの海外サーバーに送信されるため、セキュリティポリシーと照らし合わせて利用することが重要と思われます。

まとめ

Copilotは機密性を含め、様々な課題が残るものの、生成AIの発展によって解決されるものだと、筆者は信じています。将来は、AIとペアして仕事するのは常識になるのではないかと思います。

弊社は、生成AIの技術を積極的に製品に取り込んでいます。2023年度11月に開催される「コールセンター/CRM デモ&コンファレンス in 東京[7]」で詳細にご紹介しますので、興味をお持ちの方はぜひご来場ください。
弊社の出展情報はこちらをご覧ください。

参考:

[1]https://www.gatesnotes.com/The-Age-of-AI-Has-Begun
[2]https://www.mckinsey.com/mgi/our-research/generative-ai-and-the-future-of-work-in-america
[3]https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/unleashing-developer-productivity-with-generative-ai
[4]https://docs.github.com/ja/copilot/overview-of-github-copilot/about-github-copilot-for-individuals
[5]https://docs.aws.amazon.com/codewhisperer/latest/userguide/language-ide-support.html
[6]https://developers.play.jp/entry/2023/05/12/131023#Amazon-CodeWhisperer-1
[7]https://www.callcenter-japan.com/tokyo/