luba117/ai-foundry--fraud-detection-training-pipeline
GitHub: luba117/ai-foundry--fraud-detection-training-pipeline
基于 Azure ML 构建的端到端信用卡欺诈检测管线,实现自动化特征工程、模型训练及 AKS 生产部署的毫秒级实时交易评分。
Stars: 0 | Forks: 0
# 欺诈检测 — 实操指南
将占位符文件夹替换为这些修正后的文件后,
在你的开发实例终端(`~/cloudfiles/code/Users/paul.idowu01`)中运行这些命令。
你需要 Azure ML CLI v2 扩展:`az extension add -n ml`。
## 0. 一次性设置
```
# 注册 training pipeline 和 endpoint 使用的 environment
az ml environment create --file pipeline/environment/conda.yml \
--name fraud-pipeline-env --resource-group --workspace-name
# 注册 raw dataset(如果尚未作为 asset)
az ml data create --name fraud-data --version 1 --type uri_file \
--path data/creditcard.csv --resource-group --workspace-name
```
你的训练 pipeline 计算集群需要一个**系统分配的托管**
身份 (identity),并在工作区中具有 **AzureML Data Scientist** 角色 —
`register.py` 使用 `DefaultAzureCredential()`,在计算实例上运行时,
它会解析为该身份。可以在 Azure 门户的计算集群的 Identity 边栏选项卡下进行设置,或者:
```
az ml compute update --name --identity-type SystemAssigned \
--resource-group --workspace-name
```
## 1. 运行训练 pipeline
```
cd pipeline
az ml job create --file pipeline.yml \
--set inputs.subscription_id= \
--set inputs.resource_group= \
--set inputs.workspace= \
--resource-group --workspace-name --stream
```
`--stream` 会实时跟踪日志,让你可以观察 prep -> train -> evaluate ->
register 的过程。如果 `avg_precision` 超过 0.75,你会看到模型被
注册为 `fraud-model`。
## 2. 部署开发/测试环境(托管在线 endpoint — 现代化的 ACI 替代方案)
```
cd ../deploy
az ml online-endpoint create --file endpoint-dev.yml \
--resource-group --workspace-name
az ml online-deployment create --file deployment-dev.yml --all-traffic \
--resource-group --workspace-name
# 获取 scoring URL + key
az ml online-endpoint show --name fraud-endpoint-dev \
--resource-group --workspace-name --query scoring_uri
az ml online-endpoint get-credentials --name fraud-endpoint-dev \
--resource-group --workspace-name --query primaryKey
```
## 3. 向其发送实时流量
```
cd ..
python stream.py \
--data data/creditcard.csv \
--endpoint_url \
--api_key \
--rate 2 --batch_size 1
```
你应该会看到实时的 approve / flag_for_review / block 决策以 `--rate` 允许的速度快速打印出来,并且在按下 Ctrl+C 时会显示实时的准确率读数。
## 4. 提升至 AKS 用于生产环境
首先将你的 AKS 集群附加到工作区(一次性操作,通过门户或
`az ml compute attach --type Kubernetes ...`),然后编辑
`deploy/endpoint-aks.yml` 以指向该附加的计算名称,接着执行:
```
cd deploy
az ml online-endpoint create --file endpoint-aks.yml \
--resource-group --workspace-name
az ml online-deployment create --file deployment-aks.yml --all-traffic \
--resource-group --workspace-name
```
然后以相同的方式将 `stream.py --endpoint_url` 重新指向 AKS endpoint 的评分 URI。
## 注意事项 / 值得了解的内容
- 由于模型是作为 MLflow 模型注册的,Azure *可以*在完全不使用 `score.py` 的情况下进行无代码部署 — 但这样你会丢失 approve/flag/block 业务逻辑,因此保留这里的自定义 `score.py` 是很有必要的。
- `package.yml`(`az ml model package -f deploy/package.yml`)是可选的 —
它会将模型 + 环境 + score.py 预构建为一个单一的镜像,如果你希望加快部署的冷启动速度,或者想将镜像推送到自己的 ACR 而不是让 endpoint 实时构建它,这会很有用。
标签:Apex, Azure ML, MLOps, 反欺诈检测, 数据流处理, 机器学习, 请求拦截, 逆向工具