Financial Fraud Detection Blueprint on ARM64?

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 ✅

  1. Environment Setup (ARM64):

    • RAPIDS cuDF 25.10 installed and working perfectly on ARM64

    • Conda environment with CUDA 13.0 support

    • GPU acceleration confirmed

  2. Data Preprocessing:

    • Successfully downloaded IBM TabFormer dataset (2.2GB)

    • Preprocessing completed using the blueprint’s preprocess_TabFormer script

    • 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
      
      
      
  3. 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

  1. 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?

  2. 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?

  3. 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:

  1. ARM64 build of v1.0.1 (compatible with existing preprocessing), OR

  2. Updated preprocessing code for v2.0.0 data format, OR

  3. Documentation on v2.0.0’s expected data structure