GitHub Copilot と Amazon CodeWhisperer の比較

Feb 13 2023
AI を活用した最高のコーディング アシスタントをめぐる戦いが正式に始まりました。GitHub Copilot と Amazon CodeWhisperer は、オートコンプリートをまったく新しいレベルに引き上げる、AI を活用したコーディング アシスタントです。最高の状態では、開発者から与えられた短い説明テキストに基づいて、機能するコードの完全なチャンクを作成できます。

AI を活用した最高のコーディング アシスタントをめぐる戦いが正式に始まりました。

GitHub Copilot と Amazon CodeWhisperer は、オートコンプリートをまったく新しいレベルに引き上げる、AI を活用したコーディング アシスタントです。最高の状態では、開発者から与えられた短い説明テキストに基づいて、機能するコードの完全なチャンクを作成できます。これにより、開発者としての効率が向上し、
私の意見では、開発がより楽しくなります。✨

それでは、さっそく始めましょう!

AI を活用したコーディング アシスタントとは何ですか?

GitHub Copilot と Amazon CodeWhisperer は、コードエディターと統合され、コードをより速く書くのに役立つサービスです。しかし、「IntelliSense」などの一般的なオートコンプリート ツールとは異なり、Copilot と CodeWhisperer はソース コードと自然言語の両方でトレーニングされた機械学習モデルを利用し、プログラミングと人間の言語の両方を理解できるようにします。これにより、平易な英語で書かれたコメントを理解し、開発者の意図に基づいてコードを生成し、開発者のパターンとスタイルに一致させることができます。入力すると、最初のコメント自体を完成させるための推奨事項も表​​示されます。最上位の推奨事項を受け入れることも、他の推奨事項を表示することも、単に独自のコードの作成を続けることもできます。

ボイラープレートや反復的なコード パターンの作成に費やす時間を減らし、重要なこと、つまり優れたソフトウェアの構築 (GitHub Copilot) に多くの時間を費やします。

GitHub コパイロットとは何ですか?

GitHub Copilot はGitHub と OpenAI によって開発されました。これは、GitHub 上のパブリック リポジトリを含む、公開されているソース コードでトレーニングされた OpenAI の Codex モデルを利用しています。Copilot は 2022 年 6 月に「テクニカル プレビューの終了」が正式に発表されました。

説明的なコメントまたは関数名の入力を開始すると、Copilot が残りの部分をオートコンプリートしようとします。

Copilot は非常に使いやすく、すべての主要なコード エディターとの合理的な統合を提供します。GitHub Copilot は、7 つの主要なプログラミング言語用に最適化されています (詳細については、下の表を参照) が、他の言語やさまざまなフレームワークで提案を生成することもできます。

Copilot はプレビュー段階では無料でしたが、最近 GitHub がサブスクリプションベースのモデルに移行すると発表しました。60 日間の無料トライアルは引き続き利用でき、認証済みの学生と人気のオープンソース プロジェクトのメンテナーは引き続き無料で利用できます。

Copilot の提案はコンテキストに依存します。定数を使用することをどのように「学習」し、オブジェクトに正しい名前と数値をどのように入力するかを観察してください。

Amazon CodeWhisperer とは何ですか?

Amazon CodeWhisper はAmazon によって開発されました。その ML モデルは、Amazon の社内コードやオープンソース コードを含むさまざまなデータ ソースでトレーニングされています。

CodeWhisperer がコメントを完成させます。次に、コメントを使用してコードを提案します。さまざまなコード実装を切り替えて、最適なものを選択できます。

CodeWhisperer はまだプレビュー段階にあり、GitHub Copilot よりもサポートされる言語と主要なコード エディターの数が少なくなります。ただし、幅広い言語と IDE のサポートが主な魅力ではありません。代わりに、CodeWhisperer は、Amazon Elastic Compute Cloud (EC2)、AWS Lambda、Amazon Simple Storage Service (S3) などの最も人気のあるサービス全体で AWS API のコード推奨を提供する、AWS API のファーストクラスのサポートを提供することに重点を置いています。量より質?

このAmazon ブログ投稿によると、ユーザーは「S3 にファイルをアップロードする」と書くことができるはずです。そうすれば、CodeWhisperer は指定されたタスクに最適なクラウド サービスとパブリック ライブラリを自動的に判断し、その場で特定のコードを構築します。生成されたコード スニペットを IDE で直接推奨します。

プレビュー期間中、開発者はここでサインアップすることで CodeWhisperer を無料で使用できます。

比較

GitHub Copilot と Amazon CodeWhisperer の比較。編集: Copilot はこれらの言語に最適化されていますが、さらに多くの言語をサポートしています。

どちらがより人気がありますか?

CodeWhisperer (先月リリース) の存続期間が短いことを考えると、ユーザー数に関連するデータは見つかりませんでした。しかし、おそらく、1 年で有利なスタートを切った GitHub Copilot が現在、支配的なプレーヤーであると言っても過言ではありません。GitHub 自体によると、過去 12 か月間で 120 万人以上の開発者が Copilot のテクニカル プレビューを使用しました。彼ら自身の調査によると、ユーザーは GitHub Copilot によって表示されたすべての完了の平均 26% を受け入れ、開発者のコ​​ード ファイルの最大 40% が GitHub Copilot によって生成されたものであることがわかりました。

プライバシーについてはどうですか?

パフォーマンスを向上させるために、Copilot と CodeWhisperer は両方ともユーザーからデータを収集します。これらのツールを仕事で使用することで、組織のコードベースやデータを危険にさらしていませんか? これは重要な質問であり、ほとんどの企業にとって取引の妨げとなる可能性があります。

コードの提案を提供するために、GitHub Copilot はコードとコメントを GitHub Copilot サービスに送信します。このサービスは、編集中のファイルと、プロジェクト内の隣接ファイルまたは関連ファイルの両方のコンテキストに似たファイル コンテンツに依存します。関連するコンテキストを特定するために、リポジトリの URL またはファイル パスを収集することもあります。データ収集の一部はテレメトリ設定で無効にできます。使用情報などの他の部分は Copilot の使用に必要であり、オフにすることはできません。これには、 GitHub のプライバシーに関する声明で言及されている個人データが含まれる場合があります。

GitHub はまた、内部テストの結果、GitHub Copilot の提案にトレーニング セットからの個人データがそのまま含まれることはまれであることが判明したと述べています(「まれ」..? )。ただし、これらの提案の中には、電子メール アドレスや電話番号などの個人データのように見えるものもありますが、実際にはトレーニング データのパターンから合成された架空の情報です。

Amazon CodeWhisperer は、コンテキスト情報 (ファイルコンテンツを含む)、フィードバック、テレメトリメトリクス、ユーザー環境情報などの特定の情報も収集します。Amazon はサービス利用規約の中で、プレビュー段階でコンテンツ共有のオンとオフを切り替えるオプションを提供する場合があると述べています。

リスクと脆弱性についてはどうですか?

どちらのアシスタントも、安全でないコーディング パターン、バグ、または古い API やイディオムへの参照が含まれる可能性がある公開コードに基づいてトレーニングされています。研究『キーボードで寝ていますか?「GitHub Copilot のコード コントリビューションのセキュリティの評価」では、Copilot を使用したテスト シナリオの 40% に脆弱なコードが含まれていることがわかりました。

GitHub は、Copilot がライブラリや言語の古い使用法や非推奨の使用法を提案する場合があること、および望ましくないパターンを含むコードを合成する可能性があることを認めています。これを軽減するには、コードの品質を向上させるために、GitHub Actions、Dependabot、CodeQL などのツールと製品を組み合わせて使用​​することを提案しています。

同じことは Amazon にも当てはまりますが、Amazon は、Java および Python プロジェクトの脆弱性を検出するセキュリティ スキャンを提供することで、これに対抗するために多大な対策を講じてきました。

[セキュリティ スキャンの実行] を選択すると、CodeWhisperer はこの脆弱性を検出し、問題を表示します。(出典: AWS 機械学習ブログ)

そうは言っても、AI を活用したコーディング アシスタントは、常に適切なテスト、適切なコード レビューの実践、信頼できるセキュリティ ツールとともに、ご自身の判断で使用する必要があります。

公共コードの(誤用)使用についてはどうですか?

トレーニングセットでの公共コードの実質的な使用についての意識が高まっています。理想的には、アシスタントはこれまでに見たことのないコードを一貫して生成する必要があります。代わりにアシスタントがトレーニング セットからコードを直接暗唱すると、フェアユースとみなされず、元の所有者の著作権を侵害する可能性があります。

これを軽減するために、Copilot には、GitHub Copilot の提案に GitHub のパブリック コードと一致するコードが含まれるインスタンスを検出して抑制しようとする組み込みフィルターがあります。このフィルタはオプションであり、オフにすることができます。GitHub 自体によると、Copilot は約 1% の確率で約 150 文字を超えるコード スニペットを逐語的に出力します。彼らは、GitHub Copilot が作成中のコードから十分なコンテキストを収集できない場合、または問題に対する共通の、おそらく普遍的な解決策がある場合にこれを非難します。

Copilot と同様に、CodeWhisperer には、生成された出力が特定のトレーニング データに類似している可能性があることを検出できる参照トラッカーも付属しています。ユーザーが作成したコードのコレクションに関して、Amazon はプレビュー段階でモデルをさらにトレーニングするために開発者が作成したコードを使用しないと述べています。ただし、CodeWhisperer は、コードの推奨に対する開発者の応答 (推奨の受け入れまたは拒否など) に関連するユーザー アクティビティ データを保存します。このサービスはこのフィードバックを使用して ML モデルをより正確にし、CodeWhisperer が今後の推奨事項を改善できるようにします。

勝者は..?

言語と IDE のサポートに関しては、GitHub Copilot が勝者です。また、以前から存在しており、正式にプレビューが終了しているため、開発者はバグを修正し、道路の凹凸を滑らかにするためにより多くの時間を与えられます。これを使用するには少額の金銭的投資が必要ですが、すぐに使用できる完全に機能する製品が手に入ります。

ただし、AWS 環境で作業している場合は、おそらく Amazon CodeWhisperer が最適です。私は、主に自社製品を対象としたインテリジェントなコーディング アシスタントを提供する最初のクラウド サービス プロバイダーとなる Amazon の取り組みを本当に賞賛しており、より多くのプロバイダーが後に続くことを願っています (Azure さん、注目しています!)。さらに、統合された脆弱性検出も検討する良い理由になる可能性があります。最後に、現在無料であるという事実は、少なくともプレビュー中に試してみるという強い動機になります。ただし、これにはサインアップして順番を辛抱強く待つ必要があります。⏳

最後に、テクノロジーがどれほど進歩したか、そして開発者として現在利用できる素晴らしいツールを少しだけ理解してみましょう。GitHub Copilot と Amazon CodeWhisperer は両方とも素晴らしいテクノロジーであり、そう遠くない将来、すべての本格的な開発者にとって必須のツールになると私は予想しています。そして、GoogleやSalesforceなどの他の関係者も本格的に取り組み始めており、コード開発に関しては、まもなく新しい時代に突入するのではないかと感じています。

この記事がお役に立てば幸いです。読んでくれてありがとう!

編集者注:

データ サイエンティストとしての私の仕事において、GitHub Copilot は非常に価値がありました。データ分析を行うと、多くの場合、仮説を迅速に検証する必要があります。通常、結果がどうなるかは事前にわからないため、仮説を確認または拒否するために、一度だけ実行するほぼ同一のコードを大量に作成することになります。GitHub Copilot は、このプロセスを高速化するための優れたツールであり、データ サイエンティストのお気に入りのすべての IDE、つまり Jupyter Notebook (VS Code 内) ともうまく統合されます !

参考文献

  • GitHub、あなたの AI ペア プログラマー(2022)、github.com
  • Amazon、ML を活用したコーディングコンパニオン — Amazon CodeWhisperer — アマゾン ウェブ サービス(2022)、aws.amazon.com
  • Amazon、AWS が Amazon CodeWhisperer (プレビュー) (2022) を発表、aws.amazon.com
  • A. Desai と A. Deo、ML を活用したコーディングコンパニオンである Amazon CodeWhisperer の紹介(2022)、AWS Machine Learning ブログ
  • S. Bhattacharyya、AI コーディング アシスタントの戦い: GitHub Copilot vs Amazon CodeWhisperer (2022)、analyticsindiamag.com
  • B. Dickson、GitHub Copilot is now public — here's what you need to know (2022)、venturebeat.com
  • F. Lardinois、Amazon が GitHub Copilot のような AI ペア プログラミング ツール CodeWhisperer を開始(2022)、techcrunch.com
  • D. Gershgorn、GitHub の自動コーディング ツールは未テストの法的根拠に基づいている(2021)、theverge.com