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.
Tutorial previo a los trabajos de SageMaker formación de Trainium
Este tutorial le guía a través del proceso de configuración y ejecución de un trabajo previo a la formación mediante trabajos de formación con instancias de SageMaker Trainium. AWS
-
Configure su entorno
-
Lanzamiento de un trabajo de entrenamiento
Antes de comenzar, asegúrese de que cumple los siguientes requisitos previos.
Requisitos previos
Antes de configurar el entorno, asegúrese de disponer de:
-
Sistema de FSx archivos Amazon o depósito S3 donde puede cargar los datos y generar los artefactos de entrenamiento.
-
Solicita una cuota de servicio para la
ml.trn1.32xlargeinstancia en Amazon SageMaker AI. Para solicitar un aumento de la cuota de servicio, haga lo siguiente:Cómo solicitar el aumento de la cuota de servicio para la instancia ml.trn1.32xlarge
-
Navegue a la consola AWS Service Quotas.
-
Elija AWS los servicios.
-
Selecciona JupyterLab.
-
Especifique una instancia para
ml.trn1.32xlarge.
-
-
Cree un rol AWS Identity and Access Management (de IAM) con las políticas
AmazonEC2FullAccessadministradasAmazonSageMakerFullAccessy las políticas. Estas políticas proporcionan a Amazon SageMaker AI permisos para ejecutar los ejemplos. -
Datos en uno de los siguientes formatos:
-
JSON
-
JSONGZ (JSON comprimido)
-
ARROW
-
-
(Opcional) Si necesitas las pesas previamente entrenadas HuggingFace o si estás entrenando un modelo Llama 3.2, debes obtener la HuggingFace ficha antes de empezar a entrenar. Para obtener más información sobre cómo obtener el token, consulte User access tokens
.
Configura tu entorno para los trabajos de entrenamiento de Trainium SageMaker
Antes de realizar un trabajo de SageMaker formación, utilice el aws configure comando para configurar sus AWS credenciales y su región preferida. Como alternativa, también puede proporcionar sus credenciales a través de variables de entorno como AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY y AWS_SESSION_TOKEN. Para obtener más información, consulte SageMaker AI Python SDK
Recomendamos encarecidamente utilizar un cuaderno SageMaker AI Jupyter en SageMaker IA JupyterLab para iniciar un trabajo de SageMaker formación. Para obtener más información, consulte SageMaker JupyterLab.
-
(Opcional) Si utilizas el cuaderno Jupyter en Amazon SageMaker Studio, puedes omitir la ejecución del siguiente comando. Asegúrese de utilizar una versión >= python 3.9
# set up a virtual environment python3 -m venv ${PWD}/venv source venv/bin/activate # install dependencies after git clone. git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git cd sagemaker-hyperpod-recipes pip3 install -r requirements.txt -
Instale SageMaker AI Python SDK
pip3 install --upgrade sagemaker -
-
Si está ejecutando un trabajo de entrenamiento multimodal en Llama 3.2, la versión
transformersdebe ser4.45.2o superior.-
transformers==4.45.2Añádelo arequirements.txtsource_dir solo cuando utilices el SDK de SageMaker Python para IA. -
Si utilizas HyperPod recetas para lanzarlas
sm_jobscomo tipo de clúster, no tienes que especificar la versión de los transformers.
-
-
Container: El SDK de SageMaker AI Python configura automáticamente el contenedor Neuron.
-
Lanzamiento del trabajo de entrenamiento con un cuaderno de Jupyter
Puedes usar el siguiente código de Python para ejecutar un trabajo de SageMaker entrenamiento con tu receta. Utiliza el PyTorch estimador del SDK de SageMaker Python
-
compiler_cache_url: es la caché que se utilizará para guardar los artefactos compilados, como un artefacto de Amazon S3.
import os import sagemaker,boto3 from sagemaker.debugger import TensorBoardOutputConfig from sagemaker.pytorch import PyTorch sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role() recipe_overrides = { "run": { "results_dir": "/opt/ml/model", }, "exp_manager": { "explicit_log_dir": "/opt/ml/output/tensorboard", }, "data": { "train_dir": "/opt/ml/input/data/train", }, "model": { "model_config": "/opt/ml/input/data/train/config.json", }, "compiler_cache_url": "<compiler_cache_url>" } tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=os.path.join(output, 'tensorboard'), container_local_output_path=overrides["exp_manager"]["explicit_log_dir"] ) estimator = PyTorch( output_path=output_path, base_job_name=f"llama-trn", role=role, instance_type="ml.trn1.32xlarge", sagemaker_session=sagemaker_session, training_recipe="training/llama/hf_llama3_70b_seq8k_trn1x16_pretrain", recipe_overrides=recipe_overrides, ) estimator.fit(inputs={"train": "your-inputs"}, wait=True)
El código anterior crea un objeto PyTorch estimador con la receta de entrenamiento y, a continuación, ajusta el modelo mediante el método. fit() Utilice el parámetro training_recipe para especificar la receta que desee utilizar para el entrenamiento.
Lanzamiento del trabajo de entrenamiento con el lanzador de fórmulas
-
Actualice
./recipes_collection/cluster/sm_jobs.yaml.-
compiler_cache_url: es la URL utilizada para guardar los artefactos. Puede ser una URL de Amazon S3.
sm_jobs_config: output_path:<s3_output_path>wait: True tensorboard_config: output_path:<s3_output_path>container_logs_path: /opt/ml/output/tensorboard # Path to logs on the container wait: True # Whether to wait for training job to finish inputs: # Inputs to call fit with. Set either s3 or file_system, not both. s3: # Dictionary of channel names and s3 URIs. For GPUs, use channels for train and validation. train:<s3_train_data_path>val: null additional_estimator_kwargs: # All other additional args to pass to estimator. Must be int, float or string. max_run: 180000 image_uri:<your_image_uri>enable_remote_debug: True py_version: py39 recipe_overrides: model: exp_manager: exp_dir:<exp_dir>data: train_dir: /opt/ml/input/data/train val_dir: /opt/ml/input/data/val -
-
Actualice
./recipes_collection/config.yaml.defaults: - _self_ - cluster: sm_jobs - recipes: training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain cluster_type: sm_jobs # bcm, bcp, k8s or sm_jobs. If bcm, k8s or sm_jobs, it must match - cluster above. instance_type: ml.trn1.32xlarge base_results_dir: ~/sm_job/hf_llama3_8B # Location to store the results, checkpoints and logs. -
Lance el trabajo con
main.py.python3 main.py --config-path recipes_collection --config-name config
Para obtener más información sobre la configuración de los trabajos SageMaker de formación, consulte. SageMakertutoriales previos a la formación para trabajos de formación (GPU)