使用 Amazon SageMaker 构建语义内容推荐系统

背景和设置

假设您是一家银行的机器学习开发人员。您需要开发一个机器学习模型,帮助公司分析师阅读海量新闻,从而做出投资决策。该模型将使用 20newsgroups 数据集进行训练,该数据集包含大约 20000 份文档,涵盖 20 个主题的信息。

作为模型的一部分,您需要从新闻数据中提取语义信息,然后从语料库中识别相似的新闻文章,并根据分析师正在阅读的文章,向他们推荐相似新闻的内容。

在本教程中,您将学习如何创建 Amazon SageMaker Notebook 实例,使用 Jupyter Notebook 下载、准备和暂存数据集,训练并部署主题模型,最后训练并部署内容推荐模型。

在模块 1 中,您将配置教程中使用的环境。

 时长

20 分钟

步骤 1:创建 AWS 账户

使用已有个人 AWS 账户或创建新的 AWS 账户。不要使用组织账户。个人账户更能充分利用 AWS 提供的服务,而且避免造成资源遗留。如果您在教程结束后未删除使用过的资源,可能会产生 AWS 资源费用。

步骤 2:创建 Amazon S3 存储桶

Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务,具有业界领先的可扩展性、数据可用性、安全性和性能。

训练模型会生成模型训练数据和模型构件。在本教程中,您将使用 Amazon S3 存储桶来暂存训练和验证数据集,并存储 Amazon SageMaker 在模型训练过程中生成的模型构件。

创建 Amazon S3 存储桶的步骤:

  1. 登录 AWS 管理控制台,打开 Amazon S3 控制台
  2. 点击 Create bucket(创建存储桶)。
  3. 在 Bucket name(存储桶名称)中,输入 sagemaker-xx,其中 xx 是训练模型的首字母缩写,以确保存储桶名称的唯一性。
  4. 在 Region(区域)中,选择您希望存储桶所在的 AWS 区域。
  5. 在 Bucket settings(存储桶设置)的 Block Public Access(阻止公开访问)中,保持启用状态。
  6. 点击 Create bucket(创建存储桶)。

步骤 3:创建 Amazon SageMaker Notebook 实例

Amazon SageMaker Notebook 实例是一个完全托管的机器学习 (ML) Amazon Elastic Compute Cloud (Amazon EC2) 计算实例,可运行 Jupyter Notebook 应用程序。

在本教程中,您将使用 Notebook 实例来创建和管理 Jupyter Notebook,用于准备和处理数据,训练和部署内容推荐机器学习模型。

创建 Amazon SageMaker Notebook 实例的步骤:

  1. 打开 Amazon SageMaker 控制台
  2. 选择 Notebook instances(Notebook 实例),然后点击 Create notebook instance(创建 Notebook 例)。
  3. 在 Create notebook instance(创建 Notebook 实例)页面,在 Notebook instance name(Notebook 实例名称)中,输入 Notebook 实例的名称。
  4. 对于 Instance type(实例类型),选择 ml.t2.medium。这是 Notebook 实例支持的费用最低的实例类型,对于教程本次使用来说已经足够了。
  5. 对于 IAM role(IAM 角色),选择 Create a new role(创建新角色),然后点击 Create role(创建角色)。
  6. 点击 Create notebook instance(创建 Notebook 实例)。

几分钟后,Amazon SageMaker 将启动一个 ML 计算实例(在本例中为 Notebook 实例),并为该实例附加一个 ML 存储卷。Notebook 实例预配置了 Jupyter Notebook 服务器和一套 Anaconda 库。

步骤 4:创建 Jupyter Notebook

在 Amazon SageMaker Notebook 实例中创建 Jupyter Notebook。此外,您还将创建一个单元格,用于获取 Notebook 运行 Amazon SageMaker API 所需的 IAM 角色,并指定用于存储训练数据集和 Amazon SageMaker 训练作业输出模型构件的 Amazon S3 存储桶名称。

创建 Jupyter Notebook 的步骤:

  1. 打开 Amazon SageMaker 控制台
  2. 点击 Notebook Instances(Notebook 实例),然后点击 Open Jupyter(打开 Jupyter)以进入经典 Jupyter 视图,或点击 Open JupyterLab(打开 JupyterLab)以进入 JupyterLab 视图,从而打开您创建的 Notebook 实例。
    注意:如果在 Status(状态)列中 Notebook 实例旁的状态为 Pending(待处理),则表示 Notebook 仍在创建中。当 Notebook 准备就绪可供使用时,状态将变为 InService(运行中)。
  3. 创建 Notebook。
    • 如果在 Jupyter 中打开了 Notebook,请在 Files(文件)选项卡下点击 New(新建),然后选择 conda_python3。该预安装环境包含默认的 Anaconda 安装和 Python。
    • 如果在 JupyterLab 中打开了 Notebook,请在 File(文件)菜单中点击 New(新建),然后选择 Notebook。对于 Select Kernel(选择内核),选择 conda_python3。该预安装环境包含默认的 Anaconda 安装和 Python 3。
  4. 在 Jupyter Notebook 中,点击 File(文件)和 Save as(另存为),然后为 Notebook 命名。

总结

在本模块中,您了解了本教程中要训练的示例机器学习模型。您还创建了 AWS 账户,并使用 Amazon S3 存储桶、Amazon SageMaker Notebook 实例和 Jupyter Notebook 搭建了教程环境。

现在,您已经做好开始教程的准备了。在下一个模块中,您将下载、准备并暂存数据集。

下载和准备数据集