Accelerate documentation

Amazon SageMaker

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v1.15.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Amazon SageMaker

Hugging Face ve Amazon, Hugging Face Transformer modellerinin Amazon SageMaker üzerinde eğitimini daha önce hiç olmadığı kadar kolaylaştırmak için yeni Hugging Face Deep Learning Containers (DLC) tanıttı.

Başlangıç

Kurulum & Yükleme

Amazon SageMaker üzerinde Accelerate betiklerinizi çalıştırabilmeniz için bir AWS hesabına kaydolmanız gerekir. Henüz bir AWS hesabınız yoksa buradan daha fazla bilgi edinebilirsiniz.

AWS Hesabınız hazır olduğunda, Accelerate için sagemaker sdk'sini aşağıdaki komutla kurmanız gerekir:

pip install "accelerate[sagemaker]" --upgrade

Accelerate şu anda DLC'leri kullanır ve transformers, datasets ile tokenizers önceden yüklenmiştir. Accelerate henüz DLC'de yer almamaktadır (yakında eklenecek!) bu nedenle Amazon SageMaker içinde kullanmak için eğitim betiğinizin bulunduğu dizinde bir requirements.txt dosyası oluşturup bağımlılık olarak eklemeniz gerekir:

accelerate

Diğer bağımlılıklarınızı da bu requirements.txt dosyasına eklemelisiniz.

Accelerate Yapılandırması

Amazon SageMaker için başlatma yapılandırmasını, Accelerate CLI ile SageMaker dışı eğitim işleri için yaptığınız gibi yapılandırabilirsiniz:

accelerate config
# In which compute environment are you running? ([0] This machine, [1] AWS (Amazon SageMaker)): 1

Accelerate, Amazon SageMaker kurulumunuz hakkında bir anket uygulayacak ve düzenleyebileceğiniz bir yapılandırma dosyası oluşturacaktır.

Accelerate, kimlik bilgilerinizin hiçbirini kaydetmez.

Bir Accelerate ince ayar betiği hazırlayın

Eğitim betiği, SageMaker dışında çalıştırabileceğiniz bir eğitim betiğine çok benzer; ancak eğitimin ardından modelinizi kaydetmek için /opt/ml/model dizinini belirtmeniz veya os.environ["SM_MODEL_DIR"] değerini kayıt dizini olarak kullanmanız gerekir. Eğitim tamamlandıktan sonra bu dizindeki artefaktlar S3'e yüklenir:

- torch.save('/opt/ml/model`)
+ accelerator.save('/opt/ml/model')

SageMaker, argparse eylemlerini desteklemez. Örneğin, boolean hiperparametreler kullanmak istiyorsanız, betiğinizde type parametresini bool olarak belirtmeli ve bu hiperparametre için açık bir True veya False değeri sağlamalısınız. [REF].

Eğitimi Başlat

Eğitiminizi Accelerate CLI ile şu şekilde başlatabilirsiniz:

accelerate launch path_to_script.py --args_to_the_script

Bu, eğitim betiğinizi yapılandırmanızla başlatacaktır. Yapmanız gereken tek şey, eğitim betiğinizin ihtiyaç duyduğu tüm argümanları adlandırılmış argümanlar olarak sağlamaktır.

Örnekler

Örnek betiklerden birini çalıştırıyorsanız, accelerator.save('/opt/ml/model') satırını eklemeyi unutmayın.

accelerate launch ./examples/sagemaker_example.py

Çıktılar:

Configuring Amazon SageMaker environment
Converting Arguments to Hyperparameters
Creating Estimator
2021-04-08 11:56:50 Starting - Starting the training job...
2021-04-08 11:57:13 Starting - Launching requested ML instancesProfilerReport-1617883008: InProgress
.........
2021-04-08 11:58:54 Starting - Preparing the instances for training.........
2021-04-08 12:00:24 Downloading - Downloading input data
2021-04-08 12:00:24 Training - Downloading the training image..................
2021-04-08 12:03:39 Training - Training image download completed. Training in progress..
........
epoch 0: {'accuracy': 0.7598039215686274, 'f1': 0.8178438661710037}
epoch 1: {'accuracy': 0.8357843137254902, 'f1': 0.882249560632689}
epoch 2: {'accuracy': 0.8406862745098039, 'f1': 0.8869565217391304}
........
2021-04-08 12:05:40 Uploading - Uploading generated training model
2021-04-08 12:05:40 Completed - Training job completed
Training seconds: 331
Billable seconds: 331
You can find your model data at: s3://your-bucket/accelerate-sagemaker-1-2021-04-08-11-56-47-108/output/model.tar.gz

Gelişmiş Özellikler

Dağıtık Eğitim: Veri Paralelliği

accelerate config komutunu çalıştırarak accelerate yapılandırmasını oluşturun ve SageMaker sorularını yanıtlayarak yapılandırın. SageMaker DDP kullanmak için What is the distributed mode? ([0] No distributed training, [1] data parallelism): sorulduğunda bunu seçin. Örnek yapılandırma aşağıdadır:

base_job_name: accelerate-sagemaker-1
compute_environment: AMAZON_SAGEMAKER
distributed_type: DATA_PARALLEL
ec2_instance_type: ml.p3.16xlarge
iam_role_name: xxxxx
image_uri: null
mixed_precision: fp16
num_machines: 1
profile: xxxxx
py_version: py10
pytorch_version: 2.5.0
region: us-east-1
transformers_version: 4.17.0
use_cpu: false

Dağıtık Eğitim: Model Paralelliği

şu anda geliştirme aşamasında, yakında desteklenecek.

Python paketleri ve bağımlılıkları

Accelerate şu anda DLC'leri kullanır ve transformers, datasets ile tokenizers önceden yüklenmiştir. Farklı/diğer Python paketleri kullanmak istiyorsanız, bunları requirements.txt dosyasına ekleyerek yapabilirsiniz. Bu paketler, eğitim betiğiniz başlatılmadan önce yüklenecektir.

Yerel Eğitim: SageMaker Yerel modu

SageMaker SDK'daki yerel mod, eğitim betiğinizi HuggingFace DLC (Derin Öğrenme konteyneri) içinde yerel olarak çalıştırmanıza veya özel konteyner görüntünüzü kullanmanıza olanak tanır. Bu, eğitim betiğinizi nihai konteyner ortamında hata ayıklamak ve test etmek için kullanışlıdır. Yerel mod, Docker compose kullanır (Not: Docker Compose V2 henüz desteklenmiyor). SDK, DLC'yi yerel ortamınıza çekmek için ECR'ye karşı kimlik doğrulamasını yönetir. CPU (tekli ve çoklu örnek) ve GPU (tekli örnek) SageMaker eğitim işlerini taklit edebilirsiniz.

Yerel modu kullanmak için ec2_instance_type değerini local olarak ayarlamanız gerekir.

ec2_instance_type: local

Gelişmiş yapılandırma

Yapılandırma, Estimator parametrelerini geçersiz kılmanıza olanak tanır. Bu ayarların yapılandırma dosyasında uygulanması gerekir ve accelerate config'in bir parçası değildir. Eğitim işinin birçok ek yönünü, örneğin Spot örneklerini kullanma, ağ yalıtımını etkinleştirme ve daha fazlasını kontrol edebilirsiniz.

additional_args:
  # enable network isolation to restrict internet access for containers
  enable_network_isolation: True

Tüm mevcut yapılandırmaları burada bulabilirsiniz.

Spot Örnekleri Kullanın

Spot Instances örneğin Gelişmiş yapılandırma kullanarak kullanılabilir:

additional_args:
  use_spot_instances: True
  max_wait: 86400

Not: Spot Instances sonlandırılabilir ve eğitim bir kontrol noktasından devam ettirilebilir. Bu durum, Accelerate tarafından varsayılan olarak ele alınmaz. Bu özelliği istiyorsanız bizimle iletişime geçin.

Uzak betikler: Github üzerinde konumlandırılmış betikleri kullanın

Özellikliğin gerekli olup olmadığına henüz karar verilmedi. Bu özelliği istiyorsanız bizimle iletişime geçin.

Update on GitHub