AI プログラミング: GitHub Copilot と Amazon CodeWhisperer の詳細な比較

AI プログラミング: GitHub Copilot と Amazon CodeWhisperer の詳細な比較

1. はじめに

GitHub Copilot と Amazon CodeWhisperer は、コーディングの自動補完をまったく新しいレベルに引き上げる AI 搭載のコーディング アシスタントです。最高の場合、開発者が提供する短い説明テキストに基づいて、完全に機能する実用的なコード ブロックを作成できます。これにより、開発者の効率が向上し、開発もより楽しくなります。

次に、この記事に従って、最高の AI コーディング アシスタントについて学習を始めましょう。

2. AI コーディングアシスタントとは何ですか?

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

定型コードの作成やコードパターンの繰り返しに費やす時間を減らし、重要なこと、つまり優れたソフトウェアの構築に多くの時間を費やしましょう (GitHub Copilot)。

2.1 GitHub Copilot とは何ですか?

GitHub コパイロット: https://github.com/features/copilot/

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

写真

説明的なコメントまたは関数名の入力を開始すると、Copilot は残りの部分を自動補完しようとします。

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

Copilot はプレビュー段階では無料でしたが、GitHub は 2022 年にサブスクリプション モデルに移行することを発表しました。開発者は引き続き 60 日間の無料トライアルを受けることができ、認証済みの学生や人気のあるオープン ソース プロジェクトのメンテナーには引き続き無料で提供されます。

写真

Copilot の提案は状況に応じて異なります。開発者が定数を使用することを「学習」する方法と、オブジェクトに適切な名前を付けて設定する方法に注目してください。

2.2 Amazon CodeWhisperer とは何ですか?

Amazon CodeWhisperer : https://aws.amazon.com/cn/codewhisperer/

Amazon CodeWhisperer は Amazon によって開発されました。同社の機械学習モデルは、Amazon の社内コードやオープンソースコードなど、さまざまなデータソースに基づいてトレーニングされています。

写真

CodeWhisperer はコメントを補完し、コメントに基づいてコードの提案を提供できます。開発者はさまざまなコード実装を切り替えて、最も適したものを選択できます。

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

Amazon の公式サイトの紹介によると、ユーザーは「S3 にファイルをアップロードする」と書くだけでよいとのこと。CodeWhisperer は、指定されたタスクに最適なクラウド サービスとパブリック ライブラリを自動的に判別し、特定のコードを即座にビルドし、生成されたコード スニペットを IDE 内で直接推奨します。

Amazon CodeWhisperer の紹介

CodeWhisperer は、個人の開発者が無料で使用できます。

3. 比較

写真

GitHub Copilot と Amazon CodeWhisperer の比較。

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

CodeWhisperer は最近リリースされたため、GitHub Copilot は 1 年先行しており、現在は優位に立っています。 GitHub 独自のデータによると、プレビュー フェーズの 12 か月間に 120 万人を超える開発者が Copilot のテクニカル プレビュー バージョンを使用しました。 GitHub Copilot の独自の調査によると、ユーザーは GitHub Copilot が提供する補完の平均 26% を受け入れており、開発者のコ​​ード ファイルの最大 40% が GitHub Copilot によって生成されています。

3.2 プライバシーはどのように保護されますか?

パフォーマンスを向上させるために、Copilot と CodeWhisperer はどちらもユーザーからデータを収集します。職場でこれらのツールを使用すると、コードベースやデータが危険にさらされるでしょうか?これは重要な質問であり、ほとんどの企業にとって潜在的な決定要因となる可能性があります。

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

GitHub プライバシー ポリシー: https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement

GitHub はまた、社内テストの結果、GitHub Copilot の提案にはトレーニング セットから直接抽出された個人データが含まれることはほとんどないことがわかったと述べています。ただし、これらの提案の一部は、単に個人データ (電子メール アドレス、電話番号など) のように見える場合がありますが、実際にはトレーニング データ内のパターンから合成された架空の情報です。

Amazon CodeWhisperer は、コンテキスト情報 (ファイルの内容を含む)、フィードバック、テレメトリメトリック、ユーザー環境情報などの特定の情報も収集します。アマゾンは利用規約の中で、プレビュー段階でコンテンツ共有をオンまたはオフにするオプションを開発者に提供すると述べている。

3.3 リスクと脆弱性にどう対処するか?

どちらのアシスタントも、安全でないコーディング パターン、バグ、または古い API や慣用句への参照が含まれている可能性のある公開コードについてトレーニングされています。 「キーボードを打つ人は寝ているのか? GitHub Copilot のコード貢献のセキュリティを評価」というレポートでは、Copilot を使用したテスト シナリオのコードのうち最大 40% に脆弱性があることが判明しました。

【レポート】 :https://arxiv.org/pdf/2108.09293.pdf

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

Amazon についても同様ですが、評価に値するのは、Amazon が Java および Python プロジェクトの脆弱性を検出するセキュリティ スキャン機能を提供することで、この問題に対処するための適切な措置を講じていることです。

写真

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

そうは言っても、開発者は常に、適切なテスト、適切なコードレビューの実践、堅牢なセキュリティツール、そして独自の判断と組み合わせて、AI 支援コーディング アシスタントを使用する必要があります。

3.4 公開コードの(誤った)使用についてはどうでしょうか?

トレーニング セットで共通コードを広範囲に使用することに関して懸念が提起されています。理想的には、アシスタントは常に、これまで見たことのないコードを生成する必要があります。アシスタントがトレーニング セットからコードを直接引用すると、そのコードはフェアユースの対象外となり、元の所有者の著作権を侵害する可能性があります。

これを緩和するために、Copilot には、GitHub Copilot の提案に含まれるコードが GitHub 上の公開コードと一致するケースを検出して抑制しようとするフィルターが組み込まれています。このフィルターはオプションであり、オフにすることができます。 GitHub によると、Copilot は約 1% のケースで、公開コードとまったく同じ 150 文字以上のコード スニペットを出力します。彼らは、この問題の原因は GitHub Copilot が開発者が書いているコードから十分なコンテキストを取得できなかったこと、あるいはこの問題に対する一般的な、さらには普遍的な解決策にあったとしています。

Copilot と同様に、CodeWhisperer にも、生成された出力が特定のトレーニング データに類似しているかどうかを検出できる参照トラッカーが搭載されています。ユーザーが書いたコードの収集に関して、Amazon は、プレビュー段階では、開発者が書いたコードを使用してモデルをさらにトレーニングすることはないと述べています。ただし、CodeWhisperer は、提案の承認や拒否など、コード提案に対する開発者の応答に関連するユーザー アクティビティ データを保存します。このサービスでは、このフィードバックを使用して機械学習モデルの精度を向上させ、CodeWhisperer が将来の推奨事項を改善できるようにします。

4. 勝者は誰ですか?

言語と統合開発環境 (IDE) のサポートに関しては、GitHub Copilot が勝者です。正式な展開には時間がかかるため、GitHub スタッフはバグを修正し、問題を解決するための時間を増やすことができます。これを使用するには少額の投資が必要ですが、開発者は完全に機能し、すぐに使用できる製品を入手できます。

ただし、開発者が AWS 環境で作業している場合は、Amazon CodeWhisperer がより適切なオプションになる可能性があります。 Amazon は、主に自社製品向けにインテリジェントなコーディング アシスタントを提供する最初のクラウド サービス プロバイダーです。さらに、統合された脆弱性検出機能も、この製品の使用を検討する十分な理由となります。最後に、個人開発者にとっては無料です。

<<:  ChatGPT の実際のパラメータはわずか 200 億であり、これは Microsoft によって初めて公開されました。ネットユーザー:OpenAIがオープンソースに不安を感じるのも無理はない

>>:  AI はプラットフォーム エンジニアリングと DevEx をどのように強化するのでしょうか?

推薦する

元Googleロボット部門責任者が伸縮自在のアシスタントロボットを開発

海外メディアの報道によると、過去3年間、グーグルの元ロボット工学部長であるアーロン・エドシンガー博士...

Google 中国人がタイムクリスタルを使って何十年も昔の謎を解く!永久機関が再び自然界に出現

2021年11月30日、自然界に再び時間結晶が出現しました。タイムクリスタルは不思議な物質です。理論...

自己回帰デコードが64倍高速化、Googleが新たな画像合成モデルMaskGITを提案

生成トランスフォーマーは、高忠実度かつ高解像度の画像を合成するために急速に人気を集めています。しかし...

PillarNeSt: Pillar ベースの 3D オブジェクト検出のパフォーマンスをさらに向上させるにはどうすればよいでしょうか?

著者の個人的な理解に基づいて書かれた現在、自動運転の分野では、点群データを収集するためのLIDARセ...

AI を活用した新たなフィッシング攻撃に対抗するにはどうすればよいでしょうか?

サイバーセキュリティは、攻撃と防御の継続的なゲームです。防御戦略が進化し続ける一方で、攻撃者も攻撃の...

世界最大の公開顔データセット | 清華大学と信義科技が共同リリース

[[387945]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

...

...

AI、自動化、仕事の未来、そして注目と解決が必要な問題

職場で機械が人間の労働力を補うようになるにつれ、私たち全員がその恩恵を受けるために適応する必要があり...

2019年の自動運転のキーワード:冬眠と迂回による救国

何年もの間大騒ぎされていた自動運転の人気も、ようやく落ち着いてきた。世界の資本市場が寒い冬の時期に入...

...

完璧な切り抜き王ビンビン! ByteDanceのインターンが開発したAIにより、4K 60fps動画のリアルタイム切り抜きが可能に

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

AIサイバーセキュリティの今後の課題:最初で最後の防衛線となる方法

ニューヨーク・タイムズ紙によると、世界の AI サイバーセキュリティの求人市場では、2021 年まで...