ソフトウェア

ソースコードの続きを自動補完するGitHub Copilotに「著作権で保護されたコードを出力している」という指摘が寄せられる


ソフトウェア開発プラットフォームのGitHubは2022年6月、プログラマーが書きたいコードを自動で補完してくれるサービス「GitHub Copilot」をすべてのユーザーに公開しました。GitHub Copilotはうまく利用することで開発速度を格段に向上させられると期待されていますが、テキサスA&M大学のコンピューターサイエンス教授であるTim Davis氏は、「GitHub Copilotは自分が書いた著作権で保護されたコードを出力している」と指摘しています。

@github copilot, with "public code" blocked, emits large chunks of my copyrighted code, with no attribution, no LGPL license. For example, the simple prompt "sparse matrix transpose, cs_" produces my cs_transpose in CSparse. My code on left, github on right. Not OK. pic.twitter.com/sqpOThi8nf

— Tim Davis (@DocSparse)


GitHub Copilotはソースコードを途中まで記述すると自動補完してくれたり、コメントでロジックを記述するとコードに変換してくれたりするサービスです。幅広いフレームワークと数十のプログラミング言語に適応しており、特にPython、JavaScript、TypeScript、Ruby、およびGoで効果的に動作するとのこと。

自動補完されるコードは必ずしもベストプラクティスに従っているわけではなく、コードベースが使用されているバージョンでは機能しないコードを生成したり、不要なコードを出力したりすることもあるそうです。そのため、GitHub Copilotが人間の開発者を完全に置き換えるとは考えにくいものの、経験を積んだプログラマーが「副操縦士」として使用するには有用だとされています。

プログラマーの書いたソースコードの続きを自動で記述する「GitHub Copilot」はエンジニアを駆逐してしまうのか? - GIGAZINE


一方、GitHub Copilotはライセンスを問わずGitHub上のあらゆるソースコードを基に学習したとのことで、「著作権的に問題があるのではないか」という指摘もされています。

コード自動入力AI「GitHub Copilot」は「開発者のコードを勝手に売りさばくサービス」という指摘 - GIGAZINE


そんな中、Davis氏は実際にGitHub Copilotを使用し、「自分が書いた著作権で保護されたコードが出力された」という実例を挙げました。以下の画像は、左側が疎行列(sparse matrix)に関するDavis氏が記述したコードで、右側が「sparse matrix transpose, cs_」というプロンプトを基にGitHub Copilotが生成したコードです。確かにGitHub Copilotが出力したコードは、Davis氏が記述したコードとかなりの部分が同じであることがわかります。


さらにDavis氏は、関数名を付けずに「sparse matrix transpose in the style of Tim Davis(sparse matrix transposeをTim Davisのスタイルで)」と、Davis氏の名前入りのプロンプトを入力する実験も行いました。その結果、やはりGitHub CopilotはDavis氏のコードをわずかに微調整したバージョンを出力してきたそうで、「GitHubのAIはこれが私のコードであることをわかっています」とDavis氏は指摘しています。

Curious about the "cs_" in the prompt, I tried no function name, just "/* sparse matrix transpose in the style of Tim Davis */". And got my code again, slight tweaked. So the @github AI "knows" this is my code.

Try it. Compare with https://t.co/Mtao5982hc pic.twitter.com/4Hwo1kPLH7

— Tim Davis (@DocSparse)


なお、今回問題とされているコード自体はLGPLライセンスで公開されているため、入手・使用・改変・商用利用などが可能であり、Googleストリートビューや宇宙開発などのソフトウェア開発にも利用されているとのこと。しかし、GitHub Copilotで出力されたコードには著作権表示がなく、埋め込んで使用する場合もLGPLライセンスで再頒布されない可能性があることが問題視されています。

It is all humanity-advancing open source code. There are about 6 billion compiled copies of this particular function in the universe. Other codes of mine enable Google StreetView. The USGS sent me an email once thanking me for enabling future presence on Mars. List goes on.

— Tim Davis (@DocSparse)


また、GitHub Copilotのプロジェクトチームに在籍しているRyan Salva氏もDavis氏の投稿に反応しており、エディター内の隣接するファイルから引用された可能性があることや、頻繁に公開リポジトリに出現するコードはパターン化され出力されやすいことを説明しています。Ryan氏は、「あなたのコードに似たコードが自動化提案に表示されるのは憂慮すべきことだと私は理解しています」と述べ、開発チームも学んでいる途中だと述べました。

5/n All that aside, I know it's alarming to see code similar to your own appear in an automated suggestion. This is a new area of development, and we’re all learning. I’m personally spending a lot of time chatting with devs to understand the most responsible way to leverage LLMs.

— ryanjsalva (@ryanjsalva)


今回の件はソーシャルニュースサイトのHacker Newsでも話題となっており、「人々は自分の専門分野においてAIの著作権侵害を話題にするが、専門外のAIには無関心または肯定的な反応を見せることが多い」というコメントや、「確かにAI技術は素晴らしいものだが、これらのモデルをライセンスに関係なく同意すら得ていないデータで訓練することには賛成できない」といったコメントが寄せられていました。

GitHub Copilot, with “public code” blocked, emits my copyrighted code | Hacker News
https://news.ycombinator.com/item?id=33226515

この記事のタイトルとURLをコピーする

・関連記事
GitHubにソースコードの「続き」を自動で補完する機能「GitHub Copilot」が登場、OpenAIの協力により - GIGAZINE

ソースコードの「続き」を自動で補完する「GitHub Copilot」がすべてのユーザーに利用可能へ - GIGAZINE

プログラマーの書いたソースコードの続きを自動で記述する「GitHub Copilot」はエンジニアを駆逐してしまうのか? - GIGAZINE

コード自動入力AI「GitHub Copilot」は「開発者のコードを勝手に売りさばくサービス」という指摘 - GIGAZINE

GitHubのソースコードで学習したプログラミングAI「Copilot」は著作権侵害なのか? - GIGAZINE

GitHubのソースコードから自動学習するAIプログラミング機能「GitHub Copilot」で禁止されている単語は1170個、ゲームに使われている関数まで禁止 - GIGAZINE

in ソフトウェア, Posted by log1h_ik

You can read the machine translated English article here.