Skip to content

Commit

Permalink
Document supported environments for each example (#1786)
Browse files Browse the repository at this point in the history
* For each example, add a supported examples table, noting any additional steps needed for each env
* This table is skipped for any example which runs in it's own custom env: DFP Production, SID Visualization, DOCA
* Remove persistent RAG pipeline as this pipeline was broken/incomplete
* Mark the DFP Starter example as broken

Closes #1782

## By Submitting this PR I confirm:
- I am familiar with the [Contributing Guidelines](https://github.com/nv-morpheus/Morpheus/blob/main/docs/source/developer_guide/contributing.md).
- When the PR is ready for review, new or existing tests cover these changes.
- When the PR is ready for review, the documentation is up to date with these changes.

Authors:
  - David Gardner (https://github.com/dagardner-nv)

Approvers:
  - Michael Demoret (https://github.com/mdemoret-nv)

URL: #1786
  • Loading branch information
dagardner-nv authored Jul 1, 2024
1 parent c19aa4c commit 3fe4cab
Show file tree
Hide file tree
Showing 23 changed files with 244 additions and 382 deletions.
15 changes: 15 additions & 0 deletions docs/source/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,18 @@ Ensure the environment is set up by following [Getting Started with Morpheus](./
* [Completion](../../examples/llm/completion/README.md)
* [VDB Upload](../../examples/llm/vdb_upload/README.md)
* [Retreival Augmented Generation (RAG)](../../examples/llm/rag/README.md)


## Environments
Morpheus supports multiple environments, each environment is intended to support a given use-case. Each example documents which environments it is able to run in. With the exception of the Morpheus Release Container, the examples require fetching the model and example datasets via the `fetch_data.sh` script:
```bash
./scripts/fetch_data.py fetch examples models
```

The following are the supported environments:
| Environment | Description |
|-------------|-------------|
| [Conda](./developer_guide/contributing.md#build-in-a-conda-environment) | Morpheus is built from source by the end user, and dependencies are installed via the Conda package manager. |
| [Morpheus Docker Container](./developer_guide/contributing.md#build-in-docker-container) | A Docker container that is built from source by the end user, Morpheus is then built from source from within the container. |
| [Morpheus Release Container](./getting_started.md#building-the-morpheus-container) | Pre-built Docker container that is built from source by the Morpheus team, and is available for download from the [NGC container registry](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/morpheus/containers/morpheus/tags), or can be built locally from source. |
| [Dev Container](https://github.com/nv-morpheus/Morpheus/blob/branch-24.06/.devcontainer/README.md) | A [Dev Container](https://containers.dev/) that is built from source by the end user, Morpheus is then built from source from within the container. |
16 changes: 15 additions & 1 deletion examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,18 @@ limitations under the License.
* [Agents](./llm/agents/README.md)
* [Completion](./llm/completion/README.md)
* [VDB Upload](./llm/vdb_upload/README.md)
* [Retreival Augmented Generation (RAG)](./llm/rag/README.md)
* [Retrieval Augmented Generation (RAG)](./llm/rag/README.md)

## Environments
Morpheus supports multiple environments, each environment is intended to support a given use-case. Each example documents which environments it is able to run in. With the exception of the Morpheus Release Container, the examples require fetching the model and example datasets via the `fetch_data.sh` script:
```bash
./scripts/fetch_data.py fetch examples models
```

The following are the supported environments:
| Environment | Description |
|-------------|-------------|
| [Conda](../docs/source/developer_guide/contributing.md#build-in-a-conda-environment) | Morpheus is built from source by the end user, and dependencies are installed via the Conda package manager. |
| [Morpheus Docker Container](../docs/source/developer_guide/contributing.md#build-in-docker-container) | A Docker container that is built from source by the end user, Morpheus is then built from source from within the container. |
| [Morpheus Release Container](../docs/source/getting_started.md#building-the-morpheus-container) | Pre-built Docker container that is built from source by the Morpheus team, and is available for download from the [NGC container registry](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/morpheus/containers/morpheus/tags), or can be built locally from source. |
| [Dev Container](../.devcontainer/README.md) | A [Dev Container](https://containers.dev/) that is built from source by the end user, Morpheus is then built from source from within the container. |
9 changes: 9 additions & 0 deletions examples/abp_nvsmi_detection/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,15 @@ limitations under the License.

This example illustrates how to use Morpheus to automatically detect abnormal behavior in NVIDIA SMI logs by utilizing a Forest Inference Library (FIL) model and Triton Inference Server. The particular behavior we will be searching for is cryptocurrency mining.

## Supported Environments
| Environment | Supported | Notes |
|-------------|-----------|-------|
| Conda || |
| Morpheus Docker Container || Requires launching Triton on the host |
| Morpheus Release Container || Requires launching Triton on the host |
| Dev Container || Requires using the `dev-triton-start` script and replacing `--server_url=localhost:8000` with `--server_url=triton:8000` |


## Background

The goal of this example is to identify whether or not a monitored NVIDIA GPU is actively mining for cryptocurrencies and take corrective action if detected. Cryptocurrency mining can be a large resource drain on GPU clusters and detecting mining can be difficult since mining workloads appear similar to other valid workloads.
Expand Down
7 changes: 7 additions & 0 deletions examples/abp_pcap_detection/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ limitations under the License.

# ABP Detection Example Using Morpheus

## Supported Environments
| Environment | Supported | Notes |
|-------------|-----------|-------|
| Conda || |
| Morpheus Docker Container || Requires launching Triton on the host |
| Morpheus Release Container || Requires launching Triton on the host |
| Dev Container || Requires using the `dev-triton-start` script. If using the `run.py` script this requires adding the `--server_url=triton:8000` flag. If using the CLI example this requires replacing `--server_url=localhost:8000` with `--server_url=triton:8000` |

## Setup
To run this example, an instance of Triton Inference Server and a sample dataset is required. The following steps will outline how to build and run Triton with the provided FIL model.
Expand Down
25 changes: 25 additions & 0 deletions examples/developer_guide/1_simple_python_stage/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<!--
SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->


## Supported Environments
| Environment | Supported | Notes |
|-------------|-----------|-------|
| Conda || |
| Morpheus Docker Container || |
| Morpheus Release Container || |
| Dev Container || |
25 changes: 25 additions & 0 deletions examples/developer_guide/2_1_real_world_phishing/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<!--
SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->


## Supported Environments
| Environment | Supported | Notes |
|-------------|-----------|-------|
| Conda || |
| Morpheus Docker Container || Requires launching Triton on the host |
| Morpheus Release Container || Requires launching Triton on the host |
| Dev Container || Requires using the `dev-triton-start` script and replacing `--server_url=localhost:8000` with `--server_url=triton:8000` |
9 changes: 9 additions & 0 deletions examples/developer_guide/2_2_rabbitmq/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@ limitations under the License.
# Example RabbitMQ stages
This example includes two stages `RabbitMQSourceStage` and `WriteToRabbitMQStage`

## Supported Environments
| Environment | Supported | Notes |
|-------------|-----------|-------|
| Conda || |
| Morpheus Docker Container || Requires launching the RabbitMQ container on the host |
| Morpheus Release Container || Requires launching the RabbitMQ container on the host |
| Dev Container || |


## Testing with a RabbitMQ container
Testing can be performed locally with the RabbitMQ supplied docker image from the [RabbitMQ container registry](https://registry.hub.docker.com/_/rabbitmq/):
```bash
Expand Down
25 changes: 25 additions & 0 deletions examples/developer_guide/3_simple_cpp_stage/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<!--
SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->


## Supported Environments
| Environment | Supported | Notes |
|-------------|-----------|-------|
| Conda || |
| Morpheus Docker Container || |
| Morpheus Release Container || Requires adding development packages to the container's Conda environment via `conda env update --solver=libmamba -n morpheus --file /workspace/conda/environments/dev_cuda-121_arch-x86_64.yaml` |
| Dev Container || |
8 changes: 8 additions & 0 deletions examples/developer_guide/4_rabbitmq_cpp_stage/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@ This example builds upon the `examples/developer_guide/2_2_rabbitmq` example add

This example adds two flags to the `read_simple.py` script. A `--use_cpp` flag which defaults to `True` and a `--num_threads` flag which defaults to the number of cores on the system as returned by `os.cpu_count()`.

## Supported Environments
| Environment | Supported | Notes |
|-------------|-----------|-------|
| Conda || |
| Morpheus Docker Container || Requires launching the RabbitMQ container on the host |
| Morpheus Release Container || Requires launching the RabbitMQ container on the host, and adding development packages to the container's Conda environment via `conda env update --solver=libmamba -n morpheus --file /workspace/conda/environments/dev_cuda-121_arch-x86_64.yaml` |
| Dev Container || |

## Installing Pika
The `RabbitMQSourceStage` and `WriteToRabbitMQStage` stages use the [pika](https://pika.readthedocs.io/en/stable/#) RabbitMQ client for Python. To install this into the current env run:
```bash
Expand Down
25 changes: 25 additions & 0 deletions examples/developer_guide/7_python_modules/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<!--
SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->


## Supported Environments
| Environment | Supported | Notes |
|-------------|-----------|-------|
| Conda || |
| Morpheus Docker Container || |
| Morpheus Release Container || |
| Dev Container || |
2 changes: 2 additions & 0 deletions examples/digital_fingerprinting/starter/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
# limitations under the License.
-->

> **Warning**: This example is currently broken and fails with a Segmentation fault [#1641](https://github.com/nv-morpheus/Morpheus/issues/1641)
# "Starter" Digital Fingerprinting Pipeline

We show here how to set up and run the DFP pipeline for three log types: CloudTrail, Duo, and Azure. Each of these log types uses a built-in source stage that handles that specific data format. New source stages can be added to allow the DFP pipeline to process different log types. All stages after the source stages are identical across all log types but can be configured differently via pipeline or stage configuration options.
Expand Down
9 changes: 9 additions & 0 deletions examples/gnn_fraud_detection_pipeline/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@ limitations under the License.
-->
# GNN Fraud Detection Pipeline

## Supported Environments
All environments require additional Conda packages which can be installed with either the `conda/environments/all_cuda-121_arch-x86_64.yaml` or `conda/environments/examples_cuda-121_arch-x86_64.yaml` environment files. Refer to the [Requirements](#requirements) section for more information.
| Environment | Supported | Notes |
|-------------|-----------|-------|
| Conda || |
| Morpheus Docker Container || |
| Morpheus Release Container || |
| Dev Container || |

## Requirements

Prior to running the GNN fraud detection pipeline, additional requirements must be installed in to your Conda environment. A supplemental requirements file has been provided in this example directory.
Expand Down
9 changes: 9 additions & 0 deletions examples/llm/agents/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,15 @@ limitations under the License.
- [Run example (Simple Pipeline)](#run-example-simple-pipeline)
- [Run example (Kafka Pipeline)](#run-example-kafka-pipeline)

## Supported Environments
All environments require additional Conda packages which can be installed with either the `conda/environments/all_cuda-121_arch-x86_64.yaml` or `conda/environments/examples_cuda-121_arch-x86_64.yaml` environment files. Refer to the [Install Dependencies](#install-dependencies) section for more information.
| Environment | Supported | Notes |
|-------------|-----------|-------|
| Conda || |
| Morpheus Docker Container || |
| Morpheus Release Container || |
| Dev Container || |

# Background Information

### Purpose
Expand Down
10 changes: 10 additions & 0 deletions examples/llm/completion/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ limitations under the License.
- [Setting up NGC API Key](#setting-up-ngc-api-key)
- [Running the Morpheus Pipeline](#running-the-morpheus-pipeline)

## Supported Environments
All environments require additional Conda packages which can be installed with either the `conda/environments/all_cuda-121_arch-x86_64.yaml` or `conda/environments/examples_cuda-121_arch-x86_64.yaml` environment files. Refer to the [Install Dependencies](#install-dependencies) section for more information.
| Environment | Supported | Notes |
|-------------|-----------|-------|
| Conda || |
| Morpheus Docker Container || |
| Morpheus Release Container || |
| Dev Container || |


## Background Information

### Purpose
Expand Down
Loading

0 comments on commit 3fe4cab

Please sign in to comment.