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, 反欺诈检测, 数据流处理, 机器学习, 请求拦截, 逆向工具