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.
Para configurar el entorno de pruebas de Studio y empezar a ejecutar trabajos de Spark:
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
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.
-
Descargue el archivo sin formato de esta plantilla de CloudFormation
del repositorio de GitHub de sagemaker-studio-emr. -
Vaya a la consola de CloudFormation en https://console.aws.amazon.com/cloudformation
-
Elija Crear pila y seleccione Con recursos nuevos (estándar) en el menú desplegable.
-
En el paso 1:
-
En la sección Preparar la plantilla, seleccione Elegir una plantilla existente.
-
En la sección Especificar plantilla, elija Cargar un archivo de plantilla.
-
Cargue la plantilla CloudFormation descargada y seleccione Siguiente.
-
-
En el paso 2, introduzca un nombre de pila y un SageMakerDomainName y, a continuación, seleccione Siguiente.
-
En el paso 3, mantenga todos los valores predeterminados y elija Siguiente.
-
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.
-
Vaya a la consola de SageMaker AI en https://console.aws.amazon.com/sagemaker/
y elija Dominios en el menú de la izquierda. -
Haga clic en su nombre de dominio GenerativeAIDomain para abrir la página Detalles del dominio.
-
Inicialización de Studio desde el perfil de usuario
genai-user. -
En el panel de navegación izquierdo, vaya a Datos y luego a Clústeres de Amazon EMR.
-
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.
-
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.
-
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.
-
Inicialización de JupyterLab
Desde Studio, inicialice la aplicación de JupyterLab.
-
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.
-
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.pdfAl hacerlo, se recupera el cuaderno
Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynben su directorio local y se descargan tres archivos PDF en una carpeta deAWSGuideslocal. -
Abra
lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb, conserve el kernelPython 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 2yall-MiniLM-L6-v2 Models, enml.g5.2xlargepara realizar la inferencia.La implementación de los modelos y la creación de los puntos de conexión puede llevar algún tiempo.
-
-
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.ipynbDebería ver el cuaderno
Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynbadicional en el panel izquierdo de JupyterLab. -
Seleccione un kernel de
PySpark.Abra su cuaderno de
Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynby asegúrese de que está usando el kernelSparkMagic 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. -
Conexión del cuaderno al clúster
-
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.
-
Seleccione su clúster y elija Conectar. Se abre una nueva ventana modal de selección del tipo de credencial.
-
Elija No hay credenciales y luego Conectar.
-
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_analyticspara 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 Noneen 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-idyour-cluster-id--auth-typeNone--language python -
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ónYARNy 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
-
Vaya a la consola de CloudFormation en https://console.aws.amazon.com/cloudformation
-
Seleccione la pila que desea eliminar. Puede buscarla por su nombre o en la lista de pilas.
-
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.
-
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
-
Vaya a la consola de SageMaker AI: https://console.aws.amazon.com/sagemaker/
. -
En el panel de navegación, seleccione Inferencia y elija Puntos de conexión.
-
Seleccione el punto de conexión
hf-allminil6v2-embedding-epy, a continuación, elija Eliminar en la lista desplegable Acciones. Repita el paso para el punto de conexiónmeta-llama2-7b-chat-tg-ep.