This project started off as a student innovation project for Western Cyber Societies Mainframe section. The goal was to demonstrate the ability to integrate modern machine learning fraud detection into a legacy (legendary) mainframe environment. The implementation was initially on a LinuxONE community cloud mainframe using s390x architecture. The main dependency of the project is the Nvidia Triton inference server, which we pulled in as a docker container for free with credentials from the IBM Cloud marketplace. The project was a success and endorsed by IBM Canada, but due to the unstable nature of the LinuxONE community cloud server, a lot of work was lost.
I decided that since a significant amount of the work was already done, I would rebuild it in a WSL environment. I was further encouraged to build this to take advantage of the CUDA capabilities of Triton working on my Nvidia 4060RTX. This project is a rebuild and work in progress, as well as an outlet for experimentation and continuous improvement.
Triton supports a number of types of cross platform AI models, the one chosen for this project was ONNX due to ability to convert to ONNX-MLIR for s390x. The data was taken from the Vesta case competition in 2019 regarding credit card fraud. Although this data is a bit old, it uses anonymized real transactional data which would provide the best challenge and learning opportunity for machine learning models. Features were engineered before hand, imputing some nulls and time of the year based of the data release data which proved to be helpful. 3 models were trained, taking the top 25, 50, and 100 features based off of a LGBM Classifier for feature importance. Running with CUDA, I found these could be much larger due to the speed of inference, and the improvement in accuracy from just 25, to 50, but that is a note for the future. To train, I also used an LGBM Classifier, using AUC metric every 50 rounds and stopping after scored didn't improve for 50 rounds. The docker container that contains triton is a prebuilt image pulled, but since only ONNX is being used more efficiently would be to build from source passing in arguments for only ONNX capabilities.
Currently cloning this repo will NOT be plug and play, requiring pre-building the docker image but I'm trying to make it as system independent as possible. Below see a theoretical implementation of a fraud detection model running on a z/OS mainframe, something I will never personally attempt on my own (and do not have a mainframe in my garage).