Press "Enter" to skip to content

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能

这篇文章由Salesforce Einstein AI产品总监Daryl Martis联合撰写。

这是系列讨论Salesforce Data Cloud和Amazon SageMaker集成的第二篇文章。在第一部分中,我们展示了Salesforce Data Cloud和Einstein Studio与SageMaker的集成,允许企业安全地访问其Salesforce数据,并使用SageMaker的工具构建、训练和部署模型到SageMaker上托管的端点。然后,这些端点将被注册到Salesforce Data Cloud中,以在Salesforce中激活预测。

在这篇文章中,我们扩展了这个主题,演示如何使用Einstein Studio进行产品推荐。您可以将此集成用于传统模型以及大型语言模型(LLMs)。

解决方案概述

在本文中,我们演示了如何在SageMaker中创建一个预测模型,通过使用Salesforce Data Cloud中的历史数据(如客户人口统计信息、营销参与度和购买历史)来向客户推荐下一个最佳产品。

我们使用以下示例数据集。要在您的Data Cloud中使用此数据集,请参阅在Data Cloud中创建Amazon S3数据流。

创建模型所需的属性如下:

  • 俱乐部会员 – 客户是否是俱乐部会员
  • 活动 – 客户参与的活动
  • 州/省份 – 客户所在的州/省份
  • 月份 – 购买月份
  • 案例数量 – 客户提出的案例数量
  • 退货案例类型 – 客户在过去一年内是否退货
  • 货物损坏案例类型 – 客户在过去一年内是否有货物损坏
  • 参与度评分 – 客户的参与度水平(对邮件活动的响应、对在线商店的登录等)
  • 服务年限 – 客户与公司的关系年限
  • 点击量 – 客户在购买前一周内的平均点击次数
  • 访问页面数 – 客户在购买前一周内访问的平均页面数
  • 购买的产品 – 实际购买的产品
  • ID – 记录的ID
  • 日期时间 – 数据集的时间戳

产品推荐模型是在SageMaker上构建和部署的,并使用Salesforce Data Cloud中的数据进行训练。以下步骤概述了如何使用SageMaker为Salesforce启用整体集成的新功能:

  1. 设置Amazon SageMaker Studio域和Salesforce与AWS账户之间的OAuth。
  2. 使用新推出的Amazon SageMaker Data Wrangler连接器,对Salesforce Data Cloud中的数据进行准备,而无需将数据从Salesforce Data Cloud复制到SageMaker中。
  3. 在SageMaker Studio中使用使用SageMaker Data Wrangler准备的训练数据训练一个推荐模型。
  4. 将SageMaker Data Wrangler容器和训练后的推荐模型容器打包到一个推理管道中,以便推理请求可以使用与预处理训练数据相同的数据准备步骤。实时推理调用数据首先传递到推理管道中的SageMaker Data Wrangler容器,进行预处理,然后传递给训练模型进行产品推荐。有关此过程的更多信息,请参阅Amazon SageMaker Data Wrangler中的新功能 – 引入对实时和批处理推理的支持。虽然我们在示例中使用了特定的算法来训练模型,但您可以根据您的用例使用任何适合的算法。
  5. 使用新推出的SageMaker提供的Salesforce Data Cloud集成项目模板,通过提供以下模板来简化实施前述步骤:
    1. 一个示例笔记本,展示了数据准备、构建、训练和注册模型的过程。
    2. 由SageMaker提供的Salesforce Data Cloud集成项目模板,自动创建一个SageMaker端点,托管推理管道模型。当Amazon SageMaker模型注册表中的一个版本获得批准后,使用自定义的Salesforce JSON Web Token(JWT)授权器,将端点作为API暴露给Amazon API Gateway。API Gateway允许Salesforce Data Cloud使用由Salesforce创建并随请求传递的JWT令牌对SageMaker端点进行预测。JWT可以作为OpenID Connect(OIDC)和OAuth 2.0框架的一部分,用于限制客户端访问您的API。
  6. 创建API后,我们建议在Salesforce Einstein Studio中注册模型端点。有关说明,请参阅使用Einstein Studio将自己的AI模型引入Salesforce

以下图示了解决方案架构。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第1张

创建 SageMaker Studio 域

首先,创建一个 SageMaker Studio 域。有关说明,请参阅加入 Amazon SageMaker 域。您应该记录下创建的域 ID 和执行角色,这些将由您的用户配置文件使用。在后续步骤中,您将向此角色添加权限。

以下屏幕截图显示了我们为本文创建的域。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第2张

以下屏幕截图显示了本文示例用户配置文件。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第3张

设置 Salesforce 连接应用

接下来,我们创建一个 Salesforce 连接应用,以启用从 SageMaker Studio 到 Salesforce 数据云的 OAuth 流程。完成以下步骤:

  1. 登录 Salesforce 并导航至 设置
  2. 搜索 应用管理器 并创建一个新的连接应用。
  3. 提供以下输入:
    1. 对于 连接应用名称,输入一个名称。
    2. 对于 API 名称,保持默认(自动填充)。
    3. 对于 联系人电子邮件,输入您的联系人电子邮件地址。
    4. 选择 启用 OAuth 设置
    5. 对于 回调 URL,输入 https://<domain-id>.studio.<region>.sagemaker.aws/jupyter/default/lab,并提供您在创建 SageMaker 域时捕获的域 ID 和您的 SageMaker 域的区域。 使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第4张
  4. 选择的 OAuth 范围 下,将以下内容从 可用的 OAuth 范围 移动到 选择的 OAuth 范围,然后选择 保存
    1. 通过 API 管理用户数据 (api)
    2. 随时执行请求 (refresh_token, offline_access)
    3. 在 Salesforce 数据云数据上执行 ANSI SQL 查询 (Data Cloud_query_api)
    4. 管理 Salesforce 客户数据平台配置文件数据 (Data Cloud_profile_api
    5. 访问身份 URL 服务 (id, profile, email, address, phone)
    6. 访问唯一用户标识符 (openid)

有关创建连接应用的更多信息,请参阅创建连接应用。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第5张

  1. 返回连接应用并导航至 消费者密钥和密钥
  2. 选择 管理消费者详细信息使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第6张
  3. 复制密钥和密钥。

在这里,您可能需要登录到您的 Salesforce 组织以完成双因素身份验证。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第7张

  1. 返回到”Manage Connected Apps”页面。
  2. 打开您创建的连接应用程序,选择”管理”。
  3. 选择”编辑策略”,将”IP Relaxation”更改为”Relax IP restrictions”,然后保存设置。

配置SageMaker权限和生命周期规则

在本节中,我们将介绍配置SageMaker权限和生命周期管理规则的步骤。

在AWS Secrets Manager中创建一个密钥

通过将您的Salesforce连接应用程序的凭据存储在AWS Secrets Manager中,启用与Salesforce Data Cloud的OAuth集成:

  1. 在Secrets Manager控制台上,选择”存储新密钥”。

  2. 选择”其他类型的密钥”。

  3. 使用以下键值对创建您的密钥:

    {
    "identity_provider": "SALESFORCE",
    "authorization_url": "https://login.salesforce.com/services/oauth2/authorize",
    "token_url": "https://login.salesforce.com/services/oauth2/token",
    "client_id": "<YOUR_CONSUMER_KEY>",
    "client_secret": "<YOUR_CONSUMER_SECRET>"
    “issue_url”: “<YOUR_SALESFORCE_ORG_URL>”
    }

    使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第8张

  4. 添加一个标签,键为sagemaker:partner,您可以选择任意值。

  5. 保存密钥并记录密钥的ARN。

配置SageMaker生命周期规则

SageMaker Studio域执行角色将需要AWS身份和访问管理(IAM)权限来访问在上一步中创建的密钥。有关详细信息,请参阅创建角色并附加策略 (控制台)。

  1. 在IAM控制台上,将以下策略附加到相应的角色上(这些角色将由SageMaker项目用于部署):

    1. 将策略AmazonSageMakerPartnerServiceCatalogProductsCloudFormationServiceRolePolicy添加到服务角色AmazonSageMakerServiceCatalogProductsCloudformationRole
    2. 将策略AmazonSageMakerPartnerServiceCatalogProductsApiGatewayServiceRolePolicy添加到服务角色AmazonSageMakerServiceCatalogProductsApiGatewayRole
    3. 将策略AmazonSageMakerPartnerServiceCatalogProductsLambdaServiceRolePolicy添加到服务角色AmazonSageMakerServiceCatalogProductsLambdaRole
  2. 在IAM控制台上,导航到SageMaker域执行角色。

  3. 选择”添加权限”,然后选择”创建内联策略”。

  4. 在JSON策略编辑器中输入以下策略:

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": [
    "secretsmanager:GetSecretValue",
    "secretsmanager:PutSecretValue"
    ],
    "Resource": "arn:aws:secretsmanager:*:*:secret:*",
    "Condition": {
    "ForAnyValue:StringLike": {
    "aws:ResourceTag/sagemaker:partner": "*"
    }
    }
    },
    {
    "Effect": "Allow",
    "Action": [
    "secretsmanager:UpdateSecret"
    ],
    "Resource": "arn:aws:secretsmanager:*:*:secret:AmazonSageMaker-*"
    }
    ]
    }

SageMaker Studio生命周期配置提供了在创建或启动笔记本时运行的shell脚本。生命周期配置将用于检索密钥并将其导入到SageMaker运行时。

  1. 在 SageMaker 控制台中,选择导航窗格中的 生命周期配置

  2. 选择 创建配置

  3. 保留默认选择 Jupyter 服务器应用程序,然后选择 下一步

  4. 为配置指定一个名称。

  5. 在编辑器中输入以下脚本,并提供您之前创建的秘密的 ARN:

    #!/bin/bash
    set -eux
    
    cat > ~/.sfgenie_identity_provider_oauth_config <<EOL
    {
    "secret_arn": "<YOUR_SECRETS_ARN>"
    }
    EOL

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第9张

  1. 选择 提交 以保存生命周期配置。
  2. 在导航窗格中选择 域名 并打开您的域名。
  3. 环境 选项卡中,选择 附加 以附加您的生命周期配置。
  4. 选择您创建的生命周期配置,然后选择 附加到域名
  5. 选择 设置为默认

如果您是 SageMaker Studio 的重复用户,则为了确保启用 Salesforce Data Cloud,需要升级到最新的 Jupyter 和 SageMaker Data Wrangler 内核。

完成上述步骤后,即可启用从 Salesforce Data Cloud 到 SageMaker Studio 的数据访问,以构建人工智能和机器学习(ML)模型。

创建一个 SageMaker 项目

要开始使用此解决方案,请先使用 Amazon SageMaker Projects 创建一个项目。完成以下步骤:

  1. 在 SageMaker Studio 中,在导航窗格中的 部署 下,选择 项目
  2. 选择 创建项目
  3. 选择名为 Salesforce 的模型部署 的项目模板。
  4. 选择 选择项目模板使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第10张
  5. 输入项目的名称和可选描述。
  6. 输入模型组的名称。
  7. 输入之前创建的 Secrets Manager 秘密的名称。
  8. 选择 创建项目

该项目可能需要 1-2 分钟来启动。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第11张

您可以看到两个新的存储库。第一个存储库用于示例笔记本,您可以直接使用或自定义,以准备、训练、创建和注册 SageMaker 模型注册表中的模型。第二个存储库用于自动化模型部署,包括将 SageMaker 端点暴露为 API。

  1. 为两个笔记本选择 克隆存储库

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第12张

对于本帖,我们将使用产品推荐示例,该示例可以在刚克隆的 sagemaker-<YOUR-PROJECT-NAME>-p-<YOUR-PROJECT-ID>-example-nb/product-recommendation 目录中找到。在运行 product-recommendation.ipynb 笔记本之前,让我们进行一些数据准备,使用 SageMaker Data Wrangler 创建训练数据。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第13张

使用SageMaker Data Wrangler准备数据

完成以下步骤:

  1. 在SageMaker Studio中,打开文件菜单,选择新建Data Wrangler flow使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第14张

  2. 创建数据流后,选择(右键单击)选项卡,并选择重命名以重命名文件。

  3. 选择导入数据使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第15张

  4. 选择创建连接使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第16张

  5. 选择Salesforce Data Cloud使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第17张

  6. 对于名称,输入salesforce-data-cloud-sagemaker-connection

  7. 对于Salesforce org URL,输入您的Salesforce org URL。

  8. 选择保存+连接使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第18张

  9. 在数据资源管理器视图中,选择并预览Salesforce Data Cloud中的表,以创建并运行提取所需数据集的查询。

  10. 您的查询将如下所示,您可以使用在Salesforce Data Cloud中上传数据时使用的表名。

    SELECT product_purchased__c, club_member__c, campaign__c, state__c, month__c,
          case_count__c,case_type_return__c, case_type_shipment_damaged__c,
          pages_visited__c,engagement_score__c, tenure__c, clicks__c, id__c
    FROM Training_Dataset_for_Sagemaker__dll
  11. 选择创建数据集

创建数据集可能需要一些时间。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第19张

在数据流视图中,现在可以看到一个新节点添加到可视化图中。

有关如何使用SageMaker Data Wrangler创建数据质量和洞察报告的更多信息,请参阅获取数据和数据质量的洞察。

SageMaker Data Wrangler提供了300多种内置的转换。在此步骤中,我们使用其中一些转换来准备数据集以供ML模型使用。有关如何实施这些转换的详细说明,请参阅转换数据。

  1. 使用管理列步骤和删除列转换,删除列id__c使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第20张

  2. 使用处理缺失值步骤和删除缺失值转换,删除各个特征的缺失值行。我们将此转换应用于所有列。使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第21张

  3. 使用自定义转换步骤,为state__ccase_count__ctenure特征创建分类值。使用以下代码进行此转换:

    from pyspark.sql.functions import when
    
    States_List = [‘华盛顿’, ‘马萨诸塞州’, ‘加利福尼亚州’, ‘明尼苏达州’, ‘佛蒙特州’, ‘科罗拉多州’, ‘亚利桑那州’]
    
    df.withColumn(“club_member__c”,df.club_member__c.cast(‘string’))
    df.withColumn(“month__c”,df.month__c.cast(‘string’))
    df.withColumn(“case_type_return__c”,df.case_type_return__c.cast(‘string’))
    df.withColumn(“case_type_shipment_damaged__c”,df.case_type_shipment_damaged__c.cast(‘string’))
    
    df = df.withColumn(‘state__c’, when(df.state__c.isin(States_List), df.state__c).otherwise(“其他”))
    
    df = df.withColumn(‘case_count__c’, when(df.case_count__c == 0, “无案例”).otherwise( when(df.case_count__c <= 2, “1到2个案例”).otherwise(“超过2个案例”)))
    
    df = df.withColumn(‘tenure__c’, when(df.tenure__c < 1, “不到1年”).otherwise( when(df.tenure__c == 1, “1到2年”).otherwise(when(df.tenure__c ==2, “2到3年”).otherwise(when(df.tenure__c == 3, “3到4年”).otherwise(“超过4年”)))))

    使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第22张

  4. 使用处理数值步骤和缩放值转换,选择标准缩放器来缩放clicks__cengagement__scorepages__visited__c特征。使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第23张

  5. 使用编码分类步骤和独热编码转换,将类别变量转换为数字,适用于case__type__return___ccase__type_shipment__damagedmonth__cclub__member__ccampaign__c特征(除了clicks__cengagement__scorepages__visited__cproduct_purchased__c)。使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第24张

模型构建、训练和部署

要构建、训练和部署模型,请按照以下步骤完成:

  1. 返回SageMaker项目,打开product-recommendation.ipynb笔记本,并运行处理作业,使用您创建的SageMaker Data Wrangler配置对数据进行预处理。
  2. 按照笔记本中的步骤训练模型并将其注册到SageMaker模型注册表中。使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第25张
  3. 确保更新模型组名称以与创建SageMaker项目时使用的模型组名称匹配。

要查找模型组名称,请打开之前创建的SageMaker项目,然后导航到设置选项卡。

类似地,笔记本中引用的流文件必须与之前创建的流文件名称相匹配。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第26张

  1. 对于本文,我们使用product-recommendation作为模型组名称,因此我们在笔记本中将其更新为project-recommendation

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第27张

笔记本运行后,训练好的模型将在模型注册表中注册。要了解有关模型注册表的更多信息,请参阅使用模型注册表注册和部署模型。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第28张

  1. 选择您创建的模型版本,并将其状态更新为已批准

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第29张

现在,您已批准注册的模型,SageMaker Salesforce项目部署步骤将提供并触发AWS CodePipeline。

CodePipeline有用于构建和部署包含SageMaker Data Wrangler预处理步骤和训练模型的SageMaker端点的步骤。该端点将通过API Gateway作为API提供给Salesforce Data Cloud。下图显示了以Sagemaker-salesforce-product-recommendation-xxxxx为前缀的流程。我们还向您展示了SageMaker项目为Salesforce创建的端点和API。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第30张

如果您愿意,您可以查看CodePipeline部署步骤,该步骤使用AWS CloudFormation脚本创建SageMaker端点和API Gateway,并使用自定义JWT授权器。

当流水线部署完成后,您可以在SageMaker控制台上找到SageMaker端点。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第31张

您可以在API Gateway控制台上探索项目模板创建的API Gateway。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第32张

选择链接以找到API Gateway URL。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第33张

您可以在API Gateway控制台上选择Authorizers来找到JWT授权程序的详细信息。您也可以转到AWS Lambda控制台,查看由项目模板创建的Lambda函数的代码。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第34张

要发现在从Einstein Studio调用API时要使用的模式,请在模型注册表的导航窗格中选择Information。您将看到一个指向元数据文件的Amazon Simple Storage Service (Amazon S3)链接。将链接复制并粘贴到新的浏览器标签页的URL中。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第35张

让我们在不下载文件的情况下查看文件。在文件详细信息页面,选择Object actions菜单,然后选择Query with S3 Select

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第36张

选择Run SQL query并记下API Gateway URL和模式,因为在Einstein Studio中注册时需要这些信息。如果您没有看到APIGWURL键,要么模型尚未通过审核,要么部署仍在进行中,要么部署失败。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第37张

使用Salesforce Einstein Studio API进行预测

Salesforce Einstein Studio是Salesforce Data Cloud中的一个新的集中式体验,数据科学和工程团队可以使用它轻松访问传统模型和用于生成式AI的LLMs。接下来,我们在Salesforce Einstein Studio中设置API URL和client_id,这是您在之前在Secrets Manager中设置的,以在Salesforce Einstein Studio中注册和使用模型推断。有关说明,请参阅将您自己的AI模型带入Salesforce与Einstein Studio。

清理

要删除SageMaker项目创建的所有资源,请在项目页面上选择Action菜单,然后选择Delete

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第38张

要删除CodePipeline创建的资源(API Gateway和SageMaker终端节点),请导航到AWS CloudFormation控制台并删除创建的堆栈。

使用Amazon SageMaker和Salesforce Data Cloud集成,为您的Salesforce应用程序提供AI/ML功能 四海 第39张

结论

在本文中,我们解释了如何使用SageMaker Studio在Salesforce Data Cloud上构建和训练ML模型,使用SageMaker Data Wrangler导入和准备数据,并在SageMaker Data Wrangler中使用新推出的Salesforce Data Cloud JDBC连接器以及SageMaker提供的Salesforce模板进行Salesforce Data Cloud集成。SageMaker针对Salesforce的项目模板使您能够部署模型、创建终端节点并为已注册的模型提供API的安全性。然后,您可以在Salesforce Einstein Studio中使用API进行业务用例的预测。

虽然我们使用产品推荐的示例来展示实现端到端集成的步骤,但您可以使用Salesforce的SageMaker项目模板为在SageMaker模型注册表中注册的任何SageMaker传统模型和LLM创建终端节点和API。我们期待您使用Salesforce Data Cloud中的数据来构建SageMaker,并使用SageMaker托管的ML模型增强您的Salesforce应用程序!

本文是关于Salesforce Data Cloud和SageMaker集成的系列文章的延续。有关概述和了解使用此集成方法可以产生的业务影响的更多信息,请参阅第1部分。

其他资源

  • 使用SageMaker Data Wrangler导入数据
  • 解决SageMaker Data Wrangler问题
Leave a Reply

Your email address will not be published. Required fields are marked *