Transformers documentation
DeepSpeed
DeepSpeed
DeepSpeed, Zero Redundancy Optimizer (ZeRO) altyapısıyla çalışır ve çok büyük modelleri bir GPU üzerinde eğitmek ve sığdırmak için kullanılan bir optimizasyon kütüphanesidir. Birden fazla ZeRO aşamasında kullanılabilir; her aşama, optimizör durumunu, gradyanları ve parametreleri bölerek ve CPU veya NVMe'ye aktarımı (offloading) etkinleştirerek GPU bellek tasarrufunu kademeli olarak artırır. Trainer sınıfıyla entegre olan DeepSpeed için kurulumun büyük bölümü sizin için otomatik olarak halledilir.
Ancak, Trainer olmadan DeepSpeed kullanmak istiyorsanız, Transformers bir HfDeepSpeedConfig sınıfı sağlar.
Learn more about using DeepSpeed with Trainer in the DeepSpeed guide.
HfDeepSpeedConfig
sınıf transformers.integrations.HfDeepSpeedConfig
< source >( config_file_or_dict )
Bu nesne bir DeepSpeed yapılandırma sözlüğü içerir ve zero aşaması gibi öğeler için hızlıca sorgulanabilir.
Bu nesnenin bir weakref'i, Trainer nesnesi gibi nesnelerin kullanılamadığı alanlardan (ör. from_pretrained ve _get_resized_embeddings) yapılandırmaya erişilebilmesi için modülün küresel değişkenlerinde saklanır. Bu nedenle, program çalışmaya devam ederken bu nesnenin canlı kalması önemlidir.
Trainer bunun yerine HfTrainerDeepSpeedConfig alt sınıfını kullanır. Bu alt sınıf, "auto" gibi özel yer tutucu değerleri değiştirerek yapılandırmayı TrainingArguments değerleriyle senkronize etme mantığına sahiptir. Bu özel mantık olmadan DeepSpeed yapılandırması hiçbir şekilde değiştirilmez.