

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用资产（用户指南）
<a name="sm-assets-user-guide"></a>

使用 A SageMaker ssets，在机器学习项目上与组织中的其他人无缝协作。借 SageMaker 助 Assets，您和您的合作者可以创建和共享模型和数据表。在 A SageMaker ssets 中，这些模型和数据表被称为*资产*。

SageMaker 资产是 Amazon SageMaker Studio 中的一项功能。您或您的管理员在亚马逊 DataZone 项目中创建一个 Studio 环境。有关设置 Amazon 的更多信息 DataZone，请参阅[设置 SageMaker 资产（管理员指南）](sm-assets-set-up.md)。

资产是指 ML 资产或数据资产。ML 资产是指向以下内容的元数据：
+ 特征存放区特征组
+ SageMaker AI 模型组

基础模型组和特征组是数据来源。如果更新了特征组或模型组，模型组或特征组的资产会在当天内更新。

数据资产是指向以下内容的元数据：
+ Amazon Redshift 表
+ AWS Glue 桌子

对于数据资产，数据来源是从 AWS Glue 表和 Amazon Redshift 表中提取元数据到资产中的机制。例如，数据源将表中的元数据提取到该 AWS Glue 表的资产中。

您可以通过发布资产，让组织中的每个人都能看到它。个人可以查看资产中的元数据并申请访问。如果您提供访问权限，他们就能访问基础机器学习数据来源或表。

您的管理员可能已经授予您访问特征组、模型组和表格的权限。如果还没有，请参阅 [设置 SageMaker 资产（管理员指南）](sm-assets-set-up.md) 中的信息，以帮助您开始工作。

以下各节提供了特征组和模型组的参考信息。

## 特征组
<a name="sm-user-guide-feature-groups-reference"></a>

Amazon SageMaker Feature Store 提供了一个集中的位置，可帮助您存储和管理您的功能。它是一个高性能的存储库，可用于特征工程。

在特征存放区内，功能存储在一个特征组中。特征组是与您正在进行的项目相关的功能集合。例如，如果您正在做一个与预测房价有关的项目，那么特征组可能包括位置或卧室数量等功能。

有关如何使用特征组简化特征工程流程的更多信息，请参阅 [使用特征存放区创建、存储和共享功能](feature-store.md)。

## 模型组
<a name="sm-user-guide-model-groups"></a>

您可以使用 “模型注册表” 中的 SageMaker AI SageMaker 模型组来组织和管理模型的不同版本。您可以比较不同版本的模型，看看哪一款最适合您的使用情况。有关 “ SageMaker 模型注册表” 的更多信息，请参阅[利用模型注册中心进行模型注册部署](model-registry.md)。

以下是有关 Amazon Redshift 和 AWS Glue的背景信息。

Amazon Redshift 是一种大型数据存储库服务，可在大型数据集上提供快速查询性能。有关 Amazon Redshift 的更多信息，请参阅 [Amazon Redshift Serverless](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html)。

AWS Glue 是一项提取、转换、加载 (ETL) 服务，可用于简化数据准备过程。有关的更多信息 AWS Glue，请参阅[什么是 AWS Glue？](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)

您可以使用 SQL 编辑器连接 AWS Glue 和 Amazon Redshift 数据库并运行查询。您可以在 Ass SageMaker ets 中共享您在编辑器中创建的任何表。有关更多信息，请参阅 [在 Studio 中使用 SQL 准备数据](sagemaker-sql-extension.md)。

**Topics**
+ [术语和概念](#sm-assets-terminology)
+ [步骤 1：访问 SageMaker 资产](#sm-assets-access)
+ [步骤 2：共享资产并管理资产访问权限](#sm-assets-share)
+ [步骤 3：管理访问请求](#sm-assets-manage-requests)
+ [步骤 4：查找资产并申请访问权限](#sm-assets-request-access)
+ [步骤 5：在机器学习工作流程中使用共享资产](#sm-assets-consume)

## 术语和概念
<a name="sm-assets-terminology"></a>

在开始使用 SageMaker 资源之前，熟悉以下术语和概念会很有帮助：
+ 资产 - 指向您要共享的模型或数据表的元数据。您可以申请访问他人拥有的资产，也可以与他人共享您的资产。您和您的队友可以访问资产以及与之相关的基础数据表或模型。
+ 订阅资产 - 要申请访问资产，您需要提交订阅申请。如果您的申请获得批准，该资产就会出现在您订阅的资产下。
+ 自有资产 - 您与队友共享的资产。
+ 资产目录 - 在组织内共享的资产。

## 步骤 1：访问 SageMaker 资产
<a name="sm-assets-access"></a>

访问 SageMaker 资产以查看您的资产并与他人共享。以下信息可帮助您开始使用它。

您可以从 Amazon DataZone 域中的*项目*访问 SageMaker 资产。项目是您和团队成员之间的合作。在项目中，您和项目的其他成员可以访问您和其他团队成员在清单目录中创建的资产。您可以将资产发布到已发布的目录中，让组织中的其他人也能看到它们。

这些人可以申请访问您的资产。如果您为他们提供访问权限，他们就可以访问最新的数据来源。例如，如果个人订阅了您更新的 AWS Glue 表，则他们可以实时访问更新的 AWS Glue 表。

使用以下步骤访问 SageMaker 资产。

**访问 SageMaker 资产**

1. 打开 [Amazon DataZone](https://console.aws.amazon.com/datazone) 控制台。

1. 选择 **查看域**。

1. 在包含项目的域旁边，选择 **打开数据门户**。

1. 在 “**分析工具**” 下，选择 **SageMaker AI Studio**。

1. 选择 **Open Amazon SageMaker AI**。

1. 选择 **Assets (资产)**。

已与您共享的资产位于**已订阅资产**下。您和项目成员创建的资产位于**自有资产**下。您和组织其他成员发布的资产都在**资产目录**中。

## 步骤 2：共享资产并管理资产访问权限
<a name="sm-assets-share"></a>

创建机器学习模型、特征组或数据表后，您可以让与您在项目中合作的个人或您的组织更广泛地看到它们。您可以回复访问资产的请求。如果您批准了个人的请求，他们就可以修改资产的基础数据来源。

共享资产时，您有两种选择：
+ 发布到资产目录 - 让组织中的每个人都能看到资产
+ 发布到清单--让项目中的每个人都能看到资产

如果您已将资产发布到资产目录，组织内的个人就可以在资产目录中找到它。他们可以查看资产的元数据，并决定是否要申请访问这些资产。如果您批准了他们的请求，他们就可以访问基础数据来源。

如果发布到清单，您和项目的其他成员就可以访问该资产，而无需任何其他操作。

发布到库存中的资产只显示在**自有资产**下。发布到目录中的资产显示在**自有资产**和**资产目录**下。

发布数据表时，必须创建一个数据源，用于将基础表或 Amazon Redshift AWS Glue 表中的元数据提取到资产中。使用以下过程发布 AWS Glue 或 Amazon Redshift 表。

------
#### [ Publish an AWS Glue table ]

要为 AWS Glue 表发布资产，您需要为其创建数据源并发布该资源。数据源是将 AWS Glue 表中的元数据提取到资产中的机制。

使用以下步骤发布 AWS Glue 表。

**发布 AWS Glue 表**

1. 导航至 “资**SageMaker 产**” 登录页面。

1. 选择**自有资产**。

1. 选择**查看数据来源**。

1. 选择**创建数据来源**。

1. 对于**名称**，请指定数据来源的名称。

1. 对于**描述**，请提供说明。

1. 对于**类型**，选择 **AWS Glue**。

1. 在 “**数据选择**” 中，选择包含该 AWS Glue 表的数据库。

1. 对于**表选择标准**，请指定表的名称。
**注意**  
尽管您可以指定多个表，但我们强烈建议您只提供一个表名。

1. 选择**下一步**。

1. 
   + 在**将资产发布到目录**，选择**是**以发布到资产目录。
   + 在**将资产发布到目录**，选择**否**以发布到资产目录。

1. 选择**下一步**。

1. 在**资产详情**下，选择**按计划运行**或**按需运行**，以确定如何将 AWS Glue 表中的元数据提取到资产中。

1. （可选）如果选择**按照时间表运行**，请指定将元数据拉入资产的计划。

1. 选择**下一步**。

1. 选择**创建**。

1. （可选）如果尚未创建计划表，请选择**运行**，将 AWS Glue 表中的元数据导入资产。

------
#### [ Publish an Amazon Redshift table ]

要为 Amazon Redshift 表发布资产，您需要为其创建一个数据来源并将其发布。数据来源是将元数据从 Amazon Redshift 表拉入资产的机制。

使用以下步骤发布 Amazon Redshift 表。

**要发布 Amazon Redshift 表**

1. 导航至 “资**SageMaker 产**” 登录页面。

1. 选择**自有资产**。

1. 选择**查看数据来源**。

1. 选择**创建数据来源**。

1. 对于**名称**，请指定数据来源的名称。

1. 对于**描述**，请提供说明。

1. 在**类型**中，选择 **Amazon Redshift**。

1. 
   + 选择 **Redshift 集群**。

     1. 对于 **Redshift 集群**，指定包含表数据库的 Amazon Redshift 集群的名称。

     1. 对于 S **ecret**，指定包含集群凭据的 AWS Secrets Manager 密钥的名称。
   + 选择 **Redshift 无服务器**。

     1. 对于 **Redshift 作业组**，指定包含表数据库的 Amazon Redshift 工作组的名称。

     1. 对于 S **ecret**，指定包含工作组凭据的 AWS Secrets Manager 密钥的名称。

1. 在**发布源选择**中，选择包含 Amazon Redshift 表的数据库。

1. 对于**表选择标准**，请指定表的名称。
**注意**  
尽管您可以指定多个表，但我们强烈建议您只提供一个表名。

1. 选择**下一步**。

1. 
   + 在**将资产发布到目录**，选择**是**以发布到资产目录。
   + 在**将资产发布到目录**，选择**否**以发布到资产目录。

1. 选择**下一步**。

1. 在**资产详细信息**下，选择**按计划运行**或**按需运行**，以确定如何将 Amazon Redshift 表中的元数据提取到资产中。

1. （可选）如果选择**按照时间表运行**，请指定将元数据拉入资产的计划。

1. 选择**下一步**。

1. 选择**创建**。

1. （可选）如果尚未创建计划，请选择**运行**将 Amazon Redshift 表中的元数据导入资产。

------

使用以下步骤为特征组或模型软件包组发布资产。

------
#### [ Publish a feature group ]

使用以下步骤导航到已创建的特征组，并将其发布到自有资产或资产目录中。

**将特征组发布到自有资产或资产目录中**

1. 在 Studio 内，选择左侧导航栏上的**数据**。

1. 选择要发布的特征组。

1. 选择 ![\[\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/sm-assets-publish-icon.png) 图标。

1. 
   + 选择**发布到资产目录**以发布到资产目录。
   + 选择**发布到库存**，以发布到组的自有资产。

------
#### [ Publish a model group ]

使用以下步骤导航到已创建的模型组，并将其发布到自有资产或资产目录中。

**要将模型组发布到您拥有的资产或资产目录中**

1. 在 Studio 中，选择左侧导航栏中的**模型**。

1. 选择要发布的模型组。

1. 选择 ![\[\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/sm-assets-publish-icon.png) 图标。

1. 
   + 选择**发布到资产目录**以发布到资产目录。
   + 选择**发布到库存**，以发布到组的自有资产。

------

使用以下步骤将自有资产中的资产发布到资产目录。

**从 “资产” 页面发布 SageMaker 资产**

1. 在 Studio 中，导航至**资产**。

1. 选择**自有资产**。

1. 在搜索栏中指定资产名称。

1. 选择资产。

1. 选择**发布**。

您可以使用以下 SageMaker Python SDK 代码发布功能组或模型包组。代码假定您已经创建了特征组或模型软件包组。

```
from sagemaker.asset import AssetManager

publisher = AssetPublisher()
publisher.publish_to_catalog(name-of-your-feature-group-or-model-package)
```

## 步骤 3：管理访问请求
<a name="sm-assets-manage-requests"></a>

发布资产后，项目外的用户可能希望访问该资产。您可以提供、拒绝或撤销访问请求。您还可以删除资产，使数据的基本来源只对自己开放。

使用以下程序回复订阅请求。

**批准订阅申请**

1. 导航至 “资**SageMaker 产**” 页面。

1. 选择**管理资产**。

1. 选择**传入订阅请求**。

1. 
   + （可选）选择**批准**并说明理由。
   + （可选）选择**拒绝**。

您可以撤销之前批准的资产访问权限。如果选择撤销访问权限，用户将失去对资产和基础资产的访问权限。使用以下程序撤销访问权限。

**要取消访问权限**

1. 导航至 “资**SageMaker 产**” 页面。

1. 选择**管理资产**。

1. 选择**传入订阅请求**。

1. 选择**已批准**选项卡。

1. 选择资产旁边的**撤销**。

您还可以取消发布资产，使其只显示为自有资产。这些资产在资源目录中将不可见，但您已批准其订阅请求的个人仍可访问这些资产。

**取消发布资产**

1. 导航至 “资**SageMaker 产**” 页面。

1. 在**自有资产**下，选择要取消发布的资产。

1. 选择 **Unpublish (取消发布)**。

您还可以从取消发布资产的同一页面删除资产。删除资产不会删除数据来源。删除资产只会让项目或组织的其他成员看不到该资产。

## 步骤 4：查找资产并申请访问权限
<a name="sm-assets-request-access"></a>

您可以申请访问其他用户已发布到资源目录中的资产。如果他们批准了订阅请求，您就可以访问基础数据来源。

在 “ SageMaker 资产” 页面的顶部，您可以指定搜索查询来查找组织中其他用户已发布的资产。您还可以选择资产类型，查看该类型的所有已发布资产。例如，您可以选择 **Glue Table** 来查看所有已发布的 AWS Glue 表格。

您还可以直接在资产名称下查看资产类型。以下是资产类型的可用名称：
+ Redshift 表
+ Glue 表
+   模型
+ 特征组

**注意**  
以下存储空间中的特征组类型为 **Glue 表**：  
离线
离线和在线

**申请订阅**

1. 导航至 “资**SageMaker 产**” 页面。

1. 
   + 在搜索栏中指定资产名称，然后选择**搜索**。
   + 对于**类型**，选择资产类型，并在资源目录中找到要访问的资产。

1. 选择资产。

1. 选择**订阅**。

1. 提供申请理由。

1. 选择**提交**。

您的订阅请求会出现在**管理资产请求**下的**出站订阅请求**中。如果资产的发布者批准了您的请求，该资产就会出现在**已订阅资产**下。现在，您可以在机器学习工作流程中使用 Amazon Redshift、 AWS Glue 表或机器学习数据源。

## 步骤 5：在机器学习工作流程中使用共享资产
<a name="sm-assets-consume"></a>

如果您的资产订阅请求获得批准，您就可以在机器学习工作流程中使用该资产。

您获得访问权限的特征组会出现在 Studio 中的特征组列表中。

您获得访问权限的模型组会出现在 Studio 中的模型组列表中。您可以通过 “ SageMaker 资产” 在模型注册表中打开模型组。使用以下步骤打开模型注册表中的模型组。**已订阅资产**。

**从 “ SageMaker 资源” 中打开模型组**

1. 选择模型组。

1. 选择**在模型注册表中打开**。

你可以在 Canvas 的 Data Wrangler 中访问 AWS Glue 我们的 Amazon Redshift 表。 SageMaker SageMaker Canvas 是一款无需代码即可执行探索性数据分析 (EDA) 和训练模型的应用程序。有关 C SageMaker anvas 的更多信息，请参阅[亚马逊 SageMaker Canvas](canvas.md)。

你也可以使用 SQL 扩展程序将你 AWS Glue 或 Amazon Redshift 表中的数据导入你的 Jupyter 笔记本中。您可以将数据转换为用于机器学习工作流程的 pandas 数据框。有关更多信息，请参阅 [在 Studio 中使用 SQL 准备数据](sagemaker-sql-extension.md)。