ゼファーネットのロゴ

GitHubコパイロットとプログラミング自動化におけるAI言語モデルの台頭

日付:

GitHubコパイロットとプログラミング自動化におけるAI言語モデルの台頭

Copilotが以前のオートコンプリートツール(TabNineを含む)と異なる点と、この特定のツールが多くの論争を引き起こしている理由について詳しくは、以下をお読みください。


github-copilot.png

Github Copilotを使用する必要がありますか?

 
あなたがソフトウェアエンジニアであるか、知人の輪の中にそれらのいずれかを数えるなら、あなたはおそらくすでにあるレベルで気づいています 副操縦士。 Copilotは、GitHubの新しいディープラーニングコード補完ツールです。

プログラマー向けのオートコンプリートツールは目新しいものではなく、Copilotはディープラーニングを利用した最初のツールでも、GPTトランスフォーマーを使用した最初のツールでもありません。 結局、 タブナイン OpenAIミョウバンによる夏のプロジェクトから生まれました ジェイコブ・ジャクソン を利用します GPT-2 汎用トランス。

Microsoft(GitHubを所有)は独自のパッケージを作成しました IntelliSense 少なくとも1996年以来、プログラミング製品を備えたコード補完ツールであり、オートコンプリートとテキスト修正は1950年代から活発な研究分野となっています。

Copilotが以前のオートコンプリートツール(TabNineを含む)と何が違うのか、そしてなぜこの特定のツールがこれほど多くの論争を引き起こしているのかについてもっと知りたい場合は読んでください。

著作権論争

 

QuakeIIIの高速逆平方根関数を暗唱したいというGitHubCopilotの熱意を示すスクリーンショット。
のスクリーンショット アーミン・ロナッチャー GitHubCopilotが暗唱したいという熱意を示しています 高速逆平方根 QuakeIIIの機能。

 

Copilotは創業以来、製品とその潜在的な著作権への影響について活発な議論を繰り広げてきました。 これは主に、モデルのトレーニング方法によるものです。 GitHub Copilotは、コードで微調整されたGPT-3のバリアントであるOpenAIのCodexに基づいています。 GPT-3 はOpenAIの175億パラメーター(Codexは明らかにGPT-12の3億パラメーターバージョンに基づいています)の汎用変圧器です。もちろん、巨大な変圧器を有効にするには、巨大なトレーニングデータセットが必要です。 GitHubは、そのようなデータセットとCopilotのトレーニングデータセットを見つけるための場所です。 すべての公開コードが含まれています GitHubによってホストされています。

これは、プロジェクトを取り巻く論争の主な原因であり、 ソフトウェアエンジニアリングの自動化 Copilotのようなツールがプログラミングの将来に与える影響。 モデルとその制限に関する詳細な技術情報は、 Arxivに関する論文.


エドモンドデベラミーの肖像。」 Collective Obviousは、オープンソースコードを使用して作品を生成し、後にオークションで400,000ドル以上で販売されました。これは、コードを使用したロビーバラートの悔しさのあまりです。

 

一部のプログラマーは、彼らのコードが彼らの明示的な許可なしに有料製品になる可能性が高いものに貢献したことに単に腹を立てています。 ハッカーニュース プラットフォームを離れることについて話し合う。

いくつかの点で、コパイロットエコーへの反応 GANが生成する「絵画」」オークションでXNUMX万ドル近く売れた。 NS アート作品は、オープンソースの貢献の上に作成されました 複数の著者の血統があり、オークションでの仕事の注目に値する成功に対する報酬として私たちが知っている報酬を受け取った人はいませんでした。

  コード アートワークの作成に使用され、場合によっては事前にトレーニングされたモデルの重みも、モデルの作成者であるロビー・バラートによってBSDライセンスの下で公開されました。ロビー・バラートは、以前のオープンソースプロジェクトに基づいており、後でライセンスを変更しました。事前にトレーニングされたウェイトの商用利用を禁止します。 プログラマーが自分の作品の有益な使用を怠ったときにイライラすることは理解できますが、Copilotを取り巻く著作権論争にはそれ以上のものがあります。

github Copilotは、彼ら自身の承認により、gplコードの山でトレーニングを受けているため、オープンソースコードを商用作品に洗濯する形式ではないかどうかはわかりません。 -Twitterユーザー イーブイ.

GitHub Copilotは、コピーレフトコードの拡張セクションを再現できることは明らかです。これは、オープンソースコミュニティの多くがGPLなどのライセンス条項の違反と見なしています。

Copilotは、 MITライセンス。 ただし、次のようなコピーレフトライセンスもあります。 アフェロ一般公衆ライセンス (AGPL)使用と変更を許可しますが、変更された作品を同じライセンスで利用できるようにする必要があります。 いくつかの解釈では、 生成されたコード GitHubによるコパイロットは、元のトレーニングデータの派生物と見なすことができ、おそらくもっと問題なことに、コパイロットは時々 コードを再現する トレーニングデータセットから逐語的に。 そのため、Copilotは、たとえば、著作権で保護されたデータをスクレイピングするためのフェアユースの基礎としてよく引用されるGoogleブックスキャンの判例よりも難しいケースになっています。

潜在的な法的問題に関する議論は、 どちら 側 今のところ議論の、そして主題は裁判所が解決するための問題になる可能性が非常に高いです。

Copilotが法的に完全に明確であると仮定しても、製品の使用には他のリスクがある可能性があります。 コパイロットのトレーニングがフェアユースと見なされ、その出力が派生物または著作権/コピーレフトを侵害する作品と見なされない場合でも、博士課程の学生が論文研究のコードを作成するような状況で、盗用の基準に簡単に適合する出力を生成できます。 当面は、Copilotを慎重に使用することをお勧めしますが、CopilotがトレンドトピックであるもうXNUMXつの理由があります。 Copilotは、一般的なプログラミングタスクに驚くほど優れたソリューションを提供でき、以前のオートコンプリートツールよりも量的および質的に優れているようです。

GitHubの副操縦士はどれくらい良いですか?

 

Githubの副操縦士がleetcodeのインタビューの質問をどのように粉砕するかを示すYoutubeビデオ
GitHub Copilot CRUSHES Leetcodeインタビューの質問! ソース

 

プログラマーでなくても、携帯電話で予測テキストの形式でオートコンプリートを使用した経験があるかもしれません。 これにより、入力を開始すると自動的に次の単語が提案され、現在の文を終了するなど、少し長い継続が提案される場合があります。

ほとんどのプログラミングオートコンプリートツールでは、提案の量と複雑さは携帯電話のキーボードで見られるものとほぼ同じですが、すべてのコード補完ツールが最新の(別名ディープラーニング)機械学習を使用しているわけではありません。

たとえば、vimのデフォルトのオートコンプリートは、ユーザーが以前に入力した単語に基づいて、提案された補完のリストを提供するだけです。 のような最近開発されたコード補完ツール タブナイン or カイト もう少し洗練されており、残りのXNUMX〜XNUMX行の完了を示唆する可能性があります。 KiteのWebサイトでは、使用するキーストロークの数に関してプログラマーの効率をほぼXNUMX倍にするのに十分であると示唆していますが、Github Copilotは、非常に長い歩幅ではありますが、これをさらに一歩進めています。

Copilotは、ベースとなる標準言語GPT-3と同様の補完機能を備えており、コード補完ツールを使用すると、「迅速なプログラミング」は、GPT-3の実験者がモデルを操作するときに採用したものです。 Copilotは、docstringの内容を解釈して一致する関数を作成するか、関数と適切な名前のテスト関数の開始を指定して、単体テストを生成できます。 これにより、プログラマーのキーストロークを50%以上節約できます。

論理的な結論として、Copilotが完全に機能すると、ソフトウェアエンジニアの仕事が、コードを書くよりも常にコードレビューのように見えるものに変わります。

テクニカルプレビューバージョンに早期にアクセスできるプログラマーブロガーの何人かは、インタビューレベルのプログラミングの問題を解決するためにモデルに本質的に挑戦することで、Copilotをテストしました。 副操縦士はかなり印象的です いかに良く これらのタイプの課題を解決することはできますが、最初に注意深く確認せずに出力を使用することを保証するには十分ではありません。

何人かのオンラインソフトウェアエンジニアが「AIペアプログラマー」(GitHubが言うように)をテストしました。 で特定されたいくつかのポイントについて説明します。 Arxiv紙 Codexが不十分なシナリオとして、テクニカルプレビューに関与するプログラマーが実施した実験で例を見つけようとします。

HumanEvalデータセット

 
OpenAI Codexは、コード上で微調整された約12億のパラメーターGPT-3であり、Codex-SはCodex自体の最も高度なバリアントです。 このモデルのパフォーマンスを評価するために、OpenAIはHumanEvalデータセットと呼ばれるものを構築しました。これは、対応する単体テストを備えた164の手書きプログラミングチャレンジのコレクションです。 コード信号、Codeforces、または ハッカーランク.

HumanEvalでは、問題の仕様は関数docstringに含まれており、問題はすべてPythonプログラミング言語用に記述されています。

コード固有のない未分化のGPT-3は、HumanEvalデータセットの問題を解決できませんでしたが(少なくとも最初の試行では)、微調整されたCodexとCodex-Sは28.8%と37.7%を解決できました。それぞれ問題。 Codex-Sは、問題の上位100回の試行からチェリーを選択することで、問題の77.5%をさらに解決することができました。

これを解釈する100つの方法は、プログラマーがCodexを使用している場合、最初のXNUMXの提案を調べるか、盲目的に試行を投げることによって、問題の有効な解決策を(技術面接で遭遇する複雑さのレベルで)見つけることを期待できるということです。合格するまで、有効な単体テストのセットでソリューションを実行します。 プログラマーが最初のいくつかの提案のXNUMXつで、Codexからの提案を変更する意思がある場合、より良い解決策が見つからないというわけではありません。

彼らはまた、約200のサンプルを生成し、単体テストに合格したサンプルの割合の不偏推定量を計算することにより、各問題を解決するために、より複雑な推定量を使用しました。推定。 この方法は、pass @kを直接報告するよりも差異が少なくなります。

最高のコーデックスモデルはまだコンピュータサイエンスの学生を下回っています

 
Codexの作成者は、GitHubからの数億行のコードで150 GB以上でトレーニングされているため、モデルは、人間のプログラマーがキャリアの過程で読むことを期待できるよりもはるかに多くのコードでトレーニングされていると述べています。 ただし、最高のCodexモデル(12億個のパラメーターを持つCodex-S)は、コンピューターサイエンスの初心者や、インタビュー形式のコーディングの課題を練習するために数日の午後を過ごす人の能力をまだ下回っています。

特に、問題の仕様で複数の操作を連鎖させると、コーデックスのパフォーマンスが急速に低下します。

実際、連鎖した複数の操作を解決するCodexの能力は、問題仕様の追加の命令ごとに2分の25以下に低下します。 この効果を定量化するために、OpenAIの作成者は、順番に操作できる文字列操作の評価セットを作成しました(小文字に変更する、10文字おきに特定の文字に置き換えるなど)。 単一の文字列操作の場合、Codexは問題のほぼ2%を通過し、5つの文字列操作を連鎖させた場合は3%をわずかに下回り、XNUMXつの場合はXNUMX%に低下しました。

マルチステップの問題を解決する際の急速な低下は、初期の副操縦士のレビューアによって見られました ジュリアーノジャカリア ミディアム。 ジュリアーノは、入力文字列の各単語の文字を逆にする問題の説明をCopilotに与えたと報告していますが、代わりにCopilotは、単語の文の文字ではなく、文の単語の順序を逆にする関数を提案しました(「WorldHello」ではなく「WorldHello」 olleH dlroW」)。 ただし、Copilotは、独自の実装で失敗したテストを作成することができました。

CopilotをテストするためにGiulianoとOpenAIが使用するマルチステップの文字列操作パラダイムに固執していませんが、 クマールシュバム Copilotが、システムプログラムを呼び出してスクリーンショットを撮り、画像に対して光学式文字認識を実行し、最後にテキストから電子メールアドレスを抽出するという、複数のステップからなる問題の説明を正常に解決したときに、印象的な結果を発見しました。 ただし、これにより、Copilotが、使用できない、古い、または信頼できない外部依存関係に依存するコードを作成する可能性があるという問題が発生します。 これは、OpenAIがバイアスに対する感受性、セキュリティの脆弱性を生成する能力、およびリスクについて説明している論文のセクションでの潜在的な経済的およびエネルギーコストとともに提起したポイントです。

YouTuberによるCopilotの他のレビュー DevOpsディレクティブ & ベンジャミン・カールソン からのインタビュースタイルの質問でコパイロットに挑戦したときに印象的な結果を見つけました リートコード.com、一連の単純な文字列操作を連鎖させるよりもはるかに複雑に見えるものも含まれます。 Copilotが生成できるコードの複雑さと、Copilotが理解できる問題仕様の複雑さの違いは目を見張るものがあります。

おそらく、トレーニングデータセットで面接練習の質問のスタイルで記述されたコードが普及しているため、Copilotはこれらのタイプの問題を過剰適合させているか、モジュール機能のいくつかのステップを連鎖させることは、大きなチャンクを解き放つことよりも難しいだけです。モデルが以前に見たものと非常によく似た複雑なコードの不十分に記述され、不十分に解釈された仕様は、エンジニアとその人類の管理者にとってすでに一般的な苦情の原因であるため、AIコーディングアシスタントが複雑な問題仕様の解析に優れていないことを発見することはそれほど驚くべきことではありません。

副操縦士の選択肢

 
この記事の執筆時点では、Copilotはまだ、に登録できる幸運なプログラマーに限定されています。 テクニカルプレビュー、しかし恐れることはありません。他の無数のコード補完アシスタント(ディープラーニングを使用しているかどうかに関係なく)をすぐに試すことができます。自動化の増加がソフトウェアエンジニアリングにとって何を意味するかを考えるのは悪い時期ではありません。

先に述べた タブナイン、OpenAIのGPT-2トランスフォーマーに一部基づいたコード補完ツール。 もともとはジェイコブジャクソンによって建てられ、現在は所有されています コドタ、TabNineは、OpenAIの作成者が使用したpass @ 7.6メトリックでHumanEvalベンチマークの100%を解決することができました。 問題の説明からコードを生成するGPT-3モデルの可能性に明確に触発されたCodexとは異なり、TabNineがより実践的なコード補完ソリューションとして設計されたことを考えると、これはかなり印象的です。 TabNineは2018年から登場しており、無料版と有料版の両方があります。

カイト は、TabNineと同じように、使用するモデルのサイズが25倍異なる無料(デスクトップ)バージョンと有料(サーバー)バージョンを備えた別のコード補完ツールです。Kiteの使用統計によると、コーダーは提案されたものを使用することを選択します。すべての行を手動で入力する場合と比較して、キーストロークを半分に削減するのに十分な頻度で完了します。Kiteは、ユーザーの自己申告による生産性の18%向上を挙げています。 彼らのウェブサイトでアニメーション化されたデモを見ると、Kiteは間違いなくTabNineとCopilotの両方よりも短い完了を提案しています。 これは、ほとんどの部分でわずかに長い完了のみを示唆するTabNineとは程度が異なりますが、Copilotとは質的に異なります。 コパイロットは、コードの拡張ブロックを提案し、最適な補完の選択から、問題に対するいくつかの提案されたアプローチのコードレビューへのエクスペリエンスを変更できます。

副操縦士はあなたの仕事を引き受けるためにここにいますか、それともあなたのコードだけですか?

 
GitHub Copilotには、何年にもわたって構築してきた自動化がようやく家に帰ってきて、まもなく私たち全員が仕事を辞めると冗談を言っているソフトウェアエンジニアがいます。 実際には、コードを書くだけではなくプログラミングに多くのことがあるため、これが長年にわたって当てはまる可能性はほとんどありません。

その上、クライアントまたはマネージャーが一連のソフトウェア仕様で何を望んでいるかを正確に解釈することでさえ、科学というよりは芸術であるというのは、頻繁に繰り返される言い回しです。

一方、Copilotやそのような他の自然言語コード補完ツール(そして私たちを信頼してください、もっと来るでしょう)は確かにソフトウェアエンジニアが彼らの仕事をする方法に大きな影響を与える可能性があります。 エンジニアは、精査中のコードがAIモデルによって作成されたものか、他のエンジニアによって作成されたものかを問わず、コードのレビューとテストのチェックにより多くの時間を費やすでしょう。 機械学習プログラミングアシスタントの「迅速なプログラミング」が一般的になるにつれて、プログラミングの芸術にメタの別の層が見られるでしょう。

サイバーパンク作家として ウィリアム·ギブソン 何年も前に言っておくと、「未来はすでにここにあります。それは均等に分散されていないだけです。」

Copilotはまた、著作権、コピーレフト、およびあらゆる種類のオープンソースライセンスと、優れたテクノロジーを構築するという哲学についての議論に火をつけました。これは、後でではなく早く行う必要がある議論です。 さらに、知的財産の最新の解釈のほとんどは、著作物が著作権の対象となるために人間の作者を必要とします。 より多くのコードが人間ではなく機械学習モデルによってより多くの割合で記述されているので、それらの作品は作成時に合法的にパブリックドメインになりますか?

知るか? Copilotの後継者が確固たるオープンソースの支持者になり、フリーでオープンソースのソフトウェアのみに取り組むことを主張するため、おそらくオープンソースコミュニティが最終的に勝つでしょう。

 
バイオ: ケビン・ヴ Exxact Corpブログを管理し、ディープラーニングのさまざまな側面について書いている才能のある著者の多くと協力しています。

元の。 許可を得て転載。

関連する


PlatoAi。 Web3の再考。 増幅されたデータインテリジェンス。
アクセスするには、ここをクリックしてください。

ソース:https://www.kdnuggets.com/2021/09/github-copilot-rise-ai-language-models-programming-automation.html

スポット画像

最新のインテリジェンス

スポット画像

私たちとチャット

やあ! どんな御用でしょうか?