自然语言理解应用于广泛的用例,从聊天机器人和虚拟助手,到机器翻译和文本摘要。 为确保这些应用程序以预期的性能水平运行,培训和生产环境中的数据来自同一分布非常重要。 当用于推理的数据(生产数据)与模型训练期间使用的数据不同时,我们会遇到一种称为数据漂移的现象。 当数据漂移发生时,模型不再与生产中的数据相关,并且可能比预期表现更差。 持续监控推理数据并将其与训练期间使用的数据进行比较非常重要。
您可以使用 亚马逊SageMaker 快速构建、训练和部署任何规模的机器学习 (ML) 模型。 作为防止模型退化的主动措施,您可以使用 Amazon SageMaker模型监控器 持续实时监控 ML 模型的质量。 借助模型监视器,您还可以配置警报以在观察到模型性能出现任何偏差时通知并触发操作。 及早主动检测这些偏差使您能够采取纠正措施,例如收集新的地面实况训练数据、重新训练模型和审核上游系统,而无需手动监控模型或构建额外的工具。
模型监视器提供四种不同类型的监视功能,以实时检测和减轻模型漂移:
- 数据质量 – 帮助检测数据模式的变化和自变量的统计属性,并在检测到偏差时发出警报。
- 模型质量 – 为了实时监控模型性能特征,例如准确度或精确度,Model Monitor 允许您摄取从应用程序中收集的地面实况标签。 模型监视器自动将地面实况信息与预测数据合并以计算模型性能指标。
- 模型偏差 – 模型监视器与 亚马逊SageMaker澄清 以提高对潜在偏见的可见性。 尽管您的初始数据或模型可能没有偏差,但世界的变化可能会导致偏差随着时间的推移在已经训练的模型中发展。
- 模型的可解释性 – 当特征属性的相对重要性发生变化时,漂移检测会提醒您。
在这篇文章中,我们讨论了适用于文本数据的数据质量漂移类型。 我们还提出了一种使用模型监视器检测文本数据中的数据漂移的方法。
NLP 中的数据漂移
数据漂移可以分为三类,具体取决于分布变化发生在输入端还是输出端,或者输入和输出之间的关系是否发生了变化。
协变量移位
在一个 协变量移位,输入的分布随时间变化,但条件分布 P(y|x) 没有改变。 这种类型的漂移称为协变量偏移,因为问题是由于协变量(特征)分布的偏移而产生的。 例如,在垃圾邮件分类模型中,训练数据(电子邮件语料库)的分布可能与评分期间的数据分布不同。
标签移位
协变量转移关注特征分布的变化, 标签移位 关注类变量分布的变化。 这种类型的移动本质上是协变量移动的逆向。 一种直观的思考方式可能是考虑一个不平衡的数据集。 如果我们训练集中垃圾邮件与非垃圾邮件的比例为 50%,但实际上我们的电子邮件中有 10% 是非垃圾邮件,则目标标签分布发生了变化。
概念转变
概念转变 与 covariate 和 label shift 不同的是,它与数据分布或类别分布无关,而是与两个变量之间的关系有关。 例如,电子邮件垃圾邮件发送者经常使用各种概念来通过垃圾邮件过滤器模型,并且在训练期间使用的电子邮件概念可能会随着时间的推移而改变。
现在我们了解了不同类型的数据漂移,让我们看看如何使用模型监视器来检测文本数据中的协变量漂移。
解决方案概述
与结构化和有界的表格数据不同,文本数据是复杂的、高维的和自由形式的。 为了有效检测 NLP 中的漂移,我们使用 嵌入, 这是文本的低维表示。 您可以使用各种语言模型(例如 Word2Vec)和基于转换器的模型(例如 BERT. 这些模型将高维数据投射到低维空间,同时保留文本的语义信息。 结果是密集且具有上下文意义的向量,可用于各种下游任务,包括监控数据漂移。
在我们的解决方案中,我们使用嵌入来检测英语句子的协变量偏移。 我们利用模型监视器来促进对部署到生产环境的文本分类器的持续监视。 我们的方法包括以下步骤:
- 使用 SageMaker 微调 BERT 模型。
- 将微调的 BERT 分类器部署为实时端点 数据抓取 启用。
- 创建一个基线数据集,其中包含用于训练 BERT 分类器的句子样本。
- 创建一个 自定义 SageMaker 监控作业 计算生产中捕获的数据与基线数据集之间的余弦相似度。
下图说明了解决方案的工作流程:
微调 BERT 模型
在这篇文章中,我们使用 语言可接受性语料库(CoLA),一个包含 10,657 个标记为符合语法或不符合语法的英语句子的数据集,来自已发表的语言学文献。 我们使用 SageMaker 训练通过定义 PyTorch 估计器类使用 CoLa 数据集微调 BERT 模型。 有关如何将此 SDK 与 PyTorch 结合使用的更多信息,请参阅 将 PyTorch 与 SageMaker Python SDK 结合使用. 调用 fit()
估计器的方法启动训练工作:
部署模型
训练我们的模型后,我们将其托管在 SageMaker 端点上。 为了使端点加载模型并提供预测,我们在 train_deploy.py:
- 模型_fn() – 加载保存的模型并返回可用于模型服务的模型对象。 SageMaker PyTorch 模型服务器通过调用
model_fn
. - input_fn() – 反序列化并准备预测输入。 在此示例中,我们的请求正文首先序列化为 JSON,然后发送到模型服务端点。 因此,在
input_fn()
,我们首先反序列化JSON格式的请求正文,然后将输入返回为torch.tensor
,根据 BERT 的要求。 - Forecast_fn() – 执行预测并返回结果。
启用模型监视器数据捕获
我们启用 模型监视器数据捕获 将输入数据记录到 亚马逊简单存储服务 (Amazon S3) 存储桶以供稍后参考:
然后我们使用在上一步中创建的模型创建一个实时 SageMaker 端点:
推理
我们使用在上一步中创建的预测器对象运行预测。 我们设置了推理端点使用的 JSON 序列化器和反序列化器:
实时端点配置为从请求中捕获数据,响应和数据存储在 Amazon S3 中。 您可以查看在之前的监控计划中捕获的数据。
创建基线
我们使用微调的 BERT 模型从训练数据中提取句子嵌入特征。 我们将这些向量用作比较余弦距离的高质量特征输入,因为 BERT 会产生具有语义上下文的动态词表示。 完成以下步骤以获得句子嵌入:
- 使用 BERT 分词器获取每个令牌的令牌 ID(
input_id
) 在输入语句和掩码中指示输入序列中的哪些元素是标记与填充元素 (attention_mask_id
). 我们使用 BERTtokenizer.encode_plus
函数为每个输入句子获取这些值:
input_ids
和 attention_mask_ids
被传递给模型并获取网络的隐藏状态。 这 hidden_states
按以下顺序具有四个维度:
- 层数(BERT有12层)
- 批号(1句)
- 单词标记索引
- 隐藏单元(768 个特征)
- 使用最后两个隐藏层通过计算句子中所有输入标记的平均值来获得单个向量(句子嵌入):
- 将句子嵌入转换为 NumPy 数组并将其存储在 Amazon S3 位置作为模型监视器使用的基线:
评估脚本
Model Monitor 提供了一个预构建的容器,能够分析从端点捕获的数据以获取表格数据集。 如果您想自带容器,Model Monitor 提供了您可以使用的扩展点。 当你创建一个 MonitoringSchedule
, Model Monitor 最终开始处理作业。 因此,容器需要知道处理作业契约。 我们需要创建一个与容器兼容的评估脚本 合同投入 和 输出.
模型监视器对监视计划期间捕获的所有样本使用评估代码。 对于每个推理数据点,我们使用前面描述的相同逻辑计算句子嵌入。 余弦相似度用作距离度量来衡量推理数据点和基线中句子嵌入的相似度。 在数学上,它测量两个句子嵌入向量之间的余弦角。 高余弦相似度得分表示相似的句子嵌入。 较低的余弦相似性分数表示数据漂移。 我们计算所有余弦相似度分数的平均值,如果它小于阈值,就会在违规报告中捕获。 根据用例,您可以使用其他距离指标,例如 manhattan
or euclidean
来衡量句子嵌入的相似性。
下图显示了我们如何使用 SageMaker 模型监控建立基线并使用余弦距离相似性检测数据漂移。
以下是计算违规的代码; 完整的评估脚本可在 GitHub上:
使用模型监视器测量数据漂移
在本节中,我们重点介绍使用模型监视器测量数据漂移。 Model Monitor 预建监视器由 迪克,这是一个建立在 Apache Spark 之上的库,用于定义数据单元测试,测量大型数据集中的数据质量。 您无需编写代码即可使用这些预构建的监控功能。 您还可以通过编码灵活地监控模型以提供自定义分析。 您可以收集和查看 Model Monitor 发出的所有指标 亚马逊SageMaker Studio,因此您无需编写额外代码即可直观地分析模型性能。
在某些情况下,例如当数据不是表格时,默认处理作业(由 迪克) 是不够的,因为它只支持表格数据集。 预构建的监视器可能不足以生成复杂的指标来检测漂移,并且可能需要使用您自己的指标。 在接下来的部分中,我们将描述通过构建自定义容器引入指标的设置。
构建自定义模型监视器容器
我们使用 评估脚本 从上一节构建一个 Docker 容器并将其推送到 Amazon Elastic Container注册 (亚马逊 ECR):
当客户 Docker 容器位于 Amazon ECR 中时,我们可以安排模型监控作业并生成违规报告,如以下部分所示。
安排模型监控作业
为了安排模型监控作业,我们创建了一个 Model Monitor 实例,并在 image_uri
,我们指的是我们在上一节中创建的 Docker 容器:
我们使用 create_monitoring_schedule
API. 您可以按小时或按天安排监控作业。 您使用 destination
参数,如下代码所示:
要描述和列出监控计划及其运行,您可以使用以下命令:
数据漂移违规报告
模型监控作业完成后,您可以导航到目标 S3 路径以访问违规报告。 该报告包含所有输入,其平均余弦得分 (avg_cosine_score
) 低于配置为环境变量的阈值 THRESHOLD:0.5
,在 模型监视器 实例。 这表明在推理过程中观察到的数据正在漂移超出既定基线。
以下代码显示生成的违规报告:
最后,基于此观察,您可以配置模型以进行再训练。 您还可以启用 亚马逊简单通知服务 (Amazon SNS) 通知以在发生违规时发送警报。
结论
Model Monitor 使您能够在生产中保持模型的高质量。 在这篇文章中,我们强调了监控非结构化数据(如文本)的数据漂移所面临的挑战,并提供了一种使用自定义监控脚本来检测数据漂移的直观方法。 您可以在下面找到与该帖子关联的代码 GitHub存储库. 此外,您可以自定义解决方案以利用其他距离指标,例如 最大平均差异(MMD),一种非参数距离度量,用于计算嵌入空间上源分布和目标分布之间的边际分布。
作者简介
维克拉姆·埃兰戈 是位于美国弗吉尼亚州的 Amazon Web Services 的 AI/ML 专家解决方案架构师。 Vikram 通过设计和思想领导帮助金融和保险行业客户大规模构建和部署机器学习应用程序。 他目前专注于自然语言处理、负责任的 AI、推理优化和在整个企业范围内扩展 ML。 在业余时间,他喜欢与家人一起旅行、远足、烹饪和露营。
拉古·拉梅沙 是 Amazon SageMaker 服务团队的 ML 解决方案架构师。 他专注于帮助客户将 ML 生产工作负载大规模迁移到 SageMaker。 他专注于机器学习、AI 和计算机视觉领域,并拥有 UT Dallas 的计算机科学硕士学位。 在空闲时间,他喜欢旅行和摄影。
Tony Chen 是 Amazon Web Services 的机器学习解决方案架构师,帮助客户在云中设计可扩展且强大的机器学习功能。 作为一名前数据科学家和数据工程师,他利用自己的经验帮助解决组织在实施机器学习方面面临的一些最具挑战性的问题。
- '
- "
- 100
- 11
- 7
- 关于
- ACCESS
- 账号管理
- 横过
- 行动
- 额外
- AI
- 所有类型
- 已经
- 尽管
- Amazon
- 亚马逊SageMaker
- 亚马逊网络服务
- 分析
- 阿帕奇
- Apache Spark
- 相应
- 应用领域
- 可使用
- AWS
- 底线
- 身体
- 建立
- 建筑物
- 露营
- 例
- 原因
- 挑战
- 更改
- 聊天机器人
- 分类
- 云端技术
- 码
- 编码
- 收藏
- 复杂
- 计算
- 计算机科学
- 计算机视觉
- 容器
- 包含
- 连续
- 合同
- 烹调
- 创造
- 合作伙伴
- 达拉斯
- data
- 数据质量
- 数据科学家
- 设计
- 检测
- 开发
- 不同
- 讨论
- 距离
- 码头工人
- Docker容器
- 不会
- 域名
- 驾驶
- ,我们将参加
- 动态
- 早
- 邮箱地址
- 遭遇
- 端点
- 工程师
- 英语
- 企业
- 环境
- 成熟
- 例子
- 体验
- 面部彩妆
- 家庭
- 专栏
- 特征
- 金融
- 姓氏:
- 高度灵活
- 专注焦点
- 重点
- 申请
- 向前
- Free
- 功能
- 生成
- GitHub上
- 有
- 帮助
- 帮助
- 高
- 突出
- 徒步旅行
- 主页
- 创新中心
- How To
- HTTPS
- 图片
- 实施
- 重要
- 包含
- 行业中的应用:
- 信息
- 保险
- 保险业
- IT
- 工作
- 工作机会
- 标签
- 语言
- 大
- 最新
- 启动
- 领导团队
- 学习
- Level
- 杠杆
- 自学资料库
- 语言学
- 清单
- 文学
- 加载
- 圖書分館的位置
- 机器学习
- 机器翻译
- 面膜
- 衡量
- 指标
- ML
- 模型
- 模型
- 监控
- 更多
- 自然语言
- 自然语言处理
- 网络
- NLP
- 通知
- 优惠精选
- 秩序
- 组织
- 其他名称
- 性能
- 摄影
- 平台精度
- 预测
- 预测
- 当下
- 市场问题
- 生产
- 项目
- 提供
- 提供
- 蟒蛇
- pytorch
- 质量
- 范围
- 实时的
- 现实
- 记录
- 报告
- 业务报告
- 响应
- 成果
- 再培训
- 回报
- 反转
- 检讨
- 运行
- 运行
- sagemaker
- 鳞片
- 缩放
- 科学
- SDK
- 特色服务
- 服务
- 集
- 转移
- 类似
- 简易
- So
- 解决方案
- 太空
- 剩余名额
- 垃圾邮件
- 专业
- 州
- 存储
- 商店
- 支持
- 产品
- 目标
- test
- 测试
- 测试
- 世界
- 思想
- 精神领袖
- 次
- 象征
- 令牌
- 最佳
- 火炬
- 交通
- 产品培训
- 翻译
- 美国
- 查看
- 弗吉尼亚州
- 在线会议
- 能见度
- 愿景
- 等待
- 卷筒纸
- Web服务
- 维基百科上的数据
- 也完全不需要
- 工作
- 工作流程
- 世界
- 写作