LLM・RAG

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

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のリリースノートは「removed 800k deprecated LOC」と書いており、80万行の非推奨コードを削ったうえで、音声以外は別リポジトリへ移しました。リポジトリ名も NVIDIA/NeMo から NVIDIA-NeMo/Speech へ変わっています(旧URLは新URLへ転送されます)。

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

GitHubの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の違いで整理しています。

NeMo Guardrails・NemoClaw・Nemotronとの違い

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

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の選び方と導入手順で詳しく扱っています。

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です。

イメージ 最新タグ 公開日 サイズ 用途
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組織のプロフィールの一覧では、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フェデレーションの構築手順で扱っています。

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)があり、主な対応は次のとおりです。

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のほうが手数は少なくなります。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の仕組みと採用判断を参照してください。

よくある質問

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の素材を含みます)、コンテナで本番運用する場合は配布ページの条項も確認してください。

関連記事

お気に入りに入れた記事の一覧

この記事は以下の記事からリンクされています

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.10.14 テックブログ Commune不正アクセス:約30.7万人漏えいの対象確認と共通署名鍵の教訓
  2. 2026.10.14 テックブログ ブックオフ不正アクセス:約638万人の対象確認と本物メールの見分け方
  3. 2026.10.15 テックブログ リゾートトラスト不正アクセス:会員2.6万件・カハラ横浜3.6万件の対象確認と窓口
  4. 2026.10.09 テックブログ ユニリタの不正アクセス:SaaS文書管理から漏れた顧客の認証情報と回す手順
  5. 2026.10.08 コラム 特定商取引法に基づく表記の書き方:必須15項目のテンプレートと置き場所

RELATED POSTS 関連記事

目次