快速入门:创建 SageMaker 沙盒域以在 Studio 中启动亚马逊EMR集群 - Amazon SageMaker

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

快速入门:创建 SageMaker 沙盒域以在 Studio 中启动亚马逊EMR集群

本节将引导您完成在 Amazon SageMaker Studio 中快速设置完整测试环境的过程。您将创建一个新的 Studio 域,允许用户直接从 Studio 启动新的亚马逊EMR集群。这些步骤提供了一个示例笔记本,您可以将其连接到 Amazon EMR 集群以开始运行 Spark 工作负载。使用此笔记本,您将使用 Amazon EMR Spark 分布式处理和 OpenSearch 矢量数据库构建检索增强生成系统 (RAG)。

注意

要开始使用,请使用具有管理员权限的 AWS Identity and Access Management (IAM) 用户帐户登录 AWS 管理控制台。有关如何注册 AWS 账户和创建具有管理权限的用户的信息,请参阅完成 Amazon SageMaker 先决条件

步骤 1:创建用于在 Studio 中启动亚马逊EMR集群的 SageMaker 域

在以下步骤中,您将应用堆 AWS CloudFormation 栈来自动创建新 SageMaker域。堆栈还会创建用户配置文件并配置所需的环境和权限。该 SageMaker 域已配置为允许您直接从 Studio 启动亚马逊EMR集群。在本示例中,Amazon EMR 集群是在 SageMaker 未进行身份验证的同一 AWS 账户中创建的。你可以在 getting_start AWS CloudFormation ing_started 存储库中找到支持各种身份验证方法的其他堆栈,比如 Kerberos。 GitHub

注意

SageMaker 默认情况下,每个 AWS 账户允许 5 个 Studio 域名。 AWS 区域 在创建堆栈之前,请确保您的账户在您所在地区的域名不超过 4 个。

按照以下步骤设置用于从 Studio 启动亚马逊EMR集群的 SageMaker 域。
  1. sagemaker-studio-emr GitHub存储库下载此AWS CloudFormation 模板的原始文件。

  2. 进入 AWS CloudFormation 控制台:https://console.aws.amazon.com/cloudformation

  3. 选择 “创建堆栈,然后从下拉菜单中选择 “使用新资源(标准)”。

  4. 步骤 1 中:

    1. 准备模板部分中,选择选择现有模板

    2. 指定模板部分,选择上传模板文件

    3. 上传下载的 AWS CloudFormation 模板并选择 “下一步”。

  5. 步骤 2 中,输入堆栈名称SageMakerDomainName然后选择 Ne xt

  6. 步骤 3 中,保留所有默认值并选择下一步

  7. 步骤 4 中,选中确认资源创建的复选框并选择创建堆栈。这会在您的账户和地区创建一个 Studio 域名。

第 2 步:从 Studio 用户界面启动新的亚马逊EMR集群

在以下步骤中,您将通过 Studio 用户界面创建新的亚马逊EMR集群。

  1. 前往 SageMaker 控制台,https://console.aws.amazon.com/sagemaker/然后在左侧菜单中选择 “域名”。

  2. 点击您的域名 G enerativeAIDomain 打开域名详情页面。

  3. 从用户个人资料中启动 Studio genai-user

  4. 在左侧导航窗格中,前往数据,然后转至 Amazon EMR 集群

  5. 在 Amazon EMR 集群页面上,选择创建。选择 AWS CloudFormation 堆栈EMR创建的 SageMaker Studio Domain No Auth 模板,然后选择 “下一步”。

  6. 输入新 Amazon EMR 集群的名称。(可选)更新其他参数,例如核心和主节点的实例类型、空闲超时或核心节点数量。

  7. 选择创建资源以启动新的 Amazon EMR 集群。

    创建 Amazon EMR 集群后,按照集EMR群页面上的状态进行操作。当状态更改为时Running/Waiting,您的亚马逊EMR集群就可以在 Studio 中使用了。

步骤 3:将 JupyterLab 笔记本电脑连接到 Amazon EMR 集群

在以下步骤中 JupyterLab ,您将笔记本连接到正在运行的 Amazon EMR 集群。在本示例中,您导入了一个笔记本,允许您使用 Amazon EMR Spark 分布式处理和 OpenSearch 矢量数据库构建检索增强生成 (RAG) 系统。

  1. 启动 JupyterLab

    在 Studio 中,启动 JupyterLab 应用程序。

  2. 创建私密空间

    如果您尚未为 JupyterLab 应用程序创建空间,请选择创建 JupyterLab 空间。输入空间的名称,并将该空间设为 “私有”。将所有其他设置保留为默认值,然后选择 “创建空间”。

    否则,请运行您的 JupyterLab 空间来启动 JupyterLab应用程序。

  3. 部署LLM和嵌入模型以进行推理
    • 从顶部菜单中选择 “文件”、“新建”,然后选择 “终端”。

    • 在终端中,运行以下命令。

      wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb mkdir AWSGuides cd AWSGuides wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/AmazonSageMakerDeveloperGuide.pdf wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/EC2DeveloperGuide.pdf wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/S3DeveloperGuide.pdf

      这会将Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb笔记本检索到您的本地目录,并将三个PDF文件下载到本地文件AWSGuides夹。

    • 打开lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb,保留内Python 3 (ipykernel)核,然后运行每个单元。

      警告

      Llama 2 许可协议部分,请确保在继续EULA之前接受 Llama2。

      笔记本部署了两个模型,Llama 2all-MiniLM-L6-v2 Modelsml.g5.2xlarge用于推理。

      模型的部署和端点的创建可能需要一些时间。

  4. 打开你的主笔记本

    在中 JupyterLab,打开终端并运行以下命令。

    cd .. wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb

    您应该会在的左侧面板中看到额外的Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb笔记本电脑 JupyterLab。

  5. 选择一个PySpark内核

    打开Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb笔记本并确保您使用的是内SparkMagic PySpark核。你可以在笔记本的右上角切换内核。选择当前内核名称以打开内核选择模式,然后选择SparkMagic PySpark

  6. 将您的笔记本电脑连接到集群
    1. 在笔记本的右上角,选择 “群集”。此操作将打开一个模式窗口,其中列出了您有权访问的所有正在运行的集群。

    2. 选择您的集群,然后选择 Connect。将打开一个新的凭证类型选择模式窗口。

    3. 选择 “无凭据”,然后选择 C onnect

      显示 JupyterLab笔记本电脑的 Amazon EMR 凭证选择的模块。
    4. 笔记本单元会自动填充并运行。笔记本单元加载sagemaker_studio_analytics_extension.magics扩展,该扩展提供连接到 Amazon EMR 集群的功能。然后,它使用%sm_analytics神奇的命令启动与您的 Amazon EMR 集群和 Spark 应用程序的连接。

      注意

      确保与您的 Amazon EMR 集群的连接字符串的身份验证类型设置为None。以下示例--auth-type None中的值说明了这一点。如有必要,您可以修改该字段。

      %load_ext sagemaker_studio_analytics_extension.magics %sm_analytics emr connect --verify-certificate False --cluster-id your-cluster-id --auth-type None --language python
    5. 成功建立连接后,您的连接单元输出消息应显示您的SparkSession详细信息,包括您的集群 ID、YARN应用程序 ID 以及指向集群 ID 的链接 Spark 用于监控您的 UI Spark 工作。

您已准备好使用Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb笔记本了。此示例笔记本运行分布式 PySpark 工作负载,用于使用 LangChain 和构建RAG系统 OpenSearch。

第 4 步:清理 AWS CloudFormation 堆栈

完成后,请务必终止您的两个终端节点并删除 AWS CloudFormation 堆栈,以防止继续收费。删除堆栈会清理堆栈配置的所有资源。

在使用完 AWS CloudFormation 堆栈后将其删除
  1. 进入 AWS CloudFormation 控制台:https://console.aws.amazon.com/cloudformation

  2. 选择要删除的堆栈。您可以按名称搜索它,也可以在堆栈列表中找到它。

  3. 单击 “删除” 按钮完成对堆栈的删除,然后再次单击 “删除” 以确认这将删除堆栈创建的所有资源。

    等待堆栈删除完成。这可能需要几分钟。 AWS CloudFormation 自动清理堆栈模板中定义的所有资源。

  4. 确认堆栈创建的所有资源都已删除。例如,检查是否有剩余的 Ama EMR zon 集群。

移除模型的API端点
  1. 转到 SageMaker 控制台:https://console.aws.amazon.com/sagemaker/.

  2. 在左侧导航窗格中,选择推理,然后选择终端节点

  3. 选择终端节点,hf-allminil6v2-embedding-ep然后在 “操作” 下拉列表中选择 “删除”。对终端节点重复该步骤meta-llama2-7b-chat-tg-ep