Financial Fraud Detection Blueprint on ARM64
System Configuration
-
Hardware: NVIDIA DGX Spark with GB10 GPU
-
Architecture: ARM64 (aarch64)
-
OS: Ubuntu 24.04
-
CUDA: 13.0
-
Driver: 580.95.05
-
Docker: 28.5.1
Issue Summary
Successfully running the Financial Fraud Detection Blueprint on ARM64, but encountering data format incompatibility between preprocessing output and container v2.0.0 expectations.
What’s Working ✅
-
Environment Setup (ARM64):
-
RAPIDS cuDF 25.10 installed and working perfectly on ARM64
-
Conda environment with CUDA 13.0 support
-
GPU acceleration confirmed
-
-
Data Preprocessing:
-
Successfully downloaded IBM TabFormer dataset (2.2GB)
-
Preprocessing completed using the blueprint’s
preprocess_TabFormerscript -
Generated graph structure with fraud correlations identified
-
Created files in
/data/TabFormer/gnn/directory structure:
-
-
-
gnn/├── edges/│ └── node_to_node.csv├── nodes/│ ├── node.csv│ ├── node_label.csv│ └── offset_range_of_training_node.json└── test_gnn/ ├── edges/ │ └── node_to_node.csv └── nodes/ ├── node.csv └── node_label.csv
-
-
Container v2.0.0 ARM64:
-
Successfully pulled
nvcr.io/nvidia/cugraph/financial-fraud-training:2.0.0 -
Confirmed ARM64 architecture in manifest
-
Container starts without platform mismatch warnings
-
The Problem ❌
Error Message:
ERROR: Invalid Dataset: No label file found.
Exactly one '<A_rel_B>_label.<ext>' must exist across all edges.
Root Cause: The preprocessing script (from the v1.0.1 blueprint) generates edge files named node_to_node.csv, but container v2.0.0 expects edge files following the pattern <A_rel_B>_label.<ext> (e.g., user_transacts_merchant_label.csv).
Configuration Used:
{
"paths": {
"data_dir": "/data",
"output_dir": "/trained_models"
},
"models": [
{
"kind": "GNN_XGBoost",
"gpu": "single",
"hyperparameters": {
"gnn": {
"hidden_channels": 16,
"n_hops": 2,
"layer": "TransformerConv",
"dropout_prob": 0.3,
"batch_size": 2048,
"fan_out": 8,
"num_epochs": 8
},
"xgb": {
"max_depth": 6,
"learning_rate": 0.2,
"num_parallel_tree": 3,
"num_boost_round": 512,
"gamma": 0.0
}
}
}
]
}
Questions for NVIDIA
-
Data Format for v2.0.0:
-
What is the expected directory structure and file naming convention for v2.0.0?
-
Has the data format changed between v1.0.1 and v2.0.0?
-
Is there updated preprocessing code for v2.0.0?
-
-
ARM64 Support:
-
Is there (or will there be) an ARM64 build of v1.0.1 that matches the existing preprocessing output?
-
What is the recommended approach for ARM64 users?
-
-
Documentation:
-
Where can I find v2.0.0-specific documentation for the data format requirements?
-
Are there example datasets formatted correctly for v2.0.0?
-
Attempted Solutions
-
✅ Used example config from container (
example_training_config_gnn_xgboost.json) -
✅ Verified config validation passes
-
✅ Confirmed all volume mounts are correct
-
✅ Preprocessing completed without errors
-
❌ Data format mismatch prevents training from starting
Additional Context
-
The GitHub blueprint repository (
NVIDIA-AI-Blueprints/financial-fraud-detection) contains preprocessing code that appears designed for v1.0.1 -
No ARM64-specific documentation found
-
Successfully used v2.0.0 ARM64 container (no emulation warnings)
Request
Either:
-
ARM64 build of v1.0.1 (compatible with existing preprocessing), OR
-
Updated preprocessing code for v2.0.0 data format, OR
-
Documentation on v2.0.0’s expected data structure