Skip to navigation

Prerequisites

View as Markdown

Hardware Requirements

RequirementMinimumRecommended
GPUs1× A6000, A100, H100, or newer2+ NVIDIA GPUs (A100 40GB or equivalent)
GPU VRAM32 GB per GPU40–80 GB per GPU
System RAM16 GB256 GB+
Disk space (for outputs)40 GB100 GB+ for large graphs

Multi-GPU is required for the default config (gpu: multi, num_gpus: 2). Single-GPU runs are supported but require gpu: single in the config or -e NPROC=1 at the Docker command line.

Every docker run invocation requires the following ulimit flags for stable CUDA/NCCL operation. For example:

--ulimit memlock=-1 --ulimit stack=67108864

Software Requirements

ComponentVersion
Docker Engine26+
NVIDIA Container Toolkit (nvidia-container-toolkit)1.15.0+
NVIDIA Driver560.28.03+
CUDA (host driver)12.6+
Operating SystemUbuntu 20.04+

Verify that Docker can access all GPUs on the host:

docker run --rm --gpus all nvidia/cuda:12.6.0-base-ubuntu22.04 nvidia-smi

The output should list all available GPUs.

Technology Stack

Training

ComponentTechnologyRole
GNN frameworkcuGraph-PyG (NVIDIA)Distributed heterogeneous GNN with GPU-accelerated sampling
Graph storageWholeGraph (NVIDIA)Distributed graph feature store; nodes partitioned across GPUs with transparent remote access
GNN trainingPyTorch DDP + torchrunGradient synchronisation across processes using NCCL
GNN modelGNNEncoderHeterogeneous multi-layer convolution (SAGE / GAT / Transformer / General)
XGBoost trainingXGBoost + RabitTrackerDistributed gradient boosted trees; data sharded across GPUs
OrchestrationtorchrunSpawns one process per GPU; sets LOCAL_RANK, RANK, WORLD_SIZE

Inference

ComponentTechnologyRole
Serving runtimeNVIDIA Triton Inference ServerProduction model server with ensemble support
GNN inferenceTriton Python backend (torch + torch_geometric)Runs the saved GNN model on CPU/GPU tensors
XGBoost inferenceTriton FIL backend (RAPIDS FIL)Hardware-accelerated forest inference on GPU
ExplainabilityTriton Python backend (XGBoost + Captum)Shapley Value Sampling feature attributions
LLM narrativeTriton Python backend (OpenAI SDK)Calls OpenAI-compatible API; thread pool for parallel requests

NGC Authentication

The training container is hosted on NVIDIA NGC and requires authentication.

  1. Create a free account at https://ngc.nvidia.com.
  2. Generate an API key from Profile → Setup → Generate API Key.
  3. Log in to the NGC registry:
docker login nvcr.io
# Username: $oauthtoken
# Password: <your NGC API key>

The username is always the literal string $oauthtoken — this is not an environment variable.

Inference Client Requirements

The inference clients (client.py, client_np.py, client_saved_emb.py, and client_production.py) run on the host (outside Docker) and communicate with Triton over gRPC:

pip install "tritonclient[grpc]" pandas numpy torch

For client_production.py --serve mode (persistent HTTP service), also install:

pip install fastapi uvicorn
tritonclient[grpc] must match the Triton server version. For Triton 26.04, use the version pinned to that release, or install the latest and verify the gRPC handshake succeeds on first use.

LLM Explainability (Optional)

The LLM explanation feature requires an API key from any OpenAI-compatible provider:

ProviderLLM_BASE_URLExample LLM_MODEL
NVIDIA NIM (using NVIDIA_API_KEY)(not needed — auto-configured to https://inference-api.nvidia.com)nvidia/meta/llama-3.2-1b-instruct
NVIDIA NIM (using LLM_API_KEY)https://inference-api.nvidia.comnvidia/meta/llama-3.1-70b-instruct
OpenAIhttps://api.openai.com/v1gpt-4o

The server starts and scores correctly without an LLM key — only the fraud_pipeline_explained ensemble is affected.