AI News HubLIVE
站内改写2 分钟阅读

使用Amazon SageMaker AI和全同态加密实现端到端的加密机器学习推理

本文介绍如何利用Amazon SageMaker AI和全同态加密(FHE)技术,在云上执行完全加密的机器学习推理。通过concrete-ml库,您可以训练FHE模型并部署到SageMaker端点,确保查询、响应和中间结果全程加密,即使云服务商也无法读取数据。文中涵盖医疗、能源、通信等敏感数据场景,并提供了详细的实施步骤。

来源AWS Machine Learning Blog作者: Jonathan Herzog

机器学习推理经常涉及处理敏感数据,如医疗记录、商业机密或个人通信。能否在云上执行推理的同时,对云服务商隐藏数据?本文展示了如何结合Amazon SageMaker AI与全同态加密(FHE)实现这一目标:查询、响应和中间值在全部过程中保持加密,即使SageMaker本身也无法读取。

FHE允许对密文直接计算,无需解密。在ML推理中,用户可将加密查询发送给模型,得到加密预测结果。以下场景尤为适用:

  • 医疗:保险公司向医生提供手术结果预测模型,但医生无法因隐私法规暴露患者数据。
  • 能源:石油公司利用ML评估卫星照片,但不能将敏感位置照片交给第三方。
  • 电信:运营商需检测垃圾邮件,但法规要求客户信息全程加密。

此前,AWS博客曾介绍手动使用SEAL库实现线性回归FHE推理。本文则采用更灵活的高层库concrete-ml,它内置多种常见模型类型,并与scikit-learn API兼容。

方案概述

  1. 模型所有者准备数据(所有特征归一化至同一尺度,如[-1,1])。
  2. 训练FHE支持的模型(设计为对加密数据计算)。
  3. 将模型托管至SageMaker。
  4. 客户端使用模型支持的FHE方案加密查询。
  5. 发送加密查询至云端模型,模型在不解密的情况下计算加密预测。
  6. 客户端接收加密响应并解密。

与AWS Nitro Enclaves的机密计算不同(解密后处理),FHE全程保持加密,安全性基于数学而非硬件。

前提条件

  • Python 3.12环境,pip和Docker。
  • AWS账户:ECR推送容器镜像;S3存储模型、代码和密钥;IAM角色分配。
  • 注意:concrete-ml目前仅限非商业用途,商业使用需授权。

训练步骤

  1. 构建训练Docker镜像(包含python:3.12, cmake, sagemaker_training, concrete-ml, torch等)。
  2. 推送镜像至Amazon ECR。
  3. 编写训练脚本(training_script.py),加载数据、训练模型并保存为FHEModelDev格式。
  4. 创建自定义框架(Concrete类)整合SageMaker训练。
  5. 启动训练任务,完成后S3中生成server.zip(端侧使用)和client.zip(客户端使用)。

推理步骤

FHE推理面临新挑战:客户端需从client.zip获取模型信息以生成密钥;密文可能超过SageMaker查询大小限制;计算耗时可能超过超时时间。因此采用异步推理,并自定义通信机制。

客户端加密查询并附加评估密钥(一种公钥),发送至SageMaker异步端点。端点使用server.zip文件加载模型,执行FHE评估,返回加密结果。客户端解密后得到明文预测。

文中提供了完整代码示例,包括框架定义、训练启动脚本和推理客户端实现。最终构建的系统能够保护数据在整个推理生命周期中的机密性。