生成AIは普段の生活だけでなく、ソフトウェア開発にも大きな影響を及ぼしています。しかし、AIベースのコード生成ツールの利用や開発には法的問題が生じる場合があります。例えば、オープンソースコードを使用してAIモデルをトレーニングすることにより、著作権侵害やオープンソースライセンスの遵守に関する問題が生じる可能性があります。著作権侵害に至らない場合でも、規約違反が起こる可能性もあります。また、AIコード生成ツールの出力に帰属表示の義務があるコードがあった場合、規約違反の可能性も出てきます。しかし、これらの問題に関する有効な解決策もあり、賢く使うことで、作業効率を上げ、法的リスクを軽減することができます。
ーーー
AIベースのコードジェネレーターは、ジェネレーティブAIの強力なアプリケーションです。これらのツールは、AIを活用してコード開発者を支援するもので、AIモデルを使用して開発者の入力やテストに基づいてコードをオートコンプリートまたは提案します。このように、便利なツールなのですが、これらのツールには少なくとも3種類の潜在的な法的問題があります:
- オープンソース・コードを使用してAIモデルをトレーニングすることは、侵害を構成するか、または使用がライセンスされている場合でも、オープンソース・ライセンスの条件や制限を遵守する必要があるか。
- AIコードジェネレータの出力を使用すると、開発者は侵害をしたことになるのか
- 新しいソフトウェアアプリケーションを作成する開発者がAIが生成したコードを使用する場合、そのアプリケーションをオープンソースライセンスでライセンスし、そのソースコードを利用可能にする必要があるか?
ここではこれらの法的問題を取り上げ深掘りしていきます。
AIコードジェネレーター
これらのツールは、コード開発プロセスを大幅に簡素化し、迅速化することができます。使用されるAIモデルは、通常、数十億行のコードで学習され、そのほとんどが一般に公開されているオープンソースコードです。開発者のリクエストと既存のコードに基づいて、このツールはコードのスニペットから完全にコード化された機能まで、提案されたコードを生成することができます。これはリアルタイムで数秒のうちに行われます。これらのツールは使いやすく、多くのプログラミング言語で動作します。簡単な例を以下に示します。

AIコードジェネレーターモデルのトレーニング
AIコード生成モデルの学習データは、通常、オープンソースコードの巨大なリポジトリに基づいています。多くの人は、使用されているコードがオープンソースであるため、法的な問題がなく、自由に使用できると考えています。結局のところ、オープンソースのポイントは、その使用を自由に許可することなのです。そして、真のオープンソースライセンスは、オープンソースソフトウェアが使用される用途を差別するものではありません。
オープンソースライセンスの基本
オープンソース・ソフトウェアは通常、自由に使用できますが、その自由はソフトウェアに付随するライセンスに基づきます。ほとんどのオープンソースライセンスは、ユーザーがオープンソースコードをコピー、変更、再配布することを許可しています。しかし、これらの自由には条件が付きます。これらの条件はライセンスによって異なり、単純な遵守義務から、より負担の大きい実質的な要件まで、さまざまなものがあります。
遵守義務(compliance obligations)の例としては、著作権表示の維持、帰属表示の提供、再配布の際のライセンス条項の記載などがあります。より実質的な規定としては、オープンソースソフトウェアを含む、またはオープンソースソフトウェアから派生したソフトウェアは、オープンソースライセンスの条項に基づいてライセンスされなければならず、そのソフトウェアのソースコードは自由に利用できるようにしなければならないという条件を含めることができます。これらの条件は、しばしばソフトウェアの「汚染」(tainting)と呼ばれます。このような許諾条件を持つライセンスは、しばしば「制限的」なオープンソースライセンス(”restrictive” open source license)と呼ばれます。
プロプライエタリなソフトウェアの開発を望み、プロプライエタリなライセンスのもとで有償でライセンスされる商業開発者にとって、この「汚染」は大きな問題です。開発者がオープンソースライセンスでライセンスし、ソースコードを利用可能にしなければならない場合、ソフトウェアの価値は著しく低下します。なぜならオープンソースライセンスは、受け手にそのソフトウェアを無償でコピー、修正、再配布する権利を与えるからです。
単純なコンプライアンスであれ、より実質的な義務であれ、これらの条項を遵守しないと、法的な問題が発生する可能性があります。遵守しなかった場合、契約違反とみなされる可能性があります。また、ライセンスが解除され、オープンソースソフトウェアを使用する権利が失われることもあります。さらにライセンス終了後に使用が継続された場合、事態は深刻化し、作権侵害の申し立てが発生する可能性があります。
AIコードジェネレーターのオープンソース法的問題
オープンソース・コードを使用してAIモデルをトレーニングすることは、侵害を構成するのか、あるいは、使用がライセンスされている場合でも、そうすることでオープンソース・ライセンスの条件や制限を遵守する必要があるのか。
上記で説明したように、一般的にオープンソースライセンスは、オープンソースコードの使用に対して制限を課していないため、オープンソースコードを使用してAIモデルをトレーニングするだけでは、侵害にならない可能性が高いです。しかし、オープンソースライセンスの遵守義務が満たされない場合、法的問題が発生する可能性があります。
AIコード生成ツールCoPilotに対する最近の訴訟では、オープンソース・コードを使用してモデルをトレーニングする際に、同ツールがライセンスに違反してコードから著作権表示とライセンス条項を削除したと主張しています。CoPilotの出力は、コード(またはその一部)をコピーしているにもかかわらず、著作権情報、帰属表示、その他のコンプライアンス義務を満たしていないとしています。法的請求としては、ライセンス条項違反による契約違反、著作権管理情報(CMI)削除によるDMCA第1202条違反、その他様々な請求があります。1202条は、CMIを意図的に削除・改変することや、CMIが削除・改変されていることを知りながら著作物を頒布することを禁止しています。
関連記事:AI自動生成ツールは「侵害」するのか?3つの訴訟に注目
関連記事:フェアユースか侵害か、機械学習は著作権を尊重する必要があるのか?
アウトプットがオープンソースコードの再配布をすることによる規約違反の可能性
AIモデルをトレーニングしてCMIを剥ぎ取ることは、DMCA第1202条に違反する可能性があります。そして、関連するオープンソースのライセンス条項を遵守しないことによる契約違反に該当する可能性もあります。しかし、これらの問題のそれぞれは、事実関係に応じたものとなります。事実の1つは、特定のライセンス条項によるものです。例えば、オープンソースライセンスの中には、オープンソースコードが再配布された場合に遵守義務を果たすことを求めるものがあります。議論の余地なく、A社がオープンソースコードをダウンロードし、それを自社のサーバーで、自社のモデルを訓練するために使用するならば、その時点ではまだ企業による再配布は行われていません。しかし、A社のAIコードジェネレーターが、ユーザーのリクエストに応じてそのコードを出力した場合、それは再配布になる可能性が高いです。
オープンソースコードから学んだコピーでないコードがアウトプットされた場合は状況が異なるかもしれない
もう一つの事実上の問題は、A社がどのようにそのモデルを訓練するかということです。モデルがオープンソースのコードを含んでいる場合、そのコードに含まれるCMIを維持する必要があるかもしれません。しかし、モデルがコードに関する情報を学習して生成され、その情報に基づいて後に新しいコードを作成する場合は、問題が異なる可能性があります。この場合、モデル自体にコードのコピーが含まれていない可能性があります。また、AIコードジェネレーターの中には、あえて出力を生成する際にコードのコピーを調べないようにデザインされているものもあるとのことです。
要するに、オープンソースコードでAIモデルを学習させることによって何らかの法的違反が発生したかどうかを評価するためには、ライセンス条項とモデルの学習・使用方法を考慮する必要があるということです。
AIコードジェネレータのアウトプットを使用すると、開発者は権利を侵害したことになるのか?
オープンソースライセンスでは、オープンソースコードのコピー、修正、再配布が認められているため、AIツールからコードを出力するだけでは、侵害にならない可能性があります。しかし、コードを出力してもライセンス遵守義務が満たされない場合は、契約違反になる可能性があります。一部のオープンソースライセンスでは、そのような違反があった場合、ライセンスの終了につながる可能性があります。そして終了後の継続的な使用は、侵害とみなされる可能性があります。
新しいソフトウェアアプリケーションを作成する開発者がAIが生成したコードを使用する場合、そのアプリケーションをオープンソースライセンスの下でライセンスし、そのソースコードを利用可能にする必要があるのでしょうか?
AIコードジェネレータから出力されたコードが制限的なオープンソースライセンスでカバーされている場合、そのコードを他のプログラムで使用すると、そのプログラムが「汚染」(tainting)される可能性があります。上記で説明したように、この場合、プログラム全体が制限的なオープンソースライセンスと同じ条件でライセンスされ、プログラム全体のソースコードが利用可能にすることが要求されます。つまり、受信者はプログラムを無料でコピー、変更、再配布することができます。これは、有償でライセンスされるプロプライエタリなソフトウェアを構築する場合、理想的なアプローチとは言えません。
オープンソースの問題をAIベースのコードジェネレーターで解決する
上記で取り上げた3つの問題は、一見とても難しい問題のように見えます。
多くの企業は、汚染問題(tainting issues)を回避し、侵害訴訟で足を引っ張られる可能性を最小限にするために、開発者によるAIコードジェネレータの使用を禁止しています。これは法的には安全な選択肢ですが、開発者がAIコードジェネレータを活用し効率よく業務をおこなうことを阻むものです。
しかし、うれしいことに、こうしたリスクを軽減し、開発者がAIコードジェネレータを安全に使用できるようにする実用的な解決策は実は数多く存在しています。
これらの点については後日紹介しますが、例をあげると以下のようなものがあります:
- 問題のあるコードを出力しないようにするフィルタの活用
- 問題のある出力にフラグを立てるためのコード参照ツールの活用
- オープンソースのコンプライアンスを支援するコードスキャンツールの活用
生成AIを利用したソフトウェア開発はオープンソースコードによる法的リスクが伴う可能性がある
生成AIの登場で、オープンソースコードに関わる法的な問題は複雑になりつつあります。こうした流れの中、モデルのトレーニングにオープンソースコードを使用することによる法的リスクや不確実性を理由に、多くの企業は開発者によるAIコードジェネレータの使用を禁止しています。しかし、リスクを抑えつつAIコードジェネレータを使うことは可能です。正しいリスクの理解の元でAIコードジェネレータを正しく使うことが今後のソフトウェア開発の大きなカギになってくることでしょう。