SID 可视化示例
要运行演示,您需要以下内容
Docker
docker-compose-plugin
(已使用版本 2.12.2 测试)
要运行此演示,请确保检出所有子模块
git submodule update --init --recursive
构建 Morpheus 开发容器
在启动演示之前,我们需要创建 Morpheus 的 docker 容器
export DOCKER_IMAGE_TAG="sid-viz"
./docker/build_container_dev.sh
启动用户界面
我们将使用 docker-compose 构建和运行整个演示。要启动所有内容,请从 repo 根目录运行以下命令
保存 Morpheus repo 目录
export MORPHEUS_ROOT=$(git rev-parse --show-toplevel)
切换到示例目录
cd ${MORPHEUS_ROOT}/examples/sid_visualization
启动容器
DOCKER_BUILDKIT=1 docker compose up --build -d
当所有容器完成启动后,应显示以下 GUI

构建 Morpheus
一旦 docker compose
命令完成并且 GUI 显示,请进入容器以构建和运行 Morpheus
进入 Morpheus 容器
docker compose exec morpheus bash
在容器内部,编译 Morpheus
BUILD_DIR=build-docker ./scripts/compile.sh
验证 Morpheus 是否已安装
morpheus --version
确保数据已下载
git lfs install
./scripts/fetch_data.py fetch examples
保持此 shell 在 Morpheus 开发容器中运行。稍后将使用它来启动 Morpheus。
运行 Morpheus
GUI 启动后,现在需要启动 Morpheus。在用于构建 Morpheus 的同一 shell 中(运行 Morpheus 开发容器的 shell),运行以下命令
python examples/sid_visualization/run.py \
--debug \
--triton_server_url=triton:8000 \
--input_file=./examples/data/sid_visualization/group1-benign-2nodes.jsonlines \
--input_file=./examples/data/sid_visualization/group2-benign-50nodes.jsonlines \
--input_file=./examples/data/sid_visualization/group3-si-50nodes.jsonlines \
--input_file=./examples/data/sid_visualization/group4-benign-49nodes.jsonlines
注意: 此脚本的首次运行将需要几分钟时间,以允许 Triton 将部署的 ONNX 模型转换为 TensorRT。后续运行将不包括此转换步骤,因此速度会快得多。
此启动将使用所有可用的数据集。每个数据集将在可视化中显示为一个批次。以下是每个数据集的描述
examples/data/sid_visualization/group1-benign-2nodes.jsonlines
小规模,包含 2 个节点,无 SID
examples/data/sid_visualization/group2-benign-50nodes.jsonlines
扩展到 50 个节点,无 SID
examples/data/sid_visualization/group3-si-50nodes.jsonlines
50 个节点,具有来自单个节点的 SID
examples/data/sid_visualization/group4-benign-49nodes.jsonlines
隔离坏节点,留下 49 个节点,无 SID
以下是处理完所有四个批次后的屏幕截图

使用滑块或以下按钮在可视化中逐步浏览推理批次
![]() |
步进到上一个推理批次 |
![]() |
步进到下一个推理批次 |
![]() |
从头开始逐步浏览所有推理批次 |
![]() |
暂停动画 |
右侧的可视化显示当前推理批次中的节点,以绿色球体表示。白色(良性)和红色 (SI) 数据包显示在节点连接之间流动。动画运行时,您可以单击暂停按钮或关闭 模拟
。暂停后,您将能够悬停在单个数据包上以查看其内容。
更改数据集不需要重新启动 GUI。只需使用新数据集重新运行 Morpheus,GUI 将会更新。
也可以使用 Morpheus CLI 使用以下命令启动演示
DEMO_DATASET="examples/data/sid_visualization/group1-benign-2nodes.jsonlines"
morpheus --log_level=DEBUG \
run --pipeline_batch_size=1024 --model_max_batch_size=32 --edge_buffer_size=4 \
pipeline-nlp --model_seq_length=256 \
from-file --filename=${DEMO_DATASET} \
deserialize \
preprocess --vocab_hash_file=data/bert-base-uncased-hash.txt --truncation=True --do_lower_case=True --add_special_tokens=False \
inf-triton --model_name=sid-minibert-onnx --server_url=triton:8001 --force_convert_inputs=True \
monitor --description Inference\Rate --unit=inf \
add-class \
gen-viz
注意,此启动方法更适用于展示性能而非展示功能。