---
title: "NVIDIA NeMo Frameworkとは？2026年の分割後の構成とNeMo-Run・Megatron Bridgeの使い方"
url: "https://www.issoh.co.jp/tech/details/9944/"
published: 2025-11-21
updated: 2026-10-07
categories: ["LLM・RAG"]
publisher: "株式会社一創"
---

# NVIDIA NeMo Frameworkとは？2026年の分割後の構成とNeMo-Run・Megatron Bridgeの使い方

NVIDIA NeMo Frameworkは、NVIDIAがApache 2.0で公開している生成AIモデルの学習用ソフトウェア群です。2026年に単一リポジトリの体制を改め、`pip install nemo_toolkit` で入る本体は音声専用の「NeMo Speech」になりました。LLMの事前学習と微調整はMegatron BridgeとAutoModel、強化学習はNeMo RL、実験の投入はNeMo-Runと、役割ごとに別パッケージへ分かれています。2024年ごろの解説記事やREADMEの例をそのまま写すと動かない箇所が出るため、本記事では2026年10月時点の構成と、NeMo-Runの実行例、NeMo 2.0からの移行点を整理します。

## まとめ：2026年10月時点のNeMoの要点

- **nemo\_toolkitは音声専用**：3.0.0（2026-08-07）でLLM・VLM・拡散モデル・NLPのcollectionが外れ、残るのはasr・audio・common・speechlm2・ttsの5つ。
- **LLMの学習はMegatron Bridge（0.6.2）かAutoModel（0.6.0）**：Megatron Coreを土台にするならMegatron Bridge、PyTorch DTensorでHugging Faceのモデルを直接扱うならAutoModel。どちらもテンソル並列・パイプライン並列に対応する。
- **NeMo-Run（0.11.1）は単体で使える実験投入ツール**：関数の設定と実行環境（ローカル・Docker・Slurm・クラウド）を分け、同じ設定を別の環境へ投げ直せる。
- **本記事で比較するNGCコンテナは2系統**：LLM向けは `nvcr.io/nvidia/nemo:26.08.01`、音声向けは `nvcr.io/nvidia/nemo-speech:26.07.00`。分割前の最終版は2.7.3（コンテナ26.04）。
- **NeMo 2.0の書き方は移行が必要**：`from nemo.collections import llm` は3.0.0に存在せず、Lightningの `Trainer` 設定はMegatron Bridgeの `ConfigContainer` へ置き換える。

## NeMoの成り立ちとNeMo 2.0までの変遷

NeMoの名前はNeural Modulesの略です。2019年9月の論文「NeMo: a toolkit for building AI applications using Neural Modules」（arXiv:1909.09577）では、型付きの入出力を持つニューラルモジュールを組み合わせて音声認識と自然言語処理のアプリを作るツールキットとして発表されました。

その後、1.x系ではHydraのYAMLで学習を設定する方式を取り、2024年11月14日のNeMo 2.0で設定をPythonコードへ移しました。2.0ではPyTorch Lightningの `Trainer` とMegatron Coreの並列化を組み合わせ、学習ジョブの投入をNeMo-Runに任せる形になっています。

2026年の分割はこの2.0系の構造を解体したものです。[Speech 3.0のリリースノート](https://github.com/NVIDIA-NeMo/Speech/releases/tag/v3.0.0)は「removed 800k deprecated LOC」と書いており、80万行の非推奨コードを削ったうえで、音声以外は別リポジトリへ移しました。リポジトリ名も `NVIDIA/NeMo` から `NVIDIA-NeMo/Speech` へ変わっています（旧URLは新URLへ転送されます）。

## 分割後のNeMo Frameworkを構成するリポジトリ

GitHubの[NVIDIA-NeMo組織](https://github.com/NVIDIA-NeMo)にある主要リポジトリを、役割と2026年10月7日時点の最新版で並べると次のとおりです。いずれもライセンスはApache 2.0です。

| リポジトリ           | 役割                        | 最新版    | 公開日        | PyPI名              |
| --------------- | ------------------------- | ------ | ---------- | ------------------ |
| Speech          | 音声認識・音声合成・SpeechLM        | 3.0.0  | 2026-08-07 | nemo-toolkit       |
| Megatron-Bridge | Megatron CoreでのLLM学習とHF変換 | 0.6.2  | 2026-09-18 | megatron-bridge    |
| Automodel       | HFモデルのPyTorch分散学習         | 0.6.0  | 2026-08-26 | nemo-automodel     |
| RL              | 強化学習による事後学習               | 0.7.0  | 2026-07-29 | （GitHubから導入）       |
| Curator         | 学習データの前処理と選別              | 1.3.0  | 2026-07-27 | nemo-curator       |
| Evaluator       | モデルのベンチマーク評価              | 0.3.0  | 2026-06-03 | nemo-evaluator     |
| Export-Deploy   | 推論基盤への変換と配備               | 0.7.1  | 2026-09-18 | nemo-export-deploy |
| Run             | 実験の設定・投入・管理               | 0.11.1 | 2026-09-18 | nemo-run           |

NeMo RLはPyPIに `nemo-rl` の名前だけが0.0.0で登録されており、READMEはリポジトリをcloneして `uv venv` で環境を作る手順を案内しています。pipで入れても使えません。

### Megatron BridgeとAutoModelの使い分け

Megatron BridgeのREADMEは、LLMを学習する3つのライブラリの対応範囲を次のように示しています。

| ライブラリ           | 事前学習 | SFT | SFT LoRA | RL | 土台              |
| --------------- | ---- | --- | -------- | -- | --------------- |
| Megatron Bridge | ○    | ○   | ○        | ×  | Megatron Core   |
| AutoModel       | ○    | ○   | ○        | ×  | PyTorch DTensor |
| NeMo RL         | ×    | ○   | ○        | ○  | 上記2つを選択         |

判断の軸は、対象モデルの対応状況と、Megatron CoreまたはPyTorch DTensorのどちらを土台にするかです。AutoModelにもテンソル並列・パイプライン並列と数百GPU規模の学習例があるため、GPU数だけでは選び分けられません。READMEによれば、MLPerf Training v6.0でNVIDIAが使ったNeMo 26.06の学習スタックも、Megatron Bridgeをパッケージング層にしています。Hugging Faceのモデルを数枚から1ノード程度のGPUで微調整するだけなら、AutoModelのほうがYAML1枚と `automodel` コマンドで始められます。LoRAとPEFTの関係は[PEFTとLoRAの違い](/tech/details/8203/)で整理しています。

### NeMo Guardrails・NemoClaw・Nemotronとの違い

名前にNeMoを含むが学習フレームワークではないものがあります。NeMo Guardrailsは推論時にLLMの入出力を検査するツールキットで、学習とは無関係です（[NeMo Guardrailsの使い方と設定例](/tech/details/9475/)）。NemoClawはOpenClawなどのAIエージェントをサンドボックスで動かすNVIDIAのツールです（[NVIDIA NemoClawとOpenClawの違い](/tech/details/11404/)）。Nemotronは、NVIDIAが公開しているモデル群の名前で、Megatron BridgeとNeMo Speechが変換・微調整の手順を提供しています（[Nemotron 3 Superのベンチマーク性能](/tech/details/11383/)）。

## nemo\_toolkitのインストールと版の選び方

音声モデルを扱うなら、2026年10月時点の手順は次のとおりです。READMEの要件はPython 3.12以上・PyTorch 2.7以上で、GPUは学習に必須、推論には推奨という扱いです。

```
# 先に自分の環境に合うPyTorchを入れてから
pip install 'nemo-toolkit[asr,tts]'

# 公式READMEの推奨構成をソースから導入する例
# 以下はmainブランチを取得するため、依存バージョンは更新されます
git clone https://github.com/NVIDIA-NeMo/Speech.git
cd Speech
uv sync --extra all --extra cu13
```

PyPIのメタデータ上の下限は `requires_python>=3.10` ですが、READMEは3.12以上を要件にしています。新しく環境を作るなら3.12以上に合わせてください。ASRモデルの選び方と日本語対応は[NeMo ASRの選び方と導入手順](/tech/details/10066/)で詳しく扱っています。

### nemo\_toolkit 3.0.0で消えたcollection

PyPIから3.0.0と2.7.3のwheelを取得し、収録されている `nemo/collections` を比べると次の差があります。

| 版                 | wheelの大きさ | 収録collection                                  |
| ----------------- | --------- | --------------------------------------------- |
| 3.0.0（2026-08-07） | 約2.8MB    | asr, audio, common, speechlm2, tts            |
| 2.7.3（2026-04-23） | 約6.0MB    | 上記＋llm, vlm, multimodal, diffusion, vision ほか |

extrasも同様に、3.0.0には `llm`・`nlp`・`multimodal` がありません。`pip install 'nemo_toolkit[all]'` を実行してもLLM機能は入らないということです。NeMo 2.0のLLMコードを動かし続けたいなら `nemo_toolkit==2.7.3` に固定するか、NGCコンテナの26.04を使います。ただしこの系統は更新が止まっているため、新規の学習はMegatron Bridgeで組むのが筋です。

### NGCコンテナのタグと用途

NGCのAPIで確認したタグは次のとおりです（2026年10月7日時点）。配布ページは[NGC Catalogのnemo](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nemo)です。

| イメージ                       | 最新タグ     | 公開日        | サイズ     | 用途             |
| -------------------------- | -------- | ---------- | ------- | -------------- |
| nvcr.io/nvidia/nemo        | 26.08.01 | 2026-09-18 | 約20.0GB | LLM・マルチモーダル    |
| nvcr.io/nvidia/nemo-speech | 26.07.00 | 2026-08-06 | 約11.6GB | 音声             |
| nvcr.io/nvidia/nemo        | 26.04    | 2026-04-16 | 約25.9GB | 分割前の最終版（2.7.3） |

`nemo` イメージの表示名は「NeMo Framework Megatron Backend」に変わっています。NeMo Framework User Guideにも、26.02以降のコンテナについてはMegatron Bridgeの文書とリリースノートを参照するよう注記があります。音声だけ扱うなら `nemo-speech` を選ぶと、ダウンロード量がおよそ半分で済みます。このほか、[NVIDIA-NeMo組織のプロフィール](https://github.com/NVIDIA-NeMo)の一覧では、AutoModel・NeMo RL・Curatorにそれぞれ専用コンテナが割り当てられています。

pipで直接入れる場合、`megatron-bridge` 0.6.2のPyPIメタデータは `>=3.12,<3.13` で、Python 3.12しか受け付けません。READMEのバッジは「Python 3.10+」のまま更新されていないので、バッジではなくPyPIの値を見てください。

## NeMo-Runの使い方：設定と実行環境の分離

NeMo-Runは、学習関数の設定（何を・どのパラメータで）と実行環境（どこで）を別々に定義し、組み合わせて投入するツールです。NeMoのモデルコードに依存しないため、普通のPython関数も実行できます。READMEは「pre-release」と明記し、1.0.0まではAPIが予告なく変わると断っています。

### run.Partialとrun.Experimentで実験を回す最小例

次のコードは、nemo-run 0.11.1をPython 3.12の仮想環境に入れ、macOS上で実行して動作を確認したものです。学習率を2通り変えたタスクを、ローカルで順番に走らせます。

```
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install nemo-run==0.11.1
# 続くPythonコードをscript.pyに保存し、同じシェルで実行
# python script.py
```

```
import nemo_run as run


def train(lr: float = 1e-3, steps: int = 3) -> float:
    loss = 1.0
    for step in range(steps):
        loss *= 1 - lr * 100
        print(f"step={step} lr={lr} loss={loss:.4f}")
    return loss


if __name__ == "__main__":
    task = run.Partial(train, lr=1e-3, steps=3)
    executor = run.LocalExecutor()

    with run.Experiment("lr-sweep") as exp:
        for lr in (1e-3, 5e-3):
            task.lr = lr
            exp.add(task.clone(), executor=executor, name=f"lr_{lr}")
        exp.run(sequential=True, tail_logs=True)
```

なお、Intel MacのPython 3.12では依存パッケージlibcstのビルド済みwheelが見つからず、ソースからのビルドにRustのツールチェーンが必要でした。実行すると各タスクのログが流れ、最後に状態が表示されます。

```
lr_0.001/0 step=2 lr=0.001 loss=0.7290
lr_0.005/0 step=2 lr=0.005 loss=0.1250
Experiment Status for lr-sweep_1791364190526626000
- Status: SUCCEEDED
- Status: SUCCEEDED
```

実験の記録は既定で `~/.nemo_run/experiments/` に保存されます（環境変数 `NEMORUN_HOME` で変更できます）。タスクごとの `configs/` には、設定が `_target_: __main__.train`・`lr: 0.001` のようなYAMLで残ります。終了後も `run.Experiment.from_id()` や `nemo experiment logs <実験ID> 0` でログを引き直せます。後から「どの設定で回した結果か」を辿れることが、スクリプトを直接叩く運用との違いです。

### Executorの種類と前提条件

0.11.1でトップレベルから使えるExecutorは8種類です。`run.LocalExecutor()` を下の表のどれかに差し替えれば、同じタスクを別環境へ投げられます。

| Executor             | 投入先               | 前提                               |
| -------------------- | ----------------- | -------------------------------- |
| LocalExecutor        | 手元のマシン            | なし                               |
| DockerExecutor       | ローカルのDocker       | docker-py                        |
| SlurmExecutor        | Slurmクラスタ         | コンテナ利用時はPyxis・SSHで遠隔投入可          |
| SkypilotExecutor     | 各種クラウド・Kubernetes | extras skypilot または skypilot-all |
| SkypilotJobsExecutor | SkyPilotの管理ジョブ    | SkyPilot API Server              |
| KubeflowExecutor     | Kubernetes        | Kubeflow Training Operator v2    |
| DGXCloudExecutor     | DGX Cloud         | REST APIの認証情報                    |
| LeptonExecutor       | Lepton            | REST APIの認証情報                    |

SlurmExecutorのdocstringはPyxisを前提としていますが、0.11.1の実装は非コンテナ実行にも対応しており、`container_image` を指定しなければ `srun` にコンテナ関連のフラグは付きません。コンテナで投入する場合は、社内のSlurmで `srun --container-image` が使えるか（Pyxisが入っているか）を先に確かめてください。Slurm側の構成は[Slurmフェデレーションの構築手順](/tech/details/3893/)で扱っています。

### LocalExecutorでModuleNotFoundErrorになる原因

LocalExecutorは、タスクを別プロセスの `python -m nemo_run.core.runners.fdl_runner` として起動します。このとき使われるのは、親プロセスのインタープリタではなくPATH上の `python` です。仮想環境を有効化せずに `.venv/bin/python script.py` の形で実行した場合、PATH上のPythonにnemo\_runが入っていなければ、子プロセスは次のエラーで失敗し、タスクが `FAILED` になります。

```
Error while finding module specification for 'nemo_run.core.runners.fdl_runner'
(ModuleNotFoundError: No module named 'nemo_run')
```

`source .venv/bin/activate` で有効化してから実行すれば解消します（上の最小例で確認済み）。cronやCIから呼ぶ場合も、PATHの先頭に仮想環境の `bin` を置いてください。

## NeMo 2.0からMegatron Bridgeへの移行

NeMo-RunのREADMEの入門例は、今も `from nemo.collections import llm` で始まるNeMo 2.0の書き方です。前述のとおり3.0.0にはこのモジュールがないため、現行のnemo\_toolkitと組み合わせるとImportErrorで止まります。Megatron Bridgeには[公式の移行ガイド（nemo2-migration-guide）](https://github.com/NVIDIA-NeMo/Megatron-Bridge/blob/main/docs/nemo2-migration-guide.md)があり、主な対応は次のとおりです。

| NeMo 2.0                              | Megatron Bridge                                             |
| ------------------------------------- | ----------------------------------------------------------- |
| llm.Llama3Config8B                    | AutoBridge.from\_hf\_pretrained(…).to\_megatron\_provider() |
| nl.MegatronStrategy の並列数              | モデルプロバイダの tensor\_model\_parallel\_size など                  |
| Trainer の max\_steps                  | TrainingConfig の train\_iters                               |
| Trainer の val\_check\_interval        | TrainingConfig の eval\_interval                             |
| Trainer の limit\_val\_batches         | TrainingConfig の eval\_iters                                |
| Trainer の log\_every\_n\_steps        | LoggerConfig の log\_interval                                |
| llm.pretrain(model, data, trainer, …) | pretrain(cfg, forward\_step\_func=forward\_step)            |

大きな違いは3点です。1つ目に、PyTorch Lightningをやめて独自の学習ループになり、設定は `ConfigContainer` 1つに集約されました。2つ目に、学習関数にGPU数を渡さず、`torchrun`（`python -m torch.distributed.run`）で起動します。3つ目に、`load` や `pretrained_checkpoint` に指定できるのはMegatron形式のチェックポイントだけです。Hugging Faceの重みは `AutoBridge.import_ckpt()` で先に変換します。

NeMo-Runと組み合わせる場合、移行ガイドは関数を直接渡す `run.Partial` ではなく、スクリプトを渡す `run.Script` を、依存関係の管理の観点から強く推奨しています。NeMo 2.0の `nemo.lightning.run.plugins` にあったNsys・Wandb・Preemptionの各プラグインは、`megatron.bridge.recipes.run_plugins` へ移っています。

## NeMoを選ばないほうがよい場面

次の条件に当てはまるなら、NeMo系のライブラリは避けたほうが早く終わります。

- **GPU1枚でHugging Faceモデルを微調整するだけ**：Megatron形式への変換やテンソル並列の設定が手間になるだけです。Hugging Face Transformers＋PEFTか、[Unsloth](/tech/details/8159/)のほうが手数は少なくなります。NVIDIA系で揃えたいならAutoModelに留めてください。
- **学習環境にPython 3.12を用意できない**：megatron-bridge 0.6.2は3.12しか受け付けず、nemo-evaluatorも3.12以上3.14未満です。別の仮想環境やコンテナに分離できれば、プロジェクトのほかの部分まで3.12に統一する必要はありません。分離できない運用なら、Megatron Bridgeは見送ってください。
- **macOSやCPUだけの環境で学習まで完結させたい**：NeMo-Runの投入操作は手元のMacでも動きます（本記事の最小例で確認済み）が、Megatron Bridgeの学習はCUDA前提で、NeMo SpeechもREADMEで学習にはNVIDIA GPUが必須としています。手元のMacは設定作成と投入に限り、学習はGPUクラスタへ投げる構成にします。
- **APIの安定を最優先する**：Megatron Bridge・AutoModel・NeMo-Runはいずれも1.0未満で、NeMo-Runは1.0まで予告なくAPIを変えると明言しています。長期保守のスクリプトを書くなら、版を固定し、アップグレードは移行ガイドを読んでから行ってください。

学習済みモデルを推論基盤に載せる段階では、Export-Deployの対応表でモデルごとの出力先と配備先を確認します。Megatron BridgeとHugging FaceのモデルはvLLM向け、NIM Embedding・RerankingはONNX・TensorRT向けの経路が示されており、すべてのモデルで同じ出力先を選べるわけではありません。NVIDIA GPUでのLLM推論の高速化は[TensorRT-LLMの仕組みと採用判断](/tech/details/16075/)を参照してください。

## よくある質問

### NeMoとは何の略ですか？

Neural Modulesの略です。2019年の論文（arXiv:1909.09577）で、型付きの入出力を持つモジュールを組み合わせて音声認識や自然言語処理のモデルを作るツールキットとして発表されました。

### nemo\_toolkitとNeMo Frameworkは同じものですか？

同じではありません。NeMo FrameworkはMegatron Bridge・AutoModel・NeMo RL・Curatorなどを含むライブラリ群の総称で、nemo\_toolkit（PyPI名nemo-toolkit）はその一部を配布するパッケージです。nemo\_toolkitは3.0.0（2026-08-07）から音声を中心とするNeMo Speechのパッケージになりました。

### pip install nemo\_toolkit\[all\]でLLM機能は入りますか？

3.0.0以降は入りません。LLMとVLMのcollectionはパッケージから外れています。LLMの学習には `pip install megatron-bridge`（Python 3.12）か `nemo-automodel` を使い、NeMo 2.0のコードを動かす必要があるときだけ `nemo_toolkit==2.7.3` に固定します。

### NeMo-RunはNeMo以外の学習コードでも使えますか？

使えます。`run.Partial` には普通のPython関数を渡せ、本記事の最小例もNeMoのモデルを一切使っていません。NVIDIA以外のフレームワークで書いた学習スクリプトも、`run.Script` で同様にSlurmやクラウドへ投入できます。

### NeMo Frameworkは無料で商用利用できますか？

GitHub上の各リポジトリはApache 2.0で、商用利用できます。ただしNGCで配布されるコンテナは、NVIDIA Software License AgreementとAI製品向けの製品別条項に従います。同梱物の条件も別途かかるので（例えば `nemo` コンテナはMeta Llama 3 Community Licenseの素材を含みます）、コンテナで本番運用する場合は配布ページの条項も確認してください。

## 関連記事

- [NeMo ASRとは？NVIDIA音声認識モデルの選び方と日本語対応・導入手順【NeMo Speech 3.0】](/tech/details/10066/)
- [NeMo Guardrailsとは？使い方と設定例、0.24の変更点とIORailsの注意点](/tech/details/9475/)
- [PEFTとLoRAの違いとは？仕組み・使い方・QLoRA/DoRAとの比較を実装例つきで解説](/tech/details/8203/)
- [TensorRT-LLMとは？NVIDIA GPUでのLLM推論高速化の仕組みと採用判断を解説【2026年版】](/tech/details/16075/)
- [Hugging Face（ハギングフェイス）とは？できること・料金・使い方【2026年9月】](/tech/details/6108/)

---

出典: [NVIDIA NeMo Frameworkとは？2026年の分割後の構成とNeMo-Run・Megatron Bridgeの使い方](<https://www.issoh.co.jp/tech/details/9944/>)（株式会社一創）
