Takarékosság és pontosság: GPT NeoX és Pythia modellek költséghatékony képzése AWS Trainiummal | Amazon webszolgáltatások

Takarékosság és pontosság: GPT NeoX és Pythia modellek költséghatékony képzése AWS Trainiummal | Amazon webszolgáltatások

A nagy nyelvi modellek (vagy LLM-ek) a napi beszélgetések témájává váltak. Gyors elterjedtségük jól látható a 100 millió felhasználó eléréséhez szükséges időből, amely a „facebook által 4.5 évről” minden idők legalacsonyabb szintjére, „a ChatGPT által 2 hónapra” nőtt. A generatív előképzett transzformátor (GPT) kauzális autoregresszív frissítéseket használ az előrejelzéshez. A különféle feladatok, például a beszédfelismerés, a szöveggenerálás és a kérdések megválaszolása bizonyítottan elképesztő teljesítményt nyújt ezeknek a modellarchitektúráknak. Számos legújabb modell, mint pl Neox, Sólyom, Láma használja a GPT architektúrát gerincként. Az LLM-ek képzése óriási számítási időt igényel, ami több millió dollárba kerül. Ebben a bejegyzésben összefoglaljuk a GPT képzési eljárását Neox on AWS Trainium, egy erre a célra épített gépi tanulási (ML) gyorsító, amelyet mély tanulási képzésre optimalizáltak. Felvázoljuk, hogyan oktattuk költséghatékonyan (3.2 millió token/$) az ilyen modelleket az AWS Trainiummal anélkül, hogy a modell minősége romlott volna.

Megoldás áttekintése

GPT NeoX és Pythia modellek

GPT NeoX és a Pythia ezek az Eleuther-AI nyílt forráskódú kauzális nyelvi modelljei, körülbelül 20 milliárd paraméterrel a NeoX-ben és 6.9 milliárddal a Pythiában. Mindkettő dekóder modell, amely hasonló felépítésű, mint a Chat GPT3. Azonban számos kiegészítéssel is rendelkeznek, amelyeket szintén széles körben alkalmaznak a legújabb modellekben, mint például a Llama. Különösen forgópozíciós beágyazással (ROPE) rendelkeznek, részleges elforgatással a fej méreteiben. Az eredeti modellek (NeoX és Pythia 6.9B) nyíltan elérhetők Cölöp adatkészlet deduplikációval, valamint Megatron és Deepspeed háttérrendszer használatával.

Bemutatjuk ezeknek a modelleknek az előképzését és finomhangolását AWS Trainium alapú Trn1 példányokon a Neuron NeMo könyvtár. A koncepció bizonyítása és a gyors reprodukálás érdekében egy kisebb Wikipédia-adatkészlet-alkészletet használunk, amelyet GPT2 byte-pair encoding (BPE) tokenizátorral tokenizáltak.

Végigjátszás

Töltse le az előre tokenizált Wikipédia adatkészletet a képen látható módon:

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

Mind a NeoX 20B, mind a Pythia 6.9B KÖTELT használ részleges elforgatással, például a fej méretének 25%-át elforgatva, a többit pedig forgatatlanul hagyva. Az AWS Trainium gyorsítón a részleges forgatás hatékony megvalósítása érdekében a forgó és nem forgó méretek összefűzése helyett nulla frekvenciát adunk hozzá a nem forgó méretekhez, majd elforgatjuk a teljes fejméret-készletet. Ez az egyszerű trükk segített javítani az AWS Trainium átviteli sebességét (másodpercenként feldolgozott szekvenciák).

Képzési lépések

A képzés lebonyolításához SLURM által felügyelt többcsomópontos Amazon Elastic Compute Cloud (Amazon EC2) Trn1 fürt, minden csomópont tartalmaz egy trn1.32xl példányt. Minden egyes trn1.32xl 16 gyorsítóval rendelkezik, gyorsítónként két munkással. A legújabb letöltése után Neuron NeMo csomagot, használja a mellékeltet neox és a pythia optimalizált hiperparaméterekkel előre betanítja és finomhangolja a szkripteket, és hajtsa végre a következőket egy négy csomópontos betanításhoz.

  1. Fordítás: A grafikonok létrehozásához és mentéséhez fordítsa le előre a modellt három iterációval:
    sbatch --nodes 4 compile.slurm ./neoX_20B_slurm.sh

  2. Futtatás: Végezze el az edzést a gyorsítótárazott grafikonok betöltésével az első lépésektől
    sbatch --nodes 4 run.slurm ./neoX_20B_slurm.sh

  3. Kövesse nyomon az eredményeket
    tensorboard --logdir=nemo_experiments/megatron_neox

Ugyanezeket a lépéseket kell követni a Pythia 6.9B modell cseréjével történő futtatásához neox_20B_slurm.sh by pythia_6.9B_slurm.sh.

Előképzési és finomhangoló kísérletek

Bemutatjuk a GPT-NeoX és Pythia modellek előképzését AWS Trainiumon a Neuron NeMo könyvtár 10 1 iterációhoz, és ezen modellek finomhangolását is megmutatja 2 XNUMX lépéshez. Az előképzéshez a GPTXNUMX BPE tokenizert használjuk a NeMo-ban, és ezt követjük config az eredeti modellben használt. Az AWS Trainium finomhangolásához néhány paraméter megváltoztatása szükséges (pl vocab méretosztási tényező), amelyeket a finomhangoló szkriptekben biztosítanak, hogy alkalmazkodjanak a Megatron és a NeMo különbségekhez, valamint a GPU és az AWS Trainium változásaihoz. A több csomóponton elosztott betanítási teljesítmény változó számú csomóponttal az 1. táblázatban látható.

Modell Tenzor párhuzamos Csővezeték párhuzamos Példányok száma Költség ($/óra) A szekvencia hossza Globális tételméret Átbocsátóképesség (szekv./mp) Költség-átbocsátási arány (token/$)
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

Táblázat 1. A GPT NeoX és Pythia modellek átlagos átviteli sebességének összehasonlítása akár 500 lépés betanítására változó csomópontok számával. A árazás trn1.32xl a 3 éves lefoglalt effektív óradíjon alapul.

Ezután kiértékeljük a modellképzés veszteségi pályáját az AWS Trainiumon, és összehasonlítjuk a megfelelő futtatással egy P4d (Nvidia A100 GPU mag) klaszteren. A képzési veszteséggel együtt összehasonlítunk olyan hasznos mutatókat is, mint a gradiens normája, amely az egyes edzési iterációk során kiszámított modell gradiensek 2-normája, hogy figyelemmel kísérjük a képzés előrehaladását. A képzési eredmények az 1., 2. ábrán, a NeoX 20B finomhangolása pedig a 3. ábrán láthatók.

A képzési veszteség átlaga az összes dolgozóra (balra) és a gradiens normára (jobbra) az egyes képzési lépéseknél.

1.ábra. A képzési veszteség átlaga az összes dolgozóra (balra) és a gradiens normára (jobbra) az egyes képzési lépéseknél. A NeoX 20B 4 csomóponton van betanítva, kis wiki adatkészlettel a GPU-n és a Trainiumon, azonos betanítási hiperparaméterekkel (globális kötegméret=256). A GPU BF16-ot és alapértelmezett vegyes pontosságot, míg az AWS Trainium teljes BF16-ot használ sztochasztikus kerekítéssel. A veszteség és a gradiens norma pályája megegyezik a GPU és az AWS Trainium esetében.

A képzési veszteség átlaga az összes dolgozóra (balra) és a gradiens normára (jobbra) az egyes képzési lépéseknél (Pythia).

2.ábra. A képzési veszteség átlaga az összes dolgozóra (balra) és a gradiens normára (jobbra) az egyes képzési lépéseknél. Az 1. ábrán látható GPT NeoX-hez hasonlóan a Pythia 6.9B 4 csomóponton van betanítva kis wiki adatkészlettel a GPU-n és a Trainiumon, azonos betanítási hiperparaméterekkel (globális kötegméret=256). A veszteség és a gradiens norma pályája megegyezik a GPU és a Trainium esetében.

Finomhangolású GPT NeoX 20B modell GPU-n és AWS Trainiumon, az összes dolgozóra átlagolt edzési veszteséggel (balra) és gradiens normával (jobbra).

3.ábra. Finomhangolású GPT NeoX 20B modell GPU-n és AWS Trainiumon, az összes dolgozóra átlagolt edzési veszteséggel (balra) és gradiens normával (jobbra). Egy kis wiki adatkészletet használnak a finomhangolási demonstrációhoz. A veszteség és a gradiens norma pályája megegyezik a GPU és az AWS Trainium esetében.

Ebben a bejegyzésben bemutattuk az LLM-ek költséghatékony képzését az AWS mély tanulási hardveren. A GPT NeoX 20B és Pythia 6.9B modelleket AWS Trn1-en, Neuron NeMo könyvtárral képeztük ki. Az AWS Trainiummal rendelkező 20 milliárd modell költségnormalizált átvitele körülbelül 3.2 millió token/$ elköltött. Az AWS Trainium költséghatékony képzése mellett hasonló modellpontosságot kapunk, ami nyilvánvaló a képzési lépések veszteségéből és a gradiens norma pályájából. Finomhangoltuk a NeoX 20B modell elérhető ellenőrzőpontjait is az AWS Trainiumon. Az AWS Trainium NeMo Megatronnal végzett elosztott képzésével kapcsolatos további információkért lásd: AWS Neuron Referencia a NeMo Megatronhoz. A Llama modell finomhangolásának megkezdéséhez jó forrást találhat itt, Llama2 finomhangolás. A felügyelt AWS Trainium bekapcsolásának megkezdéséhez Amazon SageMakerLásd: Képezze ML modelljeit az AWS Trainium és az Amazon SageMaker segítségével.


A szerzőkről

Frugality meets Accuracy: Cost-efficient training of GPT NeoX and Pythia models with AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Gaurav Gupta jelenleg az Amazon Web Services (AWS) mesterséges intelligencia laboratóriumának alkalmazott tudósa. Dr. Gupta doktori fokozatát az USC Viterbi-n szerezte. Kutatási területe a szekvenciális adatmodellezés, a parciális differenciálegyenletek tanulása, a gépi tanulás információelmélete, a tört dinamikai modellek és a komplex hálózatok területére terjed ki. Jelenleg alkalmazott és matematikai problémákkal foglalkozik az LLM-ek képzési viselkedésével, a PDE-s látásmodellekkel, információelméleti multimodalitási modellekkel. Dr. Gupta publikációkkal rendelkezik olyan vezető folyóiratokban/konferenciákon, mint a Neurips, ICLR, ICML, Nature, IEEE Control Society, ACM cyber-physical Society.

Frugality meets Accuracy: Cost-efficient training of GPT NeoX and Pythia models with AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Ben Snyder az AWS Deep Learning alkalmazott tudósa. Kutatási területe az alapozó modellek, a megerősítéses tanulás és az aszinkron optimalizálás. Munkán kívül szeret kerékpározni és kempingezni.

Frugality meets Accuracy: Cost-efficient training of GPT NeoX and Pythia models with AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Amith (R) Mamidala az AWS Annapurna Labs vezető gépi tanulási alkalmazásmérnöke. Dr. Mamidala az Ohio Állami Egyetemen szerzett PhD fokozatot nagy teljesítményű számítástechnika és kommunikáció területén. Az IBM kutatásánál eltöltött ideje alatt Dr. Mamidala hozzájárult a BlueGene számítógéposztályhoz, amely gyakran vezette a legerősebb és leghatékonyabb szuperszámítógépek Top500-as rangsorát. A projektet 2009-ben Nemzeti Technológiai és Innovációs éremdíjjal tüntették ki. Egy pénzügyi fedezeti alapnál MI-mérnökként eltöltött rövid idő után Dr. Mamidala csatlakozott az Annapurna laborokhoz, amelyek a Large Language modell képzésére összpontosítottak.

Frugality meets Accuracy: Cost-efficient training of GPT NeoX and Pythia models with AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Jun (Luke) Huan az AWS AI Labs vezető tudósa. Dr. Huan a mesterséges intelligencia és az adattudomány területén dolgozik. Több mint 180 lektorált cikket publikált vezető konferenciákban és folyóiratokban. 2009-ben elnyerte az NSF Faculty Early Career Development Award díját. Mielőtt csatlakozott az AWS-hez, a Baidu kutatásnál dolgozott kiváló tudósként és a Baidu Big Data Laboratory vezetőjeként. Megalapította a StylingAI Inc.-t, egy mesterséges intelligencia induló vállalkozást, és 2019-2021 között vezérigazgatóként és tudományos főorvosként dolgozott. Mielőtt az iparhoz csatlakozott, Charles E. és Mary Jane Spahr professzor volt a Kansasi Egyetem EECS tanszékén.

Frugality meets Accuracy: Cost-efficient training of GPT NeoX and Pythia models with AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Shruti Koparkar az AWS vezető termékmarketing-menedzsere. Segít az ügyfeleknek felfedezni, értékelni és átvenni az Amazon EC2 gyorsított számítási infrastruktúrát gépi tanulási igényeiknek megfelelően.

Időbélyeg:

Még több AWS gépi tanulás