GitHub Copilot の盗作が確認されました! GitHub: 私たちの AI はコードを「暗唱」しません

GitHub Copilot の盗作が確認されました! GitHub: 私たちの AI はコードを「暗唱」しません

[[409261]]

GitHub Copilot は、コードを自動生成するという強力な機能により、リリース後に話題となりました。

Copilot は、GitHub から抽出されたテラバイト単位の公開コードと英語の例に基づいてトレーニングされた OpenAI の新しい Codex アルゴリズムに基づいて構築されています。

そのため、GitHub は、Copilot がドキュメント内の文字列、コメント、関数名、コード自体を分析して、以前に呼び出された特定の関数を含む新しい一致するコードを生成できると主張しています。

同時に、Copilot は Python、JavaScript、TypeScript、Ruby、Go など複数のプログラミング言語をサポートしています。

リリース後、何人かの人がCopilotにLeetcodeの問題バンクを練習するよう依頼し、この「AIプログラマー」のパフォーマンスに非常に満足しました。

いくつかの質問に対する検証後、Copilot は毎回 Leetcode テストに合格できます。ほぼ瞬時の生成速度を考えると、AI は人間よりもコードを書くのが得意かもしれないとブロガーは示唆しています。

しかし、ネットユーザーは、生成されたコメントが Leetcode によって提供されたテンプレートとほぼ同一であることから、Copilot が LeetCode データベースでトレーニングされたのではないかと疑っています。

これに対して GitHub は、直接引用は 0.1% あるかもしれないが、Copilot によって生成されるコードの大部分はオリジナルになると述べました。

「コピー&ペースト」は本当にハンマーだ

リリース2日目、一部のネットユーザーは、GitHub Copilotが無料のオープンソースコードをクリーンアップして、金儲けのためのツールに変えたのではないかと疑問を呈した。

これらのコードは GPL (General Public License) によって保護され、商用プロジェクトでの使用が防止される必要があります。

予想通り、この疑惑は2日以内に現実のものとなり、一部のネットユーザーが、Copilotが最も有名な「高速平方根逆数計算法」を単に「コピー&ペースト」しただけだと発見した。

Copilot によって「生成された」コードは、これまで誰も理解できなかったマジックナンバー 0x5f3759df を使用するだけでなく、このコードに関する苦情も含まれています: what the f***? 。

ソースコード

つまり、Copilot が行うことは、トレーニング セット内の他の人が書いたコードを再構成することだけであるようです。

私たちのAIはコードを「暗唱」しません

しかし、GitHubはすでにこれに備えていたようだ。チームメンバーのAlbert Ziegler氏は、2021年5月7日時点でCopilotからPythonに関する453,780件の提案をすべて収集しており、そのデータは300人の従業員の日常的な使用から得られたものだと語った。

Albert はこのデータセットを分析、整理し、それについて議論するために一見完全なブログを書きました。

記事の冒頭で、Albert は GitHub Copilot に有名な記事を暗唱するように依頼しました。明らかに、Copilot は記事の内容を記憶しています。

しかし、アルバートは、トレーニング セットの内容を覚えることは問題ではないと考えています。結局のところ、彼自身も詩を暗唱しており、日常のコミュニケーションで暗唱の内容に気を取られることはありません。

ケース分類

カテゴリ 1 : Copilot は、プログラマーが書いた新しいコメントが原因で、提案が受け入れられた後に、非常によく似た別の提案を行うことがあります。

アルバートは、2 回目は以前の「成功した」ケースの単なる繰り返しだと考え、問題分析から削除しました。

カテゴリー 2 : 副操縦士は長くて反復的なシーケンスを提案する場合があります。たとえば、次の例では、繰り返しの '<p>' が最終的にトレーニング セットで見つかりました。

カテゴリ 3 : Copilot は、自然数、素数、ギリシャ語アルファベットなどの標準リストを提案します。提案の中には役に立つものもあれば、役立たないものもあります。

しかしアルバート氏は、これらは「記憶された」コードに関する彼の仮説に当てはまらないと述べた。

カテゴリ 4 : 自由度が低いタスクを実行する場合、Copilot はいくつかの共通または一般的なソリューションを提供します。

たとえば、以下の中央のセクションは、BeautifulSoup パッケージを使用して Wikipedia リストを解析する標準的な方法です。

アルバート氏は、トレーニング データ内で見つかった最も一致するスニペットは、さまざまな記事を解析するためのコードを使用して解析されたと述べました。繰り返しますが、これは彼の「暗唱」コードの定義には当てはまりません。

カテゴリー 5 : これらの最後のケースは、コードまたは注釈に少なくとも何らかの具体的な重複がある場合の「コードの暗唱」というアルバートの考えに当てはまります。

テスト結果

アルバート氏は、GitHub Copilot の提案のほとんどについて、トレーニングに使用されたコードとの大きな重複は見つからなかったと述べています。最初のカテゴリを除外すると、185 件の提案が得られました。

これらのケースのうち、144件がカテゴリー2~4に該当しました。最終的なカテゴリー 5 には 41 件のケースが残りますが、著者はこれがコードの「朗読」で意味するものだと述べています。

GitHub Copilot はコンテキストが不足しているときに引用します

手作業による注釈付けで選ばれた 41 の主要な事例のうち、10 未満の異なる文書に出現したものはありませんでした。ほとんど(35 件)は 100 回以上出現しました。

ある時点で、GitHub Copilot は空のファイルから始めることを提案しました。これはトレーニング中に 70 万回以上も見られたもので、GNU General Public License でした。

以下のグラフは、カテゴリ 5 の結果 (各結果の下部に赤いマーカーがあります) と、カテゴリ 2 ~ 4 の一致するドキュメントの数を示しています。

推定された分布は赤い線で示され、一致数が 100 から 1000 の間でピークに達します。

GitHub Copilotは主に一般的なケースで使用されます

時間が経つにつれて、各ファイルは固有のものになります。しかし、ファイルが非常に一般的な場合には、GitHub Copilot がソリューションを提供します。

そしてこの時点では、具体的なものが何もないので、どこか他の場所から引用される可能性が高いです。

もちろん、ソフトウェア開発者はほとんどの時間を複雑なコードの中で過ごしており、そこでのコンテキストは十分に独特であるため、GitHub Copilot は独自の提案を提供します。

それに比べて、GitHub Copilot にはプログラムがどうなるかを知る方法がないため、最初の提案はより従来的なものになります。

ただし、スタンドアロン スクリプトでは、適度な量のコンテキストがあれば、ユーザーが何をしたいのかを適切に推測するのに十分です。

また、コンテキストがまだ非常に一般的なため、Copilot は使い慣れたソリューションが有望であると判断することもあります。

上記の例は、アップロードされたロボット工学のコースウェアから直接抜粋したものです。

結論は

Albert 氏は、GitHub Copilot はコード セットをそのまま引用できるものの、実際にそうすることはほとんどなく、引用する場合は、ほとんどが全員が引用するコードであり、ほとんどの場合はファイルの先頭にあると考えています。

理想的には、提案にトレーニング セットからコピーされたスニペットが含まれている場合、ユーザー インターフェイスは、そのスニペットがどこから引用されたかを簡単に示す必要があると Albert 氏は言います。その後、適切な帰属表示を含めるか、コードを使用しないことを決定できます。そして彼のチームはこれを実現するために一生懸命努力するでしょう。

ユーザーコメント

ネットユーザーは、GitHub チームが「コピー アンド ペースト」問題を懸念していることを知って安堵の意を表したが、この「調査」では明らかに人々を納得させることが困難だった。

「これはすべての愛好家を危険にさらし、企業で働くすべての人に『これは GPL コードを生成するのだろうか』という不安を抱かせることになる。」

「『まあ、少し違う』と言って、『だから、同じものではない』と推論することはできません。実質的に類似しているのであれば、それを引用する必要があります。」

Copilot にはまだ長い道のりが残っているかもしれません。

<<:  AIの未来: データだけでは不十分

>>:  古典的なアルゴリズム: 順序付けられていない配列の K 番目に大きい値を見つける

推薦する

GPT-4 が人間のデータ専門家を引き継いでいます!事前の知識により、LLMは従来の方法に匹敵する精度で大胆な予測を行うことができます。

データ サイエンスでは、AI 研究者は不完全なデータセットを処理するという課題にしばしば直面します。...

自然言語処理の商業的価値を示す5つの成功事例

これら 5 つの組織は、自然言語処理 (NLP) を使用して、顧客へのサービスの向上、反復的なタスク...

金融ロボアドバイザーは3つのトレンドによって増加傾向にある

編集者注: ロボット アドバイザーの登場により、従来のアドバイザーはどこへ向かうのでしょうか。これは...

...

分散機械学習フレームワークRay

[[422916]] Python 中国語コミュニティ (ID: python-china) 1....

オブジェクト ストレージが AI と機械学習に適している 3 つの理由!

[[329860]] 【51CTO.com クイック翻訳】あらゆる種類の企業が AI や機械学習プ...

人工知能はますます私たちに近づいている

科学者たちは、歌詞付きの歌を聞くと読書の妨げになりやすいのと同じように、音声信号とテキスト信号が脳に...

...

...

...

Karpathy の新しいビデオが再び人気に: GPT Tokenizer をゼロから構築

技術の第一人者カパシー氏がOpenAIを去った後、彼のビジネスは非常に活発になっています。新しいプロ...

人工知能のトレンドに遅れないようにするには、Python と C/C++ のどちらを学ぶべきでしょうか?答えはここにあります

あらゆるものがデータと自動化によって駆動される現代の世界では、人工知能はますます一般的になりつつあり...

...

マイクロソフト、クラウド移行のための企業向けビジネス管理ツールを提供するAIMプログラムを開始

Microsoft は最近、顧客がローカル ERP および CRM アプリケーションをクラウドに移行...