オープンソースMLエコシステム
フレームワークからローカルランタイムまでのオープンソースのスタック、各層の役割、そして何を出荷してよいかを決める、オープンソース・オープンウェイト・制限付きウェイトのライセンス上の区別を解説します。
概要
これから使うほぼすべてのモデルはオープンソースのソフトウェアで学習されており、モデル自体もダウンロードして自分のハードウェアで動かせるものが増えています。エコシステムは層に落ち着いてきました。フレームワーク(PyTorchまたはJAX)、モデルライブラリとハブ(Hugging Face)、サービングとローカルのランタイム(vLLM、llama.cpp、Ollama)、そしてそれらを流れる重みです。各層にはそれぞれのライセンスがあり、プロダクトに何ができるかを最もよく決めるのは重みのライセンスです。
このハブは、スタックを選び、利用条件を読むエンジニアのためのページです。各層が何をするか、どのツールを選ぶか、そしてオープンソースとオープンウェイトの違いを説明します。この違いは衒学的な区別ではありません。ファインチューニングできるか、再配布できるか、商用でサービングできるか、出力で別のモデルを学習できるかを決めるものです。フレームワークの比較は/reference/frameworks/に、各モデルのライセンスは/reference/models/に記録してあります。
重要な考え方
スタックは4層からなる
PyTorchは研究と大半のプロダクション学習のデフォルトのフレームワークです。JAXはXLAコンパイラを介した関数型の配列ライブラリで、TPUで好まれます。Hugging FaceのTransformersとDiffusersライブラリは公開されたアーキテクチャの大半のリファレンス実装を提供し、Hubは重み、トークナイザ、モデルカードを提供します。ファイル形式はsafetensorsです。vLLMはOpenAIのAPIを模したAPIの背後でGPU上のモデルをサービングし、これによってアプリケーションはURLを変えるだけでホスト型モデルと自前ホストのモデルを切り替えられます。llama.cppは量子化したGGUFファイルをCPUとApple Siliconで実行し、Ollamaはそれをモデルレジストリと1コマンドで起動するローカルサーバーで包んでいます。
オープンソースとオープンウェイトは同じではない
オープンソースには定義があります。Open Source Initiativeによるもので、誰でもいかなる目的でも、利用分野の制限なく、使用、研究、改変、再配布できることを要求します。モデルについては、OSIが2024年10月にOpen Source AI Definitionを公表し、実質的に同等なシステムを再現するのに十分な学習データの情報に加えて、学習コードと重みをOSI承認の条件で提供することを追加で要求しています。これを満たす公開モデルはごくわずかです。Allen InstituteのOLMo 2(7 B、13 B、32 Bパラメータ、4 kコンテキスト、Apache-2.0、2024年11月および2025年3月)は重み、コード、学習データ、ログを公開しており、最も明快な例です。
オープンソースと呼ばれているものの大半はオープンウェイトです。重みはダウンロード可能で、ライセンスは寛容型のこともあります(Mistral 7B、Qwen2.5、Qwen3はApache-2.0、DeepSeek-R1はMIT)が、学習データと多くの場合は学習コードが非公開なので、モデルを再現することはできません。プロダクトの土台としては申し分ありませんが、それでも定義上はオープンソースではありません。3つ目のグループは独自条件の下のオープンウェイトです。Llama 3.1 Community Licence(Llama 3.1 8B、70 B、405 B、128 kコンテキスト、2024年7月)は帰属表示を要求し、許容利用ポリシーを伴い、月間アクティブユーザーが700 Mを超える企業には別途ライセンスの申請を要求します。Gemma Terms of Use(Gemma 3、1 Bから27 B、2025年3月)にはGoogleが更新しうる禁止利用ポリシーが含まれます。これらはオープンウェイト(制限付き)です。FLUX.1 [dev]のような研究専用ライセンス、そして出力での学習を利用規約で禁じることの多いAPIのみのクローズドモデルで、表が完成します。
| ライセンスの種類 | 例 | 重み | コードとデータ | 商用利用 | ファインチューニングと再配布 | 出力での学習 |
|---|---|---|---|---|---|---|
| オープンソース(OSI定義) | OLMo 2、Pythia | Apache-2.0 | 公開 | 可 | 可 | 可 |
| オープンウェイト、寛容型 | Mistral 7B、Qwen3、DeepSeek-R1 | Apache-2.0またはMIT | データ非公開、コードは部分的または無し | 可 | 可 | 可 |
| オープンウェイト、制限付き | Llama 3.x、Gemma 3 | 独自のコミュニティライセンスまたは利用規約 | 非公開 | 可、ただし条件と利用ポリシーあり | 可、派生物はライセンスと命名規則を引き継ぐ | Llama 3.1は新モデル名にLlamaの接頭辞を付ければ可、Gemmaの条件は異なるので個別に確認 |
| Responsible AIライセンス | Stable Diffusion 1.5およびSDXL(OpenRAIL-M) | 利用制限付きの独自ライセンス | 重みのみ | 可、制限された用途を除く | 可、同じ制限の下で | 言及なし |
| 非商用または研究用 | FLUX.1 [dev]、多くの学術リリース | 独自 | 重みのみ | 不可 | 研究のみ | 通常は不可 |
| クローズド | GPT-4o、Claude、Gemini | 入手不可 | 非公開 | API経由、利用規約の下で | 不可 | 通常は禁止 |
出荷前にライセンスを読む
どのモデルについても、答えるべき問いは同じです。商用利用できるか、どの規模まで可能か。ファインチューニングして結果を公開できるか、どんな名前で公開できるか。出力を別のモデルの学習に使えるか。通知の表示や成果物へのライセンスの添付が必要か。答えはバージョンの隣にモデルレジストリ(/topics/mlops-and-deployment/を参照)に記録してください。Hub上の量子化された派生物のライセンスは、元のモデルのライセンスと異なることがよくあるからです。
どこから始めるか
PyTorchに触れるために/learn/beginner/07-your-first-neural-network/を、vLLMとOllamaが模倣しているAPIの形について/learn/beginner/09-using-an-llm-well/を、サービス層について/learn/beginner/10-from-notebook-to-service/を読んでください。それからOllamaをインストールし、Apache-2.0ライセンスの小さなモデルをpullして、/projects/tiny-rag-local-embeddings/プロジェクトをそれに向けてください。/platforms/opensource/にプロジェクトの一覧があり、/topics/efficient-ml/はGGUFの量子化レベルを説明しています。
ツールとプラットフォーム
| ツール | 用途 | ライセンス | プラットフォーム |
|---|---|---|---|
| PyTorch | 学習と研究のフレームワーク。公開コードの大半のデフォルト | BSD-3 | /platforms/pytorch/ |
| JAXとFlax | コンパイル型の配列プログラミング、TPUファーストの学習 | Apache-2.0 | /platforms/jax/ |
| Transformers、Diffusers、safetensors、Hub | モデル実装、重み、モデルカード | Apache-2.0 | /platforms/huggingface/ |
| vLLM | OpenAI互換APIによるGPUサービング | Apache-2.0 | /platforms/opensource/ |
| llama.cpp | CPUとApple Siliconでの推論、GGUF形式 | MIT | /platforms/opensource/ |
| Ollama | llama.cpp上に構築されたローカルのモデルレジストリとサーバー | MIT | /platforms/opensource/ |
| Llama、Gemma、Mistralの重み | オープンウェイトのモデルファミリー。ライセンスは異なる | 上の表を参照 | /platforms/meta/、/platforms/google/、/platforms/mistral/ |
よくある間違い
- ドキュメントや提案でLlamaやGemmaのモデルをオープンソースと呼ぶ。これらは制限付き条件の下のオープンウェイトです。
- アップロード者のライセンスが元の開発元のものと一致しているか確認せずに、Hubから量子化モデルをpullする。
- 信頼できないアップロード者の
.binpickleチェックポイントを読み込む。読み込み時にコードを実行できないsafetensorsを使ってください。 - 非商用ライセンスのモデルの上に構築し、ローンチ時にそれに気づく。
- OpenAI互換のエンドポイントがOpenAIのものと同じように振る舞うと思い込む。ツール呼び出し、JSONモード、停止シーケンスはサーバーごとに異なります。
さらに深く
- Open Source AI Definition 1.0, Open Source Initiative, 2024年10月。
- OLMo team, 2 OLMo 2 Furious, 2025。完全にオープンな学習レポートです。
- Llama 3.1 Community License AgreementとGemma Terms of Use。最もよく出会う2つの制限付きライセンスです。
- Hugging Face Hubのライセンスに関するドキュメントとモデルカード。
- vLLM、llama.cpp、Ollamaのドキュメント。