クイックスタート: Studio で Amazon EMR クラスターを起動するための SageMaker AI サンドボックスドメインを作成する - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クイックスタート: Studio で Amazon EMR クラスターを起動するための SageMaker AI サンドボックスドメインを作成する

このセクションでは、Amazon SageMaker Studio での完全なテスト環境のクイックセットアップについて説明します。ユーザーが Studio から新しい Amazon EMR クラスターを直接起動できるようにする新しい Studio ドメインを作成します。このステップでは、Amazon EMR クラスターに接続して、Spark ワークロードの実行を開始できるサンプルノートブックを説明します。このノートブックを使用して、Amazon EMR Spark 分散処理と OpenSearch ベクトルデータベースを使って、検索拡張生成 (RAG) を構築します。

注記

開始するには、管理者権限を持つ AWS Identity and Access Management (IAM) ユーザーアカウントを使用して AWS マネジメントコンソールにサインインします。 AWS アカウントにサインアップして、管理アクセス権を持つユーザーを作成する方法については、「Amazon SageMaker AI の前提条件を満たす」を参照してください。

ステップ 1: Studio で Amazon EMR クラスターを起動するための SageMaker AI ドメインを作成する

次の手順では、 AWS CloudFormation スタックを適用して新しい SageMaker AI ドメインを自動的に作成します。このスタックを使用すると、ユーザープロファイルを作成して、必要な環境とアクセス許可を設定できます。SageMaker AI ドメインは、Studio から Amazon EMR クラスターを直接起動できるように設定されています。この例では、Amazon EMR クラスターは SageMaker AI と同じ AWS アカウントで認証なしで作成されます。Kerberos などのさまざまな認証方法をサポートする追加の AWS CloudFormation スタックは、geting_started GitHub リポジトリにあります。

注記

SageMaker AI では、 AWS アカウントごとに AWS リージョン デフォルトで 5 つの Studio ドメインを使用できます。スタックを作成する前に、アカウントのリージョン内のドメインが 4 つ以下であることを確認してください。

Studio から Amazon EMR クラスターを起動するための SageMaker AI ドメインを設定するには、次の手順に従います。
  1. sagemaker-studio-emr GitHub レポジトリから、この AWS CloudFormation テンプレートの raw ファイルをダウンロードします。

  2. AWS CloudFormation コンソールに移動します: https://console.aws.amazon.com/cloudformation

  3. [スタックの作成] をクリックして、ドロップダウンメニューから [新しいリソースを使用 (標準)] を選択します。

  4. ステップ 1:

    1. [テンプレートの準備] セクションで、[既存のテンプレートを選択] をクリックします。

    2. [テンプレートの指定] セクションで、[テンプレートファイルのアップロード] を選択します。

    3. ダウンロードした AWS CloudFormation テンプレートをアップロードし、次へを選択します。

  5. [ステップ 2] で、[スタック名][SageMakerDomainName] を入力してから、[次へ] をクリックします。

  6. [ステップ 3] ではすべてのデフォルト値をそのままにして、[次へ] をクリックします。

  7. [ステップ 4] で、リソースの作成に同意するチェックボックスをオンして、[スタックの作成] をクリックします。これにより、アカウントのリージョンに Studio ドメインが作成されます。

ステップ 2: Studio UI から新しい Amazon EMR クラスターを起動する

次のステップでは、Studio UI から新しい Amazon EMR クラスターを起動します。

  1. https://console.aws.amazon.com/sagemaker/ の SageMaker AI コンソールに移動し、左側のメニューでドメインを選択します。

  2. ドメイン名 [GenerativeAIDomain] をクリックして、[ドメインの詳細] ページを開きます。

  3. ユーザープロファイル genai-user から Studio を起動します。

  4. 左側のナビゲーションペインで、[データ] に移動し、[Amazon EMR クラスター] に移動します。

  5. [Amazon EMR クラスター] ページで、[作成] をクリックします。 AWS CloudFormation スタックが作成したテンプレートである SageMaker Studio Domain No Auth EMR を選択してから、[次へ] をクリックします。

  6. 新しい Amazon EMR クラスター名を入力します。必要に応じて、コアノードとプライマリノードのインスタンスタイプ、アイドルタイムアウト、コアノード数などのその他のパラメータを更新します。

  7. [リソースの作成] をクリックして、新しい Amazon EMR クラスターを起動します。

    Amazon EMR クラスターを作成したら、EMR クラスター ページのステータスに従います。ステータスが Running/Waiting に変わると、Amazon 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 ノートブックがローカルディレクトリに取得され、3 つの 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 2all-MiniLM-L6-v2 Models の 2 つのモデルをデプロイします。

      モデルのデプロイとエンドポイントの作成には時間がかかる場合があります。

  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

    JupyterLab の左側のパネルに追加の Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb ノートブックが表示されます。

  5. PySpark カーネルを選択します。

    Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb ノートブックを開いて、SparkMagic PySpark カーネルを使用していることを確認します。カーネルは、ノートブックの右上で切り替えられます。現在のカーネル名を選択してカーネル選択モーダルを開き、SparkMagic PySpark を選択します。

  6. ノートブックをクラスターに接続する
    1. ノートブックの上部にある [クラスター] をクリックします。このアクションは、アクセス許可を持つ実行中のすべてのクラスターを一覧表示するモーダルウィンドウを開きます。

    2. クラスターを選択してから、[接続] をクリックします。新しい認証情報タイプの選択モーダルウィンドウが開きます。

    3. [認証情報なし] を選択してから、[接続] をクリックします。

      JupyterLab ノートブックの Amazon EMR 認証情報の選択を示すモーダル
    4. ノートブックセルは自動的に入力され、実行されます。ノートブックセルは、Amazon EMR クラスターに接続する機能を提供する sagemaker_studio_analytics_extension.magics 拡張機能をロードします。次に、%sm_analytics Magic コマンドを使用して 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. 接続の確立が正常に完了すると、接続セルの出力メッセージに、クラスター ID、YARN アプリケーションID、Spark ジョブのモニタリング用 Spark UI へのリンクなど、SparkSession の詳細が表示されます。

これで、Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb ノートブックを使用する準備が整いました。このサンプルノートブックは、LangChain と OpenSearch を使用して RAG システムを構築するための分散 PySpark ワークロードを実行します。

ステップ 4: AWS CloudFormation スタックをクリーンアップする

完了したら、継続的な料金の発生を避けるために、2 つのエンドポイントを終了し、 AWS CloudFormation スタックを削除します。スタックを削除すると、スタックがプロビジョンしたすべてのリソースがクリーンアップされます。

AWS CloudFormation スタックの完了時にスタックを削除するには
  1. AWS CloudFormation コンソールに移動します: https://console.aws.amazon.com/cloudformation

  2. 削除するスタックを選択します。名前で検索することも、スタックのリストで検索することもできます。

  3. [削除] ボタンをクリックしてスタックの削除を確定してから、もう一度 [削除] をクリックして、スタックが作成したすべてのリソースの削除を承認します。

    スタックの削除が完了するまで待ちます。これには数分かかる場合があります。 AWS CloudFormation は、スタックのテンプレートで定義されているすべてのリソースを自動的にクリーンアップします。

  4. スタックが作成したすべてのリソースが削除されていることを検証します。例えば、Amazon EMR クラスターが残っていないかを確認します。

モデルの API エンドポイントを削除するには
  1. SageMaker AI コンソールに移動します: https://console.aws.amazon.com/sagemaker/

  2. 左側のナビゲーションペインで、[推論][エンドポイント] の順に選択します。

  3. エンドポイント hf-allminil6v2-embedding-ep を選択して、[アクション] ドロップダウンリストで [削除] を選択します。エンドポイント meta-llama2-7b-chat-tg-ep について、このステップを繰り返します。