生成AIを用いたソフトウェア開発
大規模言語モデル(LLM: Large Language Models )を基盤とした生成AIにより、自然言語の問合せに対して、コンピュータによる的確な回答を期待できる時代になってきた。その回答内容も、言語だけではなく、画像や動画を生成するものや、コンピュータのプログラムのソースコードで表現するものも出てきています。
Amazon Web Services, Inc.(以下AWSと呼ぶ)のAmazon CodeWhispererと言うサービスでは、コメントにやりたいことを書くと、それに応じたソースコードを提案してくれます。
例えば、筆者のIDE(統合開発環境)のCloud9上で、Pythonプログラムのコメントにget name from userと書くと、
name = input(“What is your name? “)
とソースコードが提案され、引き続き、helloと名前をprintしてはどうか︖と提案されます。
この提案に従っていくと、ユーザの年齢や、どの町に住んでいるのか、などさまざまな情報を問いかけては獲得し、表示していくプログラムが対話的に自動で作成できます。

この事例のように、今や、ソースコードも、やりたいことを書き込めば、それに応じてコンピュータの方から提案してくれる時代になっています。同様のサービスとしてはGitHub Copilot(GitHubが提供しているクラウド型人工知能ツール)も知られています。
このソースコードを提案してくれる生成AIは、既存の大量のソフトウェアのソースコードを、そのソフトウェアの意図とともに学習したものになっています。今後、プログラマは、過去のベストプラクティスのソースコードを生成AIから提案を受けて採否を行うだけで、所望の動作を行うソフトウェアを作成できることになります。
生成AIによるソフトウェア開発の懸念
生成AIが提案するソースコードは、学習した元のひな型があります。このひな形のソフトウェアには、どのように利用できるかのライセンスが必ずあります。従って生成AIの提案に従っていくと、いつの間にか、元のひな型とそっくりなソースコードができる上がる可能性があります。
さて、そのひな型がGPL(GNU General Public License)のようなCopyleft型のライセンスを採用している場合は、ひな型のソフトウェアそのものは、ソースコード開示が必要となります。生成AIが、このGPLライセンスのひな型コードを提案し、それをプログラマがアクセプトした場合、新たに作られたソフトウェアは、ひな型の引用にあたると解釈される可能性があります。
Amazon CodeWhispererでは、提案したソースコードの並びが、オープンソース由来の場合に、どのオープンソースで学習したものか、そのライセンスは何が使われているかと教えてくれるOpen Code Reference機能(Code Reference Tracker)があり、提案されたソースコードの出自とライセンスを明確にすることができるので、そのライセンスだと採用は無理だと言った判断が可能となります。
生成AIは、ソフトウェア開発を劇的に効率化してくれる可能性を秘めていますが、オープンソースを学習のひな型として使うケースは多いため、学習元のひな型のオープンソースライセンスについては注意を払う必要があります。
著作権からソフトウェア契約へOSSライセンスの拡大解釈
VIZIO社がGPLの規定を守らずSmartCastと言うソフトウェアを開発、流通させているとして、Software Freedom Conservancyが訴えていた裁判において、2022年5月13日に、アメリカ連邦カリフォルニア裁判所において、GPLの運用について、従来より踏み込んだ判決が出されました。
参考︓https://sfconservancy.org/news/2022/may/16/vizio-remand-win/
この事案については、以前のブログでも触れていますが、GPLは著作権法上での義務以外に、著作権法のスキームと異なる「契約」としての解釈ができるので、著作権者から著作物の頒布を受けた者でなくても、「契約違反」の観点から、コンプライアンス義務違反について告訴できることを認めた判決になります。
GPL違反裁判の事例のブログ︓https://fossid.techmatrix.jp/gpl-violation/
生成AIによるソフトウェアの自動生成であっても、AIが学習した引用元のライセンスが義務付ける対応を怠ってしまうと、Software Freedom Conservancyのような団体から告訴されるリスクがあります。生成AIによる自動生成においても、そのようなツール側も、リスクを回避するように、Amazon CodeWhispererのOpen Code Reference機能など、学習で利用した引用元の情報を開示するような工夫はされています。しかし、作成されたソースコードは、本当に大丈夫かとの確認を行う方が安心です。
社内でOSSライセンスの解釈についてしっかりガイドラインを作成し、コンプライアンス義務を順守する社内プロセスを整備して運用すれば、何も恐れることはありません。
外注者に開発委託した場合、企図せずに納品物にOSSが含まれていることがありますが、生成AIによる自動生成コードにおいてもOSSが含まれているかもしれないと言う意識で、FossIDのようなツールで、OSS由来のソフトウェアの有無確認を習慣づけることが、ビジネスを安心して進めていくためには必要です。
「OSSはわかって使う」、これを徹底すれば最新のソフトウェア技術を搭載した自社ソフトウェアを安全にお客様に提供していくことができます。

関連製品 FossID
OSSライセンス&セキュリティ管理ツール「FossID」
FossIDは、最新鋭のスキャニング エンジンと、膨大なオープンソース情報ナレッジベースに支えられた新しいOSSライセンス&セキュリティ管理ツールです。さまざまなプログラミング言語のファイルに対し、独自のコード検索アルゴリズムで高速にスキャンを行い、コードの派生元であるオープンソースを特定します。
また、NIST(アメリカ国立標準技術研究所)で公開されるCVE(Common Vulnerabilities and Exposures︓共通脆弱性識別子)情報に基づくOSSの脆弱性情報も表示し、OSSのセキュリティ対策が行えます。さらに、部分的にコピーペーストしたOSSの情報が確認できるコードスニペット検出にも対応しているため、より正確で広範囲な情報を可視化します。

FossIDの特長
- スキャン
- さまざまなプログラミング言語のファイルに対し、独自のコード検索アルゴリズムで高速にスキャンを行い、コードの派生元であるオープンソースを特定します。さらに、部分的にコピー&ペーストしたOSSの情報が確認できるコードスニペット検出にも対応しているため、より正確で広範囲な情報を可視化します。
- セキュリティ
- NIST(アメリカ国立標準技術研究所)で公開されるCVE(Common Vulnerabilities and Exposures︓共通脆弱性識別子)情報に基づく、OSSの脆弱性情報を表示し、早期にOSSのセキュリティ対策が行えます。また、セキュリティ脆弱性の原因となるコードスニペットを検出するオプション(VulnSnippet Finder)があります。
- コンプライアンス
- OSS検出時にライセンスを自動検出し、OSS利用で必須となるライセンス規約遵守をサポートします。OSSは活用機会が多くコードの改変も頻発するため、企業はオープンソースコンポーネントを識別したり、コンプライアンスを遵守したりする労力がかかります。FossIDはコンプライアンスリスクや管理作業を低減させます。
OSSを正しく使うことは、ビジネスの強力な追い風に
ソフトウェア開発において、OSSはもはや欠かせない存在となってきています。しかし、その利用に際して、OSSのライセンスや脆弱性の管理が欠かせないため、OSSと上手に付き合う環境づくりが求めらます。
- ライセンス違反は著作権侵害に︕OSSのライセンスの確認していますか︖
- 放置すれば甚大な被害に発展も︕セキュリティリスクを正しく管理できていますか︖
メンバーがOSSライセンスを理解し、どこでOSSが使われているのかを把握し、OSSを正しく利用することで、ソフトウェア開発のスピードの向上、コスト削減など多くのメリットを享受することができます。
OSSは、ソースコードも含め、誰でも無償で利用できるものですが、さまざまなOSSライセンスが存在しています。また、利用するための条件が定められています。特に商用サービスやアプリケーションでのOSSの利用においては、OSSのライセンスを意識しなければ、さまざまなコンプライアンスリスクに直面してしまうことにもなりかねません。そこで、OSSをうまく活用するためにも、膨大なオープンソース情報ナレッジベースに支えられた「OSSライセンス&セキュリティ管理ツールFossID」をオススメいたします。