🤖

GitHub Copilotと“人間特権”

2022/06/30に公開
9

GitHub Copilotは、機械学習(俗にいうAI)によるコード生成サービスで、先日正式リリースされました。人間がこれから書こうとしているコードを予測してサジェストしてくれるものであり、「コメントを書いただけで実装の中身が自動生成された」などと評判です。

この分野では、学習データの量がものを言います。GitHub Copilotはこの分野の先駆者ではなくtabnineなどの先例もありますが、GitHubは非常に多くのソースコードをホストする(=学習材料とできる)サービスであることもあって注目を集めています。

筆者が度々Twitterで目にするのは、「GitHub Copilotは他人のコードをパクってしまう可能性があり、著作権上の問題がある」という意見です。つまり、GitHub CopilotがあなたにサジェストしたコードはGitHub Copilotのオリジナルではなく、すでにGitHub上に存在する他人が書いたコードをそのまま持ってきただけであるかもしれないということです。GitHubは多くのOSSをホストしており、一般にOSSの界隈は無償でソースコードが提供されライセンスに厳格であることも相まって、このような意見はよく見られます。

これは一見妥当な考え方に見えるかもしれませんが、筆者はこの考え方を突き詰めると、次の3つのうちいずれかに行き着かざるを得ないと考えています。

A. GitHub Copilotが生成するコードに著作権上の問題はなく、何も心配することはない。
B. そもそも人間が書いたコードも著作権的に安全であるとは断言できず、人間が書いたコードも含めて著作権的に完全に安全なコードというのは不可能である。
C. 全く同じコードでも、人間が書いたならばOKで機械が生成したらアウトという、筆者が言うところの人間特権を認める。

GitHub Copilotが生成するコードに著作権上の問題はあるか?

この記事では、事実としてGitHub Copilotが生成するコードに著作権上の問題・懸念があるかどうかということはあまり扱いません。法律も絡む話ですからただ一つの答えを出すのは難しいでしょう。あなたがどのような考え方であっても、問題ありません。

ただ、もしあなたがGitHub Copilot(あるいはその他の機械学習によるコード生成サービス)を使っても著作権上の問題がないと考えるならば、難しく考える必要はありません。GitHub Copilotを使っても著作権上の問題が無いのであれば、みんなどんどん使って人類の未来は明るいでしょう(Aの考え方)。

一方で、もしあなたがGitHub Copilotが生成するコードに著作権上の問題がある(あるいは、そのような可能性を捨てきれない)と考えるのであれば、もう少し考えを進めてみましょう。

一般にコードには著作権があり、(地域により法律の具体的な内容に差はあるものの、)他人が創作したコードを許可なく再配布することには問題があります。GitHub等で公開されている多くのコードには使用条件(ライセンス)が定められており、その条件に従えば使用することができますが、これは他の言い方をすれば、他人が書いたコードを使用するためにはライセンスに従う必要があるということです。

ここで問題となるのは、GitHub Copilotが生成したコードが、赤の他人が昔書いたコードと同じだった場合です。もしあなたがそのコードを自分の書いたコードに組み込んで公開した場合、それは他人の著作物を勝手に再配布し、結果として著作権を侵害していることになってしまいます。GitHub Copilotの使用に懐疑的な人は、このようにGitHub Copilotを通じて自分が著作権を侵害してしまう恐れがあることを問題としています。

もちろん、GitHub Copilotも「著作権侵害サービス」を提供しているわけではないですから、意図的にGitHub Copilotが他人のコードをパクるわけではないでしょう(筆者は詳しいわけではありませんが、おそらく機械学習の専門家に「GitHub Copilotは他人のコードをパクっているのか」と聞けば、「そんなアホなアーキテクチャではない」と返されるでしょう)。

しかし、GitHub Copilotに懐疑的な人は「GitHub Copilotは他人のコードをパクるように実装されていない」と聞いても安心することはないでしょう。GitHub Copilotが既存のコード(誰かが著作権を持っているコード)を学習材料としている以上、それがそのまま出てきてしまって結果的にパクりになってしまうのではないかとか、そういった心配が尽きることはないでしょう。

筆者はそのような心配を頭ごなしに否定するつもりはありません。むしろ、GitHub Copilotが他人のコードをパクってしまう可能性があると認めても構いません。

しかし、その考え方をするならば、もう少し考えを先に進める必要があるでしょう。

なお、機械学習による創作物の生成というのは画像生成なども含めて歴史のある分野ですから、探せば著作権に絡んだ研究も見つかると思います。ただ、筆者は詳しくないので、今回はそちらの方向には思考を進めないことにします。

では、人間なら大丈夫なのか?

ここまでの思考をまとめると、「GitHub Copilotは誰かが書いたコードを学習材料としているので、他人の著作物をパクってしまう可能性がある」ということです。これを前提に考えてみましょう。

ここで筆者が問いかけたいのは、「では、人間が、あなたが書いたコードは問題ないのか?」ということです。あなたは「自分は機械とは違う」と思うかもしれませんが、ではどこが違うのでしょうか。

もちろん、あなたが意識的に他人のコードをパクることは無いでしょう。しかし、GitHub Copilotもわざと他人のコードをパクるようは作られていないでしょうから、これではGitHub Copilotと差別化できていません。

次に、学習材料を考えてみましょう。よくよく考えてみれば、人間だって、多かれ少なかれ他人のコードを見た経験を糧にしてプログラムを書いているはずです。したがって、学習材料という点でもGitHub Copilotと差別化できていません。「人間の学習と機械学習は全然違う」と思うかもしれませんが、その違いを具体的に述べるのは専門家以外には(もしかしたら専門家でも)難しいでしょう。

さらに言えば、そもそも人間たるあなたは他人のコードをパクっていないと、どうして断言できるのでしょうか。もちろん意識的に他人のコードをパクることは無いでしょうが、あなたの脳が無意識のうちに学習したコードを保存しておいて、それを無意識のうちに完璧に再現してしまったということは絶対にありえないのでしょうか。無意識のことですから、あなたがどう考えているかとかそういうことは反論材料になりません。あなたが無意識のうちに他人のコードをパクってしまったという可能性は捨てきれないのではないでしょうか。GitHub Copilotがうっかり学習したデータをそのまま出力する可能性を考えるなら、人間の脳がうっかり学習したデータをそのまま出力する可能性も考えなければいけません。

以上のことを「確かにそうだな……」と思ったならば、あなたの結論はBです。

B. そもそも人間が書いたコードも著作権的に安全であるとは断言できず、人間が書いたコードも含めて著作権的に完全に安全なコードというのは不可能である。

機械学習を疑うならば、自分の無意識すら疑う余地があるはずです。「自分の脳はそんなアホなアーキテクチャではない」と思うかもしれませんが、筆者の知る限り人間の知性というのは完全に解明されているわけではなく、あなたの脳がそのようなアーキテクチャではないことを証明するのは不可能です。

したがって、機械学習が他人のコードをパクるのを疑うのと同様に、人間の脳が無意識に他人のコードをパクってしまうことも疑わなければならないので、あなた自身が書いたコードも含めて人間が生産したコードは常に著作権上の問題を抱えている可能性を疑うことになります。

機械と人間の間に線を引く

以上の話の流れに納得できなかった方もいるでしょう。しかし、機械学習というのがブラックボックスであり、人間の脳というのもやはり未解明である以上、両者を挙動の面から区別することは困難だし、両者の挙動に「絶対」を見出すことも困難です。それでもなお上の結論を認められないとすれば、残るのは次の選択肢です。

C. 全く同じコードでも、人間が書いたならばOKで機械が生成したらアウトという、筆者が言うところの人間特権を認める。

つまるところ、人間が真面目に書いたコードはパクりである可能性を疑わないが、GitHub Copilotが真面目に出力したコードはパクりである可能性を疑うというのであれば、その根拠としてはもはや「人間と機械の違い」というものしか残っていないように思われます。具体的な根拠を欠いたまま、人間と機械の間に線を引く。人間は許し、機械は疑う。これは人間特権という言葉がとてもふさわしいのではないかと思います。

機械学習によるコード生成で他人の著作物が生成されてしまう可能性を疑うことはまったく否定しません。しかし、同じ考え方を人間にも適用して疑うことをしないのであれば、あなたは知らず知らずのうちに人間特権に縛られているかもしれません。

まとめ

この記事ではGitHub Copilotと著作権に関する筆者の思考を書きました。

重ねて予防線を張っておきますが、筆者は機械学習の専門家などではないので、この記事は一エンジニアとして無知ながらに考えた内容を書いただけです。欠けている観点などの指摘は(論理的な内容であれば)歓迎します。例えば、この記事では人間の無意識を「絶対」で断ずることは不可能であることを前提としていますが、確率で考えれば人間が無意識に他人の著作物をパクる確率と、機械が他人の著作物をパクる確率に差を見出せるかもしれません。そのような研究はあるような気もしますが、この記事は酒の勢いに任せて書いたので筆者は特にサーベイしていません。

この記事の核となる考え方は、機械を疑うならば同じくらい人間を疑わなければいけないということです。このように人間の無意識すら疑う考え方にはなんとか主義という名前が付いている気もしますが、調べていないためよく分かりません。教えてくださる方は歓迎します。

何にせよ、自分の考え方の根拠を明確にするのはよいことだと思います。一度自分の考え方を振り返って、自分すら疑うのか、あるいは人間特権を認めるのか考えてみるのも悪くないのではないでしょうか。

GitHubで編集を提案

Discussion

にしはらにしはら

自分も著作権の専門家ではありませんが、著作権におけるアイディア・表現二分論という考え方が少し参考になるかもしれません。

GitHub Copilotが生成するものはアイデアレベルのものであって、著作権で保護する対象ではないというのが個人的な認識です。著作権を有するプログラム(コード)については国や地域によって解釈が違うとも思いますが、日本の裁判所の判例を1つあげておきます。(あくまで1判例なので、これが絶対的な基準ではないことも付け加えておきます)

プログラムは,「電子計算機を機能させて一の結果を得ることができるようにこれに対する指令を組み合わせたものとして表現したもの」(著作権法2条1項10号の2)であり,所定のプログラム言語,規約及び解法に制約されつつ,コンピューターに対する指令をどのように表現するか,その指令の表現をどのように組み合わせ,どのような表現順序とするかなどについて,著作権法により保護されるべき作成者の個性が表れることになる。したがって,プログラムに著作物性があるというためには,指令の表現自体,その指令の表現の組合せ,その表現順序からなるプログラムの全体に選択の幅があり,かつ,それがありふれた表現ではなく,作成者の個性,すなわち,表現上の創作性が表れていることを要するといわなければならない。

平成21年(ネ)10024号知財高裁判決 より抜粋

これは、人間がコードをコピペする場合も同様で、GitHub Copilotが生成する程度のコードをどこからパクっ…もといコピーしてきても著作権侵害には当たらないのだと思います。

仮にAIが著作権で保護されるレベルのコードを作れるようになったら、一体どうなるのかは分かりませんが、サルの自撮り写真の著作権がアメリカでは棄却されたように、著作権の発生においては人間特権はあるのかもしれません。

uhyouhyo

著作権の発生においては人間特権はあるのかもしれません。

情報ありがとうございます。確かに著作権は原理上法律で定義されるものなので、人間と機械の差が発生しうると思います。ただ、現状だとCopilotが生成したコードを使用するという判断に責任を持つのは人間でしょうから、やはり線引きが難しいですね。


あーだめだめ全部だめ

ご安心ください。あなたの主張はこの記事の範囲内なので全部だめではありません。「機械どころか人間にもそんな特権は許されてない」というのは、この記事のBに当てはまる主張です。確実かどうかはともかく、「学習データという元の実装知識があるAIはアウト」という可能性をこの記事では認めていますし、この記事に書いてある通り確かにAIには学習データがあるものの、人間にも学習データがあるので、そこに差異を見いだすのは難しいですね。

また、言及されているいわゆるクリーンルーム設計についてですが、コード生成のようなタスクにおいて人間とAIの明確な差異が見出せない以上、将来的にAIもクリーンルーム設計ができるようになる可能性があると思います。そのとき、

  • A'「AIでもクリーンルーム設計をやればOK」
  • B'「実は人間だろうがAIだろうがクリーンルーム設計をやってもアウト」
  • C'「人間がやったクリーンルーム設計はOKでAIがやったクリーンルーム設計はだめ」

のうちどれなのかという新たな論点が発生するでしょう。これについて考えてみるのとなかなか面白いのではないかと思います。

uhyouhyo

この記事の根幹の主張は、「人間によるコード生成もAIによるコード生成もどちらもブラックボックスだから、両者を明確に区別できないよね」ということです。ここを否定しない限り、この記事の範囲外に出ることはできません。あなたのコメントはAIを下げがちですが、いくらAIの評価を下げてもこの記事のBかCの範囲内です。この記事を否定するには、逆に人間を持ち上げてAIと差をつける必要があります。

人間は類似プロダクトのコードを見て真似してるかわからないし明言してないからライセンス違反との指摘はできなかったところコパイロットは見て真似してると明言しちゃってるから指摘されてるの

「真似してる」と言ったら機械学習の専門家から「そんなアホなアーキテクチャではない」と返されると思いますが、それはともあれ。
人間だって、真似しているとは明言していないものの、真似しているかもしれません。「法的差異が本質」であれば、人間が書いたコードは指摘しない、AIが書いたコードは指摘するという人間特権がありますので、この記事のCの主張に当てはまります。

中間表現に元のコードの断片を残さないことのような一定の確実性の保証はAIの苦手分野であり無知ゆえの根拠のない希望的観測でしかない

人間も、中間表現に元のコードの断片を残さないと保証されていません。AIによるクリーンルーム設計を否定することは自由ですが、その場合人間によるクリーンルーム設計も否定する(上のコメントのB')か、あるいは人間特権を認める(上のコメントのC')かをしなければいけません。

uhyouhyo

つまり、「裁判所はこの記事のCの立場を取って人間特権を認めるだろう」という主張ですね。私も、その可能性は普通にあると思います。
合意できました。ありがとうございました。

cream_nutcream_nut

Bが正しいと思います。

B. そもそも人間が書いたコードも著作権的に安全であるとは断言できず、人間が書いたコードも含めて著作権的に完全に安全なコードというのは不可能である。

"著作権的に完全に安全なコード"とは、創作性が全くないコードのことです。
設定ファイルなどは、これらに当てはまるでしょう。
それ以外のコードは、その創作性が他の著作物を基にしたのではないか、というリスクが常にあります。

また、人間が書いたか、AIが書いたかは、権利を侵害される被害者にとっては関係のないことです。
経緯によって賠償するかどうかが変わってしまうと、著作者を保護するという本来の目的が果たせなくなってしまいます。
ですので、Cは間違っていると思います。

C. 全く同じコードでも、人間が書いたならばOKで機械が生成したらアウトという、筆者が言うところの人間特権を認める。

dj oyudj oyu

AIによる著作権侵害を主張する場合、著作権者は自分のコードが学習に使われたことを立証する必要があるんだろうか

cream_nutcream_nut

著作権者が立証できるのは、学習に使うことができたか、までだと思います。
つまり、先にWEB上に公開している、ということが証明できれば十分です。

さざんかぬふさざんかぬふ

だめだめコメント消えちゃったんですね。
個人的に思ったのは、おそらくこの記事の問題提起とその直後の表現がねじれていて、それでだめだめコメントが生じたんだろうな、ということでした。
というのは、

これは一見妥当な考え方に見えるかもしれませんが、筆者はこの考え方を突き詰めると、次の3つのうちいずれかに行き着かざるを得ないと考えています。

A. GitHub Copilotが生成するコードに著作権上の問題はなく、何も心配することはない。
B. そもそも人間が書いたコードも著作権的に安全であるとは断言できず、人間が書いたコードも含めて著作権的に完全に安全なコードというのは不可能である。
C. 全く同じコードでも、人間が書いたならばOKで機械が生成したらアウトという、筆者が言うところの人間特権を認める。

この問題提起については、確かにA〜CがMECEであるという意味で正しいと思うんですが、その直後の

GitHub Copilotが生成するコードに著作権上の問題はあるか?

これは、見出しの直後で

この記事では、事実としてGitHub Copilotが生成するコードに著作権上の問題・懸念があるかどうかということはあまり扱いません。

と書いてはいるものの、実際に著作権上の問題があるかどうかということの判断は「明確に違反する手続きを経たか、それともグレーな(または"ホワイト"なクリーンルーム設計)手法なので明確に違反する手続きを経てはいないか」ということに大きく依存すると思われるので、だめだめというコメントになったのだろうなと思います。(後述のようにある意味トリビアルではあるものの。)
というのは、少なくとも現在のCopilotについてはクリーンルーム的にコードをひねり出しているという丁寧な説明が(少なくとも私の知る範囲では存在しないし)普及しておらず、少なくとも現時点では、Copilot側がもしクリーンルーム的な実装をしているのであればそれを示すべき、という空気があるのかなと思います(実際の法的な事は知りませんが)

その後コメントで指摘されているA'、B'、C'を考えれば、必ずしもA、B、Cで言おうとした本質からずれているということではないのですが、A、B、CとA'、B'、C'の間に距離を感じない人もいれば距離を感じる人もいるので、そこは丁寧に書かないと読めない人もいるんでしょうね。
読めない人が悪いのか、著者が悪いのか、どちらも悪くないのか、という事は私にはわかりませんが、事象としてこのような事が起こるのは、現在の書き方であればある意味で必然なのだろうと思ったりしました。

少し言い換えて整理すると、人間特権ということについては、「人間はクリーンルーム設計であることを厳密に示せなくても疑わしきは罰せずで罰されない可能性があるが、AIはクリーンルーム設計であることを厳密に示せなければ疑わしきも罰される」というような見方をするとたしかに特権的であるようにも思われますが、現在生じている問題は後者の場合を全く対等に扱えているわけではなく、現在実際に生じている問題については「存在するコードがインプットである」という事を明言してしまっているので、問題の本質が違っているという事があり、例を若干加工した方がわかりやすいかなと思います。
具体的な思考実験としては、
「GitHub Copilotを、インプットデータやそもそも機械学習によって実装しているという事を明示せずにビジネスとして展開したらどうなるか」
「GitHub Copilotを作るAIみたいなものを作って、人間は一切感知せずに完全にブラックボックスでCopilotを動かして、特定のコードをインプットの参考にしているか否かみたいな事は一切わからない状態で、何一つ明確な証拠も出なかったとしたら、それが著作権的に違反になり得るのか否か」
みたいな事なんですかね。

YusukeYusuke

法律の専門家でもないいちエンジニアの感想ですが、人間か機械か、はCopilotに関する著作権の問題と関係がないのかなという気がしています。
(本文の言葉を借りると、私の考え方はBです。人間ももし全行そっくりのコードを書くと当然著作権侵害になると思います。私の少ない著作権法の知識から言って、意識的にそれを行ったかは関係なく、実際に表現されたものが同じだったかどうかと、それを学習したことがあったかの2点がそろえば侵害になるように思います。)

「Copilotが行うものと似たサービスを、あるすごい人間が行った場合にどうなるか」を考えてみてもらいたいです。
具体的に言うと、そのすごい人間はたくさんのFOSSを学習しており、そこから顧客が期待するコードを提供します。この場合には、「学習を済ませ、そういったサービスの提供を開始する」時点では権利侵害は起きていません。著作物から学習したものでも、似ているだけのものを提供しても権利侵害は起きません。しかし、全行そっくりのコードを提供すると、その時点で、それが意識的か無意識的かにはかかわらず、当然権利侵害になると思います。

Copilotの場合でも人間の場合と同様で「学習には使ったが著作権違反になりそうな表現は回避している」のなら問題ないのですが、Copilotがそんな回避策を行っているとは思えず、権利侵害といえるような著作物と全く同じものを(ある意味無意識的に)顧客に提供してしまっているのではないか、というところが問題となるのだと思います。
極端な話、著作者Aさんの著作物Xと同じものがCopilotによって偶然Bさんに提供され、Bさんは何も知らずにXと同じYを商品化し権利を取得しました。ということした場合にCopilotに問題はないとしてしまうと、Aさんは泣き寝入りするしかなくなってしまいます。
実際にはCopilotが提供するコードは1単位が短いですし、権利侵害といえるほどの量が同じになるような極端なことは狙ってでもしなければ起きないと思いますが、可能性は0ではないわけで、それが起きたらやはりCopilotというサービスを提供するMicrosoftが権利侵害を行ったということになると思うので、やはりクリーンというよりはグレーなサービスかなと思います。
(この議論には、意識・無意識が関係がないと強調しているように、機械学習や人間の脳に関する知識・理解は不要のように思われます。ただただ「表現が一致したか」と「学習があったか」の2点で法的な判断が行われるのかなと思います)

僕自身はCopilotのように集合知を用いたサービスによって人類はより早く進歩できるようになると思うしそれを応援したいと思っています。
「Copilot的サービスが問題なく利用できるライセンスを選ぶ開発者が増え、それが十分多く世の中にあふれ、それらのみから学習できるようになる」というのが何の問題もない筋の通ったやり方のようにも思いますが、FOSS開発者は”あまりうるさくない”だろうと思われますし、Copilotのようにやや強硬に(「無条件に同じコードを提供していいわけではない」ライセンスのコードも含めて提供する可能性を回避しない)こういったサービスを提供することも、たとえばニコニコ動画やYouTube、あるいはGoogleがある種の著作権的グレーサービスを提供し続けられている世の中の現状からみて、これらと同様”目をつむれる”といえるタイプのものなのかな、世論のバランス次第で受け入れられるのかな、などと思います。

(追記:改めて本文を読み返してみて、僕が指摘したかったことは「uhyoさんは誰かと同じコード書いても無意識になら許されると思ってるように読めるけど、著作権法はそうなっておらず、当然Bだよ。仮にCの議論に進んだとしても、実際に権利侵害をしたか、あるいはするだろうことが予見できるサービスを提供しているかどうかが良し悪しの分かれ目であって、人間か機械かは関係がなさそうだよ。」ということだと思いました。)