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
-
Inicie un trabajo de formación
Antes de empezar, asegúrese de cumplir los siguientes requisitos previos.
Requisitos previos
Antes de empezar a configurar el entorno, asegúrese de tener:
-
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.32xlarge
instancia en Amazon SageMaker AI. Para solicitar un aumento de la cuota de servicio, haga lo siguiente:Para solicitar un aumento de la cuota de servicio para la instancia ml.trn1.32xlarge
-
Diríjase 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
AmazonEC2FullAccess
administradasAmazonSageMakerFullAccess
y las políticas administradas. Estas políticas proporcionan a Amazon SageMaker AI permisos para ejecutar los ejemplos. -
Datos en uno de los siguientes formatos:
-
JSON
-
JSONGZ (JSON comprimido)
-
FLECHA
-
-
(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, consulta Tokens de acceso de usuario
.
Configure su entorno para los trabajos de formación 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
, yAWS_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 JupyterLab de SageMaker.
-
(Opcional) Si utilizas el cuaderno Jupyter en Amazon SageMaker Studio, puedes omitir la ejecución del siguiente comando. Asegúrese de usar 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ás ejecutando un trabajo de entrenamiento multimodal de Llama 3.2, la
transformers
versión debe ser igual4.45.2
o superior.-
transformers==4.45.2
Añádelo arequirements.txt
source_dir solo cuando utilices el SDK de SageMaker Python para IA. -
Si utilizas HyperPod recetas para lanzarlas
sm_jobs
como tipo de clúster, no es necesario que especifiques la versión de los transformers.
-
-
Container
: El SDK de SageMaker AI Python configura automáticamente el contenedor Neuron.
-
Inicie el trabajo de formación con un Jupyter Notebook
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
: 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 training_recipe
parámetro para especificar la receta que desea utilizar para el entrenamiento.
Inicie el trabajo de formación con el lanzador de recetas
-
Actualice
./recipes_collection/cluster/sm_jobs.yaml
-
compiler_cache_url: 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.
-
Inicie 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 de SageMaker formación, consulteSageMaker trabajos de formación, tutorial previo a la formación (GPU).