Tutumluluk Doğrulukla buluşuyor: AWS Trainium ile GPT NeoX ve Pythia modellerinin uygun maliyetli eğitimi | Amazon Web Hizmetleri

Tutumluluk Doğrulukla buluşuyor: AWS Trainium ile GPT NeoX ve Pythia modellerinin uygun maliyetli eğitimi | Amazon Web Hizmetleri

Büyük dil modelleri (veya LLM'ler) günlük konuşmaların konusu haline geldi. Hızlı benimsenmeleri, 100 milyon kullanıcıya ulaşmak için gereken sürenin miktarından açıkça anlaşılıyor; bu süre, "facebook ile 4.5 yıl"dan tüm zamanların en düşük seviyesi olan "ChatGPT ile 2 ay"a düştü. Üretken bir önceden eğitilmiş transformatör (GPT), tahmin yapmak için nedensel otoregresif güncellemeleri kullanır. Konuşma tanıma, metin oluşturma ve soru yanıtlama gibi çeşitli görevlerin, bu model mimariler tarafından muazzam bir performansa sahip olduğu gösterilmiştir. Gibi birkaç yeni model Neox, Şahin, lama GPT mimarisini omurga olarak kullanın. LLM'lerin eğitimi, milyonlarca dolara mal olan devasa miktarda hesaplama süresi gerektirir. Bu yazıda GPT'nin eğitim prosedürünü özetleyeceğiz Neox on AWS Eğitimi, derin öğrenme eğitimi için optimize edilmiş, amaca yönelik tasarlanmış bir makine öğrenimi (ML) hızlandırıcısı. Bu tür modelleri AWS Trainium ile hiçbir model kalitesinden ödün vermeden nasıl uygun maliyetle (3.2 milyon token/$) eğittiğimizi ana hatlarıyla anlatacağız.

Çözüme genel bakış

GPT NeoX ve Pythia modelleri

GPT NeoX ve Pythia Eleuther-AI'nin NeoX'ta yaklaşık 20 milyar ve Pythia'da 6.9 milyar parametre içeren açık kaynaklı nedensel dil modelleridir. Her ikisi de Chat GPT3 ile benzer mimari tasarımı izleyen kod çözücü modelleridir. Bununla birlikte, Llama gibi son modellerde de yaygın olarak benimsenen çeşitli eklemeler de vardır. Özellikle, kafa boyutları boyunca kısmi rotasyonla rotasyonel konumsal gömmeye (ROPE) sahiptirler. Orijinal modeller (NeoX ve Pythia 6.9B) açık olarak sunulanlar üzerinde eğitilmiştir yığın veri seti veri tekilleştirme ve Megatron ve Deepspeed arka uç kullanımıyla.

Bu modellerin ön eğitimini ve ince ayarını AWS Trainium tabanlı Trn1 bulut sunucularında aşağıdakileri kullanarak gösteriyoruz: Nöron NeMo kütüphane. Kavram kanıtını ve hızlı çoğaltmayı oluşturmak için, GPT2 Bayt çifti kodlama (BPE) belirteci kullanılarak belirtilmiş daha küçük bir Wikipedia veri kümesi alt kümesi kullanacağız.

Walkthrough

Önceden belirtilmiş Wikipedia veri kümesini gösterildiği gibi indirin:

export DATA_DIR=~/examples_datasets/gpt2 mkdir -p ${DATA_DIR} && cd ${DATA_DIR} wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-vocab.json
wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-merges.txt
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/my-gpt2_text_document.bin . --no-sign-request
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/my-gpt2_text_document.idx . --no-sign-request
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/license.txt . --no-sign-request

Hem NeoX 20B hem de Pythia 6.9B, kısmi rotasyonlu HALAT kullanır; örneğin, kafa boyutlarının %25'ini döndürür ve geri kalanını dönmeden tutar. Kısmi dönüşü AWS Trainium hızlandırıcıda verimli bir şekilde uygulamak için, dönen ve dönmeyen boyutları birleştirmek yerine, dönmeyen boyutlar için sıfır frekanslar ekler ve ardından kafa boyutları kümesinin tamamını döndürürüz. Bu basit numara, AWS Trainium'da verimi (saniye başına işlenen diziler) iyileştirmemize yardımcı oldu.

Eğitim adımları

Eğitimi yürütmek için SLURM tarafından yönetilen çok düğümlü Amazon Elastic Compute Cloud (Amazon EC2) Her düğümün bir trn1xl örneği içerdiği Trn1.32 kümesi. Her biri trn1.32xl Hızlandırıcı başına iki çalışanın bulunduğu 16 hızlandırıcı vardır. En son sürümü indirdikten sonra Nöron NeMo paketi, sağlananları kullanın neoks ve pitia optimize edilmiş hiper parametrelerle komut dosyalarının ön eğitimini ve ince ayarını yapın ve dört düğümlü bir eğitim için aşağıdakileri uygulayın.

  1. Derleme: Grafikleri oluşturmak ve kaydetmek için modeli üç eğitim yinelemesiyle önceden derleyin:
    sbatch --nodes 4 compile.slurm ./neoX_20B_slurm.sh

  2. Çalıştır: İlk adımlardan önbelleğe alınmış grafikleri yükleyerek eğitimi yürütün
    sbatch --nodes 4 run.slurm ./neoX_20B_slurm.sh

  3. Sonuçları izleyin
    tensorboard --logdir=nemo_experiments/megatron_neox

Pythia 6.9B modelini değiştirerek çalıştırmak için aynı adımların izlenmesi gerekiyor neox_20B_slurm.sh by pythia_6.9B_slurm.sh.

Eğitim öncesi ve ince ayar deneyleri

GPT-NeoX ve Pythia modellerinin ön eğitimini AWS Trainium'da gösteriyoruz. Nöron NeMo 10k yineleme için kütüphane ve ayrıca bu modellerin 1k adım için ince ayarını gösterir. Ön eğitim için NeMo'nun içindeki GPT2 BPE tokenizer'ı kullanıyoruz ve aynısını uyguluyoruz yapılandırma Orijinal modelde kullanıldığı gibi. AWS Trainium'da ince ayar yapmak birkaç parametrenin değiştirilmesini gerektirir (örneğin kelime boyutu bölme faktörü), Megatron ile NeMo arasındaki farkları ve GPU ile AWS Trainium değişikliklerini karşılamak için ince ayar komut dosyalarında sağlananlar. Değişen sayıda düğümle çok düğümlü dağıtılmış eğitim verimi Tablo-1'de gösterilmektedir.

Model Tensör Paralel paralel boru hattı Örnek sayısı Maliyet ($/saat) dizi uzunluğu Küresel parti boyutu Verim (sıra/sn) Maliyet-üretim oranı (jeton/$)
Pythia 6.9B 8 1 1 7.59 2048 256 10.4 10,102,387
8 1 4 30.36 2048 256 35.8 8,693,881
NeoX 20B 8 4 4 30.36 2048 16384 13.60 3,302,704
8 4 8 60.72 2048 16384 26.80 3,254,134
8 4 16 121.44 2048 16384 54.30 3,296,632
8 4 32 242.88 2048 16384 107.50 3,263,241
8 4 64 485.76 2048 16384 212.00 3,217,708

Tablo 1. Değişen düğüm sayısıyla 500 adıma kadar eğitim için GPT NeoX ve Pythia modellerinin ortalama veriminin karşılaştırılması. trn1.32xl fiyatlandırması 3 yıllık rezerve edilmiş saat başına geçerli ücret esas alınır.

Daha sonra, AWS Trainium'daki model eğitiminin kayıp gidişatını da değerlendiriyoruz ve bunu bir P4d (Nvidia A100 GPU çekirdekleri) kümesindeki ilgili çalıştırmayla karşılaştırıyoruz. Eğitim kaybının yanı sıra, eğitim ilerlemesini izlemek için her eğitim yinelemesinde hesaplanan model gradyanlarının 2-normu olan gradyan normu gibi faydalı göstergeleri de karşılaştırıyoruz. Eğitim sonuçları Şekil-1 ve 2'de, NeoX 20B'nin ince ayarı ise Şekil-3'te gösterilmektedir.

Her adımda eğitimde tüm çalışanların (solda) ve eğim normunun (sağda) ortalaması alınan eğitim kaybı.

Şekil 1. Her adımda eğitimde tüm çalışanların (solda) ve eğim normunun (sağda) ortalaması alınan eğitim kaybı. NeoX 20B, GPU ve Trainium üzerinde aynı eğitim hiper parametreleriyle (global toplu iş boyutu=4) küçük wiki veri kümesine sahip 256 düğüm üzerinde eğitilir. GPU, BF16'yı ve varsayılan karma hassasiyeti kullanırken AWS Trainium, stokastik yuvarlamayla tam BF16'yı kullanıyor. Kayıp ve gradyan normu yörüngeleri GPU ve AWS Trainium için eşleşiyor.

Her adımda (Pythia) tüm çalışanlar (solda) ve eğim normu (sağda) genelinde eğitim kaybı ortalaması alındı.

Şekil 2. Her adımda eğitimde tüm çalışanların (solda) ve eğim normunun (sağda) ortalaması alınan eğitim kaybı. Şekil-1'deki GPT NeoX'a benzer şekilde Pythia 6.9B, GPU ve Trainium üzerinde aynı eğitim hiper parametreleriyle (global toplu iş boyutu=4) küçük wiki veri kümesine sahip 256 düğüm üzerinde eğitilir. Kayıp ve gradyan normu yörüngeleri GPU ve Trainium için eşleşiyor.

Tüm çalışanlar (sol) ve eğim normu (sağ) genelinde ortalama eğitim kaybıyla GPU ve AWS Trainium'da GPT NeoX 20B modeline ince ayar yapıldı.

Şekil 3. Tüm çalışanlar (sol) ve eğim normu (sağ) genelinde ortalama eğitim kaybıyla GPU ve AWS Trainium'da GPT NeoX 20B modeline ince ayar yapıldı. İnce ayar gösterimi için küçük bir wiki veri kümesi kullanılır. Kayıp ve gradyan normu yörüngeleri GPU ve AWS Trainium için eşleşiyor.

Bu yazıda yüksek lisans öğrencilerinin AWS derin öğrenme donanımıyla ilgili uygun maliyetli eğitimini gösterdik. GPT NeoX 20B ve Pythia 6.9B modellerini Neuron NeMo kütüphanesi ile AWS Trn1 üzerinde eğittik. AWS Trainium'lu 20 milyar modelin maliyet normalleştirilmiş verimi yaklaşık 3.2 milyon token/harcanan dolar civarındadır. AWS Trainium'da uygun maliyetli eğitimin yanı sıra, eğitim adımı kaybı ve gradyan normu yörüngesinden de anlaşılacağı üzere benzer model doğruluğu elde ediyoruz. Ayrıca AWS Trainium'da NeoX 20B modeli için mevcut kontrol noktalarında ince ayar yaptık. AWS Trainium'da NeMo Megatron ile dağıtılan eğitim hakkında ek bilgi için bkz. NeMo Megatron için AWS Nöron Referansı. Lama modeline ince ayar yapmaya başlamak için iyi bir kaynak burada bulunabilir, Llama2 ince ayarı. Yönetilen AWS Trainium'u kullanmaya başlamak için Amazon Adaçayı YapıcıBakın ML Modellerinizi AWS Trainium ve Amazon SageMaker ile eğitin.


Yazarlar Hakkında

Tutumluluk Doğrulukla buluşuyor: AWS Trainium ile GPT NeoX ve Pythia modellerinin uygun maliyetli eğitimi | Amazon Web Hizmetleri PlatoBlockchain Veri Zekası. Dikey Arama. Ai.Gaurav Gupta şu anda Amazon Web Services (AWS) AI laboratuvarlarında Uygulamalı Bilim Adamı olarak görev yapmaktadır. Dr. Gupta doktorasını USC Viterbi'de tamamladı. Araştırma ilgi alanları sıralı veri modelleme, kısmi diferansiyel denklemlerin öğrenilmesi, makine öğrenimi için bilgi teorisi, kesirli dinamik modeller ve karmaşık ağlar alanlarını kapsamaktadır. Şu anda LLM'lerin eğitim davranışı, PDE'lerle görme modelleri, bilgi-teorik çok modlu modeller üzerine uygulamalı ve matematiksel problemler üzerinde çalışmaktadır. Dr. Gupta'nın Neurips, ICLR, ICML, Nature, IEEE Control Society, ACM cyber-fiziksel topluluğu gibi önde gelen dergilerde/konferanslarda yayınları bulunmaktadır.

Tutumluluk Doğrulukla buluşuyor: AWS Trainium ile GPT NeoX ve Pythia modellerinin uygun maliyetli eğitimi | Amazon Web Hizmetleri PlatoBlockchain Veri Zekası. Dikey Arama. Ai.Ben Snyder AWS Deep Learning'e sahip uygulamalı bir bilim insanıdır. Araştırma alanları arasında temel modeller, takviyeli öğrenme ve eşzamansız optimizasyon yer almaktadır. İş dışında bisiklet sürmeyi ve dağlık bölgede kamp yapmayı seviyor.

Tutumluluk Doğrulukla buluşuyor: AWS Trainium ile GPT NeoX ve Pythia modellerinin uygun maliyetli eğitimi | Amazon Web Hizmetleri PlatoBlockchain Veri Zekası. Dikey Arama. Ai.Amith (R) Mamidala AWS Annapurna Laboratuvarlarında kıdemli makine öğrenimi uygulama mühendisliğidir. Dr. Mamidala, doktorasını Ohio Eyalet Üniversitesi'nde yüksek performanslı bilgi işlem ve iletişim alanında tamamladı. Dr. Mamidala, IBM araştırmalarında görev yaptığı süre boyunca, en güçlü ve güç açısından verimli süper bilgisayarlar arasında ilk 500 sıralamasında sıklıkla başı çeken BlueGene bilgisayar sınıfına katkıda bulundu. Proje, 2009 Ulusal Teknoloji ve Yenilik Madalyası'na layık görüldü. Bir finansal hedge fonunda kısa bir yapay zeka mühendisi olarak çalıştıktan sonra Dr. Mamidala, Büyük Dil modeli eğitimine odaklanan Annapurna laboratuvarlarına katıldı.

Tutumluluk Doğrulukla buluşuyor: AWS Trainium ile GPT NeoX ve Pythia modellerinin uygun maliyetli eğitimi | Amazon Web Hizmetleri PlatoBlockchain Veri Zekası. Dikey Arama. Ai.Haziran (Luke) Huan AWS AI Laboratuvarlarında baş bilim insanıdır. Dr. Huan yapay zeka ve Veri Bilimi üzerinde çalışıyor. Önde gelen konferans ve dergilerde 180'den fazla hakemli makalesi yayımlandı. 2009 yılında NSF Fakültesi Erken Kariyer Gelişimi Ödülü'nü aldı. AWS'ye katılmadan önce Baidu araştırmalarında seçkin bir bilim insanı ve Baidu Büyük Veri Laboratuvarı'nın başkanı olarak çalıştı. Bir AI start-up'ı olan StylingAI Inc.'i kurdu ve 2019-2021'de CEO ve Baş Bilim Adamı olarak çalıştı. Endüstriye katılmadan önce Kansas Üniversitesi'nin EECS Bölümü'nde Charles E. ve Mary Jane Spahr Profesörü olarak görev yaptı.

Tutumluluk Doğrulukla buluşuyor: AWS Trainium ile GPT NeoX ve Pythia modellerinin uygun maliyetli eğitimi | Amazon Web Hizmetleri PlatoBlockchain Veri Zekası. Dikey Arama. Ai.Shruti Koparkar AWS'de Kıdemli Ürün Pazarlama Müdürüdür. Müşterilerin makine öğrenimi ihtiyaçları için Amazon EC2 hızlandırılmış bilgi işlem altyapısını keşfetmesine, değerlendirmesine ve benimsemesine yardımcı olur.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi