GitHubは先頃、開発者がより速く、より少ない労力でコードを記述できるように設計されたAIを利用したペアプログラマのCopilotを発表した。このサービスは、コメントと既存のコードから学習し、新しい行や関数全体の実装を提案する。
OpenAIによって作成されたAIシステムであるCodexを搭載したCopilotは、さまざまなフレームワークや言語に機能する。GitHubのCEOであるNat Friedman氏は、テクニカルプレビューがPython、JavaScript、TypeScript、Ruby、およびGoでより機能するが、他のプログラミング言語も理解できるように設計されていると示唆している。
Pythonの sortByKey 関数のGitHub Copilot実装。
Visual Studio Codeは、開発者がタイプしたコメントとコードをGitHub Copilotサービスに送信し、実装を合成して提案する。GitHubによると、サービスは上記の sortByKey の例のように、パラメータに意味のある名前を持った小さな関数に最適化されている:
最近、オープンソースリポジトリで優れたテストカバレッジを持つ一連のPython関数に対してベンチマークを行いました。関数本体を空白にして、GitHub Copilotに埋めるように指示しました。モデルは、最初の試行で43%の確率で、10回の試行が許可されたときに57%の確率でこれを正しい結果を得ました。そして、それは常に賢くなっています。
Pythonの returnRandomElement 関数のGitHub Copilot実装。
「思考の速度よりも速いバグ」という記事の中で、Maxim Khailo氏はコメントしている:
Copilotは魔法ではなく、平均すると人のコーダーよりもパフォーマンスが低下するでしょう。Githubプロジェクトの巨大な1億のプロジェクトコーパスでトレーニングされているとすれば、1000行のコードあたり50を超えるバグが確実に発生します。(...) Copilotを使用すると、バグは思考の速度よりも速く送信されます。
RedMonkのアナリスト兼共同創設者であるJames Governor氏は、「GitHub Copilotは新しいStackOverflowだ」と考えているが、Archiumの共同創設者であるGraham Lea氏は、2つのサービスには違いがあると考えている:
StackOverflowは、同じような問題を抱えているが状況が異なる2〜30人の人々によるオンデマンドアンサンブルプログラミングのようなものです。GitHub Copilotは、キーボードを乗っ取って、機能や方法を説明せずにコードを破壊する誰かとペアプログラミングするように見えます。
GitHubは「Copilotはコンパイラやペンのようなツールだ」と述べているが、多くの専門家は、オープンソースプロジェクトや多くの企業がAIを利用したコーディングを禁止する可能性があると考えて、ライセンスへの影響を懸念している。Simon de la Rouviere氏はtweetしている:
以前の権利と二次的著作物 vs 生成的創造物についてのもう1つの興味深い質問。機械学習の出力では、モデルに組み込まれる元の作品の権利を考慮に入れる必要がありますか? どこの行ですか? (...) 大企業は、GitHub Copilotがすでに存在するコードを大量生産することを恐れて、それを禁止するのではないですか?
Flaskの作者であるArmin Ronacher氏は、Quakeの高速逆平方根の例で、潜在的な著作権侵害を強調した。Epic GamesのCEO兼創設者であるTim Sweeney氏は、コメントしている:
これは考え抜かれていません。すべてのリポジトリが公開されているわけではありません。すべての公開リポジトリがオープンソースライセンスであるわけではありません。すべてのオープンソースリポジトリがパーミッシブライセンス (BSDスタイルライセンス) されているわけではありません。また、ほとんどのパーミッシブライセンスリポジトリは通知要件がありパブリックドメインではありません。
Copilotは、公開されているソースからの英語とソースコードのトレーニングを受けており、プライベートコードを参照していない。GitHubはこの課題を認めている:
公開されているデータで機械学習モデルをトレーニングすることは、機械学習コミュニティ全体でフェアユースと見なされています (...) しかし、これは新しい分野であり、私たちは、これらのトピックについて開発者と話し合い、業界をリードしてAIモデルをトレーニングするための標準の適切な設定を行うことに熱心です。
このサービスは技術的なプレビュー段階にあり、将来的には商用バージョンが予定されている。現在、GitHub Copilotの待ちリストに参加することができる。