Puedes usar el kit de procesamiento acelerado (XPK)
para crear clústeres de Google Kubernetes Engine (GKE) preconfigurados para
cargas de trabajo basadas en rutas de aprendizaje. También puedes usar gcloud para crear manualmente clústeres de GKE para cargas de trabajo basadas en rutas de aprendizaje.
Antes de comenzar
Asegúrate de tener lo siguiente:
- Herramientas de Kubernetes instaladas
- XPK instalado
- API de TPU habilitada
- API de Google Kubernetes Engine habilitada
Cómo configurar tu entorno local
Accede con tus Google Cloud credenciales.
gcloud auth application-default login
Define las siguientes variables de entorno con valores adecuados para tu carga de trabajo.
Variables obligatorias
Crea un clúster de GKE
En el siguiente ejemplo, puedes crear un clúster con dos grupos de nodos v5e 2x4.
Puedes crear un clúster con XPK o el comando gcloud.
XPK
Configura algunas variables de entorno:
CLUSTER_NODEPOOL_COUNT=CLUSTER_NODEPOOL_COUNT PROJECT=PROJECT_ID ZONE=ZONE CLUSTER=GKE_CLUSTER_NAME TPU_TYPE="v5litepod-8" PW_CPU_MACHINE_TYPE="n2-standard-64" NETWORK=NETWORK SUBNETWORK=SUB_NETWORK
Reemplaza lo siguiente:
CLUSTER_NODEPOOL_COUNT: la cantidad máxima de grupos de nodos que puede usar una carga de trabajoPROJECT_ID: Es el nombre de tu Google Cloud proyecto de.ZONE: Es la zona en la que crearás recursos.CLUSTER: Es el nombre del clúster de GKE.TPU_TYPE: Es el tipo de TPU. Para obtener más información, consulta los tipos compatibles en XPK.PW_CPU_MACHINE_TYPE: Es el tipo de nodo de CPU para el controlador de rutas de aprendizaje.NETWORK: [Opcional] Establece un nombre de nube privada virtual si usas XPK. Este debe crearse antes de crear el clúster.SUBNETWORK: [Opcional] Establece un nombre de subred si usas XPK. Este debe crearse antes de crear el clúster.
Usa XPK para crear un clúster de rutas de aprendizaje de GKE. Este comando puede tardar varios minutos en aprovisionar la capacidad. Una vez que se complete, se asignará tu capacidad y comenzarás a generar cargos.
xpk cluster create-pathways \ --num-slices=${CLUSTER_NODEPOOL_COUNT} \ --tpu-type=${TPU_TYPE} \ --pathways-gce-machine-type=${PW_CPU_MACHINE_TYPE} \ --on-demand \ --project=${PROJECT} \ --zone=${ZONE} \ --cluster=${CLUSTER} \ --custom-cluster-arguments="--network=${NETWORK} --subnetwork=${SUBNETWORK} --enable-ip-alias"
Una vez que se crea el clúster, puedes crear y borrar cargas de trabajo según sea necesario. No es necesario volver a aprovisionar la capacidad de TPU.
gcloud
Configura algunas variables de entorno:
CLUSTER=GKE_CLUSTER_NAME PROJECT=PROJECT_ID ZONE=ZONE REGION=REGION CLUSTER_VERSION=GKE_CLUSTER_VERSION PW_CPU_MACHINE_TYPE="n2-standard-64" NETWORK=NETWORK SUBNETWORK=SUB_NETWORK CLUSTER_NODEPOOL_COUNT=3 TPU_MACHINE_TYPE="ct5lp-hightpu-4t" WORKERS_PER_SLICE=2 TOPOLOGY="2x4" NUM_CPU_NODES=1
Reemplaza lo siguiente:
CLUSTER: Es el nombre del clúster de GKE.PROJECT_ID: Es el nombre de tu Google Cloud proyecto de.ZONE: Es la zona en la que crearás recursos.REGION: Es la región en la que crearás recursos.CLUSTER_VERSION: [Opcional] Es la versión del clúster de GKE. Usa 1.32.2-gke.1475000 o una versión posterior.PW_CPU_MACHINE_TYPE: Es el tipo de nodo de CPU para el controlador de rutas de aprendizaje.NETWORK: [Opcional] Establece un nombre de nube privada virtual si usas XPK. Este debe crearse antes de crear el clúster.SUBNETWORK: [Opcional] Establece un nombre de subred si usas XPK. Este debe crearse antes de crear el clúster.CLUSTER_NODEPOOL_COUNT: la cantidad máxima de grupos de nodos que puede usar una carga de trabajoTPU_MACHINE_TYPE: Es el tipo de máquina de TPU que deseas usar.WORKERS_PER_SLICE: Es la cantidad de nodos por grupo de nodos.GKE_ACCELERATOR_TYPE: Es el tipo de acelerador de Google Kubernetes Engine. Consulta Elige una versión de TPU.TOPOLOGY: Es la topología de TPU.NUM_CPU_NODES: Es el tamaño del grupo de nodos de CPU de rutas de aprendizaje.
En los siguientes pasos, se explica cómo crear un clúster de GKE y configurarlo para ejecutar cargas de trabajo de rutas de aprendizaje.
Crea un clúster de GKE:
gcloud beta container clusters create ${CLUSTER} \ --project=${PROJECT} \ --zone=${ZONE} \ --cluster-version=${CLUSTER_VERSION} \ --scopes=storage-full,gke-default,cloud-platform \ --machine-type ${PW_CPU_MACHINE_TYPE} \ --network=${NETWORK} \ --subnetwork=${SUBNETWORK}Crea grupos de nodo TPU:
for i in $(seq 1 ${CLUSTER_NODEPOOL_COUNT}); do gcloud container node-pools create "tpu-np-${i}" \ --project=${PROJECT} \ --zone=${ZONE} \ --cluster=${CLUSTER} \ --machine-type=${TPU_MACHINE_TYPE} \ --num-nodes=${WORKERS_PER_SLICE} \ --placement-type=COMPACT \ --tpu-topology=${TOPOLOGY} \ --scopes=storage-full,gke-default,cloud-platform \ --workload-metadata=GCE_METADATA doneCrea un grupo de nodos de CPU:
gcloud container node-pools create "cpu-pathways-np" \ --project ${PROJECT} \ --zone ${ZONE} \ --cluster ${CLUSTER} \ --machine-type ${PW_CPU_MACHINE_TYPE} \ --num-nodes ${NUM_CPU_NODES} \ --scopes=storage-full,gke-default,cloud-platform \ --workload-metadata=GCE_METADATAInstala las APIs de
JobSetyPathwaysJob.Obtén credenciales para el clúster y agrégalas a tu contexto de kubectl local.
gcloud container clusters get-credentials ${CLUSTER} \ [--zone=${ZONE} | --region=${REGION}] \ --project=${PROJECT} \ && kubectl config set-context --current --namespace=defaultPara usar la arquitectura de rutas de aprendizaje en tu clúster de GKE, debes instalar la API de
JobSety la API dePathwaysJob.kubectl apply --server-side -f https://github.com/kubernetes-sigs/jobset/releases/download/v0.8.0/manifests.yaml kubectl apply --server-side -f https://github.com/google/pathways-job/releases/download/v0.1.2/install.yaml
¿Qué sigue?
- Ejecuta una carga de trabajo por lotes con rutas de aprendizaje
- Modo interactivo de rutas de aprendizaje
- Inferencia de varios hosts con rutas de aprendizaje
- Entrenamiento resistente con rutas de aprendizaje
- Cómo transferir cargas de trabajo de JAX a rutas de aprendizaje
- Soluciona problemas de rutas de aprendizaje