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 番目に大きい値を見つける

ブログ    
ブログ    
ブログ    

推薦する

...

RAGからマルチモーダル検索まで、OpenAIの技術進化

著者 | 崔昊レビュー | Chonglouまとめこの記事では、情報検索とテキスト生成の最新の進歩に...

AIは、群衆の中でディープフェイクされたのはあなただけだと認識します

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

描いた場所に画像が動きます! Gen-2の新機能「マジックブラシ馬良」が大ヒット、ネットユーザー:緊急、緊急、緊急

動画生成AIはここまで進化したのか? !写真をスワイプするだけで、選択したターゲットが動きます。明ら...

機械は人間に取って代わるでしょうか?人工知能技術の倫理的リスクを解明する

現在の人工知能技術の発展は、主にコンピュータを媒体として活用し、自動化技術の発展を促進しています。デ...

合成データは AI/ML トレーニングの未来を推進するでしょうか?

人工知能や機械学習 (AI/ML) をトレーニングするために現実世界のデータを収集することは、時間が...

...

デジタル農村開発が加速、AI、5G、IoTなどがチャンスをもたらす

インターネットやモバイルインターネット技術の急速な普及と「新インフラ」の発展は、農業と農村の近代化に...

大学入試結果が続々発表。ボランティア応募で人工知能が注目の選択肢に

今日から、全国各地の大学入試結果が続々と発表され、出願手続きが始まります。今年、各大学は、専門分野、...

機械学習を学ぶには? Alibaba のプログラマーが、わずか 7 つのステップで Python 機械学習を習得できるようお手伝いします。

概要: 現在、インターネット上の Python 機械学習リソースは非常に複雑で、初心者にとっては混乱...

AR グラスは機械学習のキラーアプリか?

[[286412]] Facebook AI Researchの主任AI科学者であるヤン・ルカン氏...

Nvidiaの次世代GPUが発表、H100を超える!最初の3nmマルチチップモジュール設計は2024年にデビュー予定

3nmプロセス、H100をはるかに超える性能!つい最近、海外メディアのDigiTimesが、コードネ...

マスクのロボットが進化した!新たなスキルが解き放たれ、エンドツーエンドのニューラルネットワークが実現

マスク氏のロボットの大いなる進化。 1年前に初めて舞台に立ったときは動きが少しぎこちなかったが、今で...