> This page is for version 3.0.0 (Latest) (default).
> For other versions, use one of these documentation indexes:
> - 3.0.0 (Latest) (default): https://docs.nvidia.com/nim/financial-fraud-training/3.0.0/llms.txt
> - 2.0.0: https://docs.nvidia.com/nim/financial-fraud-training/2.0.0/llms.txt
> - 1.0.0: https://docs.nvidia.com/nim/financial-fraud-training/1.0.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/nim/financial-fraud-training/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nim/financial-fraud-training/_mcp/server.

# Generated Artifact Layout

Triton artifacts are written automatically to `output_dir/infer/triton/` at the end of training. No manual export step is needed.

**Edge prediction pipeline (`kind: GNN_XGBoost`):**

```
output/infer/triton/
├── gnn_embedder/                  ← GNN model (Python backend)
│   ├── config.pbtxt               ← Triton model configuration
│   └── 1/                         ← model version 1
│       ├── model.py               ← Triton Python backend wrapper
│       ├── fraud_gnn.py           ← self-contained GNN model class (no training deps)
│       ├── model_final.pt         ← trained GNN weights
│       └── model_config.json      ← graph schema, feature dimensions, num_neighbors, threshold
│
├── xgb_fraud/                     ← XGBoost classifier (FIL backend — fast GPU inference)
│   ├── config.pbtxt
│   └── 1/
│       └── xgboost.json           ← trained booster (native XGBoost JSON format)
│
├── xgb_explainer/                 ← XGBoost + Captum SVS explainer (Python backend)
│   ├── config.pbtxt
│   └── 1/
│       ├── model.py
│       ├── xgboost.json           ← same model as xgb_fraud
│       ├── feature_map.json       ← feature group definitions for SVS
│       ├── feature_names.json     ← human-readable feature names
│       └── svs_baseline.npy       ← pre-computed Shapley baseline
│
├── llm_explainer/                 ← LLM narrative generator (Python backend)
│   ├── config.pbtxt
│   └── 1/
│       ├── model.py
│       ├── model_config.json      ← graph schema copy (for src/dst node type names in prompts)
│       ├── feature_map.json
│       └── feature_names.json
│
├── fraud_pipeline/                ← Ensemble: end-to-end scoring
│   ├── config.pbtxt               ← wires gnn_embedder → xgb_fraud
│   └── 1/                         ← empty version directory (required by Triton)
│
└── fraud_pipeline_explained/      ← Ensemble: scoring + explainability
    ├── config.pbtxt               ← wires gnn_embedder → xgb_explainer → llm_explainer
    └── 1/                         ← empty version directory (required by Triton)
```

When `save_node_embeddings: true`, training also writes:

```
output/
│   ├── node_embeddings/               # only when save_node_embeddings: true
│   │   ├── {src_type}/
│   │   │   ├── rank=0_ids.pt         # per-rank global node IDs
│   │   │   ├── rank=0_emb.pt         # per-rank GNN embedding shard
│   │   │   ├── rank=0_feat.pt        # per-rank raw feature shard
│   │   │   ├── embeddings.mmap       # merged flat memmap (n_total × hidden_channels; created at first client startup)
│   │   │   ├── features.mmap         # merged raw features (n_total × n_raw_features)
│   │   │   └── shape.json
│   │   ├── {dst_type}/
│   │   │   └── ...
│   │   └── manifest.json
```

The `infer/` directory contains all client scripts:

```
│   └── infer/
│       ├── triton/
│       ├── serve.sh
│       ├── client.py               # standard GNN pipeline (EP)
│       ├── client_np.py            # standard GNN pipeline (NP)
│       ├── client_saved_emb.py     # hybrid: saved-embedding fast path + GNN fallback
│       │                           #   requires save_node_embeddings: true
│       └── client_production.py    # persistent HTTP service (--serve) or concurrent batch eval
│                                   #   requires save_node_embeddings: true
```

**Node prediction pipeline (`kind: GNN_XGBoost_NP`):**

```
output/infer/triton/
├── np_gnn_embedder/               ← GNN model (Python backend)
│   ├── config.pbtxt
│   └── 1/
│       ├── model.py
│       ├── fraud_gnn.py
│       ├── model_final_np.pt      ← trained GNN weights
│       └── model_config_np.json   ← graph schema, feature dimensions, num_neighbors, threshold
│
├── xgb_fraud_np/                  ← XGBoost classifier (FIL backend)
│   ├── config.pbtxt
│   └── 1/
│       └── xgboost.json
│
├── xgb_explainer_np/              ← XGBoost + Captum SVS explainer (Python backend)
│   ├── config.pbtxt
│   └── 1/
│       ├── model.py
│       ├── xgboost.json
│       ├── feature_map.json
│       ├── feature_names.json
│       └── svs_baseline.npy
│
├── llm_explainer_np/              ← LLM narrative generator (Python backend)
│   ├── config.pbtxt
│   └── 1/
│       ├── model.py
│       ├── model_config.json
│       ├── feature_map.json
│       └── feature_names.json
│
├── np_fraud_pipeline/             ← Ensemble: end-to-end scoring
│   ├── config.pbtxt               ← wires np_gnn_embedder → xgb_fraud_np
│   └── 1/                         ← empty version directory (required by Triton)
│
└── np_fraud_pipeline_explained/   ← Ensemble: scoring + explainability
    ├── config.pbtxt
    └── 1/                         ← empty version directory (required by Triton)
```

**The `model_config.json`** embedded inside `gnn_embedder/1/` is the contract between training and inference. It stores the graph schema (node types, edge types, feature dimensions), the decision threshold calibrated on the validation set, the `num_neighbors` list used during GNN training (which the inference client uses by default for client-side subgraph sampling), and `feat_dim` (total XGBoost feature width including embeddings, raw features, and edge attributes — always present). The inference client reads it to configure its requests. When `save_node_embeddings: true`, `model_config.json` additionally contains `inference_use_saved_embeddings: true` and `node_embeddings_dir` (path to the merged memmap files).