PLAY DEVELOPERS BLOG

HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。

HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。

GitHub Copilot と Amazon CodeWhisperer の違いを比較:AIによるコード生成サービスの性能を検証する!

こんにちは。プラットフォーム技術部開発第2グループの髙嶋です。

最近、AIを使ったサービスが急に目立つようになってきました。 皆さんも何らかのAI系サービスを使ったことがあるのではないでしょうか。

今回はAI系サービスの中から、GitHub CopilotとAmazon CodeWhispererに焦点を当てて、 それぞれのサービスの特徴・違いについて比較していきます。

それでは早速GitHub CopilotとAmazon CodeWhispererの概要についてみていきましょう。

GitHub Copilotとは

GitHub Copilot - Wikipedia

GitHub Copilot(ギットハブ・コパイロット)は、GitHubとOpenAIが開発したクラウド型人工知能ツールであり、コンピュータプログラム(コード)の自動補完によって、Visual Studio Code、Visual Studio、Neovim、JetBrainsの各統合開発環境(IDE)のユーザーを支援する

Amazon CodeWhispererとは

How Accenture is using Amazon CodeWhisperer to improve developer productivity | AWS Machine Learning Blog

Amazon CodeWhispererは、自然言語によるコメントと統合開発環境(IDE)内のコードに基づいて推奨コードを生成し、開発者の生産性を向上させるAIコーディングコンパニオンです。CodeWhispererは、IDEとドキュメントや開発者フォーラムとの間のコンテキストスイッチを減らすことで、コーディングタスクの完了を加速させます。CodeWhispererによるリアルタイムの推奨コードにより、IDE内で集中力を維持し、コーディング作業をより速く完了させることができます。

いずれもIDEユーザーに対してコード補完機能を提供し、 コーディング支援をしてくれるとありますね。 ちなみに、Copilotはコパイロットと読み、副操縦士を意味しています。 Whispererはウィスパラーと読みます。こちらはささやき声で話す人という意味だそうです。

料金について

サービス 個人(月額) 個人(年額) 企業(月額)
GitHub Copilot 10ドル 100ドル 19ドル
Amazon CodeWhisperer 無料 無料 19ドル

企業ユーザーの月額に優位差はありませんが、 個人ユーザーはAmazon CodeWhispererが無料になります。 AWSを利用して個人開発をしている方には有り難いですね。

個人プラン・企業プランの違いについて

GitHub Copilot

全体像は公式サイトをご参照ください。

docs.github.com

以下、違いのある部分について述べていきます。

テレメトリ

個人プランにはユーザーの行動(テレメトリ)やコードスニペットデータを保持してGitHub Copilotの改善のためにデータを収集する設定があります(この設定はオフにできます)。 一方、企業プランにはこの機能がついていません。 コード流出で問題になる昨今、最初からこういった機能がオフになっているのは助かりますね。

Organization 全体にわたるポリシー管理

※ 企業プラン限定の機能です。

エンタープライズでは複数のOrganizationを持つことができるのですが、 OrganizationごとにGitHub Copilotの有効・無効が管理できるというものです。

自己署名証明書による VPN プロキシのサポート

※ 企業プラン限定の機能です。

作業環境に関わらずGitHub Copilotが利用できます。

その他

github.blog

上記のGitHub公式ブログによると、

  • コード提案の品質がいい
  • セキュリティ脆弱性のあるコードは提案から除外してくれる
  • ライセンスの購入が簡単

などの違いがあるようです。

Amazon CodeWhisperer

こちらも公式ページに基づいて見ていきましょう。

aws.amazon.com

認証方法

個人はAWSのビルダーIDというものを取得しての認証です。 一方、企業プランだとIAM Identity Centerでの認証が行えます。ID取得の手間もないので楽ですね。

コードセキュリティスキャンの回数

個人プランは50回/月です。 一方、企業プランは500回/月で10倍です。 これはユーザーごとにスキャン可能な数字で、500人が1回ずつしか使えないということではありませんのでご安心を。

組織全体のライセンス管理

※ 企業プラン限定の機能です。

こちらはユーザーごとにAmazon CodeWhispererへのアクセス権限を管理するための機能です。

使用可能な言語

GitHub Copilot

GitHub Copilot の概要 - GitHub Docs

多数の言語とさまざまなフレームワークに対する候補を提示しますが、特に Python、JavaScript、TypeScript、Ruby、Go、C#、C++ に適しています。

「特に Python、JavaScript、TypeScript、Ruby、Go、C#、C++ に適しています」とありますが、 これ以外の言語も使えますのでご安心を。 GitHub CopilotはGitHub上のPublicなリポジトリを使ってトレーニングされているので、 トレーニングが十分に積めるだけのコード量がなくて、適切な提案ができなかったり、品質が担保できない可能性があるということなのでしょう。

Amazon CodeWhisperer

AI コードジェネレーター - Amazon CodeWhisperer の特徴 - AWS

Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、シェル スクリプト、SQL、Scala など

こちらはラインナップを見る限りだとGitHub上で使用率の高い言語がカバーされているようです。

使用可能なIDE

サービス Visual Studio Code JetBrains社製品 Neovim AWS Cloud9
GitHub Copilot
Amazon CodeWhisperer

Visual Studio Code・JetBrains社製品はどちらもカバーしてくれています。 残念ながらEclipseは今のところどちらも使えないようです。

使用感

GitHub Copilot

今回は個人(月額)プランを用いて検証を行いました。 コメントを書くとコメントに即した提案をしてくれるのですが、 コメントに対しても提案をしてくれました。続けます。

メソッドを表すdefを入れた段階でメソッド名とロジックを提案してくれました。 どうやらテーブル内の項目を予測して、ロジックを組み立ててくれているようです。 ライブがやっているかどうかは開始時刻・終了時刻ではなく、フラグで管理していたとします。 少しコメントを変更してみましょう。

提案を許可。

フラグではなくステータスとして扱われてしまった。。

と思いきや!提案は3つあり、2つ目に意図通りのものがありました!

インデントが半角スペース×2だったので×4に変更したところ、 後続の提案では半角スペースが4の状態で提案してきてくれました。 ちゃんと周辺のソースに適した提案をしてくれるようになっているんですね。

提案スピードもそれなりに早く、快適に実装が進みます。 他のAIサービスと同様、プロンプトにある程度の工夫は求められる印象を受けましたが、 そこさえクリアしてしまえば開発効率はグンと伸びるのでは無いでしょうか。

Amazon CodeWhisperer

こちらも個人プランを用いて検証を行いました。 まずは書きたいコードについてコメントで書こうとしたところ、 コメントに対する提案がありました。 残念ながら日本語が怪しいですね。。

こちらもdefを入力したタイミングで提案が表示されましたが、 メソッド名の1行だけのようでロジックまでは提案されていませんね。 このまま続けてみます。

こちらは開始終了の時間ではなくステータスで提案してきてくれました。

メソッド名がGitHub Copilotと違っているので、名前を合わせてみると、 この時点でフラグ判定に変わりました。

こちらは先述のGitHub Copilotに比べると提案が1行ずつの出力だったので、若干のもたつきを感じます。 また、コメントの提案も文字化けする点がやや気になりました。英語圏ではないので仕方がないのかもしれませんが。。。 今回はRubyで使用感を確認しましたが、他の言語であれば違った使用感になったかもしれません。

まとめ

さて、GitHub CopilotとAmazon CodeWhispererを比較してきました。 使い勝手は今のところGitHub Copilotの方がよかったです。 AWSに関するコードならCodeWhispererに分がある部分もあるかもしれませんが、 S3にファイルをアップロードする等の実装であればCopilotで十分でした。

現状ではCloud9上で開発する場合はCodeWhispererを使うしか無いので、 そういった方は活用してみてください。 また、CodeWhispererは無料で使うことが可能です。 お金を支払わずにAIのコード支援サービスが受けられるので、 気になる方は是非使ってみてください。

Copilotは月額10ドルのコストはありますが、 使えば10ドル以上の価値を生み出せるサービスだと感じました。 無料期間もついていますので、こちらも気になる方は是非使ってみてください。