Inicio de un trabajo de formación mediante la HyperPod CLI - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Inicio de un trabajo de formación mediante la HyperPod CLI

SageMaker HyperPod CLI es una herramienta de interfaz de línea de comandos para administrar los clústeres de Amazon SageMaker HyperPod . Puede usar la HyperPod CLI para crear, configurar y monitorear HyperPod clústeres para cargas de trabajo de aprendizaje automático. Para obtener más información, consulte el sagemaker-hyperpod-cli GitHubrepositorio.

Requisitos previos

  • Instalar la CLI de HyperPod . Para personalizar Amazon Nova en Amazon SageMaker HyperPod, debe visitar la release_v2 sucursal para usar la SageMaker HyperPod CLI.

  • Compruebe que el depósito de salida de Nova existe antes de enviar los trabajos. Para verificarlo, ejecuteaws s3 ls s3://nova-111122223333/.

    El nombre del depósito es el valor que especificó recipes.run.output_s3_path en la receta. Este depósito de salida almacenará un archivo de manifiesto generado después del entrenamiento, que contendrá las rutas S3 a los artefactos de salida almacenados en el depósito de Amazon S3 gestionado por el servicio. Además, de forma opcional, puede almacenar TensorBoard archivos o resultados de evaluaciones.

  • Entender los requisitos FSx de sincronización de datos de Amazon. Amazon FSx necesita tiempo para sincronizar los datos de entrenamiento de Amazon S3 antes de que se puedan ejecutar los trabajos.

Configurar la HyperPod CLI para la personalización de Amazon Nova

Para configurar la HyperPod CLI para la personalización de Amazon Nova, siga estos pasos.
  1. Clona el sagemaker-hyperpod-cli GitHub repositorio con la ramarelease_v2.

    git clone --recurse-submodules https://github.com/aws/sagemaker-hyperpod-cli.git --branch release_v2
  2. Vaya a la carpeta sagemaker-hyperpod-cli.

    cd sagemaker-hyperpod-cli
  3. Compruebe que tiene todos los requisitos previos en Requisitos previos.

  4. Para configurar Helm, sigue estos pasos.

    1. Para descargar el script de instalación de Helm, ejecuta:

      curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
    2. Para hacer que el script sea ejecutable, ejecute:

      chmod 700 get_helm.sh

      Este comando cambia los permisos para hacer que el script sea ejecutable.

    3. Para ejecutar el script de instalación de Helm, ejecute:

      ./get_helm.sh
    4. Para eliminar el script de instalación, ejecute:

      rm -f ./get_helm.sh
  5. Para instalar HyperPod dependencias compatibles con grupos de instancias restringidos (RIG), sigue estos pasos.

    nota

    Antes de instalar las dependencias, debes tener un clúster de HyperPod EKS con RIG. Si aún no tiene uno, siga estas instrucciones para crear uno.

    1. Para conectarse a su clúster HyperPod EKS, ejecute:

      aws eks update-kubeconfig --name <eks_cluster_name> --region us-east-1
    2. Para verificar la conexión a su clúster de HyperPod EKS, ejecute:

      kubectl config current-context
    3. Para obtener actualizaciones para HyperPod las dependencias estándar, ejecute:

      helm dependencies update helm_chart/HyperPodHelmChart
    4. Para instalar HyperPod las dependencias estándar, ejecuta:

      helm install dependencies helm_chart/HyperPodHelmChart --namespace kube-system
    5. Para ir al directorio de gráficos de Helm, ejecuta:

      cd helm_chart
    6. Para instalar HyperPod dependencias específicas de RIG, ejecute el siguiente comando.

      nota

      Antes de instalar las dependencias, tenga en cuenta lo siguiente:

      • Solo debe ejecutar este comando una vez por clúster una vez creado.

      • Debe asegurarse de que la utilidad yq esté instalada con una versión 4 como mínimo (por ejemplo, la v4). Hay una comprobación integrada para confirmar que yq >=4 está disponible en el script de instalación.

      • Deberá confirmar la instalación y ingresando cuando se le solicite. Si lo desea, antes de la confirmación, consulte la instalación prevista en./rig-dependencies.yaml.

      chmod 700 ./install_rig_dependencies.sh && ./install_rig_dependencies.sh
    7. Para volver a la raíz del codesagemaker-hyperpod-cli repositorio, ejecuta:

      cd ..
  6. Para continuar con la instalación de la HyperPod CLIsagemaker-hyperpod-cli, siga estos pasos.

    1. Instale la CLI mediante pip:

      pip install -e .
    2. Verificar la instalación:

      hyperpod --help

Enviar un trabajo

Puede utilizar la HyperPod CLI para enviar un trabajo de formación.

Para enviar un trabajo mediante una receta, ejecute el siguiente comando.

hyperpod start-job [--namespace <namespace>] --recipe {{fine-tuning | evaluation | training}}/nova/<Your_Recipe_Name> --override-parameters \ '{ "instance_type":"p5d.48xlarge", "container": <Docker Image>, "recipes.run.name": <custom-run-name>, "recipes.run.output_s3_path": "<customer-s3-path>" }'
  • --recipe: el tipo de trabajo que está ejecutando con la receta. Los valores válidos son: fine-tuning | evaluation |training.

    Tipo de trabajo Valor
    Trabajos de SFT/PEFT/PPO/DPO fine-tuning
    Trabajos de evaluación evaluation
    Empleos de CPT training
  • Nombre de la receta: Puede encontrar el nombre en el repositorio en el directorio:/src/hyperpod_cli/sagemaker_hyperpod_recipes/recipe_collection/recipes/.

  • Ejemplo de receta:--recipe evaluation/nova/nova_lite_g5_12xl_bring_your_own_dataset_eval.

  • Contenedor: este campo es obligatorio. Para encontrar las imágenes de los tipos de trabajo, consulte la siguiente tabla.

    Técnica Contenedor
    HACER 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-DPO-latest nova-fine-tune-repo
    Trabajos de evaluación 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-EVAL-último nova-evaluation-repo
    CPT 708977205387.dkr. ecr.us-east-1.amazonaws.com /:HP-CPT-último nova-fine-tune-repo
    PPO 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SMHP-PPO-Train-latest nova-fine-tune-repo
    SFT/LEFT 708977205387.dkr. ecr.us-east-1.amazonaws.com /:SM-HP-SFT-latest nova-fine-tune-repo
  • Nombre de ejecución personalizado: hay restricciones de definición en la entrada, por ejemplo, no hay mayúsculas, espacios ni guiones bajoscustom-run-time. Para obtener más información, consulte Nombres de objetos y IDs.

[Opcional] Si ya tienes un trabajo de formación y quieres centrarte en un nodo específico para tu próximo trabajo, sigue estos pasos.

  1. Para obtener todos los nodos libres, ejecuta el siguiente comando.

    kubectl get nodes —no-headers | awk '$2 != "NotReady" && $3 != "SchedulingDisabled" {print $1}'
  2. Añada lo siguiente al src\hyperpod_cli\sagemaker_hyperpod_recipes\recipes_collection\cluster\k8s.yaml archivo del selector de etiquetas.

    label_selector: required: kubernetes.io/hostname: - <node_name>
  3. En el directorio raíz, ejecute el siguiente comando. Esto garantiza que SageMaker HyperPod esté instalado en el sistema del usuario, lo que le permitirá utilizar la palabra clave «hyperpod» para enviar trabajos y otras funciones. Debe ejecutar este comando desde la carpeta raíz donde está el código HyperPod CLI.

    pip install .

Enumeración de trabajos

Para enumerar los trabajos, ejecute el siguiente comando.

hyperpod list-jobs [--namespace <namespace>] [--all-namespaces]

El comando muestra todos los trabajos del espacio de nombres especificado o de todos los espacios de nombres.

Obtenga los detalles del trabajo

Para obtener los detalles de un trabajo, ejecute el siguiente comando.

hyperpod get-job --job-name <job-name> [--namespace <namespace>] [--verbose]

El comando recupera información detallada sobre un trabajo específico.

Enumere los pods

Para hacer una lista de los pods, ejecuta el siguiente comando.

hyperpod list-pods --job-name <job-name> [--namespace <namespace>]

El comando muestra todos los pods asociados a un trabajo específico en el espacio de nombres especificado.

Cancelación de trabajos

Para cancelar un trabajo, ejecuta el siguiente comando.

hyperpod cancel-job --job-name <job-name> [--namespace <namespace>]

Este comando cancela y elimina un trabajo de entrenamiento en ejecución en el espacio de nombres especificado.