NVIDIA Nemotronによるドメイン固有埋め込みのファインチューニング – 1日以内

TL;DR: NVIDIA と Hugging Face は、6 段階の単一 GPU パイプラインを公開し、合成ドメインデータ上で 10 億パラメータの Llama‑Nemotron‑Embed‑1B‑v2 モデルを 1 日以内にファインチューニングし、Recall@10/NDCG@10 で 10% 超の向上、実世界のエンタープライズデータセットで最大 26% の改善を実現しました。

概要 – なぜドメイン固有埋め込みのファインチューニングが重要か

汎用埋め込みモデルはインターネット規模のセマンティクスに優れていますが、契約書や製造ログ、内部タクソノミーなどで必要とされる細かな区別を捉えられません。ドメイン固有データでのファインチューニングによりこのギャップが埋まり、Retrieval‑Augmented Generation(RAG)パイプラインにおける検索品質が向上します。この新しいレシピは、データ作成、ハードネガティブマイニング、マルチホップ処理、トレーニング、評価、デプロイをすべて単一の NVIDIA Ampere クラス GPU で自動化します。

クイックアクセスリンク

統合オープンソースコンポーネント

コンポーネント 役割
NeMo Data Designer 合成質問‑回答ペアを生の文書から生成する
NeMo Automodel 双方向エンコーダ埋め込みモデルを訓練する
BEIR 標準化された評価ベンチマークを提供する
NeMo Export‑Deploy チェックポイントを ONNX/TensorRT に変換する
NVIDIA NIM OpenAI 互換の埋め込みエンドポイントでモデルを提供する

前提条件

  • ドメイン文書のディレクトリ(.txt, .md など)
  • 無料の NVIDIA API キー(https://build.nvidia.com/
  • 80 GB 以上の VRAM を持つ NVIDIA Ampere GPU 以降(A100‑80GB と H100‑80GB でテスト)

ステップバイステップ パイプライン

1️⃣ 合成トレーニングデータの生成

このパイプラインは LLM nvidia/nemotron-3-nano-30b-a3b を使用して各文書を読み取り、手動ラベリングなしで高品質な QA ペアを生成します。

nemotron embed sdg -c default corpus_dir=./data/my_domain_docs

4 段階の SDG パイプライン(NeMo Data Designer に実装)では、複雑さが異なる質問(1‑3 ホップ)を作成し、品質スコアを付与します。設定可能な閾値以上のペアのみがトレーニングに使用されます。

2️⃣ ハードネガティブのマイニング

ハードネガティブとは、ベースモデルが正解に近い順位でランク付けする非関連パッセージです。マイニングは以下の手順で行われます:

  1. ベースモデルで全クエリとコーパスパッセージを埋め込む。
  2. 類似度スコアを計算する。
  3. 真のポジティブをマスクする。
  4. 偽ネガティブを防ぐために 95% マージンフィルタを適用する。
  5. 上位 k(デフォルト 5) の最高スコアの非ポジティブをハードネガティブとして選択する。
nemotron embed prep -c default

このコマンドはデータを分割(80 % 訓練、20 % テスト)し、マルチホップ質問を独立した(クエリ、ポジティブ)例に展開し、各例で同じハードネガティブを保持します。

3️⃣ マルチホップ質問の理解

マルチホップクエリ(2‑3 ホップ)では、モデルが複数の関連パッセージを取得する必要があります。各ホップを別々のトレーニングインスタンスに展開することで、モデルは すべて の関連文書をポジティブとして扱うことを学び、複雑なユーザークエリに対して完全な回答セットを提示する能力が向上します。

4️⃣ 双方向エンコーダのファインチューニング

トレーニングは温度 0.02 のコントラスト損失を使用し、ポジティブとハードネガティブを鋭く分離させます。

nemotron embed finetune -c default

主要ハイパーパラメータ(デフォルト値はサンプルデータセット向けに調整):

パラメータ デフォルト
エポック 3(大規模コーパスでは 1–2 エポックが推奨)
学習率 1e‑5
ウォームアップステップ 5(全ステップの約 5‑10%)
グローバルバッチサイズ 128
クエリあたりのパッセージ数 5(1 ポジティブ + 4 ハードネガティブ)

5️⃣ 検索性能の評価

評価は保持されたテストセットで BEIR フレームワークを実行し、k = 1, 5, 10, 100 における nDCG、Recall、Precision、MAP を報告します。

nemotron embed eval -c default

合成 NVDocs の結果(ベース → ファインチューニング後):

  • NDCG@10: 0.555 → 0.616(+10.9 %)
  • Recall@10: 0.630 → 0.693(+10.0 %)
  • すべての k 値で同様の向上が観測されました。

実世界の Atlassian ケース:公開 JIRA データセットでのファインチューニングにより Recall@60 が 0.751 から 0.951 に上昇し、26.7 % の改善を、単一の A100‑80GB GPU で実現しました。

トラブルシューティング

  • 合成データの品質が低い → 文書のフォーマットを改善するか、より強力な LLM を使用する。
  • データ不足 → ソース文書を増やし、SDG を再実行する。
  • 過学習 → エポックを 1‑2 に減らすか、品質閾値を上げる。
  • 学習率が最適でない → デフォルトの 0.5 倍または 2 倍を試す。

6️⃣ エクスポートとデプロイ

ファインチューニング済みチェックポイントを ONNX(opset 17)に変換し、必要に応じて最大スループットのために TensorRT エンジンをコンパイルします。

nemotron embed export -c default            # ONNX only
nemotron embed export -c default export_to_trt=false
nemotron embed export -c default quant_cfg=fp8   # FP8 quantization

NVIDIA NIM を使用してモデルをデプロイし、OpenAI 互換の /v1/embeddings エンドポイントを公開します。

nemotron embed deploy -c default

例リクエスト:

curl -X POST http://localhost:8000/v1/embeddings \
  -H "Content-Type: application/json" \
  -d '{"input": ["What cooling is needed for 8 H100 GPUs in a 2U chassis?"], "model": "custom", "input_type": "query"}'

組み込みの NIM 精度チェックが、変換による性能低下がないことを確認するために、デプロイされたサービスを BEIR で再評価します。

エンドツーエンド コマンドサマリー

# 1. Synthetic data generation
nemotron embed sdg -c default corpus_dir=./data/my_docs

# 2. Data preparation (split, hard‑negative mining, unroll)
nemotron embed prep -c default

# 3. Fine‑tune the embedding model
nemotron embed finetune -c default

# 4. Evaluate base vs. fine‑tuned checkpoint
nemotron embed eval -c default

# 5. Export to ONNX/TensorRT
nemotron embed export -c default

# 6. Deploy with NVIDIA NIM
nemotron embed deploy -c default

リソースと時間の見積もり

ステージ GPU 必要? 推定時間(単一 A100‑80GB)
合成データ生成 なし(API) 約1時間(コーパスサイズに依存)
データ準備(ハードネガティブマイニング) 必要(≈ 40 GB VRAM) 約5分
ファインチューニング 必要(80 GB VRAM) 約1時間
評価 必要(≈ 40 GB VRAM) 約5分
エクスポート 必要(≈ 40 GB VRAM) 約5分
デプロイ 必要(≈ 40 GB VRAM) 約5分
合計: < 24 時間;規模の小さいコーパス(約 500 文書)では全体のフローが 2–3 時間で完了します。

実践的なまとめ

このレシピは、ドメイン適応された埋め込みがもはや数週間・複数 GPU の作業ではなくなったことを示しています。合成データ生成、ハードネガティブマイニング、NVIDIA の最適化ツールを活用することで、実務者は単一 GPU と 1 日未満の計算で、標準指標で >10 % 、エンタープライズワークロードで >25 % の検索性能向上を実現できます。

実際に試す

リポジトリをクローンし、NVIDIA API キーを取得して、パイプラインを自分の文書コレクションに向けます。すぐに実験できる nvidia/Retrieval-Synthetic-NVDocs-v1 データセットが用意されています。Nemotron、NeMo Data Designer、NeMo Automodel のリポジトリへの貢献やスター歓迎です。

Sources