Inicio rápido: creación de un dominio del entorno de pruebas de SageMaker AI para inicializar clústeres de Amazon EMR en Studio - Amazon SageMaker AI

Inicio rápido: creación de un dominio del entorno de pruebas de SageMaker AI para inicializar clústeres de Amazon EMR en Studio

En esta sección, se explica la configuración rápida de un entorno de pruebas completo en Amazon SageMaker Studio. Creará un nuevo dominio de Studio que permitirá a los usuarios inicializar nuevos clústeres de Amazon EMR directamente desde Studio. Los pasos proporcionan un ejemplo de cuaderno que puede conectar a un clúster de Amazon EMR para empezar a ejecutar cargas de trabajo de Spark. Con este cuaderno, creará un sistema de generación aumentada por recuperación (RAG) utilizando el procesamiento distribuido Amazon EMR Spark y la base de datos vectorial de OpenSearch.

nota

Para empezar, inicie sesión en la consola de administración de AWS utilizando una cuenta de usuario de AWS Identity and Access Management (IAM) con permisos administrativos. Para obtener más información sobre cómo registrar una cuenta de AWS y crear un usuario con acceso administrativo, consulte Cumplimiento de los requisitos previos de Amazon SageMaker AI.

Paso 1: creación de un dominio de SageMaker AI para lanzar clústeres de Amazon EMR en Studio

En los siguientes pasos, aplicará una pila de CloudFormation para crear automáticamente un nuevo dominio de SageMaker AI. La pila también crea un perfil de usuario y configura el entorno y los permisos necesarios. El dominio de SageMaker AI está configurado para permitir el lanzamiento directo de clústeres de Amazon EMR desde Studio. Para este ejemplo, los clústeres de Amazon EMR se crean en la misma cuenta de AWS que SageMaker AI sin autenticación. Encontrará pilas de CloudFormation adicionales que admiten varios métodos de autenticación, como Kerberos, en el repositorio getting_started de GitHub.

nota

SageMaker AI permite 5 dominios de Studio por cuenta de AWS y Región de AWS de forma predeterminada. Asegúrese de que su cuenta no tenga más de 4 dominios en su región antes de crear la pila.

Siga estos pasos para configurar un dominio de SageMaker AI para lanzar clústeres de Amazon EMR desde Studio.
  1. Descargue el archivo sin formato de esta plantilla de CloudFormation del repositorio de GitHub de sagemaker-studio-emr.

  2. Vaya a la consola de CloudFormation en https://console.aws.amazon.com/cloudformation

  3. Elija Crear pila y seleccione Con recursos nuevos (estándar) en el menú desplegable.

  4. En el paso 1:

    1. En la sección Preparar la plantilla, seleccione Elegir una plantilla existente.

    2. En la sección Especificar plantilla, elija Cargar un archivo de plantilla.

    3. Cargue la plantilla CloudFormation descargada y seleccione Siguiente.

  5. En el paso 2, introduzca un nombre de pila y un SageMakerDomainName y, a continuación, seleccione Siguiente.

  6. En el paso 3, mantenga todos los valores predeterminados y elija Siguiente.

  7. En el paso 4, marque la casilla para confirmar la creación del recurso y seleccione Crear pila. De este modo, se crea un dominio de Studio en su cuenta y región.

Paso 2: inicialización de un nuevo clúster de Amazon EMR desde la interfaz de usuario de Studio

En los siguientes pasos, creará un nuevo clúster de Amazon EMR desde la IU de Studio.

  1. Vaya a la consola de SageMaker AI en https://console.aws.amazon.com/sagemaker/ y elija Dominios en el menú de la izquierda.

  2. Haga clic en su nombre de dominio GenerativeAIDomain para abrir la página Detalles del dominio.

  3. Inicialización de Studio desde el perfil de usuario genai-user.

  4. En el panel de navegación izquierdo, vaya a Datos y luego a Clústeres de Amazon EMR.

  5. En la página de clústeres de Amazon EMR , elija Crear. Seleccione la plantilla EMR de dominio sin autenticación de SageMaker Studio creada por la pila de CloudFormation y, a continuación, elija Siguiente.

  6. Introduzca el nombre del nuevo clúster de Amazon EMR. Si lo desea, actualice otros parámetros, como el tipo de instancia de los nodos principales y maestros, el tiempo de espera de inactividad o la cantidad de nodos principales.

  7. Elija Crear recurso para inicializar el nuevo clúster de Amazon EMR.

    Tras crear el clúster de Amazon EMR, siga el estado en la página Clústeres de EMR. Cuando el estado cambie a Running/Waiting, el clúster de Amazon EMR estará listo para usarse en Studio.

Paso 3: conexión de un cuaderno de JupyterLab al clúster de Amazon EMR

En los siguientes pasos, se conecta un cuaderno en JupyterLab al clúster de Amazon EMR en ejecución. Para este ejemplo, se importa un cuaderno que le permite crear un sistema de generación aumentada por recuperación (RAG) mediante el procesamiento distribuido de Amazon EMR Spark y la base de datos vectorial de OpenSearch.

  1. Inicialización de JupyterLab

    Desde Studio, inicialice la aplicación de JupyterLab.

  2. Creación de un espacio privado

    Si no ha creado un espacio para su aplicación de JupyterLab, elija Crear un espacio de JupyterLab. Introduzca un nombre para el espacio y manténgalo como Privado. Deje todas las demás configuraciones en sus valores predeterminados y, a continuación, elija Crear espacio.

    De lo contrario, ejecute su espacio de JupyterLab para inicializar una aplicación de JupyterLab.

  3. Implementación de su LLM y sus modelos de incrustación para la inferencia
    • En el menú superior, seleccione Archivo, Nuevo y, a continuación, Terminal.

    • En el terminal, ejecute el siguiente comando:

      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

      Al hacerlo, se recupera el cuaderno Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb en su directorio local y se descargan tres archivos PDF en una carpeta de AWSGuides local.

    • Abra lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb, conserve el kernel Python 3 (ipykernel) y ejecute cada celda.

      aviso

      En la sección Acuerdo de licencia de Llama 2, asegúrese de aceptar el EULA de Llama2 antes de continuar.

      El cuaderno implementa dos modelos, Llama 2 y all-MiniLM-L6-v2 Models, en ml.g5.2xlarge para realizar la inferencia.

      La implementación de los modelos y la creación de los puntos de conexión puede llevar algún tiempo.

  4. Apertura del cuaderno principal

    En JupyterLab, abra el terminal y ejecute el siguiente comando.

    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

    Debería ver el cuaderno Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb adicional en el panel izquierdo de JupyterLab.

  5. Seleccione un kernel de PySpark.

    Abra su cuaderno de Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb y asegúrese de que está usando el kernel SparkMagic PySpark. Puede cambiar de kernel en la parte superior derecha de su cuaderno. Elija el nombre del kernel actual para abrir un modal de selección del kernel y, a continuación, elijaSparkMagic PySpark.

  6. Conexión del cuaderno al clúster
    1. En la parte superior del cuaderno, elija Clúster. Esta acción abre una ventana modal en la que se enumeran todos los clústeres en ejecución para los que tiene permiso de acceso.

    2. Seleccione su clúster y elija Conectar. Se abre una nueva ventana modal de selección del tipo de credencial.

    3. Elija No hay credenciales y luego Conectar.

      Modal que muestra una selección de credenciales de Amazon EMR para los cuadernos de JupyterLab.
    4. Se rellena y ejecuta automáticamente una celda del cuaderno. La celda del cuaderno carga la extensión sagemaker_studio_analytics_extension.magics, que proporciona la funcionalidad para conectarse al clúster de Amazon EMR. A continuación, utiliza el comando mágico %sm_analytics para iniciar la conexión con el clúster de Amazon EMR y la aplicación de Spark.

      nota

      Asegúrese de que la cadena de conexión a su clúster de Amazon EMR tenga un tipo de autenticación establecido en None. Esto se ilustra con el valor --auth-type None en el siguiente ejemplo. Puede modificar el campo si es necesario.

      %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. Una vez que haya establecido correctamente la conexión, el mensaje de salida de la celda de conexión debería mostrar sus detalles de SparkSession, incluidos el ID del clúster, el ID de la aplicación YARN y un enlace a la interfaz de usuario de Spark para supervisar sus trabajos de Spark.

Ya está listo para usar el cuaderno de Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb. Este cuaderno de ejemplo ejecuta cargas de trabajo distribuidas de PySpark para crear un sistema de RAG mediante LangChain y OpenSearch.

Paso 4: limpieza de la pila de CloudFormation

Cuando termine, asegúrese de terminar sus dos puntos de conexión y de eliminar su pila de CloudFormation para evitar que le sigan cobrando. Al eliminar la pila, se limpian todos los recursos aprovisionados por la pila.

Eliminación de la pila de CloudFormation al terminar de usarla
  1. Vaya a la consola de CloudFormation en https://console.aws.amazon.com/cloudformation

  2. Seleccione la pila que desea eliminar. Puede buscarla por su nombre o en la lista de pilas.

  3. Haga clic en el botón Eliminar para finalizar la eliminación de la pila y, a continuación, en Eliminar de nuevo para confirmar que se eliminarán todos los recursos creados por la pila.

    Espere a que finalice la eliminación de la pila. Esto puede tardar unos minutos. CloudFormation limpia automáticamente todos los recursos definidos en la plantilla de pila.

  4. Compruebe que se hayan eliminado todos los recursos creados por la pila. Por ejemplo, compruebe si sobra algún clúster de Amazon EMR.

Eliminación de los puntos de conexión de la API de un modelo
  1. Vaya a la consola de SageMaker AI: https://console.aws.amazon.com/sagemaker/.

  2. En el panel de navegación, seleccione Inferencia y elija Puntos de conexión.

  3. Seleccione el punto de conexión hf-allminil6v2-embedding-ep y, a continuación, elija Eliminar en la lista desplegable Acciones. Repita el paso para el punto de conexión meta-llama2-7b-chat-tg-ep.