Welcome to Morpheus documentation!
NVIDIA Morpheus is an open AI application framework that provides cybersecurity developers with a highly optimized AI pipeline and pre-trained AI capabilities that, for the first time, allow them to instantaneously inspect all IP traffic across their data center fabric. Bringing a new level of security to data centers, Morpheus provides dynamic protection, real-time telemetry, adaptive policies, and cyber defenses for detecting and remediating cybersecurity threats.
Features
- Built on RAPIDS
Built on the RAPIDS™ libraries, deep learning frameworks, and NVIDIA Triton™ Inference Server, Morpheus simplifies the analysis of logs and telemetry to help detect and mitigate security threats.
- AI Cybersecurity Capabilities
Deploy your own models using common deep learning frameworks. Or get a jump-start in building applications to identify leaked sensitive information, detect malware, and identify errors via logs by using one of NVIDIA’s pre-trained and tested models.
- Real-Time Telemetry
Morpheus can receive rich, real-time network telemetry from every NVIDIA® BlueField® DPU-accelerated server in the data center without impacting performance. Integrating the framework into a third-party cybersecurity offering brings the world’s best AI computing to communication networks.
- DPU-Connected
The NVIDIA BlueField Data Processing Unit (DPU) can be used as a telemetry agent for receiving critical data center communications into Morpheus. As an optional addition to Morpheus, BlueField DPU also extends static security logging to a sophisticated dynamic real-time telemetry model that evolves with new policies and threat intelligence.
Getting Started
The best way to get started with Morpheus will vary depending on the goal of the user. These users fall into two large groups: those who want to use the pre-built pipelines exactly as they are with few modifications (see Using NGC Container) and those who want to use Morpheus as a framework for implementing their own end-to-end workflows (see Outside of a Container).
Using NGC Container
Accessing Morpheus by pulling the pre-built NGC container is best suited for users who do not need any customization and are only interested in running Morpheus via the CLI. The pre-built container does not require checking out the source code and is best suited for users who are new to Morpheus and don’t require any customization.
Prerequisites
To get started, first pull the NGC container:
$ docker pull nvcr.io/nvidia/morpheus/morpheus:22.04-runtime
Launch an interactive container to start using Morpheus:
$ ./docker/run_container_release.sh
(morpheus) root@958a683a8a26:/workspace# morpheus --help
Usage: morpheus [OPTIONS] COMMAND [ARGS]...Options:
--debug / --no-debug [default: False]
--log_level [CRITICAL|FATAL|ERROR|WARN|WARNING|INFO|DEBUG]
Specify the logging level to use. [default:
WARNING]
--log_config_file FILE Config file to use to configure logging. Use
only for advanced situations. Can accept
both JSON and ini style configurations
--version Show the version and exit. [default: False]
--help Show this message and exit. [default:
False]
Commands:
run Run one of the available pipelines
tools Run a utility tool
See Overview for more information on using the CLI.
Building Local Image
Building the image locally is best suited for users who prefer working within a Docker container, want to avoid installing many dependencies or have a moderate amount of customization. This method requires pulling the source code and manually building the container and does not require the user to setup a Conda environment and install dependencies. Users can use either the CLI or Python interface.
Prerequisites
To get started, first clone the Morpheus repo:
# Make sure to recurse the submodules
git clone https://github.com/NVIDIA/Morpheus.git
# Change directory to the repo root
cd morpheus
Note
Cloning the repo may take a while to download large data objects and models.
To build the container:
./docker/build_container_dev.sh
To run the development container:
./docker/run_container_dev.sh
From this point, follow the previous getting started section for running the CLI.
Outside of a Container
Warning
This is not the preferred way to use Morpheus. Morpheus requires a large amount of dependencies and this method should only be used by advanced and experienced users only.
Running Morpheus outside of a container requires the most setup, but offers the most flexibility and customization. Users of this method will need the source code and will be required to install several dependencies in a Conda virtual environment.
Prerequisites
To get started, first clone the Morpheus repo:
# Make sure to recurse the submodules
git clone https://github.com/NVIDIA/Morpheus.git
# Change directory to the repo root
cd morpheus
Note
Cloning the repo may take a while to download large data objects and models.
Next, create a Conda environment and install the necessary dependencies.
conda create -n morpheus -c conda-forge python=${PYTHON_VER}
conda activate morpheus
conda install -c conda-forge python=${PYTHON_VER}
# Build and install the cuDF conda package
./docker/build_conda_packages.sh libcudf cudf
mamba install -c file:///${MORPHEUS_ROOT}/.conda-bld -c nvidia -c rapidsai -c conda-forge libcudf cudf
# Install the remaining Morpheus dependencies
mamba env update -n morpheus -f ./docker/conda/environments/cuda${CUDA_VER}_dev.yml
Where $PYTHON_VER
, $CUDA_VER
, and $RAPIDS_VER
represent the desired Python version, CUDA version and, RAPIDS
version, respectively. Finally, build Morpheus:
./scripts/compile.sh
pip install .
# Or for a debug/editable installation
pip install -e .
See Overview for more information on using the CLI.