Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial ini memandu Anda melalui proses menyiapkan dan menjalankan pekerjaan pra-pelatihan menggunakan pekerjaan pelatihan dengan SageMaker instance AWS Trainium.
-
Siapkan lingkungan Anda
-
Luncurkan pekerjaan pelatihan
Sebelum Anda mulai, pastikan Anda memiliki prasyarat berikut.
Prasyarat
Sebelum Anda mulai mengatur lingkungan Anda, pastikan Anda memiliki:
-
Sistem FSx file Amazon atau bucket S3 tempat Anda dapat memuat data dan mengeluarkan artefak pelatihan.
-
Minta Kuota Layanan untuk
ml.trn1.32xlarge
instans di Amazon SageMaker AI. Untuk meminta peningkatan kuota layanan, lakukan hal berikut:Untuk meminta peningkatan kuota layanan untuk instance ml.trn1.32xlarge
-
Arahkan ke konsol AWS Service Quotas.
-
Pilih AWS layanan.
-
Pilih JupyterLab.
-
Tentukan satu contoh untuk
ml.trn1.32xlarge
.
-
-
Buat peran AWS Identity and Access Management (IAM) dengan kebijakan yang
AmazonEC2FullAccess
dikelolaAmazonSageMakerFullAccess
dan dikelola. Kebijakan ini memberi Amazon SageMaker AI izin untuk menjalankan contoh. -
Data dalam salah satu format berikut:
-
JSON
-
JSONGZ (JSON Terkompresi)
-
PANAH
-
-
(Opsional) Jika Anda memerlukan bobot yang telah dilatih sebelumnya dari HuggingFace atau jika Anda melatih model Llama 3.2, Anda harus mendapatkan HuggingFace token sebelum memulai pelatihan. Untuk informasi selengkapnya tentang mendapatkan token, lihat Token akses pengguna
.
Siapkan lingkungan Anda untuk pekerjaan pelatihan Trainium SageMaker
Sebelum Anda menjalankan pekerjaan SageMaker pelatihan, gunakan aws configure
perintah untuk mengonfigurasi AWS kredensil dan wilayah pilihan Anda. Sebagai alternatif, Anda juga dapat memberikan kredensil Anda melalui variabel lingkungan sepertiAWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
, dan. AWS_SESSION_TOKEN
Untuk informasi selengkapnya, lihat SageMaker AI Python SDK
Kami sangat menyarankan menggunakan notebook SageMaker AI Jupyter di SageMaker AI JupyterLab untuk meluncurkan pekerjaan SageMaker pelatihan. Untuk informasi selengkapnya, lihat SageMaker JupyterLab.
-
(Opsional) Jika Anda menggunakan notebook Jupyter di Amazon SageMaker Studio, Anda dapat melewatkan menjalankan perintah berikut. Pastikan untuk menggunakan versi >= 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
-
Instal SageMaker AI Python SDK
pip3 install --upgrade sagemaker
-
-
Jika Anda menjalankan pekerjaan pelatihan multi-modal llama 3.2,
transformers
versinya harus4.45.2
atau lebih besar.-
Tambahkan
transformers==4.45.2
kerequirements.txt
source_dir hanya saat Anda menggunakan AI SageMaker Python SDK. -
Jika Anda menggunakan HyperPod resep untuk diluncurkan menggunakan
sm_jobs
sebagai tipe cluster, Anda tidak perlu menentukan versi transformer.
-
-
Container
: Wadah Neuron diatur secara otomatis oleh SageMaker AI Python SDK.
-
Luncurkan pekerjaan pelatihan dengan Notebook Jupyter
Anda dapat menggunakan kode Python berikut untuk menjalankan pekerjaan SageMaker pelatihan menggunakan resep Anda. Ini memanfaatkan PyTorch estimator dari AI SageMaker Python SDK
-
compiler_cache_url
: Cache yang akan digunakan untuk menyimpan artefak yang dikompilasi, seperti artefak 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)
Kode sebelumnya membuat objek PyTorch estimator dengan resep pelatihan dan kemudian cocok dengan model menggunakan metode. fit()
Gunakan training_recipe
parameter untuk menentukan resep yang ingin Anda gunakan untuk pelatihan.
Luncurkan pekerjaan pelatihan dengan peluncur resep
-
Perbarui
./recipes_collection/cluster/sm_jobs.yaml
-
compiler_cache_url: URL yang digunakan untuk menyimpan artefak. Ini bisa berupa URL 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 -
-
Perbarui
./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.
-
Luncurkan pekerjaan dengan
main.py
python3 main.py --config-path recipes_collection --config-name config
Untuk informasi selengkapnya tentang mengonfigurasi pekerjaan SageMaker pelatihan, lihatSageMaker pelatihan pekerjaan pra-pelatihan tutorial (GPU).