Vaikeuksia tekoälyn tai full-stack-kehityksen kanssa? Asiantuntijamme opastavat sinua: räätälöityjä neuvoja, teknistä integrointia ja paljon muuta. Ota yhteyttä osoitteessa [email protected].

Miten LLaMA 3 asennetaan ja otetaan käyttöön tuotantoon?

Meta julkaisi pari päivää sitten LLaMA 3:n generatiivisen tekoälymallin, ja se osoittaa jo nyt vaikuttavia kykyjä.

Lue, miten LLaMA 3 asennetaan ja otetaan käyttöön tuotannossa tämän vaiheittaisen oppaan avulla. Laitteistovaatimuksista käyttöönottoon ja skaalautumiseen katamme kaiken, mitä sinun on tiedettävä sujuvan käyttöönoton varmistamiseksi.

LLaMA 3

Johdatus LLaMA:han 3

Meta on esitellyt ensimmäiset versiot avoimen lähdekoodin Llama 3 -tekoälymallistaan, jota voidaan käyttää tekstin luomiseen, ohjelmointiin tai chat-robotteihin. Lisäksi Meta ilmoitti suunnitelmistaan sisällyttää LLaMA 3 ensisijaisiin sosiaalisen median sovelluksiinsa. Tällä toimenpiteellä pyritään kilpailemaan muiden tekoälyavustajien, kuten OpenAI:n ChatGPT:n, Microsoftin Copilotin ja Googlen Geminin kanssa.

Samoin kuin Llama 2, myös Llama 3 erottuu edukseen johtavan tekoälyyrityksen tarjoamana vapaasti käytettävissä olevana suurena kielimallina, jossa on avoimet painotukset (vaikka sitä ei voida pitää "avoimena lähdekoodina" perinteisessä mielessä).

Tällä hetkellä Llama 3 on ladattavissa ilmaiseksi Metan verkkosivuilta kahdessa eri kokoluokassa: 8 miljardia (8B) ja 70 miljardia (70B). Käyttäjät voivat rekisteröityä saadakseen nämä versiot käyttöönsä. Llama 3:sta on tarjolla kaksi vaihtoehtoa: esivalmennettu malli, joka on perusmalli seuraavan merkin ennustamiseen, ja ohjeiden mukainen malli, joka on hienosäädetty noudattamaan käyttäjän käskyjä. Molemmissa versioissa kontekstiraja on 8 192 merkkiä.

Dwarkesh Patelin haastattelussa Metan toimitusjohtaja Mark Zuckerberg mainitsi, että he kouluttivat kaksi räätälöityä mallia 24 000 grafiikkaprosessorin klusterilla. 70B-mallia koulutettiin noin 15 triljoonan poletin datalla, eikä se koskaan saavuttanut kyllästymispistettä tai rajoja kykyjensä suhteen. Tämän jälkeen Meta päätti keskittyä muiden mallien kouluttamiseen. Yhtiö paljasti myös, että se työskentelee parhaillaan 400B-parametrin version parissa Llama 3:sta, jonka asiantuntijat, kuten Nvidian Jim Fan, uskovat voivansa suoriutua samalla tavalla kuin GPT-4 Turbo, Claude 3 Opus ja Gemini Ultra MMLU:n, GPQA:n, HumanEvalin ja MATH:n kaltaisissa vertailuarvoissa.

Metan mukaan Llama 3 on arvioitu käyttäen erilaisia vertailukohtia, kuten MMLU (perustutkintotason tiedot), GSM-8K (peruskoulun matematiikka), HumanEval (koodaus), GPQA (tutkintotason kysymykset) ja MATH (matematiikan sanatehtävät). Nämä vertailuarvot osoittavat, että 8B-malli päihittää Googlen Gemma 7B:n ja Mistral 7B Instructin kaltaiset avoimen painotuksen mallit, ja 70B-malli on kilpailukykyinen Gemini Pro 1.5:tä ja Claude 3 Sonnetia vastaan.

Meta raportoi, että Llama 3 -mallia on parannettu koodauksen ymmärtämiskyvyllä Llama 2:n tapaan, ja ensimmäistä kertaa sitä on koulutettu sekä kuvien että tekstin avulla. Sen nykyiset tulokset rajoittuvat kuitenkin tekstiin.

LLaMA 3 -vertailuarvot LLaMA 3 -vertailuarvot

LLaMA 3 -laitteistovaatimukset ja oikeiden instanssien valitseminen AWS EC2:ssa

Koska monet organisaatiot käyttävät AWS:ää tuotantotyömääräänsä, katsotaan, miten LLaMA 3 otetaan käyttöön AWS EC2:ssa.

LLM:ien toteuttamisessa on useita esteitä, kuten VRAM:n (näytönohjaimen muistin) kulutus, päättelynopeus, läpäisykyky ja levytilan käyttö. Tässä skenaariossa meidän on varmistettava, että varaamme AWS EC2:ssa GPU-instanssin, jolla on riittävästi VRAM-kapasiteettia mallimme suorittamisen tukemiseksi.

LLaMA 3 8B vaatii noin 16 Gt levytilaa ja 20 Gt VRAM-muistia (näytönohjaimen muistia) FP16:ssa. LLaMA 3:n voisi tietysti ottaa käyttöön myös suorittimella, mutta viive olisi liian suuri tosielämän tuotantokäyttöön. LLaMA 3 70B vaatii FP16:ssa noin 140 Gt levytilaa ja 160 Gt VRAM-muistia.

20 Gt:n VRAM-muistin hankkiminen LLaMA 3 8B:hen on melko helppoa. Suosittelen, että hankit NVIDIA A10 -näytönohjaimen: tässä näytönohjaimessa on 24 Gt VRAM-muistia, ja se on nopea näytönohjain, joka perustuu Ampere-alustaan. AWS EC2:ssa sinun pitäisi valita G5-instanssi, jotta voit varata A10-näytönohjaimen. G5.xlarge riittää.

LLaMA 3 70B -mallin käyttöönotto on kuitenkin paljon haastavampaa. Yhdelläkään näytönohjaimella ei ole tarpeeksi VRAM-muistia tälle mallille, joten sinun on otettava käyttöön usean näytönohjaimen instanssi. Jos tarjoat AWS:ssä g5.48xlarge-instanssin, saat 192 Gt VRAM-muistia (8 x A10-grafiikkaohjainta), mikä riittää LLaMA 3 70B:lle.

Tällaisessa kokoonpanossa voit odottaa seuraavia latensseja (vasteaikoja): LLaMA 3 8B:ssä 50 merkkiä luodaan 1 sekunnissa ja LLaMA 3 70B:ssä 50 merkkiä luodaan 5 sekunnissa.

Näiden mallien käyttökustannusten pienentämiseksi ja viiveen lisäämiseksi voit tutkia kvantisointitekniikoita, mutta ota huomioon, että tällaiset optimoinnit voivat heikentää mallisi tarkkuutta. Kvantisointi ei kuulu tämän artikkelin aihepiiriin.

Jotta voit tarjota tällaisia instansseja, kirjaudu AWS EC2 -konsoliin ja käynnistä uusi instanssi: valitse NVIDIA deep learning AMI g5.xlarge- tai g5.48xlarge-instanssissa. Älä unohda myös varata riittävästi levytilaa.

Deep Learning AMI G5-instanssissa AWS:ssä

Tuotannon päättely vLLM:n avulla

vLLM on kirjasto, joka on suunniteltu nopeaan ja helppoon LLM:n päättelyyn ja käyttöönottoon. Sen tehokkuus perustuu erilaisiin kehittyneisiin menetelmiin, kuten paged attention -menetelmään, jolla voidaan hallita optimaalisesti attention-avain- ja arvomuistia, saapuvien kyselyjen reaaliaikaiseen käsittelyyn erissä ja yksilöllisiin CUDA-ytimiin.

Lisäksi vLLM tarjoaa suuren mukautuvuuden käyttämällä hajautettua laskentaa (käyttämällä tensoririnnakkaisuutta), reaaliaikaista suoratoistoa ja yhteensopivuutta sekä NVIDIAn että AMD:n näytönohjainten kanssa.

Erityisesti vLLM auttaa suuresti LLaMA 3:n käyttöönotossa, sillä sen avulla voimme käyttää AWS EC2 -instansseja, jotka on varustettu useilla pienikokoisilla NVIDIA A10 -näytönohjaimilla. Tämä on edullista verrattuna yhden suuren näytönohjaimen, kuten NVIDIA A100:n tai H100:n, käyttöön. Lisäksi vLLM parantaa merkittävästi mallimme tehokkuutta jatkuvan eräkohtaisen päättelyn avulla.

vLLM:n käyttöönotto on melko yksinkertaista. Luodaan SSH-yhteys äskettäin luotuun AWS-instanssiin ja asennetaan vLLM pipin avulla:

pip install vllm

Koska aiomme tehdä hajautetun päättelyn vLLM:n avulla 8 x A10-grafiikkapiirillä, myös Rayn asennus on tarpeen:

pip install ray

Jos kohtaat yhteensopivuusongelmia asennuksen aikana, voi olla yksinkertaisempaa kääntää vLLM lähdekoodista tai käyttää niiden Docker-kuvaa: tutustu vLLM:n asennusohjeisiin.

Käynnistä päättelypalvelin

Luodaan nyt Python-optioskriptimme:

from vllm import LLM

# Use LLaMA 3 8B on 1 GPU
llm = LLM("meta-llama/Meta-Llama-3-8B-Instruct")

# Use LLaMA 3 70B on 8 GPUs
# llm = LLM("meta-llama/Meta-Llama-3-70B-Instruct", tensor_parallel_size=8)

print(llm.generate("What are the most popular quantization techniques for LLMs?"))

Voit suorittaa yllä olevan komentosarjan. Jos suoritat tämän skriptin ensimmäistä kertaa, sinun on odotettava, että malli ladataan ja ladataan näytönohjaimeen:

The most popular quantization techniques for Large Language Models (LLMs) are:
1. Integer Quantization
2. Floating-Point Quantization
3. Mixed-Precision Training
4. Knowledge Distillation

Se on melko helppo ymmärtää. Sinun tarvitsee vain säätää tensor_parallel_size arvoa käytössäsi olevien grafiikkasuorittimien määrän mukaan.

Nyt etsimme sopivaa päättelypalvelinta, joka pystyy hallitsemaan lukuisia pyyntöjä ja suorittamaan samanaikaisia päättelyjä. Käynnistetään palvelin:

LLaMA 3 8B:

python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Meta-Llama-3-8B-Instruct

LLaMA 3 70B:

python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Meta-Llama-3-70B-Instruct
--tensor-parallel-size 8

Mallin latautumisen GPU:lle pitäisi kestää enintään 1 minuutti. Sitten voit käynnistää toisen terminaalin ja aloittaa pyyntöjen tekemisen:

curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
    "model": "meta-llama/Meta-Llama-3-8B-Instruct",
    "prompt": "What are the most popular quantization techniques for LLMs?"
}'

Sinulla on nyt oikea tuotantokelpoinen päättelypalvelin, joka voi käsitellä useita rinnakkaisia pyyntöjä jatkuvan panostuksen ansiosta. Jos pyyntöjen määrä on jossain vaiheessa liian suuri, näytönohjain ylikuormittuu. Siinä tapauksessa sinun on kopioitava malli useisiin GPU-instansseihin ja tasapainotettava pyyntöjä (mutta tämä ei kuulu tämän artikkelin aihepiiriin).

Päätelmä

Kuten näet, LLaMA 3:n käyttöönotto tuotantoon ei vaadi monimutkaista koodia vLLM:n kaltaisten päättelypalvelimien ansiosta.

Oikean laitteiston käyttöönotto on kuitenkin haastavaa. Ensinnäkin siksi, että nämä näytönohjaimet ovat erittäin kalliita, mutta myös siksi, että näytönohjaimista on tällä hetkellä maailmanlaajuinen pula. Jos yrität ensimmäistä kertaa tarjota GPU-palvelinta AWS:ssä, sinulla ei ehkä ole lupaa luoda GPU-palvelinta. Siinä tapauksessa sinun on otettava yhteyttä tukeen ja selitettävä käyttötapauksesi. Tässä artikkelissa käytimme AWS EC2:ta, mutta muitakin toimittajia on toki saatavilla (Azure, GCP, OVH, Scaleway...).

Jos et ole kiinnostunut ottamaan LLaMA 3:a käyttöön itse, suosittelemme NLP Cloud API:n käyttämistä. Tämä vaihtoehto voi olla tehokkaampi ja mahdollisesti paljon kustannustehokkaampi kuin oman LLaMA 3 -infrastruktuurin hallinta. Kokeile LLaMA 3:a NLP Cloudissa nyt!

Jos sinulla on kysyttävää LLaMA 3:sta ja tekoälyn käyttöönotosta yleensä, älä epäröi kysyä meiltä, on aina ilo auttaa!

Julien
teknologiajohtaja, NLP Cloud