開発に関わるライセンス周りの個人的な知見まとめ【備忘録】

お疲れ様です。

仕事上で開発を行う際に付きまとうライセンス周りの問題について、個人的な知見もふくめてまとめておこうと思います。 (今後も追記する可能性ありです。)

以下2点ご注意ください。あくまで参考程度に考えてください。

  • ライセンス周りは私が調べた範囲内の話にはなるので間違いがあるかもしれません

  • 私の業務上の運用方法に近い話にはなりますので、詳しくは個々の会社の運用に従ってください



OSSライセンスについて

全体観としてはこちらの記事が参考になると思います。
www.hitachi-solutions.co.jp

基本的にはMITBSDApache-2.0 licenseを選べばトラブルは少ない。
GPL系は使用した場合ソースコードの開示が必要になるので、実際に使用する場合は注意が必要。
上記以外にも開発元が独自に設定したライセンスもあるので、内容はよく確認する必要があります。 (最近では機械学習のモデルアーキテクチャなどで商用利用不可のものがあったりする。)

確認方法

ソースコードと各プログラム言語のライブラリのOSSライセンスについて記載します。
ライブラリに関しては私がよく使うPythonやTypeScriptのもののみ記載。 他の言語でも同様に確認することはできると思います。

ソースコード

とりあえずGitHubリポジトリが無いか探すのが良いと思います。
「about」の項目に記載されているのと、LICENSEファイルを確認することもできます。 独自ライセンスの場合はLICENSEファイルの内容をよく確認した方が良いです。 github about license file 例:https://github.com/facebookresearch/Mask2Former

Python(pip, conda)

Pythonライブラリの場合はPyPIで確認することができます。
pypi.org
例えばNumpyならこんな感じ。GitHubのリンクもあるのでそちらを見てもOKです。 numpy pip
https://pypi.org/project/numpy/

condaの場合も同様に公式サイトからライブラリを探して確認できます。 anaconda.org numpy conda https://anaconda.org/anaconda/numpy

JavaScript/TypeScript(npm)

JavaScript/TypeScriptのライブラリの場合はnpmの公式を見ると良いと思います。
インストールのコマンドとしてyarnもありますが、インストールできるライブラリに違いは無いのでnpm公式を見れば確認可能です。
www.npmjs.com 例えばReactならこんな感じです。 react https://www.npmjs.com/package/react

特定のライブラリについての注意点

ライブラリとしては商用利用可能ばライセンスなのに、使用するライブラリのソースコードによっては別のライセンスがかかる場合があります。

例)HuggingFace(transformers) ライブラリのライセンス「Apache-2.0 license」ですが、使用するモデルアーキテクチャによっては別でライセンスがかかる場合があります。
ややこしいですが、よく確認しないと知らないうちにライセンス違反になることもあるので注意。

VisualStudio関係

基本的にはProfessional版を使うようにする。 会社の規模によっては制限はありますが無料のCommunity版を使うこともできるようです。
詳しくは下記のライセンス条項を確認してください。 visualstudio.microsoft.com

一方でC++ Build Toolsについては、一部無償で使用することができるようになっています。 一部のPythonライブラリやCUDAなどを使いたいときもこれだけインストールすれば使えます。
cpp build tool 下記が参考になります。ビルドツールのライセンス条項についても要チェック。 qiita.com

機械学習のデータセット

機械学習のデータセットの多くにもライセンスや条件が付与されています。
例えば、画像分類のデータセットで有名なImageNetは非営利目的のみとされています。 有名なデータセットであれば公式サイトがあり、そこに記載があると思うので確認しましょう。 imagenet www.image-net.org

HuggingFaceのDatasetsから利用する場合はデータセットのページを調べて確認することができます。 huggingface dataset https://huggingface.co/datasets/mrtoy/mobile-ui-design

特定のデータセットを使った事前学習モデル

上記のように非営利目的でしか使用できないデータセットを使った事前学習モデルは多く出回っています。 このようなモデルを営利目的で使用しても良いかは曖昧なところではあります…。
一応以下の論文や記事のような知見はありますので、参考にどうぞ。 https://www.jstage.jst.go.jp/article/alis/11/0/11_110/_pdf/-char/jawww.jstage.jst.go.jp note.com