发布于: Oct 14, 2022
掌握机器学习前沿动态,拥有良好治理机制的安全机器学习工作流,首先需要一套专用且隔离化的计算与网络环境。特别是在大量使用个人隐私信息(PII)进行模型构建与训练的高监管行业中,这方面需求将更为强烈。我们使用 Amazon Virtual Private Cloud 托管 Amazon SageMaker 及其相关组件(例如 Jupyter notebook、训练实例以及托管实例等),因此必须保证将这些 VPC 部署在不接入互联网的专用网络当中。
此外,大家可以将这些 Amazon SageMaker 资源与您的 VPC 环境相关联,借此使用网络层级的控制机制(例如安全组),牢牢掌控指向 Amazon SageMaker 资源的访问以及数据进出环境。再有,您也可以使用 VPC 端点或者 Amazon PrivateLink 在 Amazon SageMaker 与其他 Amazon Web Services 服务(例如 Amazon Simple Storage Service ,简称 Amazon S3)之间建立连接。下图所示,为 Amazon SageMaker 的一套安全部署参考架构。

下一步工作,是确保只有授权用户才能访问到对应的 Amazon Web Services 服务。IAM 能够帮助大家在机器学习环境当中建立起多种预防性控制机制,包括访问 Amazon SageMaker 资源、Amazon S3 中的数据以及 API 端点等。您可以使用 RESTful API 访问各项 Amazon Web Services 服务,且每一次 API 调用都需要获得 IAM 授权。大家也可以通过 IAM 策略配置授权显式权限,由其指定获准的主体(人员)、操作(API 调用)、资源(例如 Amazon S3 对象)以及授权访问权限的条件。要深入了解如何为金融服务构建安全环境(包括实现其他良好架构支柱),请参阅本白皮书。
此外,由于机器学习环境中可能包含敏感数据与知识产权,因此安全的机器学习环境必须进行数据加密。我们建议大家使用自己的加密密钥启动静态数据与传输数据加密。最后,要建立起治理良好且安全的机器学习环境,另一项重点在于配合健壮且透明的审计跟踪机制,借此记录对于数据及模型的一切访问与变量,包括模型配置或超参数层面的更改。白皮书中就这些问题都做出了详尽阐述。
为了实现自助服务置备与自动化,管理员可以使用诸如 Amazon Service Catalog 之类的工具以可重复方式为数据科学家创建这类安全环境。以此为基础,数据科学家能够轻松使用 Amazon Single Sign-On 单点登录至安全门户并创建一套安全的 Jupyter notebook 环境,最终结合需求进一步安装并使用适当的安全围栏方案。
在白皮书的这部分内容中,我们讨论了关于机器学习治理的注意事项,具体包括四个核心议题:可追溯性、可解释性/可理解性、实时模型监控与可重现性。金融服务行业需要承担多种合规性与监管义务,因此可能对机器学习的治理机制造成直接影响。本文建议大家与您的法律顾问、合规人员以及涉及机器学习流程的其他利益相关方沟通,共同核定并研究此类义务。
例如,如果 Jane Smith 的贷款申请被银行方面拒绝,很可能要求贷方对决策的制定过程做出解释,这也是监管要求中的固有环节。如果银行客户将机器学习引入贷款审查流程,则可能需要对机器学习模型做出的预测进行解释或说明,借此满足监管要求。通常,机器学习模型的可解释性与可理解性,是指人们理解与解释模型所执行的预测流程的能力。另外需要注意的是,相当一部分机器学习模型只是在做潜在答案本身做出预测,而并不能真正理解答案本身。因此,在实际采取行动之前,大家最好能够对机器学习模型做出的预测进行人工审核。此外,我们可能还需要监控模型,保证一旦基础数据发生更改、能够定期使用新数据对模型进行重新训练。最后,机器学习模型可能还需要保证可重现性,借此保证在对模型输出结果进行追溯时,仍能保持相同的输出内容。
在最后一节中,我们将讨论一些关于实现机器学习工作负载的最佳实践。我们首先从宏观角度出发,而后逐步深入研究使用 Amazon Web Services 原生工具与服务的特定架构。除了模型部署流程之外(在传统软件部署中被称为持续集成/持续部署,即 CI/CD),从实施角度来看,在受监管行业的生产环境中部署机器学习模型还需要考虑其他一些关键因素。
下图所示,为企业机器学习平台可能需要满足的部分高级要求,具体包括治理、审计、日志记录以及报告等相关指导规则:
- 一套数据湖,用于管理原始数据与相关元数据。
- 用于管理机器学习特征与相关元数据(从原始数据到所生成特征之间的映射,例如一键编码或缩放转换)的特征存储机制。
- 一套模型与容器注册表,其中包含训练后模型的工件,以及相关元数据(例如超参数、训练时间与依赖项等)。
- 用于维护源代码并实现版本控制的代码库(例如 Git、Amazon CodeCommit 或者 Artifactory)。
- 用于注册及维护训练与部署管道的管道注册表。
- 用于维护访问日志的日志记录工具。
- 生产监控与性能日志。
- 审计与报告工具。

下图所示,为使用 Amazon Web Services 原生工具与服务建立的一套特定实现架构。目前市面上也存在多种可行的调度与编排工具选项,例如 Airflow 或 Jenkins 等,但为了便于理解,这里我们集中讨论使用 Step Functions 的场景。

在白皮书中,我们深入探讨了上图中的各个组件,特别是以下工作负载类型:
- 模型开发
- 预生产
- 生产与持续监控
《金融服务中的机器学习最佳实践》白皮书旨在帮助大家了解如何建立起安全且具有良好治理水平的机器学习工作流,大家也可以结合实际疑问与作者取得联系。在您的机器学习探索之旅中,不妨随时参阅另一份白皮书以了解适用于机器学习工作负载的 Amazon Web Services 架构设计原则。
相关文章