> This page is for version Latest (default).
> For other versions, use one of these documentation indexes:
> - Latest (default): https://docs.nvidia.com/nemo-helix/latest/llms.txt
> - 0.8.0: https://docs.nvidia.com/nemo-helix/v0.8.0/llms.txt
> - 0.7.1: https://docs.nvidia.com/nemo-helix/v0.7.1/llms.txt
> - 0.7.0: https://docs.nvidia.com/nemo-helix/v0.7.0/llms.txt
> - 0.6.0: https://docs.nvidia.com/nemo-helix/v0.6.0/llms.txt
> - 0.5.1: https://docs.nvidia.com/nemo-helix/v0.5.1/llms.txt
> - 0.5.0: https://docs.nvidia.com/nemo-helix/v0.5.0/llms.txt
> - 0.4.0: https://docs.nvidia.com/nemo-helix/v0.4.0/llms.txt
> - 0.3.0: https://docs.nvidia.com/nemo-helix/v0.3.0/llms.txt
> - 0.2.0: https://docs.nvidia.com/nemo-helix/v0.2.0/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo-helix/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo-helix/_mcp/server.

# Manage Model Entities for Customization

Before running a customization job, you need to set up a **Model Entity** that points to your base model checkpoint. This section covers creating the required FileSet and Model Entity.

## Task Guides

#### [Create a Model FileSet](/documentation/customizer-reference/manage-model-entities/create-a-model-file-set)

Create a FileSet containing your base model checkpoint from Hugging Face, NGC, or local storage.

#### [Create a Model Entity](/documentation/customizer-reference/manage-model-entities/create-a-model-entity)

Create a Model Entity that references your FileSet and enables customization.

---

## Key Concepts

### What is a FileSet?

A **FileSet** is a collection of files managed by the platform. For customization, you create a FileSet containing:

* Model weights (`.safetensors`, `.bin`, or `.nemo` files)
* Model configuration (`config.json`)
* Tokenizer files (`tokenizer.json`, `tokenizer_config.json`, and so on)

FileSets can be populated from:

* **Hugging Face Hub** - Download directly from HF repositories
* **NGC** - Download from NVIDIA NGC catalogs
* **Local upload** - Upload files from your local machine

### What is a Model Entity?

A **Model Entity** is the platform's representation of a model. It contains:

* **FileSet reference** - Points to where the model files are stored
* **Model Spec** - Auto-populated metadata about the model architecture
* **Adapters** - LoRA or other adapters attached to this model (populated after training)
* **Base model link** - For fine-tuned models, links back to the parent

---

## Quick Start Example

Complete example of setting up a model for customization:

> **Tip**
>
> **Hugging Face Token**: If downloading from a gated Hugging Face repository, you will need to create a secret containing your Hugging Face API token first. Refer to [Manage Secrets](/documentation/get-started/core-concepts/manage-secrets) for instructions.

```python
import time
from nemo_helix_plugin.client.client import NemoClient
from nemo_helix_plugin.client.errors import ConflictError
from nemo_helix_plugin.files.storage_config import HuggingfaceStorageConfig
from nemo_helix_plugin.files.types import CreateFilesetRequest
from nemo_helix_plugin.models.types import CreateModelEntityRequest

client = NemoClient.from_config()

# Step 1: Create FileSet from Hugging Face
try:
    fileset = client.files.create_fileset(
        body=CreateFilesetRequest(
            name="nemotron-3-5-lightning-30b-a3b",
            description="Nemotron 3.5 Lightning 30B A3B base model from Hugging Face",
            storage=HuggingfaceStorageConfig(
                repo_id="nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16",
                repo_type="model",
            ),
        ),
    ).data()
    print(f"Created FileSet: {fileset.name}")
except ConflictError:
    print("FileSet already exists, retrieving...")
    fileset = client.files.get_fileset(name="nemotron-3-5-lightning-30b-a3b").data()

# Step 2: Create Model Entity
try:
    model = client.models.create_model(
        body=CreateModelEntityRequest(
            name="nemotron-3-5-lightning-30b-a3b",
            fileset="default/nemotron-3-5-lightning-30b-a3b",  # Reference to the FileSet
            description="Nemotron 3.5 Lightning 30B A3B base model for customization",
        ),
    ).data()
    print(f"Created Model Entity: {model.name}")
except ConflictError:
    print("Model Entity already exists, retrieving...")
    model = client.models.get_model(name="nemotron-3-5-lightning-30b-a3b").data()

# Step 3: Wait for ModelSpec to be auto-populated
print("Waiting for model spec to be populated...")
while not model.spec:
    time.sleep(5)
    model = client.models.get_model(name="nemotron-3-5-lightning-30b-a3b").data()

print(f"Model ready!")
print(f" Architecture: {model.spec.family}")
print(f" Parameters: {model.spec.base_num_parameters:,}")
print(f" Layers: {model.spec.num_layers}")
```

> **Note**
>
> These examples use the `default` workspace. If your current CLI context uses a different workspace, run `nemo config set --workspace default` first. To check, run `nemo config view`.

After the Model Entity is ready (has a `spec`), you can use it in customization jobs with `model: "default/nemotron-3-5-lightning-30b-a3b"`.

---