

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 快速入門：建立 SageMaker AI 沙盒網域以在 Studio 中啟動 Amazon EMR 叢集
<a name="studio-notebooks-emr-cluster-quickstart"></a>

本節會逐步引導您在 Amazon SageMaker Studio 中快速設定完整的測試環境。您將建立新的 Studio 網域，讓使用者直接從 Studio 啟動新的 Amazon EMR 叢集。這些步驟提供範例筆記本，您可以將其連線到 Amazon EMR 叢集以開始執行 Spark。工作負載。使用此筆記本，您將使用 Amazon EMR Spark 分散式處理和 OpenSearch 向量資料庫來建置檢索增強生成系統 (RAG)。

**注意**  
若要開始使用，請使用具有管理員許可的 AWS Identity and Access Management (IAM) 使用者帳戶登入 AWS 管理主控台。如需如何註冊 AWS 帳戶並建立具有管理存取權之使用者的相關資訊，請參閱 [完成 Amazon SageMaker AI 先決條件](gs-set-up.md)。

**若要設定 Studio 測試環境並開始執行 Spark 任務：**
+ [步驟 1：建立 SageMaker AI 網域以在 Studio 中啟動 Amazon EMR 叢集](#studio-notebooks-emr-cluster-quickstart-setup)
+ [步驟 2：從 Studio UI 啟動新的 Amazon EMR 叢集](#studio-notebooks-emr-cluster-quickstart-launch)
+ [步驟 3：將 JupyterLab 筆記本連線至 Amazon EMR 叢集](#studio-notebooks-emr-cluster-quickstart-connect)
+ [步驟 4：清除 CloudFormation 堆疊](#studio-notebooks-emr-cluster-quickstart-clean-stack)

## 步驟 1：建立 SageMaker AI 網域以在 Studio 中啟動 Amazon EMR 叢集
<a name="studio-notebooks-emr-cluster-quickstart-setup"></a>

在下列步驟中，您會套用 CloudFormation 堆疊來自動建立新的 SageMaker AI 網域。堆疊也會建立使用者設定檔，並設定所需的環境和許可。SageMaker AI 網域會設定為讓您直接從 Studio 啟動 Amazon EMR 叢集。在此範例中，Amazon EMR 叢集是在與 SageMaker AI 相同的 AWS 帳戶中建立，無需驗證。您可以在 [get\_started](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) GitHub 儲存庫中找到支援 Kerberos 等各種身分驗證方法的其他 CloudFormation 堆疊。

**注意**  
SageMaker AI AWS 區域 預設允許每個 AWS 帳戶 5 個 Studio 網域。在您建立堆疊之前，請確定您的帳戶在您的區域中具有不超過 4 個網域。

**請遵循下列步驟設定 SageMaker AI 網域，以從 Studio 啟動 Amazon EMR 叢集。**

1. 從 `sagemaker-studio-emr` GitHub 儲存庫下載此 [CloudFormation 範本](https://github.com/aws-samples/sagemaker-studio-foundation-models/blob/main/workshop-artifacts/cfn/workshop-cfn.yaml)的原始檔案。

1. 前往 CloudFormation 主控台：https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)

1. 選擇**建立堆疊**，然後從下拉式功能表中選取**使用新資源 (標準)**。

1. 在**步驟 1** 中。

   1. 在**準備範本**區段中，選取**選擇現有範本**。

   1. 在 **Specify template (指定範本)** 區段中，選擇 **Upload a template file (上傳範本檔案)**。

   1. 上傳下載的 CloudFormation 範本，然後選擇**下一步**。

1. 在**步驟 2** 中，輸入**堆疊名稱**和 **SageMakerDomainName**，然後選擇**下一步**。

1. 在**步驟 3** 中，保留所有預設值，然後選擇**下一步**。

1. 在**步驟 4** 中，勾選方塊以確認資源建立，然後選擇**建立堆疊**。這會在您的帳戶和區域中建立 Studio 網域。

## 步驟 2：從 Studio UI 啟動新的 Amazon EMR 叢集
<a name="studio-notebooks-emr-cluster-quickstart-launch"></a>

在下列步驟中，您可以從 Studio UI 建立新的 Amazon EMR 叢集。

1. 前往 SageMaker AI 主控台 (網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/))，然後在左側功能表中選擇**網域**。

1. 按一下您的網域名稱 **GenerativeAIDomain** 以開啟**網域詳細資訊**頁面。

1. 從使用者設定檔 `genai-user` 中啟動 Studio。

1. 在左側導覽窗格中，前往**資料**，然後前往 **Amazon EMR 叢集**。

1. 在 Amazon EMR 叢集頁面上，選擇**建立**。選取 CloudFormation 堆疊建立的範本 **SageMaker Studio Domain No Auth EMR**，然後選擇**下一步**。

1. 輸入新 Amazon EMR 叢集的名稱。選擇性地更新其他參數，例如核心節點和主節點的執行個體類型、閒置逾時或核心節點數量。

1. 選擇**建立資源**以啟動新的 Amazon EMR 叢集。

   建立 Amazon EMR 叢集後，請遵循 **EMR 叢集**頁面上的狀態。當狀態變更為 `Running/Waiting` 時，您的 Amazon EMR 叢集已準備好在 Studio 中使用。

## 步驟 3：將 JupyterLab 筆記本連線至 Amazon EMR 叢集
<a name="studio-notebooks-emr-cluster-quickstart-connect"></a>

在下列步驟中，您將 JupyterLab 中的筆記本連線至執行中的 Amazon EMR 叢集。在此範例中，您匯入筆記本，讓您可以使用 Amazon EMR Spark 分散式處理和 OpenSearch 向量資料庫建置檢索增強生成 (RAG) 系統。

1. 

**啟動 JupyterLab**

   從 Studio 啟動 JupyterLab 應用程式。

1. 

**建立私有空間**

   如果您尚未為 JupyterLab 應用程式建立空間，請選擇**建立 JupyterLab 空間**。輸入空間的名稱，並將空間保留為**私有**。將所有其他設定保留為預設值，然後選擇**建立空間**。

   否則，執行您的 JupyterLab 空間以啟動 JupyterLab 應用程式。

1. 

**部署您的 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 授權合約**區段中，確保接受 Llama2 EULA 再繼續。  
筆記本會在 `ml.g5.2xlarge` 上部署兩個模型 (`Llama 2` 和 `all-MiniLM-L6-v2 Models`) 以進行推論。

     部署模型和建立端點可能需要一些時間。

1. 

**開啟您的主要筆記本**

   在 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
   ```

   您應該會在 JupyterLab 的左側面板中看到額外的 `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb` 筆記本。

1. 

**選擇 `PySpark` 核心**

   開啟您的 `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb` 筆記本，並確保您使用的是 `SparkMagic PySpark` 核心。您可以在筆記本的右上角切換核心。選擇目前的核心名稱以開啟核心選擇模式，然後選擇 `SparkMagic PySpark`。

1. 

**將您的筆記本連線至叢集**

   1. 在筆記本的右上角，選擇**叢集**。此動作會開啟模態視窗，其中列出您有權存取的所有執行中叢集。

   1. 選取您的叢集，然後選擇**連線**。新的憑證類型選擇模態視窗隨即開啟。

   1. 選擇**無憑證**，然後選擇**連線**。  
![顯示如何為 JupyterLab 筆記本選取 Amazon EMR 憑證的模態。](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-credential-selection.png)

   1. 筆記本儲存格會自動填入並執行。筆記本儲存格會載入 `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
      ```

   1. 一旦您成功建立了連線，您的連線儲存格輸出訊息應會顯示您的 `SparkSession` 詳細資訊，包括叢集 ID、`YARN` 應用程式 ID，以及 Spark UI 的連結，以監控您的 Spark 任務。

您已準備好使用 `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb`。筆記本。此範例筆記本會執行分散式 PySpark 工作負載，以使用 LangChain 和 OpenSearch 建置 RAG 系統。

## 步驟 4：清除 CloudFormation 堆疊
<a name="studio-notebooks-emr-cluster-quickstart-clean-stack"></a>

完成後，請務必終止您的兩個端點並刪除您的 CloudFormation 堆疊，以避免繼續收費。刪除堆疊會清除堆疊已佈建的所有資源。

**在完成 CloudFormation 堆疊時將其刪除**

1. 前往 CloudFormation 主控台：https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)

1. 選取您要刪除的模型。您可以依名稱進行搜尋，或在堆疊清單中尋找該堆疊。

1. 按一下**刪除**按鈕以完成刪除堆疊，然後再次按一下**刪除**，以確認這將刪除堆疊建立的所有資源。

   等待堆疊刪除完成。這可能需要幾分鐘的時間。 CloudFormation 會自動清除堆疊範本中定義的所有資源。

1. 驗證堆疊建立的所有資源是否都已刪除。例如，檢查是否有任何剩餘的 Amazon EMR 叢集。

**移除模型的 API 端點**

1. 前往 SageMaker AI 主控台：[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左側導覽窗格中，開啟**推論**，然後選擇**端點**。

1. 選取端點 `hf-allminil6v2-embedding-ep`，然後在**動作**下拉式清單中選擇**刪除**。針對端點 `meta-llama2-7b-chat-tg-ep` 重複步驟。