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

導入GPT4がリリースされてから半年以上が経ち、皆さんもある程度は理解できたかと思います。しかし一方...

...

畳み込みニューラルネットワークの基礎を1つの記事で学びます。

今日は畳み込みニューラル ネットワークについてお話します。畳み込みニューラル ネットワークは、主に、...

人工知能時代の雇用問題と解決策

人工知能(AI)は現在、頻繁に使われる言葉であり、一般的には、もう一つの総合的な技術革命、つまり「第...

...

人工知能とコールセンターの衝突が新たな時代を創る

[[430158]]コールセンターは1960年代から存在しており、NASAのミッションコントロールで...

今日の人工知能は単なる「狭義のAI」なのでしょうか?

1956 年、若い数学助教授ジョン・マッカーシーが率いる科学者グループがニューハンプシャー州のダー...

...

...

人工知能について知っておくべきことすべて

人工知能は今日最も話題になっている技術の一つです。しかし、それは正確には何でしょうか?なぜ気にする必...

グーグルは、人工知能の進歩により飛行機による地球温暖化への影響を大幅に軽減できると主張

グーグルは8月14日、飛行機による気候への影響を大幅に軽減できる人工知能の分野で大きな進歩を遂げたと...

[インフォグラフィック] Google アルゴリズムの大幅な改善記録

Google 検索アルゴリズムは、歴史上最も先進的な数学工学アプリケーションです。毎日数十億件の検索...

これからオープンする無人コンビニや無人スーパーにはこんな7つのブラックテクノロジーが隠されている

もうすぐダブルイレブンがやってきます。さまざまな商店が準備を進めています。JDの無人コンビニや無人ス...

誰もが知っておくべき 3 つの機械学習アルゴリズム

解決すべきデータ関連の問題があるとします。機械学習アルゴリズムの素晴らしさについて聞いたことがあるの...

金融AIの実装は難しいですか?ガートナー: AI のユースケースを 3 倍にするには 4 つのステップが必要

金融分野で AI を適切に導入するには、単に時間や資金を最も多く投資すればよいという問題ではありませ...