GitHub は、コード作成時に標準構造を生成できるインテリジェント アシスタント GitHub Copilot のテストが完了したと発表しました。 このシステムは OpenAI プロジェクトと共同開発され、パブリック GitHub リポジトリでホストされている多数のソース コードでトレーニングされた OpenAI Codex 機械学習プラットフォームを使用します。 このサービスは、人気のあるオープンソース プロジェクトのメンテナーと学生は無料で利用できます。 他のカテゴリのユーザーの場合、GitHub Copilot へのアクセスは有料 (月額 10 ドルまたは年間 100 ドル) ですが、60 日間の無料トライアル アクセスが提供されます。
コード生成は、さまざまなフレームワークを使用して、Python、JavaScript、TypeScript、Ruby、Go、C#、および C++ のプログラミング言語でサポートされています。 GitHub Copilot を Neovim、JetBrains IDE、Visual Studio、および Visual Studio Code 開発環境と統合するためのモジュールが利用可能です。 テスト中に収集されたテレメトリから判断すると、このサービスではかなり高品質のコードを生成できます。たとえば、GitHub Copilot で提案された推奨事項の 26% が開発者によってそのまま受け入れられました。
GitHub Copilot は、現在のコンテキストを考慮して合成された既製の関数に至るまで、かなり複雑なコード ブロックを生成する機能が従来のコード補完システムとは異なります。 GitHub Copilot は、開発者がコードを記述する方法に適応し、プログラムで使用される API とフレームワークを考慮します。 たとえば、コメントに JSON 構造の例がある場合、この構造を解析する関数の記述を開始すると、GitHub Copilot は既成のコードを提供し、繰り返しの説明のルーチン リストを記述すると、残りのコードが生成されます。ポジション。
GitHub Copilot の既製のコード ブロックを生成する機能は、コピーレフト ライセンスの潜在的な違反に関連する論争を引き起こしました。 機械学習モデルを形成する際には、GitHub にあるオープンソース プロジェクト リポジトリの実際のソース テキストが使用されました。 これらのプロジェクトの多くは、GPL などのコピーレフト ライセンスに基づいて提供されており、派生作品のコードを互換性のあるライセンスに基づいて配布する必要があります。 Copilot の提案に従って既存のコードを挿入すると、開発者はコードを借用したプロジェクトのライセンスを知らず知らずのうちに違反してしまう可能性があります。
機械学習システムによって生成された作業が派生的であるとみなせるかどうかはまだ明らかではありません。 また、機械学習モデルが著作権の対象となるかどうか、もしそうであれば、これらの権利は誰が所有するのか、モデルのベースとなるコードに対する権利とどのように関係するのかという疑問も生じます。
生成されたブロックは、既存のプロジェクトのテキストの一節を繰り返すことができる一方で、システムはコード自体をコピーするのではなく、コードの構造を再作成します。 GitHub の調査によると、Copilot の推奨事項に 1 文字を超える既存プロジェクトのコード スニペットが含まれる可能性があるのは 150% のみです。 ほとんどの状況で、Copilot がコンテキストを正しく判断できない場合、または問題に対する標準的な解決策を提供できない場合に、繰り返しが発生します。
既存のコードの置き換えを防ぐために、既存のプロジェクトとの交差を許可しない特別なフィルターが Copilot に追加されました。 設定時に、開発者は自分の裁量でこのフィルタを有効または無効にすることができます。 他の問題の中でも特に、モデルのトレーニングに使用されたコードに存在するエラーや脆弱性が、合成されたコードで繰り返される可能性があります。
出所: オープンネット.ru