Pirms dažām dienām Meta izlaida LLaMA 3 ģeneratīvo mākslīgā intelekta modeli, un tas jau uzrāda iespaidīgas iespējas.
Uzziniet, kā instalēt un izvietot LLaMA 3 ražošanā, izmantojot šo soli pa solim izstrādāto rokasgrāmatu. Sākot ar aparatūras prasībām un beidzot ar izvietošanu un mērogošanu, mēs aplūkojam visu, kas jums jāzina, lai ieviešana noritētu raiti.
Uzņēmums Meta ir ieviesis sākotnējās versijas savam Llama 3 atvērtā koda mākslīgā intelekta modelim, ko var izmantot teksta radīšanai, programmēšanai vai tērzēšanas robotiem. Turklāt Meta paziņoja par plāniem iekļaut LLaMA 3 savās galvenajās sociālo mediju lietojumprogrammās. Šā soļa mērķis ir konkurēt ar citiem mākslīgā intelekta asistentiem, piemēram, OpenAI ChatGPT, Microsoft Copilot un Google Gemini.
Līdzīgi kā Llama 2, arī Llama 3 izceļas kā brīvi pieejams liels valodas modelis ar atvērtiem svariem, ko piedāvā vadošais mākslīgā intelekta uzņēmums (lai gan tas nav kvalificējams kā "atvērtā koda" tradicionālajā izpratnē).
Pašlaik Llama 3 var lejupielādēt bez maksas no Meta vietnes divos dažādos parametru izmēros: 8 miljardi (8B) un 70 miljardi (70B). Lietotāji var reģistrēties, lai piekļūtu šīm versijām. Llama 3 tiek piedāvāts divos variantos: iepriekš apmācīts, kas ir pamata modelis nākamā žetona prognozēšanai, un ar instrukcijām pielāgots, kas ir precīzi pielāgots, lai ievērotu lietotāja komandas. Abām versijām ir konteksta ierobežojums - 8 192 žetoni.
Intervijā ar Dvarkešu Patelu (Dwarkesh Patel) Meta vadītājs Marks Cukerbergs (Mark Zuckerberg) minēja, ka viņi ir apmācījuši divus īpaši izveidotus modeļus, izmantojot 24 000 GPU klasteri. 70B modelis tika apmācīts ar aptuveni 15 triljoniem žetonu datu, un tas nekad nav sasniedzis piesātinājuma punktu vai savu iespēju robežu. Pēc tam Meta nolēma pievērsties citu modeļu apmācībai. Uzņēmums arī atklāja, ka pašlaik tiek strādāts pie Llama 3 versijas ar 400B parametriem, kas, pēc ekspertu, piemēram, Nvidia pārstāvja Džima Fana domām, varētu uzrādīt līdzīgus rezultātus kā GPT-4 Turbo, Claude 3 Opus un Gemini Ultra tādos etalonmērījumos kā MMLU, GPQA, HumanEval un MATH.
Saskaņā ar Meta datiem Llama 3 ir novērtēta, izmantojot dažādus kritērijus, tostarp MMLU (bakalaura līmeņa zināšanas), GSM-8K (pamatskolas matemātika), HumanEval (kodēšana), GPQA (augstskolas līmeņa jautājumi) un MATH (matemātikas vārdu uzdevumi). Šie kritēriji liecina, ka 8B modelis pārspēj tādus atvērtā svara modeļus kā Google Gemma 7B un Mistral 7B Instruct, un 70B modelis ir konkurētspējīgs ar Gemini Pro 1.5 un Claude 3 Sonnet.
Meta ziņo, ka Llama 3 modelis ir uzlabots un spēj saprast kodēšanu, līdzīgi kā Llama 2, un pirmo reizi tas ir apmācīts, izmantojot gan attēlus, gan tekstu. Tomēr tā pašreizējā produkcija aprobežojas tikai ar tekstu.
LLaMA 3 etaloni
Tā kā daudzas organizācijas izmanto AWS savām ražošanas slodzēm, aplūkosim, kā izvietot LLaMA 3 uz AWS EC2.
LLM ieviešanai ir vairāki šķēršļi, piemēram, VRAM (GPU atmiņas) patēriņš, secinājumu izdarīšanas ātrums, caurlaidspēja un diska vietas izmantošana. Šajā scenārijā mums ir jānodrošina, ka AWS EC2 tiek piešķirts GPU gadījums ar pietiekamu VRAM ietilpību, lai nodrošinātu mūsu modeļu izpildi.
LLaMA 3 8B ir nepieciešams aptuveni 16 GB diska vietas un 20 GB VRAM (GPU atmiņas) FP16. LLaMA 3, protams, varētu izvietot uz CPU, taču latentums būtu pārāk liels, lai to izmantotu reālā ražošanā. LLaMA 3 70B ir nepieciešams aptuveni 140 GB diska vietas un 160 GB VRAM FP16.
Iegādāties 20 GB VRAM atmiņas LLaMA 3 8B ir diezgan vienkārši. Es iesaku nodrošināt NVIDIA A10 GPU: šim GPU ir 24 GB VRAM, un tas ir ātrs GPU, kura pamatā ir Ampere platforma. AWS EC2 ir jāizvēlas G5 instance, lai nodrošinātu A10 GPU. Pietiek ar g5.xlarge.
LLaMA 3 70B modeļa izvietošana ir daudz sarežģītāka. Nevienam GPU nav pietiekami daudz VRAM šim modelim, tāpēc jums būs jānodrošina vairāku GPU instance. Ja AWS nodrošināsiet g5.48xlarge instanci, iegūsiet 192 GB VRAM (8 x A10 GPU), kas būs pietiekami LLaMA 3 70B.
Šādā konfigurācijā var sagaidīt šādus kavējumus (atbildes laikus): LLaMA 3 8B gadījumā 50 žetoni tiek ģenerēti 1 sekundē, bet LLaMA 3 70B gadījumā 50 žetoni tiek ģenerēti 5 sekundēs.
Lai samazinātu šo modeļu darbības izmaksas un palielinātu latentumu, varat izpētīt kvantizācijas paņēmienus, taču jāapzinās, ka šāda optimizācija var kaitēt modeļa precizitātei. Kvantizācija neietilpst šī raksta darbības jomā.
Lai nodrošinātu šādus gadījumus, autorizējieties AWS EC2 konsoles logā un izveidojiet jaunu gadījumu: izvēlieties NVIDIA dziļās mācīšanās AMI, izmantojot g5.xlarge vai g5.48xlarge gadījumu. Neaizmirstiet nodrošināt arī pietiekami daudz vietas diskā.
vLLM ir bibliotēka, kas paredzēta ātrai un vienkāršai LLM secinājumu izdarīšanai un ieviešanai. Tās efektivitāte ir saistīta ar dažādām sarežģītām metodēm, tostarp uzmanības atslēgas un vērtības atmiņas optimālai pārvaldībai, reāllaika ienākošo pieprasījumu apstrādi partijās un personalizētiem CUDA kodoliem.
Turklāt vLLM nodrošina augstu pielāgojamības pakāpi, izmantojot sadalītos aprēķinus (izmantojot tenzoru paralēlismu), reāllaika straumēšanu un saderību gan ar NVIDIA, gan AMD grafiskajām kartēm.
Konkrēti, vLLM ievērojami palīdzēs LLaMA 3 izvēršanā, ļaujot mums izmantot AWS EC2 gadījumus, kas aprīkoti ar vairākiem kompaktiem NVIDIA A10 GPU. Tas ir izdevīgāk nekā izmantot vienu lielu GPU, piemēram, NVIDIA A100 vai H100. Turklāt vLLM ievērojami uzlabos mūsu modeļa efektivitāti, pateicoties nepārtrauktai sērijveida secināšanai.
VLLM iestatīšana ir diezgan vienkārša. Izveidosim SSH savienojumu ar mūsu nesen izveidoto AWS gadījumu un instalēsim vLLM, izmantojot pip:
pip install vllm
Tā kā mēs plānojam veikt izkliedētu secinājumu, izmantojot vLLM uz 8 x A10 GPU, ir nepieciešama arī Ray instalēšana:
pip install ray
Ja instalēšanas laikā sastopaties ar savietojamības problēmām, jums var būt vienkāršāk kompilēt vLLM no avota vai izmantot to Docker attēlu: apskatiet vLLM uzstādīšanas instrukcijas.
Tagad izveidosim mūsu Python secinājumu skriptu:
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?"))
Varat palaist iepriekš minēto skriptu. Ja šo skriptu palaižat pirmo reizi, jums būs jāgaida, kamēr modelis tiks lejupielādēts un ielādēts GPU, un pēc tam saņemsiet kaut ko līdzīgu šim:
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
Tas ir pavisam vienkārši saprotams. Jums vienkārši jāpielāgo tensor_parallel_size atbilstoši jūsu rīcībā esošo GPU skaitam.
Tagad mēs vēlamies izveidot piemērotu secinājumu serveri, kas spēj pārvaldīt daudzus pieprasījumus un veikt vienlaicīgus secinājumus. Lai sāktu, palaidiet serveri:
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
Modeļa ielādei GPU vajadzētu aizņemt līdz 1 minūtei. Pēc tam varat palaist otru termināli un sākt veikt dažus pieprasījumus:
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?"
}'
Tagad jums ir izveidots atbilstošs ražošanai gatavs secinājumu serveris, kas, pateicoties nepārtrauktai pakešu veidošanai, var apstrādāt daudzus paralēlus pieprasījumus. Tomēr kādā brīdī, ja pieprasījumu skaits būs pārāk liels, GPU tiks pārslogots. Tādā gadījumā jums būs nepieciešams replicēt modeli vairākos GPU eksemplāros un sabalansēt pieprasījumu slodzi (bet tas neietilpst šī raksta darbības jomā).
Kā redzat, LLaMA 3 ieviešanai ražošanā nav nepieciešams sarežģīts kods, pateicoties tādiem inferences serveriem kā vLLM.
Tomēr pareizās aparatūras nodrošināšana ir sarežģīta. Pirmkārt, tāpēc, ka šie GPU ir ļoti dārgi, kā arī tāpēc, ka pašlaik pasaulē trūkst GPU. Ja jūs pirmo reizi mēģināt nodrošināt GPU serveri AWS, iespējams, jums nav atļaujas izveidot GPU serveri. Tādā gadījumā jums būs jāsazinās ar atbalsta dienestu un jāpaskaidro savs izmantošanas gadījums. Šajā rakstā mēs izmantojām AWS EC2, bet, protams, ir pieejami arī citi piedāvātāji (Azure, GCP, OVH, Scaleway...).
Ja neesat ieinteresēts pats izvietot LLaMA 3, iesakām izmantot mūsu NLP Cloud API. Šī iespēja var būt efektīvāka un, iespējams, daudz rentablāka nekā pašam pārvaldīt LLaMA 3 infrastruktūru. Izmēģiniet LLaMA 3 uz NLP Cloud jau tagad!
Ja jums ir jautājumi par LLaMA 3 un mākslīgā intelekta ieviešanu kopumā, lūdzu, nekautrējieties mums jautāt, mums vienmēr ir prieks palīdzēt!
Julien
NLP Cloud tehniskais direktors