Introduction¶
In this introduction, we go through the basics that allow you to run existings PIDSs and create your own variant.
Note
To follow the tutorial, you should have completed the installation guidelines and open a shell within the pids container.
Basic usage of the framework¶
The framework currently support the following systems and datasets:
Systems
veloxorthrusnodlinkthreatracekairosrcaidflash
Datasets
CADETS_E3THEIA_E3CLEARSCOPE_E3CADETS_E5THEIA_E5CLEARSCOPE_E5optc_h201optc_h501optc_h051
Run the framework
The basic usage of the framework is:
python pidsmaker/main.py SYSTEM DATASET --arg1=x --arg2=y
The entrypoint is always main.py and only two arguments are mandatory:
SYSTEM: should point to an existing YML file with the same system name inconfig/. The file contains the configuration of the particular system.DATASET: should point to an existing dataset defined withinDATASET_DEFAULT_CONFIGinconfig/config.py. It's there thatDATASETis mapped to the actual database name, located in the postgres container.
After running the framework, the content of config/SYSTEM.yml is parsed and verified based on the available arguments located in TASK_ARGS from config.py. These arguments are presented in the Arguments section of the documentation.
Below are the different ways to run the framework.
-
Run in the shell, no W&B:
python pidsmaker/main.py SYSTEM DATASET -
Run in the shell, monitored to W&B:
python pidsmaker/main.py SYSTEM DATASET --wandb -
Run in background, monitored to W&B (ideal for multiple parallel runs):
You can still watch the logs in your shell using./run.sh SYSTEM DATASETtail -f nohup.out
Device¶
By default, the framework runs on GPU and searches for an existing device on CUDA:0. If no GPU is detected, it switches to CPU and a warning message is printed to the console.
The utilization of CPU can be forced using the --cpu CLI argument.
The framework¶
To familiarize yourself with 🥷 PIDSMaker, consider going through the pipeline and tutorial pages.