Amazon Search M5, AWS Trainium'u kullanarak LLM eğitim maliyetinde nasıl %30 tasarruf sağladı? Amazon Web Hizmetleri

Amazon Search M5, AWS Trainium'u kullanarak LLM eğitim maliyetinde nasıl %30 tasarruf sağladı? Amazon Web Hizmetleri

Amazon onlarca yıldır makine öğrenimine (ML) öncülük edip yenilikler yaparak müşterilerine keyifli deneyimler sunuyor. Amazon, ilk günlerinden beri kitap önerileri, arama ve sahtekarlık tespiti gibi çeşitli kullanım durumları için ML'yi kullandı. Sektörün geri kalanına benzer şekilde, hızlandırılmış donanımdaki gelişmeler Amazon ekiplerinin sinir ağlarını ve derin öğrenmeyi (DL) kullanarak model mimarileri takip etmelerine olanak tanıdı.

Amazon Search'teki M5 programı, Amazon'un keşif öğrenme stratejisine sahiptir ve çok dilli, çok yerel, çok varlıklı, çok görevli ve metin, resim ve video gibi çok modlu geniş ölçekli modeller oluşturur. M5 programı, Amazon'daki yüzlerce makine öğrenimi ekibine evrensel yerleştirmeler ve büyük ölçekli temel modeller sunarken, maliyet optimizasyonu üzerinde sıkı kontroller sağlıyor. Bunu başarmak için M5 ekibi, maliyeti düşürecek yeni teknikleri düzenli olarak değerlendiriyor.

Birçok ML organizasyonu gibi hızlandırıcılar da büyük ölçüde DL eğitimini ve çıkarımını hızlandırmak için kullanılır. AWS, ilk sürümüyle birlikte amaca yönelik hızlandırıcıları piyasaya sürdüğünde AWS Çıkarımları 2020'de M5 ekibi hızla çalışmaya başladı üretim iş yüklerini daha verimli bir şekilde dağıtmak için bunları kullanınhem maliyetten tasarruf sağlar hem de gecikmeyi azaltır. Geçen yıl AWS, AWS Eğitimi Yeni nesil DL modellerini geliştirmek ve oluşturmak için maliyet başına performansı optimize eden hızlandırıcılar. Bu yazıda M5'in modellerini eğitme maliyetini nasıl %30 oranında azaltabildiğini tartışıyor ve bu süreçte öğrendiğimiz en iyi uygulamalardan bazılarını paylaşıyoruz.

Eğitim örnekleri

Amaca yönelik hızlandırıcılardaki ilerlemelerle birlikte Amazon, AWS Inferentia ve Trainium biçiminde ilgi çekici hızlandırıcılar da sağlıyor. Adlarından da anlaşılacağı gibi bu çipler, sırasıyla çıkarım ve eğitim iş yüklerinin ihtiyaçlarını aşacak şekilde optimize edilmiştir. Milyarlarca parametreye ulaşan temel modellerin büyük ölçekli eğitimi için Trainium Trn1 ve Trn1n örnekleri özellikleri nedeniyle ideal seçimlerdir. Trn1 bulut sunucuları en son teknolojiyle desteklenmektedir NeuronCore-v2ve bol miktarda hızlandırıcı bilgi işlem ve belleğe sahiptir. Trn1n bulut sunucuları ayrıca daha yüksek miktarda ağ bant genişliği (1,600 Gb/sn) için seçilebilir; dolayısıyla maliyet optimizasyonu göz önünde bulundurularak performans eğitimi için idealdir.

Hızlandırıcıları kullanmak için onları destekleyecek bir yazılım katmanına ihtiyacınız vardır. Trn ve Inf çipleri ile AWS Nöron SDK'sı PyTorch XLA'nın yardımıyla Amazon'un özel olarak geliştirdiği hızlandırıcıların kilidini açar. PyTorch XLA, PyTorch'un istekli modunu tembel mod grafik tabanlı uygulamaya dönüştürür. Bu grafikler daha sonra kullanılır ve hızlandırıcıyla kullanılmak üzere derlenir. PyTorch Neuron (Neuron SDK'nın bir parçası), PyTorch kullanıcılarının modellerini birkaç satır kodla Trainium NeuronCores üzerinde eğitmelerine olanak tanır.

Model ve iş yükü

M5 ekibi, Amazon'daki çeşitli ekiplerin müşterilere keyif getirmesine yardımcı olmak için temel modelleri ve evrensel temsilleri eğitiyor ve dağıtıyor. Amazon.com müşteriler. Böyle bir model, yüz milyonlarca eğitilebilir parametreye sahip sinir ağı mimarisi tarafından tanımlanan açık veya örtülü özellik etkileşimlerine sahip çok katmanlı bir algılayıcının (MLP) takip ettiği bir metin kodlayıcı modelidir. Bu model milyarlarca jetonla eğitilmiştir ve çevrimdışı toplu çıkarım ayarında milyonlarca yerleştirme oluşturmak için kullanılır. Bu yerleştirmeler, müşteriye yönelik 1. kademe Amazon hizmetine girdilerdir.

Üretim boru hattının kullandığı altyapı AWS Toplu İş ile adil paylaşımlı kuyruk stratejileri, model eğitimi için işlem olarak EFA özellikli çok düğümlü trn1.32xlarge kümesini kullanıyor. İşlevsel olarak üretim hattı, artımlı model eğitimi, eğitilen modelin değerlendirilmesi ve eğitilen model üzerinde çevrimdışı toplu çıkarım gerçekleştirir; bunların tümü temel DL kitaplığı olarak PyTorch'u kullanır.

Goller

Müşterilerimizi memnun etmek en önemli prensibimizdir. İşlem hattının müşteriye dönük doğası göz önüne alındığında, tüm hizmet düzeyi anlaşmalarının (SLA'lar) gerileme olmadan karşılanması kritik öneme sahiptir. Mevcut GPU üretim hattımızı uyarlamak ve Trainium'a geçirmek için iki kritik kabul kriteri belirledik:

  • Model kalitesi – Modellerimizin kalitesi müşteri deneyimini doğrudan etkiler. GPU ve Trainium arasında model kalitesi açısından %0.1'den az fark olmasını şart koşuyoruz.
  • Eğitim verimi – Müşterilerimize en taze deneyimi sunmak için modellerimizi periyodik olarak yinelemeli olarak eğitiyoruz. Üretim SLA'larımızı karşılamak için model yakınsamasının önceden tanımlanmış bir süre içinde (1 hafta gibi) sağlanmasını şart koşuyoruz.

Aşağıdaki bölümlerde bu kriterlerin geriye doğru çalışma yolculuğumuzu ve Amazon ölçeğindeki üretim iş yüklerini desteklemeye yönelik öğrendiklerimizi paylaşıyoruz.

Eğitim betiği

Model eğitimine başlamadan önce eğitim senaryosunda XLA uyumlu hale getirecek değişiklikler yapmamız gerekiyor. Modelin boyutu göz önüne alındığında, modeli eğitmek için paralel dağıtılmış veri (DDP) kullanıyoruz. DDP, herhangi bir kod değişikliği yapmadan model eğitimini çalıştırmak için kullanılan makinelerin sayısını artırarak model eğitiminin verimini artırmamıza olanak tanır. Verilen talimatları takip ettik. Neuron PyTorch MLP eğitim öğreticisi eğitim komut dosyalarımıza XLA'ya özgü yapılar eklemek için. Bu kod değişikliklerinin uygulanması kolaydır. Aşağıdakiler, model çıktımızı büyük ölçüde artıran alıştırmadan elde edilen bazı önemli teknik öğrenmelerdir:

  • xm.mark_step() öğesinin yerleştirilmesi - xm.mark_step() Tembelce toplanan hesaplama grafiklerini derler ve çalıştırır. Çağırma mark_step çok fazla kez çağırmak daha fazla sayıda küçük grafiğe yol açarken, çok az kez çağırmak az sayıda ama büyük grafiklere yol açar. Uygulamanıza bağlı olarak, model eğitiminizin verimi ve uygulanması, yerleşiminize bağlı olarak değişecektir. xm.mark_step(). Uygulamamız bir tanesini yerleştiriyor xm.mark_step() ileri ve geri geçişten sonra ve optimize edici adımdan sonra.
  • XLA çok işlemli aygıt yükleyiciyle veri yükleyici sarmalama – Bu kolayca gözden kaçırılabilecek kritik bir adımdır. Çok işlemli aygıt yükleyici torch_xla.distributed.parallel_loader.MpDeviceLoader Verimi artırmak için veri yüklemeyi cihaz çalıştırmalarıyla önceden yükleme ve çakıştırma seçenekleriyle birlikte her XLA cihazına eğitim verilerini yükler. Cihaz yükleyici ayrıca şunu çağırır: xm.mark_step() ve bu nedenle ana bilgisayardan cihaza veri yüklemek için grafikler oluşturabilir.

Trainium için Derleme

Geleneksel olarak GPU'larla model geliştirme döngüsü, modelde veya eğitim komut dosyasında değişiklik yapmayı ve onu doğrudan GPU cihazında çalıştırmayı içerir. XLA kullanan Trainium gibi hızlandırıcılar, model eğitiminin hızlandırıcıda çalıştırılabilmesi için ek bir adım gerektirir. XLA hesaplama grafikleri ancak derlendikten sonra çalıştırılabilir. Genel olarak bu derlemeyi gerçekleştirmenin iki yolu vardır: Önce tüm grafikleri izleyip derlediğiniz ve ardından çalıştırdığınız Zamanın Önünde (AOT) veya grafiklerin takip edildiği, derlendiği ve çalıştırıldığı Tam Zamanında (JIT) karşılaşılmaktadır. Neuron SDK bunların her ikisini de kutudan çıktığı gibi sağlar. Tipik olarak ilk önce AOT derlemesi gerçekleştirilir. Grafikler daha sonra bu derlemeden sonra çalıştırılır. Yeni grafiklerle karşılaşılırsa, Neuron çalışma zamanı bunları çalıştırmadan önce bir JIT derlemesini çağırır. AOT derlemesini gerçekleştirmek için Neuron SDK şunları sağlar: nöron_parallel_compile, eğitim komut dosyasının deneme çalıştırmasından grafikler çıkaran ve paralel AOT derlemesi gerçekleştiren bir derleme yardımcı programıdır.

AOT derlemesinin önemli bir yönü, eğitim süresince yeni hesaplama grafiklerinin oluşturulmamasını sağlamaktır. Yeni hesaplama grafiklerinin (ve dolayısıyla yeniden derlemelerin) bir kaynağı, model eğitimi sırasında eğitim gruplarının dinamik şekilleridir. Statik şekiller ve sabit boyutlu gruplar kullanmanın, eğitim süresi derlemelerini ortadan kaldırdığını ve model doğruluğunu etkilemeden eğitim verimini büyük ölçüde artırdığını bulduk. Eğitime bu tür kısıtlamalar uygulayarak, AOT derlemesi sırasında tüm grafiklerin izlenmesi için yalnızca 4-5 adımlık model eğitimi, bir adım model doğrulama ve modelin bir kez kontrol edilmesinin gerekli olduğunu gözlemledik. Neuron SDK'nın sürekli olarak geliştiğini ve gelecekte dinamik şekilleri de destekleyeceğini unutmamak önemlidir.

Ayrıca derlenen grafikler, Nöron Kalıcı Önbellek diskte veya bir Amazon Basit Depolama Hizmeti (Amazon S3) kovası. Bu, özellikle model mimarisinin ve eğitim yapılandırmasının değişmediği üretim iş yükleri için kullanışlıdır. Bu nedenle derleme masrafı yalnızca bir kez karşılanır. Önbelleği kullanmak, bir ortam bayrağı ayarlamak kadar basittir:

export NEURON_COMPILE_CACHE_URL="s3://BUCKET/KEY"

Neuron derleyicisi ayrıca üç tane sağlar: derleyici düzeyinde optimizasyon seçenekleri (O1, O2, O3) derleme süresini ve model çalıştırma verimini dengelemek için. O1, hesaplama grafiğinde temel optimizasyonlara olanak tanır ve derleme süresini en aza indirir; O3, daha yüksek derleme süresi pahasına iyileştirilmiş model çalıştırma verimi sağlar ve O2 (varsayılan seçenek) ikisi arasında bir denge oluşturur. Kullanım durumumuz için, O1 optimizasyonunu kullandık ve model doğruluk ölçümlerinde herhangi bir değişiklik olmadan derleme süresinde %86'lık bir azalma gözlemledik, aynı zamanda varsayılan optimizasyona (O5) kıyasla verimde yaklaşık %7-2'lik bir azalma gözlemledik. Kullanım durumuna bağlı olarak farklı optimizasyon düzeyleri seçebilirsiniz.

Özetlemek gerekirse, derleme için aşağıdaki bayrakları kullandık:

NEURON_CC_FLAGS="--target trn1 --auto-cast all --auto-cast-type bf16 --model-type transformer --optlevel O1"

Kontrol noktası uyumluluğu

Derleme başarıyla tamamlandığında modellerimizi Trainium üzerinde eğitmeye devam edebiliriz. Daha önce de belirtildiği gibi, modellerimizi aşamalı olarak eğitiyoruz; bu, daha önce eğitilmiş bir model kontrol noktası yüklediğimiz ve yeni verilerle eğitime devam ettiğimiz anlamına gelir. PyTorch ve PyTorch XLA, kontrol noktası birlikte çalışabilirliği sayesinde hızlandırıcılar arasında kesintisiz geçişe olanak tanır. GPU ve Trainium arasında geçiş yapma esnekliğine sahip olmak, önceki GPU modelini sorunsuz bir şekilde yüklememize ve Trainium makineleri üzerinde eğitim almamıza olanak sağladı. Bu, herhangi bir üretim kesintisi veya model doğruluğunda kayıp olmadan, modelimizi önceden eğitilmiş en iyi modelle başlatabilmemizi sağlamak açısından kritik öneme sahipti.

GPU modeli standart PyTorch model kaydetme yardımcı programları kullanılarak kaydedildiğinden, GPU modelini Trainium cihazlarına yüklemek için PyTorch kontrol noktası yükleme yardımcı programını kullanabildik.

Örneğin, GPU/CPU'da modeli aşağıdaki kodla kaydedebilirsiniz:

torch.save(model.state_dict(), PATH)

Daha sonra modeli Trainium'a geri yüklersiniz:

import torch_xla.core.xla_model as xm
xla_device = xm.xla_device()
model = MyModel(*args, **kwargs)
model.load_state_dict(torch.load(PATH))
model.to(xla_device)

Benzer şekilde modeli Trainium'a aşağıdaki kodla kaydedebilirsiniz:

import torch_xla.core.xla_model as xm
# automatically moves the data to CPU for the master device
xm.save(model.state_dict(), PATH) 

Ve modeli tekrar GPU/CPU'ya yükleyin:

model = MyModel(*args, **kwargs)
model.load_state_dict(torch.load(PATH))
model.to(device) # can be any device

Aslında model eğitimi için DDP kullandığımızdan model yüklemesi, önceki kontrol noktasını eğitmek için kullanılan makinelerin sayısından bağımsızdır. Bu, Trn1 filosunu hiçbir kod değişikliği olmadan veya model eğitiminde olumsuz etki olmadan yatay olarak ölçeklendirmemize olanak tanır. Bu PyTorch tabanlı kontrol noktaları doğrudan kullanılabilir ve hatta AWS Inferentia2 veya diğer hızlandırıcılardaki çıkarım kullanım senaryoları için meşale komut dosyalarıyla yazılabilir.

Operasyonel kararlılık

Üretimde iş yüklerini çalıştırmanın birden fazla SLA'nın karşılanmasını gerektirdiği yeterince vurgulanamaz. Kullanım durumumuz açısından, model kalitesi ve eğitim verimi SLA'larının yanı sıra, üretim hattının operasyonel olarak istikrarlı olması zorunludur; bu, model eğitimi, değerlendirme ve çıkarım sırasında minimum kesinti ve kesinti anlamına gelir.

Mevcut GPU tabanlı işlem hattında olduğu gibi, işlem hattını operasyonel olarak kararlı hale getirmek için çok sayıda mekanizma ekledik. Model eğitimine başlamadan önce makinelerin sağlığını değerlendirmek için birden fazla sağlık testi gerçekleştiriyoruz. Bu testler genellikle hızlandırıcı cihazların sağlığını doğrulamak için basit tensör işlemlerini içerir. Dağıtılmış eğitim için örnekler arasındaki toplu iletişimi doğrulamak amacıyla testler yapmanın da önemli olduğunu gözlemledik. Biz kullandık NCCOM test paketi Bunu başarmak için Neuron SDK'dan tümünü topla, tümünü azalt ve saçılımı azalt gibi çeşitli işlemleri yürütüyoruz.

Bahsettiğimiz önerileri uyguladıktan sonra bile, temeldeki hızlandırıcıdan bağımsız olarak herhangi bir boru hattında geçici sorunların kaçınılmaz olduğunu gözlemledik. Herhangi bir eğitim hattında dayanıklılık oluşturmak için bu olası sorunları çözecek yeniden deneme mekanizmaları oluşturmanızı öneririz. Kullanırız AWS Toplu otomatik yeniden denemeler Model eğitimi sırasında geçici bir hatayla karşılaşan işleri yeniden denemek için. Eğitimin sonuna doğru bir hatayla karşılaşılırsa bu yeniden başlatmalar maliyetli olabilir. Bu sorunu gidermek için eğitim komut dosyalarımızı önceden eğitilmiş bir model kontrol noktası yükleyecek ve eğitime bu noktadan devam edecek şekilde uyarladık. Bu işlevsellik sayesinde, başarısız olan eğitim işlerini minimum düzeyde ek yük ile agresif bir şekilde yeniden başlatabiliyoruz.

Bu esneklik mekanizmalarının devreye girmesiyle, Trn98.5'deki iş yüklerimiz için mevcut GPU işlem hattı başarı oranlarımızla karşılaştırılabilir düzeyde %1 başarı oranları elde edebildik.

Sonuçlar

Modellerimizin doğruluğunu doğrulamak için aynı GPU kontrol noktasından iki modeli başlattık ve birini Trainium'da, diğerini ise benzer bir GPU'da eğittik. Her iki model de aynı eğitim hiperparametreleriyle eğitildi. Metrik hesaplaması için kullanılan veri kümesi, bir uzatma veri kümesidir ve bu veri kümesi üzerindeki modelin doğruluğunu her N küresel adımda bir değerlendiririz. X ekseni küresel adımdır ve Y ekseni model doğruluğudur. Aşağıdaki grafikte her noktada model doğruluğunda %0.1'den az fark gözlemledik.

Amazon Search M5, AWS Trainium'u kullanarak LLM eğitim maliyetinde nasıl %30 tasarruf sağladı? Amazon Web Hizmetleri PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

Ayrıca, model eğitiminin maliyet etkinliğini değerlendirmek amacıyla, model yakınsamasına ulaşmak için harcanan duvar saati süresini karşılaştırmayı tercih ediyoruz. Bunun, token başına maliyet, elde edilen FLOPS/dolar ve diğer faktörler gibi ölçümlerle karşılaştırıldığında maliyet tasarrufu konusunda daha pratik bir görünüm sağladığına inanıyoruz. trn1.32xl'nin eğitim süresi göz önüne alındığında ve karşılaştırılabilir Amazon Elastik Bilgi İşlem Bulutu (Amazon EC2) örneklerinde Trainium'un model yakınsaması için %30'a kadar daha ucuz maliyet sunduğunu gözlemledik.

Sonuç

DL iş yükleriniz için farklı hızlandırıcıları değerlendirirken göz önünde bulundurulması gereken birçok faktör vardır. En önemlilerinden bazıları model kalitesi, verim, maliyet ve kullanılabilirliktir. Seçtiğiniz hızlandırıcıya bağlı olarak model kalitenizden ve veriminizden ödün verilmemesini sağlamak çok önemlidir.

Annapurna Neuron ekibiyle olan ortaklığımız ve işbirliğimiz sayesinde Amazon Search M5 ekibi, Trainium'a geçerek %30'a varan maliyet tasarrufu elde etti. Ekip, Trainium'u kullanabiliyor ve piyasadaki benzer hızlandırıcılarla model kalitesi ve üretim eşitliği elde edebiliyor. Checkpoint'in birlikte çalışabilirliği ve XLA desteğiyle minimum kod değişikliği, M5'in iş yükleri için birden fazla hızlandırıcı arasında seçim yapmasına olanak tanıdı. Bu, M5 ekibinin Trainium'un büyük bilgi işlem gücünden yararlanmasına ve Amazon.com müşterilerini memnun edecek hızlandırıcıdan bağımsız çözümler oluşturmasına olanak sağladı. Operasyonel açıdan bakıldığında, Trainium'un Amazon ölçeğinde 1. kademe hizmetleri destekleyebildiği kanıtlanmıştır. M5 ekibi, Amazon'a en düşük maliyetlerle en iyi modelleri sağlamak için daha fazla iş yükünü Trainium'a taşımaya devam ediyor.

Özetle M5 ekibi, Trainium'u hızlandırıcı filosuna ekleyerek uygun maliyetli, üretim düzeyinde makine öğrenimi eğitimi gerçekleştirebildi. Makine öğrenimi iş yükleri için özel olarak tasarlanmış Amazon silikonunun avantajlarından yararlanmak için Trainium'a ve AWS Inferentia gibi diğer Neuron cihazlarına göz atmanızı öneririz. Farklı modellerin yer aldığı birçok eğitimden biriyle kolayca başlayın. Lama 2, Trainium'da mevcut.


Yazarlar Hakkında

Amazon Search M5, AWS Trainium'u kullanarak LLM eğitim maliyetinde nasıl %30 tasarruf sağladı? Amazon Web Hizmetleri PlatoBlockchain Veri Zekası. Dikey Arama. Ai.Abhinandan Patnisi Amazon Search'te Kıdemli Yazılım Mühendisidir. Ölçeklenebilir dağıtılmış derin öğrenme eğitimi ve gerçek zamanlı çıkarım için sistemler ve araçlar oluşturmaya odaklanır.

Amazon Search M5, AWS Trainium'u kullanarak LLM eğitim maliyetinde nasıl %30 tasarruf sağladı? Amazon Web Hizmetleri PlatoBlockchain Veri Zekası. Dikey Arama. Ai.James Park Amazon Web Services'te Çözüm Mimarıdır. AWS'de teknoloji çözümleri tasarlamak, oluşturmak ve dağıtmak için Amazon.com ile birlikte çalışıyor ve yapay zeka ve makine öğrenimine özel ilgi duyuyor. Boş zamanlarında yeni kültürler, yeni deneyimler aramaktan ve en son teknoloji trendlerini takip etmekten hoşlanıyor. Onu şurada bulabilirsin LinkedIn.

Amazon Search M5, AWS Trainium'u kullanarak LLM eğitim maliyetinde nasıl %30 tasarruf sağladı? Amazon Web Hizmetleri PlatoBlockchain Veri Zekası. Dikey Arama. Ai.Jerry Mannil Amazon Search'te yazılım mühendisidir. Dağıtılmış eğitim altyapısının verimliliğini, sağlamlığını ve ölçeklenebilirliğini artırmak için çalışıyor.

Amazon Search M5, AWS Trainium'u kullanarak LLM eğitim maliyetinde nasıl %30 tasarruf sağladı? Amazon Web Hizmetleri PlatoBlockchain Veri Zekası. Dikey Arama. Ai.Ken Su Amazon Search'te yazılım mühendisidir. Eğitim verimliliğini ve ölçeklenebilir dağıtılmış eğitim iş akışını iyileştirmeye çalışıyor. İş dışında yürüyüş yapmayı ve tenis oynamayı seviyor.

Amazon Search M5, AWS Trainium'u kullanarak LLM eğitim maliyetinde nasıl %30 tasarruf sağladı? Amazon Web Hizmetleri PlatoBlockchain Veri Zekası. Dikey Arama. Ai.RJ Amazon'da bir Mühendistir. Eğitim amaçlı dağıtılmış sistemlere yönelik sistemler kuruyor ve optimize ediyor ve ML Çıkarımı için gecikmeyi azaltmak amacıyla sistemlerin benimsenmesinin optimize edilmesi üzerinde çalışıyor. İş dışında yemek tarifleri oluşturmak için Üretken Yapay Zekayı kullanmayı araştırıyor.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi