使用 Fiddler PlatoBlockchain 数据智能为您的 Amazon SageMaker 模型实现企业级监控。 垂直搜索。 哎。

使用 Fiddler 为您的 Amazon SageMaker 模型实现企业级监控

这是 Fiddler AI 的 Danny Brock、Rajeev Govindan 和 Krishnaram Kenthpadi 的客座博客文章。

您一站式解决方案 亚马逊SageMaker 模型是活的。他们每天处理数百万个推理,并为您的公司带来更好的业务成果。它们的表现与发布之日一模一样。

呃,等等。他们是吗?或许。也许不会。

无企业级 模型监控,你的模型可能会悄无声息地腐烂。您的机器学习 (ML) 团队可能永远不知道这些模型实际上已经从创造收入的奇迹变成了因做出错误决策而导致公司浪费时间和金钱的负债。

别担心。解决方案比您想象的更接近。

提琴手,一个企业级模型绩效管理解决方案,可在 AWS Marketplace,提供模型监控和可解释的 AI,帮助 ML 团队检查和解决全面的模型问题。通过模型监控、模型可解释性、分析和偏差检测,Fiddler 为您的公司提供了易于使用的单一管理平台,以确保您的模型按其应有的方式运行。如果不是,Fiddler 还提供了一些功能,允许您检查模型以找到性能下降的根本原因。

这篇文章展示了您如何 多播 通过几个简单的步骤与 Fiddler 模型性能管理平台集成,团队可以提高数据科学家的工作效率并减少检测 SageMaker 中部署的模型问题的时间。

解决方案概述

以下参考架构重点介绍了主要的集成点。 Fiddler 作为现有 SageMaker ML 工作流程的“sidecar”而存在。

本文的其余部分将引导您完成将 SageMaker 模型与 Fiddler 的集成的步骤 模型绩效管理平台:

  1. 确保您的模型启用了数据捕获。
  2. 创建Fiddler试用环境。
  3. 在 Fiddler 环境中注册有关您的模型的信息。
  4. 创建 AWS Lambda 函数将 SageMaker 推理发布到 Fiddler。
  5. 在 Fiddler 试用环境中探索 Fiddler 的监控功能。

先决条件

本文假设您已设置 SageMaker 并部署了模型端点。要了解如何配置 SageMaker 以进行模型服务,请参阅 部署模型进行推理。一些示例也可以在 GitHub回购.

确保您的模型启用了数据捕获

在 SageMaker 控制台上,导航到模型的服务端点并确保您已启用 数据抓取 变成一个 亚马逊简单存储服务 (亚马逊 S3)存储桶。这会将您的模型每天做出的推论(请求和响应)存储为 JSON 行文件 (.jsonl) 在 Amazon S3 中。

使用 Fiddler PlatoBlockchain 数据智能为您的 Amazon SageMaker 模型实现企业级监控。 垂直搜索。 哎。

创建Fiddler试用环境

来自 小提琴手.ai 网站,您可以申请免费试用。填写快速表格后,Fiddler 将与您联系以了解您的模型性能管理需求的具体情况,并将在几个小时内为您准备好试用环境。您可以期待一个专门的环境,例如 https://yourcompany.try.fiddler.ai.

使用 Fiddler PlatoBlockchain 数据智能为您的 Amazon SageMaker 模型实现企业级监控。 垂直搜索。 哎。

在 Fiddler 环境中注册有关您的模型的信息

在开始将 SageMaker 托管模型中的事件发布到 Fiddler 之前,您需要在 Fiddler 试用环境中创建一个项目,并通过名为的步骤提供有关模型的 Fiddler 详细信息 模型注册。如果您想从内部使用预配置的笔记本 亚马逊SageMaker Studio 您可以参考 Fiddler 快速入门笔记本,而不是复制并粘贴以下代码片段 GitHub上。 Studio 提供了一个基于 Web 的可视化界面,您可以在其中执行所有 ML 开发步骤。

首先,您必须安装 Fiddler Python 客户端 在您的 SageMaker 笔记本中并实例化 Fiddler 客户端。您可以获得 AUTH_TOKEN 来自 个人设置 Fiddler 试用环境中的页面。

# Install the fiddler client
!pip install fiddler-client

# Connect to the Fiddler Trial Environment
import fiddler as fdl
import pandas as pd

fdl.__version__

URL = 'https://yourcompany.try.fiddler.ai'
ORG_ID = 'yourcompany'
AUTH_TOKEN = 'UUID-Token-Here-Found-In-Your-Fiddler-Env-Settings-Page'

client = fdl.FiddlerApi(URL, ORG_ID, AUTH_TOKEN)

接下来,在 Fiddler 试用环境中创建一个项目:

# Create Project
PROJECT_ID = 'credit_default'  # update this with your project name
DATASET_ID = f'{PROJECT_ID}_dataset'
MODEL_ID = f'{PROJECT_ID}_model'

client.create_project(PROJECT_ID)

现在上传您的训练数据集。该笔记本还提供了一个示例数据集来运行 Fiddler 可解释性 算法并作为监控指标的基线。该数据集还用于在 Fiddler 中生成该模型的架构。

# Upload Baseline Dataset
df_baseline = pd.read_csv(‘<your-training-file.csv>')

dataset_info = fdl.DatasetInfo.from_dataframe(df_baseline, max_inferred_cardinality=1000)

upload_result = client.upload_dataset(PROJECT_ID,
                                      dataset={'baseline': df_baseline},
                                      dataset_id=DATASET_ID,
                                      info=dataset_info)

最后,在开始向 Fiddler 发布推​​论以进行监控、根本原因分析和解释之前,您需要注册模型。我们首先创建一个 model_info 包含有关模型的元数据的对象:

# Update task from the list below if your model task is not binary classification
model_task = 'binary' 

if model_task == 'regression':
    model_task_fdl = fdl.ModelTask.REGRESSION
    
elif model_task == 'binary':
    model_task_fdl = fdl.ModelTask.BINARY_CLASSIFICATION

elif model_task == 'multiclass':
    model_task_fdl = fdl.ModelTask.MULTICLASS_CLASSIFICATION

elif model_task == 'ranking':
    model_task_fdl = fdl.ModelTask.RANKING

    
# Specify column types|
target = 'TARGET'
outputs = ['prediction']  # change this to your target variable
features = [‘<add your feature list here>’]
     
# Generate ModelInfo
model_info = fdl.ModelInfo.from_dataset_info(
    dataset_info=dataset_info,
    dataset_id=DATASET_ID,
    model_task=model_task_fdl,
    target=target,
    outputs=outputs,
    features=features,
    binary_classification_threshold=.125,  # update this if your task is not a binary classification
    description='<model-description>',
    display_name='<model-display-name>'
)
model_info

然后您可以使用新的模型注册模型 model_info 宾语:

# Register Info about your model with Fiddler
client.register_model(
    project_id=PROJECT_ID,
    dataset_id=DATASET_ID,
    model_id=MODEL_ID,
    model_info=model_info
)

伟大的!现在您可以向 Fiddler 发布一些事件以观察模型的性能。

创建 Lambda 函数以将 SageMaker 推理发布到 Fiddler

借助 Lambda 易于部署的无服务器架构,您可以快速构建将推理从之前设置的 S3 存储桶移动到新配置的 Fiddler 试用环境中所需的机制。此 Lambda 函数负责在模型的 S3 存储桶中打开任何新的 JSONL 事件日志文件,将 JSONL 内容解析并格式化为数据帧,然后将该事件数据帧发布到您的 Fiddler 试用环境。以下屏幕截图显示了我们函数的代码详细信息。

使用 Fiddler PlatoBlockchain 数据智能为您的 Amazon SageMaker 模型实现企业级监控。 垂直搜索。 哎。

Lambda 函数需要配置为触发 S3 存储桶中新创建的文件。下列 教程 指导您创建一个 亚马逊EventBridge 每当文件上传到 Amazon S3 时调用 Lambda 函数的触发器。以下屏幕截图显示了我们函数的触发器配置。这样可以轻松确保您的模型每次做出新的推理时,存储在 Amazon S3 中的那些事件都会加载到 Fiddler 中,以驱动您公司所需的模型可观察性。

为了进一步简化,此 Lambda 函数的代码可从以下位置公开获得: Fiddler 的文档站点。此代码示例当前适用于具有结构化输入的二元分类模型。如果您的模型类型具有不同的功能或任务,请联系 Fiddler 获取对代码进行细微更改的帮助。

Lambda函数需要引用Fiddler Python客户端。 Fiddler 创建了一个公开可用的 Lambda 层,您可以参考该层以确保 import fiddler as fdl 步骤无缝运行。您可以通过 us-west-2 区域中的 ARN 引用该层: arn:aws:lambda:us-west-2:079310353266:layer:fiddler-client-0814:1,如以下屏幕截图所示。

使用 Fiddler PlatoBlockchain 数据智能为您的 Amazon SageMaker 模型实现企业级监控。 垂直搜索。 哎。

您还需要指定 Lambda 环境变量,以便 Lambda 函数知道如何连接到您的 Fiddler 试用环境,以及模型捕获的 .jsonl 文件中的输入和输出内容。以下屏幕截图显示了所需的环境变量列表,这些变量也在 Fiddler 的文档站点。更新环境变量的值以匹配您的模型和数据集。

使用 Fiddler PlatoBlockchain 数据智能为您的 Amazon SageMaker 模型实现企业级监控。 垂直搜索。 哎。

在 Fiddler 试用环境中探索 Fiddler 的监控功能

你已经做到了!连接基线数据、模型和流量后,您现在可以解释 数据漂移, 异常值, 模型偏差、数据问题和性能问题,并与其他人共享仪表板。通过以下方式完成您的旅程 观看演示 关于您向公司介绍的模型绩效管理功能。

下面的示例屏幕截图提供了模型见解的一瞥,例如漂移、离群值检测、局部点解释和模型分析,这些将在您的 Fiddler 试用环境中找到。

使用 Fiddler PlatoBlockchain 数据智能为您的 Amazon SageMaker 模型实现企业级监控。 垂直搜索。 哎。

结论

这篇文章强调了企业级的需求 模型监控 并展示了如何将 SageMaker 中部署的模型与 Fiddler模​​型绩效管理平台 只需几步即可。 Fiddler 提供模型监控、可解释的 AI、偏差检测和根本原因分析功能,可在 AWS Marketplace。通过提供您的 多播 Fiddler 与易于使用的单一管理平台合作,确保您的模型按预期运行并确定性能下降的根本原因,Fiddler 可以帮助提高数据科学家的工作效率并减少检测和解决问题的时间。

如果您想了解有关 Fiddler 的更多信息,请访问 小提琴手.ai 或者如果您希望设置个性化演示和技术讨论电子邮件 sales@fiddler.ai.


作者简介

使用 Fiddler PlatoBlockchain 数据智能为您的 Amazon SageMaker 模型实现企业级监控。 垂直搜索。 哎。丹尼·布洛克 是 Fiddler AI 的高级解决方案工程师。 Danny 长期从事分析和机器学习领域的工作,为 Endeca 和 Incorta 等初创公司运营售前和售后团队。他于 2012 年创立了自己的大数据分析咨询公司 Branchbird。

使用 Fiddler PlatoBlockchain 数据智能为您的 Amazon SageMaker 模型实现企业级监控。 垂直搜索。 哎。拉吉夫·戈文丹 是 Fiddler AI 的高级解决方案工程师。 Rajeev 在 AppDynamics 等多家企业公司拥有丰富的销售工程和软件开发经验。

使用 Fiddler PlatoBlockchain 数据智能为您的 Amazon SageMaker 模型实现企业级监控。 垂直搜索。 哎。克里希纳拉姆·肯塔帕迪 是Fiddler AI的首席科学家。此前,他曾担任 Amazon AWS AI 的首席科学家,领导 Amazon AI 平台中的公平性、可解释性、隐私和模型理解计划,在此之前,他曾在 LinkedIn AI 和 Microsoft Research 担任过职务。 Krishnaram 于 2006 年获得斯坦福大学计算机科学博士学位。

时间戳记:

更多来自 AWS机器学习