《OpenShift / RHEL / DevSecOps 汇总目录》
说明:本文已经在 OpenShift 4.15 + RHODS 2.7.0 的环境中验证
文章目录
安装 OpenShift AI 环境
先根据《OpenShift AI - 部署 OpenShift AI 环境,运行 AI/ML 应用(视频)》一文完成 OpenShift AI 环境的安装。
注意:本应用无需 GPU 即可运行。
安装 Minio 对象存储软件
根据《OpenShift 4 - 管理和使用 OpenShift AI 运行环境》一文安装 MinIO。
创建 Data Science Project
在 OpenShift 控制台的菜单中选择 Red Hat OpenShift AI,然后在 OpenShift AI 控制台中创建名为 Fraud Detection 的 Data Science Project。
创建 Data connection
在项目中按以下配置创建一个 Data connection。
Name : My Storage
Access key : minio
Secret key : minio123
Endpoint : http://minio-service.minio.svc.cluster.local:9000
Region : no
Bucket : my-storage
完成后会在 Fraud Detection 项目中生成名为 aws-connection-my-storage 的 Secret 对象。
创建 Workbench
在项目中按以下配置创建一个 Workbench。
Name :Fraud Detection
Image selection :TensorFlow
Version selection : 2023.2
Container size : Small
Create new persistent storage -> Name : Fraud Detection
Use existing data connection -> Data connection : My Storage
生成 Model
- 从 Workbench 打开 Jupyter 的控制台。
- 将 https://github.com/rh-aiservices-bu/fraud-detection.git 克隆到本地。
- 运行编号为 1-5 的 ipynb 文件。其中在运行 2_save_model.ipynb 后,可以在对象存储中看到生成的模型。
配置 Model server
- 在项目中按以下配置创建一个 Model server。
- 点击创建好的 Model Server 的 Deploy model 按钮,然后按以下配置部署模型。
- 最后可以查看部署的模型对应的内部服务地址。
- 继续运行 4_rest_requests.ipynb 和 5_grpc_requests.ipynb。
创建 Pipeline server
-
确认已经在 OpenShift 上安装了 OpenShift Pipelines Operator。
-
在 Fraud Detection 项目中点击 Configure pipeline server,然后用以下配置创建一个 Pipeline server。
Access key : minio Secret key : minio123 Endpoint : http://minio-service.minio.svc.cluster.local:9000 Bucket :pipeline-artifacts
-
完成后会在 Fraud Detection 项目中生成名为 mlpipeline-minio-artifact 的 Secret 对象。
配置和运行 Pipeline
运行 Workbench Pipeline
- 打开 6 Train Save.pipeline 文件,其中包含 2 个节点。
- 在 Pipeline Properties 中将 Generic Node Defaults 的 Runtime Image 设为 Tensorflow with Cuda and Python 3.9 (UBI 9)。
- 选中 1_experiment_train 节点,然后将 Node Properties 中的 File Dependencies 设为 data/card_transdata.csv 和 Include Subdirectories。
- 分别选中 2 个节点,然后将 Node Properties 中的 Output Files 设为 models/fraud/model.onnx。
- 选中 2_save_model 节点,然后按下表添加 5 个 Kubernetes secrets。
Environment Variable | Secret Name | Secret Key |
---|---|---|
AWS_ACCESS_KEY_ID | aws-connection-my-storage | AWS_ACCESS_KEY_ID |
AWS_SECRET_ACCESS_KEY | aws-connection-my-storage | AWS_SECRET_ACCESS_KEY |
AWS_S3_ENDPOINT | aws-connection-my-storage | AWS_S3_ENDPOINT |
AWS_DEFAULT_REGION | aws-connection-my-storage | AWS_DEFAULT_REGION |
AWS_S3_BUCKET | aws-connection-my-storage | AWS_S3_BUCKET |
- 运行 6 Train Save.pipeline,然后在弹出窗口点击 OK。
注意:如果此时提示没有可用的 Runtime,可参照《OpenShift AI - 在 Jupyter Notebook 中使用 Elyra 执行 AI 处理流水线》添加 Runtime Configuration。
- 可以在 Data Science Pipelines 的 Runs 中查看到 Pipeline 实例的执行情况。
运行 Python Pipeline
- 将 7_get_data_train_upload.yaml 文件下载到本地。
- 在 OpenShift AI 控制台的 Fraud Detection 项目中通过 Import pipeline 功能按下图导入 7_get_data_train_upload.yaml 文件。
- 在 OpenShift AI 控制台的 Data Science Pipelines - > Pipelines 中的 Python pipeline 点击 Create run,然后按下图创建一个运行实例。
- 最后查看 Run 1 的运行情况。
参考
https://rh-aiservices-bu.github.io/fraud-detection/
https://access.redhat.com/documentation/en-us/red_hat_openshift_ai_self-managed/2.7/html/openshift_ai_tutorial_-_fraud_detection_example