Embedding Models

View as Markdown

This page provides detailed technical specifications for the embedding model family supported by NeMo Customizer. For information about supported features and capabilities, refer to Tested Models.

Nemotron 3 Embed 1B is the default retrieval checkpoint and trains with training.recipe: bi_encoder. Retrieval quality is measured with retrieve-eval on a frozen eval_beir split, which reports nDCG and Recall rather than the generation metrics used for chat models. For the full pipeline, see Embedding Model Customization and Retrieval SDG.

Llama Nemotron Embed 1B v2 is supported as an alternate checkpoint.

Nemotron 3 Embed 1B

PropertyValue
Default Namenvidia/Nemotron-3-Embed-1B-BF16
Hugging Facenvidia/Nemotron-3-Embed-1B-BF16
Training recipebi_encoder
Embedding dimensions2048
Recipe sequence length512 (mine, train, and eval)
ExportSet training.retrieval.export.primary: hf on the training job. Hugging Face weights land at the fileset root and ONNX under alternates/onnx.
NIMnvcr.io/nim/nvidia/nemotron-3-embed-1b:2.2.0 (/v1/embeddings with input_type query vs document). Use override_config.nimLegacy: false.
Finetuningall_weights or lora_merged

Model Entity Configuration

Register an entity backed by a fileset. A model that Inference Gateway discovered from a running endpoint has fileset: null and cannot be trained.

ConfigurationValue
Workspacedefault
Namenemotron-3-embed-1b
Fileset storageHugging Face nvidia/Nemotron-3-Embed-1B-BF16
Precisionbf16

Training Options

  • Full weights (all_weights): 1x 80GB GPU (recommended for the Nemotron recipe)
  • LoRA (merged): 1x 80GB GPU, tensor parallel size 1

Retriever NIM 2.2.0 serves a full checkpoint, not a standalone adapter, so training.finetuning_type has to be all_weights or lora_merged. Unmerged lora is rejected for the bi_encoder recipe.

Resource Requirements

  • Minimum GPU memory: 80GB for training; mining ~40GB
  • Recommended GPU: A100 or H100
  • Side-by-side eval: two GPUs (base NIM + tuned NIM)

Hyperparameter and Data Recommendations

These values match the Nemotron embed recipe. Automodel fills comparable defaults for any field left unset, so set them explicitly when a run has to reproduce the recipe exactly.

ParameterAPI Field NameRecommended Value
Learning rateoptimizer.learning_rate1e-5 (sweep 5e-6 / 2e-5)
Warmupoptimizer.warmup_steps5
Weight decayoptimizer.weight_decay0.01
Epochsschedule.epochs12 on NVDocs-scale or real corpora (3 is for tiny example sets)
Global batchbatch.global_batch_size128
Micro batchbatch.micro_batch_size4
Sequence lengthtraining.max_seq_length / training.retrieval.query_max_length and passage_max_length512
Passagestraining.retrieval.train_n_passages5 (1 positive + 4 hard negatives)

Score the fine-tuned model and the base model on the same frozen eval_beir split. Regenerating the split between runs makes the difference reflect data variance as much as model quality.

Deployment Configuration

  • NIM image: nvcr.io/nim/nvidia/nemotron-3-embed-1b:2.2.0

  • GPU count: 1x 80GB per deployment

  • After customization, route through the Inference Gateway:

  • Model Entity routing: /apis/inference-gateway/v2/workspaces/{workspace}/model/{name}/-/v1/embeddings

  • Provider routing: /apis/inference-gateway/v2/workspaces/{workspace}/provider/{deployment}/-/v1/embeddings

  • OpenAI routing: /apis/inference-gateway/v2/workspaces/{workspace}/openai/-/v1/embeddings

import os
from nemo_platform import NeMoPlatform
client = NeMoPlatform(
base_url=os.environ.get("NMP_BASE_URL", "http://localhost:8080"),
workspace="default",
)
response = client.inference.gateway.provider.post(
"v1/embeddings",
name="embed-tuned",
workspace="default",
body={
"model": "default/nemotron-3-embed-1b-tuned",
"input": ["What is the capital of France?"],
"input_type": "query",
},
)
print(len(response["data"][0]["embedding"]))

A ModelProvider attaches once the deployment reaches READY. retrieve-eval scores only entities with a non-empty model_providers list.

For the full recipe, from the NVDocs dump through mining, training, deployment, and evaluation, see Embedding Model Customization.

For triplet JSONL schema, see Dataset Format Requirements.

Llama Nemotron Embedding 1B v2

An alternate checkpoint for retrieval.

PropertyValue
Default Namenvidia/llama-nemotron-embed-1b-v2
Hugging Facenvidia/llama-nemotron-embed-1b-v2
NIMnvidia/llama-nemotron-embed-1b-v2 (1.13.0 is a 1.x image; leave nimLegacy at the default)
Max sequence length8192
Embedding dimensions2048 (Matryoshka: 384, 512, 768, 1024, or 2048)
Finetuningall_weights or lora_merged

This checkpoint uses the same Automodel bi_encoder contract; set export.primary to whichever artifact its NIM loads from the fileset root. New work should start from Nemotron 3 Embed 1B on Retriever NIM 2.2.0.