Skip to content
Kembali ke senarai artikel
MLOps13分

NIMカスタマイズ実践:LoRAホットスワップ・PEFT統合・BYOMパターン

Customizing NIM: LoRA Hot-Swap, PEFT Integration and BYOM Patterns

中村 健司ML Platform Engineer
2026-04-2413分
NVIDIA NIMLoRAPEFTBYOMファインチューニング

Artikel ini diterbitkan dalam Bahasa Jepun. Ringkasan dalam Bahasa Melayu di bawah:

Customizing NIM: LoRA Hot-Swap, PEFT Integration and BYOM PatternsNIMは「ベースモデル固定のブラックボックス」ではない。LoRAアダプタのホットスワップ、PEFTワークフロー統合、カスタムトークナイザ、BYOM(Bring Your Own Model)によるengine再ビルドまで、カスタマイズポイントを整理する。

NIMを採用するかの議論で必ず挙がるのが「カスタマイズ余地」だ。NVIDIAの公開ドキュメントとNIM CLIの仕様から読み取れる範囲で、実運用に効くカスタマイズパターンを4つ整理する。

LoRAアダプタのホットスワップ

NIMはマルチLoRA推論に対応しており、起動時に`NIM_PEFT_SOURCE`でローカルディレクトリまたはNGCレジストリを指定すると、複数のLoRAアダプタをロードできる。リクエスト時に`model`フィールドで`base-model:lora-adapter-id`の形で指定すれば、同一ベースモデル上で異なるアダプタを同時に推論できる。内部的にはTensorRT-LLMのmulti-LoRA kernelが、バッチ内で異なるアダプタ重みをswapしながらGEMMを実行する方式だ。この仕組みがあるので、顧客別・タスク別の微調整モデルを数百規模で運用しても、GPUインスタンスを分割する必要がない。

PEFTワークフロー統合

HuggingFace PEFT(`peft`ライブラリ)で生成した`adapter_model.safetensors`と`adapter_config.json`を、NIMが期待するディレクトリ配置に置くだけでロード可能なケースが多い。NeMo Frameworkでトレーニングした場合は`.nemo`形式からの変換スクリプトも提供されている。実運用では、MLflow等のモデルレジストリにadapterをアーティファクトとして登録し、CIで`NIM_PEFT_SOURCE`配下に同期するパイプラインを組むのが定石だ。

カスタムトークナイザとシステムプロンプト

NIMコンテナには`tokenizer.json`と`tokenizer_config.json`が同梱されるが、チャットテンプレート(`chat_template`)を組織固有のものに差し替えたい場合は、モデルディレクトリをマウントで上書きする。OpenAI互換APIの`messages`配列からrawプロンプトへの組立ロジックがここに依存するので、社内用の「常時システムプロンプト」を混ぜ込む実装ポイントとしても有効だ。

BYOMとengineの再ビルド

NGCにないモデル(社内で事前学習したLlamaアーキテクチャ派生など)をNIMフォーマットで動かすには、`trtllm-build`でTensorRT-LLM engine planをビルドし、NIMが期待するメタデータを添えてコンテナに同梱する必要がある。ビルド時にbatch size/sequence length/parallelism(TP・PP)を決め打ちするため、プロファイル設計が重要だ。典型的にはシングルGPU向けとTP=2・TP=4のプロファイルを用意し、起動時のGPU数に応じて選択させる。

注意点

LoRAのランク・ターゲットモジュールがベースモデルの対応範囲外だと、ロード時にエラーまたは性能劣化を起こす。対応モジュール一覧はベースごとに異なるので、事前確認が必須。また、量子化済みベースモデル(FP8/INT4)上でのLoRA適用は制約が多いため、重要な変更は再コンパイルも検討したほうが良い。

技術的な課題を一緒に解決しませんか?

KGA IT Solutionsは、AI・クラウド・DevOpsの専門チームがお客様の課題に最適なソリューションを提供します。

お問い合わせ