GitHub Copilotとライセンス問題
GitHubのCopilotでコードのライセンスが適切にハンドリングされていないと複数のユーザーからレポートされています。
GitHub CopilotとはAIによりユーザーが入力した自然言語を元に、コードを提案してくれるサービスです。
しかし、Copilotが提案を行う学習元データは一般公開されているGitHub上のコードとなっているため、その元のコードのライセンスの種類によって問題が発生します。
- プログラマーが入力した自然言語からAIによるコードの提案を行うサービス
- 2021/07/07時点ではテクニカルプレビューとして限定されたユーザーのみ利用可能
- AIの学習にはGitHubに一般公開されているコードが利用されている
- VScodeの拡張機能
GPLライセンス
CopilotではGitHub上に一般公開されているコードが学習元データとして利用されています。
そこで、Nora TindallさんがGitHubに対して質問送った所、回答からGitHub Copilotの学習元となるデータセットはライセンスを判断せず、全ての一般公開されているコードを利用している事が判明しています。
oh my gods. they literally have no shame about this.
— ✨ Nora Tindall 🪐 (@NoraDotCodes) July 7, 2021
GitHub Support just straight up confirmed in an email that yes, they used all public GitHub code, for Codex/Copilot regardless of license. pic.twitter.com/pFTqbvnTEK
NoraさんはコードをGitHubに公開しており、ほとんどのコードはGPLライセンスとしています。
このGPLライセンスが適用されたコードを学習元とした、Copilotは低い確率ですが部分的に全く同じコード、もしくは同一と判断できるコードを提案する場合があります。
- ソフトウェアライセンスのひとつ
- GNU General Public Licenseの略
- コピーレフトライセンス
- 利用は自己責任
- 著作権表記の削除は禁止
- 複製・改変・再配布などは自由
- しかし変更したソフトウェアもGPLとする必要がある
CopilotのFAQでは Copilot が生成するコードのおよそ0.1%が元のコードと同一の状態となるようです。
![](https://kotamorishita.com/content/images/2021/07/github.png)
もし、その0.1%にGPLライセンスのコードと同一のものが含まれている場合、Copilotを利用したユーザーには適切な著作権表記やそのプロジェクト自体をGPLにするなどの義務が発生します。
これはCopilotを利用することで、ライセンス違反となる可能性があるということになり、プログラム作成時に気が付かなかっただけでもし将来的に発覚してしまった場合、ビジネスに大きな打撃を与える可能性があります。
一部のユーザーは”普段は生成されないよ”では納得できないとしており、GitHubのような会社が提供するサービスとしてコードのライセンスを無視しているのは非常に問題があるように思います。
github copilot has, by their own admission, been trained on mountains of gpl code, so i'm unclear on how it's not a form of laundering open source code into commercial works. the handwave of "it usually doesn't reproduce exact chunks" is not very satisfying pic.twitter.com/IzqtK2kGGo
— eevee (@eevee) June 30, 2021
MITライセンス
GPLライセンスに限らず、MITライセンスを採用しているプロジェクトのコードでも近い問題が発生します。
- マサチューセッツ工科大学で利用されていたライセンス
- GPL程のコピーレフトを強制しない
- 複製・改変などは自由に行って良い
- 著作権表示を重要な部分に記載する必要がある
MITライセンスでも著作権表記が必須と定められているため、0.1%の確率で同じコードが生成されてしまった場合はライセンス文をプログラム中に埋め込む必要があります。
他にも独自ライセンスや、著作権表記が必要となるライセンスは多数存在するため、全く同じコードが提案されてしまう可能性がある以上、学習データセットを安全なものにのみ変更する、Copilotの利用ユーザーにライセンスを適切に表示する等の対応が必要となるように思います。
まとめ
![](https://kotamorishita.com/content/images/2021/07/face.jpg)
MITライセンスは現時点で最もGitHubで利用されているライセンスなので、なんとか遵守できる状態で正式リリースできると良いですね。
Copilotについては記事を書いていますので、もっと詳しく知りたい方は参照してください。
2022/08/04追記
以下のような意見も参考になりますので、ぜひどうぞ。
![](https://res.cloudinary.com/zenn/image/upload/s--0JeBeuhD--/co_rgb:222%2Cg_south_west%2Cl_text:notosansjp-medium.otf_37_bold:uhyo%2Cx_203%2Cy_98/c_fit%2Cco_rgb:222%2Cg_north_west%2Cl_text:notosansjp-medium.otf_70_bold:GitHub%20Copilot%E3%81%A8%E2%80%9C%E4%BA%BA%E9%96%93%E7%89%B9%E6%A8%A9%E2%80%9D%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9yZXMuY2xvdWRpbmFyeS5jb20vemVubi9pbWFnZS9mZXRjaC9zLS01RE5lZ2R5Yi0tL2NfbGltaXQlMkNmX2F1dG8lMkNmbF9wcm9ncmVzc2l2ZSUyQ3FfYXV0byUyQ3dfNzAvaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzVjYjFlMDJlNGQuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_72/v1627274783/default/og-base_z4sxah.png)
References
- GitHub Copilot is not infringing your copyright https://github.com/mjbogusz/vl53l0x-linux
- GitHub Copilot FAQ - https://copilot.github.com/