一元机场.cn官网下载

产品展示

自动为机器学习屏蔽个人可识别信息PII使用 Amazon SageMaker Data Wran

使用 Amazon SageMaker Data Wrangler 自动去除机器学习中的个人识别信息 (PII)

主要要点

随著机器学习 (ML) 的需求上升,客户开始希望能够自动提取数据并获取见解。为了保护客户的隐私和遵循法规,必须从源数据中去除 PII。本帖将介绍如何使用 Amazon SageMaker Data Wrangler 和 Amazon Comprehend 去除表格数据中的 PII。此解决方案展示了如何自动化处理 PII,以促进更好的数据使用和机器学习操作。

客户越来越希望利用大型语言模型等深度学习方法来自动提取数据和洞察。许多行业的 ML 数据中可能会包含个人识别信息 (PII)。为了确保客户隐私并维持合规性,在训练、微调及使用深度学习模型之前,通常需要从源数据中去除 PII。

这篇文章展示了如何利用 Amazon SageMaker Data Wrangler 和 Amazon Comprehend 自动去除表格数据中的 PII,并将其作为机器学习操作流程的一部分进行集成。

问题:包含 PII 的 ML 数据

PII 是指任何能够合理推断出个人身份的信息,包括直接或间接的方法。这类信息可以是明确的身份标识如姓名、地址、社会安全号码、电话号码、邮箱地址等或与其他数据元素结合之后,意在识别特定个体的信息。

在金融、零售、法律和政府等多个商业领域中,处理 PII 数据是一个常见的挑战。由于各种政府规定,客户需要找到合适的机制来处理这些敏感数据,以避免罚款、诈骗和诋毁的风险。去除 PII 是将敏感信息从文档中遮掩或移除的一个过程,确保信息在保护机密的同时能被有效利用与分发。

一元机场.cn官网下载

企业需要通过利用机器学习来提供卓越的客户体验和更好的商业成果。去除 PII 数据通常是释放更大和更丰富数据流的第一步,使企业在使用或微调 生成式 AI 模型 时不必担心数据会被泄露。

解决方案概述

本解决方案利用 Amazon Comprehend 和 SageMaker Data Wrangler 来自动去除 PII 数据,以下是其基本步骤。

Amazon Comprehend 是一个自然语言处理NLP服务,使用机器学习来揭示未结构化数据中的见解和关系,无需管理基础设施或具备机器学习经验。它能定位文本中的各类 PII 实体类型,例如姓名或信用卡号码。尽管最新的生成式 AI 模型展示了一定的 PII 去除能力,它们通常不会提供 PII 识别的置信度分数或去除数据的结构化描述。

使用 Amazon Comprehend 结合 AWS PrivateLink 可以确保客户数据始终留在 AWS 网络内,并受到与其他应用程序相同的数据访问和隐私控制的持续保护。

对于表格数据来说,像 Amazon Macie 的基于规则的引擎能识别 Amazon S3 中存储的敏感数据包括 PII。但它依赖于特定的关键字,这在处理未结构化数据的情况下不如 Amazon Comprehend 的自然语言处理方法有效。

Amazon SageMaker 为机器学习团队提供了一整套工具,以自动化和标准化机器学习生命周期中的过程。透过 SageMaker MLOps 工具,团队能够轻松地准备、训练、测试、排除故障、部署和管理 ML 模型,提升数据科学家和 ML 工程师的生产力。

SageMaker Data Wrangler 是 Amazon SageMaker Studio 的一项功能,提供了一个端到端的解决方案来导入、准备、转换、特征化和分析存储在如 Amazon S3 或 Amazon Athena 等位置的数据集。透过它可以简化资料预处理及特征工程的工作流。

在 SageMaker Data Wrangler 的数据准备过程中,使用 Amazon Comprehend 自动去除 PII 使得数据的下游使用,包括模型训练或推理,符合组织的 PII 要求。可以将 SageMaker Data Wrangler 与 Amazon SageMaker Pipelines 集成,以自动化整个机器学习操作,包括数据准备与 PII 去除。

这篇文章将演示如何通过 SageMaker Data Wrangler 工作流使用 Amazon Comprehend 去除以表格数据格式存储的文本中的 PII。

本解决方案使用了公共 合成数据集 以及一个可用于 GitHub 的自定义 SageMaker Data Wrangler 工作流。使用 SageMaker Data Wrangler 去除 PII 的步骤如下:

打开 SageMaker Studio。下载 SageMaker Data Wrangler 工作流。检查 SageMaker Data Wrangler 工作流。添加目标节点。创建 SageMaker Data Wrangler 输出作业。

这个过程以及运行导出作业预计需要 2025 分钟来完成。

前置条件

参加此步骤的要求如下:

拥有 AWS 帐户。有一个 SageMaker Studio 网域和用户。详细步骤请参见 通过快速设置登录 Amazon SageMaker 域。SageMaker Studio 的执行角色必须有调用 Amazon Comprehend 的 DetectPiiEntities 的权限。拥有一个 S3 桶 用于存储去除 PII 后的结果。

打开 SageMaker Studio

要打开 SageMaker Studio,请遵循以下步骤:

在 SageMaker 控制台选择 Studio。选择网域和用户配置文件。选择 打开 Studio。

为了获取 SageMaker Data Wrangler 的新功能,建议 升级至最新版本。

下载 SageMaker Data Wrangler 工作流

首先需要从 GitHub 获取 SageMaker Data Wrangler 工作流文件,并将其上传到 SageMaker Studio。请遵循以下步骤:

在 GitHub 上打开 SageMaker Data Wrangler 的 [redactpiiflow](https//githubcom/aws/amazonsagemakerexamples/blob/main/sagemakerdatawrangler/redactpii/redactpiiflow) 文件。选择下载图标下载工作流文件到本地计算机。在 SageMaker Studio 中,选择导航窗格中的文件图标。选择上传图标,然后选择 redactpiiflow。

检查 SageMaker Data Wrangler 工作流

在 SageMaker Studio 中,打开 redactpiiflow。几分钟后,工作流会完成加载并显示工作流图。该工作流包含六个步骤:一个 S3 来源 步骤,后跟五个转换步骤。

在工作流图中,选择最后一步 Redact PII。右侧的 所有步骤 面板会显示工作流中所有步骤的列表。您可以展开每一步,以查看详细信息、修改参数,并可能添加自定义代码。

本文将详细介绍每个步骤。

步骤 1 (S3 来源) 和步骤 2 (数据类型) 在导入新工作流时由 SageMaker Data Wrangler 自动添加。在 S3 来源 中,S3 URI 栏位指向一个范例数据集,它是存储在 Amazon S3 中的 CSV 文件。这个文件大约包含 116000 行,并且工作流将 取样 栏位的值设置为 1000,这意味著 SageMaker Data Wrangler 将从中取样 1000 行以在用户界面上显示。数据类型 用于设置导入数据的每一列的数据类型。

步骤 3 (取样) 设置 SageMaker Data Wrangler 对导出作业取样的行数为 5000,这是通过 近似样本大小 栏位设置的。请注意,这与用户接口中显示的行数步骤 1不同。要导出更多行的数据,您可以增加这个数字或删除步骤 3。

步骤 4、5 及 6 使用 SageMaker Data Wrangler 自定义转换。自定义转换允许您在 Data Wrangler 工作流中运行自己的 Python 或 SQL 代码。可以使用以下四种方法编写自定义代码:

使用 PySpark SQL 修改数据集使用 PySpark 数据框和库用 Python 修改数据集使用 pandas 数据框和库用 Python 修改数据集使用 Python 用自定义函数修改数据集的一列

Pythonpandas的方法要求数据集适合内存,并且只能在单个实例上运行,因此效率提升有限。对于较大的数据集,我们建议使用 PythonPySpark或 Python自定义函数的方法。SageMaker Data Wrangler 针对 Python 的自定义函数进行优化,以提供类似于 Apache Spark 插件的性能,而无需了解 PySpark 或 Pandas。为了使这个方案更可及,本文使用的自定义函数采用纯 Python 编写。

展开步骤 4 (Make PII column) 以查看其详细信息。该步骤将多列中的不同类型 PII 数据合并为一个短语并保存在新列 piicol 中。以下表格展示了一个示例行数据。

customernamecustomerjobbillingaddresscustomeremailKatieJournalist19009 Vang Squares Suite 805hboyd@gmailcom

这些信息被合并为短语,“Katie is a Journalist who lives at 19009 Vang Squares Suite 805 and can be emailed at hboyd@gmailcom”;该短语被保存到 piicol 中,本文将用此列作为去除目标。

步骤 5 (Prep for redaction) 接受一个要去除的列 (piicol),并创建一个新列 (piicolprep),以便使用 Amazon Comprehend 进行高效的去除。如果想去除另一列的 PII,可以更改该步骤的 输入列 栏位。

在有效去除数据的过程中,有两个因素需要考虑:

检测 PII 的费用是按照单位来收费的,其中 1 单位 = 100 字符,每个文档有 3 单位的最低收费。由于表格数据通常每单元格包含的小文本量,将多个单元格的文本合并为一个文档来发送给 Amazon Comprehend 通常能提高时间及成本效益。这样做可以避免因重复函数调用带来的开销,并确保传输的数据始终超过 3 单位的最低限制。由于在 SageMaker Data Wrangler 流程中进行去除,我们将同步调用 Amazon Comprehend。Amazon Comprehend 对每次同步函数调用设置了 100 KB100000 字符限制,因此需要确保传递的文本不超过该限制。

考虑到这些因素,步骤 5 通过在每个单元格的文本末尾附加分隔符字符串来准备发送的数据。对于分隔符,您可以使用任何在被去除的列中不会出现的字符串理想情况下,使用字符数量最少的字符串,因为这会纳入 Amazon Comprehend 的字符总数。添加这个单元格分隔符使我们能够优化传递给 Amazon Comprehend 的请求,这在步骤 6 中会进一步讨论。

需注意的是,如果任何单元格中的文本超过 Amazon Comprehend 的限制,这一步中的代码会将其截断至 100000 字符大约 15000 字或 30 页单行。虽然这个文本量不太可能存储在单个单元格中,如果需要可以修改转换代码来处理这种极端情况。

步骤 6 (Redact PII) 接受去除的列名作为输入 (piicolprep),并将去除后的文本保存到新列 (piiredacted) 中。当您使用 Python 自定义函数转换时,SageMaker Data Wrangler 会定义一个空的 customfunc,以 pandas 系列文本的一列作为输入,返回相同长度的修改后的 pandas 系列。

自动为机器学习屏蔽个人可识别信息PII使用 Amazon SageMaker Data Wran

customfunc 包含两个辅助内部函数:

maketextchunks 此函数负责将系列中的单个单元格文本包括其分隔符串连起来,组成长字符串块,发送给 Amazon Comprehend。redactpii 此函数将文本作为输入,调用 Amazon Comprehend 以检测 PII,并去除发现的任何信息,返回去除后的文本。去除的方式是用秋括号替换任何 PII 文本,例如 “John Smith” 会被替换为 [NAME]。您可以修改此函数以用任何字符串替换 PII,包括空字符串以去除。

在内部函数定义后,customfunc 利用这些函数进行去除,当去除工作完成后,将块转换回原来的单元格,并保存到 piiredacted 列。

添加目标节点

为了查看转换结果,SageMaker Data Wrangler 支持将结果导出到 Amazon S3、SageMaker Pipelines、Amazon SageMaker Feature Store以及 Python 代码。要将去除的数据导出到 Amazon S3,需要先创建一个目标节点:

在 SageMaker Data Wrangler 流程图中,选择 Redact PII 步骤旁边的加号。选择 添加目标,然后选择 Amazon S3。为您的转换数据集提供输出名称。浏览或输入存储去除数据文件的 S3 位置。选择 添加目标。

利用通话元数据提升 Amazon Chime SDK 呼叫分析的洞察力关键要点Amazon Chime SDK 于 2023 年 3 月 27 日推出了呼叫分析功能,提供实时通话洞察。通过解析 SIPREC 协议的元数据,可以增强数据湖,从而更好地与 Amazon Chime SDK 的分析洞察进行...