Meta avaldas paar päeva tagasi LLaMA 3 genereeriva tehisintellekti mudeli ja see näitab juba praegu muljetavaldavaid võimeid.
Selles samm-sammult koostatud juhendis saate teada, kuidas LLaMA 3 paigaldada ja kasutusele võtta. Alates riistvaranõuetest kuni kasutuselevõtu ja skaleerimiseni käsitleme kõike, mida peate teadma sujuvaks rakendamiseks.
Meta on tutvustanud oma Llama 3 avatud lähtekoodiga tehisintellekti mudeli esimesi versioone, mida saab kasutada teksti loomiseks, programmeerimiseks või juturobotite loomiseks. Lisaks teatas Meta oma plaanist lisada LLaMA 3 oma esmastesse sotsiaalmeedia rakendustesse. Selle sammu eesmärk on konkureerida teiste AI-assistentidega, nagu OpenAI ChatGPT, Microsofti Copilot ja Google'i Gemini.
Sarnaselt Llama 2-le paistab Llama 3 silma kui vabalt ligipääsetav avatud kaaludega suur keelemudel, mida pakub juhtiv tehisintellekti ettevõte (kuigi see ei kvalifitseeru "avatud lähtekoodiga" tavapärases mõttes).
Praegu saab Llama 3 tasuta alla laadida Meta veebilehelt kahes erinevas parameetris: 8 miljardit (8B) ja 70 miljardit (70B). Kasutajad saavad nende versioonide kasutamiseks registreeruda. Llama 3 on saadaval kahes variandis: eelnevalt treenitud, mis on järgmise sümboli ennustamiseks mõeldud baasmudel, ja käskudega häälestatud, mis on peenhäälestatud kasutaja käskude järgimiseks. Mõlemal versioonil on kontekstilimiit 8192 märki.
Dwarkesh Patelile antud intervjuus mainis Meta tegevjuht Mark Zuckerberg, et nad treenisid kaks kohandatud mudelit, kasutades 24 000 GPU klastrit. 70B mudelit treeniti umbes 15 triljoni tokeni andmetega ning see ei jõudnud kunagi küllastumispunkti või oma võimete piirini. Seejärel otsustas Meta keskenduda teiste mudelite koolitamisele. Ettevõte avaldas ka, et nad töötavad praegu Llama 3 400B parameetriga versiooni kallal, mis ekspertide, näiteks Nvidia Jim Fan'i arvates võiks sarnaselt GPT-4 Turbo, Claude 3 Opus ja Gemini Ultraga töötada sellistes võrdlusuuringutes nagu MMLU, GPQA, HumanEval ja MATH.
Meta andmetel on Llama 3 hinnatud erinevate kriteeriumide abil, sealhulgas MMLU (bakalaureuse taseme teadmised), GSM-8K (matemaatika klassiõpik), HumanEval (kodeerimine), GPQA (kõrghariduse tasemel küsimused) ja MATH (matemaatika sõnaprobleemid). Need võrdlusuuringud näitavad, et 8B mudel edestab selliseid avatud kaaluga mudeleid nagu Google'i Gemma 7B ja Mistral 7B Instruct ning 70B mudel on konkurentsivõimeline Gemini Pro 1.5 ja Claude 3 Sonnet'i vastu.
Meta teatab, et Llama 3 mudelit on täiustatud, et see suudab sarnaselt Llama 2-ga mõista kodeeringut ning esmakordselt on seda koolitatud nii piltide kui ka teksti abil. Siiski piirdub selle praegune väljund ainult tekstiga.
LLaMA 3 võrdlusnäitajad
Kuna paljud organisatsioonid kasutavad AWS-i oma tootmiskoormuste jaoks, vaatame, kuidas LLaMA 3 AWS EC2-s kasutusele võtta.
LLMide rakendamisel on mitmeid takistusi, näiteks VRAMi (GPU mälu) tarbimine, järelduste tegemise kiirus, läbilaskevõime ja kettaruumi kasutamine. Selle stsenaariumi puhul peame tagama, et me eraldame AWS EC2-s GPU-instantsi, millel on meie mudelite täitmise toetamiseks piisav VRAMi maht.
LLaMA 3 8B vajab FP16-s umbes 16 GB kettaruumi ja 20 GB VRAMi (GPU mälu). Loomulikult võiks LLaMA 3 kasutada ka protsessoril, kuid selle latentsus oleks liiga suur, et seda saaks kasutada reaalses tootmises. LLaMA 3 70B puhul on FP16-s vaja umbes 140 GB kettaruumi ja 160 GB VRAMi.
LLaMA 3 8B jaoks 20 GB VRAMi hankimine on üsna lihtne. Soovitan teil hankida NVIDIA A10 GPU: see GPU on varustatud 24 GB VRAMiga ja see on kiire GPU, mis põhineb Ampere'i platvormil. AWS EC2-s peaksite valima G5-instantsi, et A10 GPU-d varustada. Piisab g5.xlarge.
LLaMA 3 70B mudeli kasutuselevõtt on aga palju keerulisem. Ühelgi GPU-l ei ole selle mudeli jaoks piisavalt VRAMi, seega peate looma mitme GPUga instantsi. Kui varustate AWSis g5.48xlarge instantsi, saate 192 GB VRAMi (8 x A10 GPU), millest piisab LLaMA 3 70B jaoks.
Sellise konfiguratsiooni puhul on oodata järgmisi viivitusi (reageerimisaeg): LLaMA 3 8B puhul genereeritakse 50 märki 1 sekundiga ja LLaMA 3 70B puhul 50 märki 5 sekundiga.
Nende mudelite tegevuskulude vähendamiseks ja latentsuse suurendamiseks võite uurida kvantsioneerimistehnikaid, kuid olge teadlik, et sellised optimeerimised võivad kahjustada teie mudeli täpsust. Kvantimine ei kuulu käesoleva artikli reguleerimisalasse.
Selliste instantside loomiseks logige sisse oma AWS EC2 konsooli ja käivitage uus instants: valige NVIDIA deep learning AMI, g5.xlarge või g5.48xlarge instantsil. Ärge unustage ka piisava kettaruumi eraldamist.
vLLM on raamatukogu, mis on loodud kiireks ja lihtsaks LLM-i järeldamiseks ja kasutuselevõtuks. Selle tõhusus on tingitud erinevatest keerukatest meetoditest, sealhulgas tähelepanu paged attention optimaalse tähelepanu võtme ja väärtuse mälu haldamiseks, saabuvate päringute reaalajas töötlemiseks partiidena ja personaliseeritud CUDA kernelid.
Lisaks pakub vLLM suurt kohanemisvõimet, kasutades hajutatud arvutusi (kasutades tensorparalleelsust), reaalajas voogedastust ja ühilduvust nii NVIDIA kui ka AMD graafikakaartidega.
Konkreetselt aitab vLLM oluliselt kaasa LLaMA 3 kasutuselevõtule, võimaldades meil kasutada AWS EC2 instantse, mis on varustatud mitme kompaktse NVIDIA A10 GPUga. See on eelis võrreldes ühe suure GPU, näiteks NVIDIA A100 või H100, kasutamisega. Lisaks suurendab vLLM meie mudeli tõhusust märkimisväärselt pideva partii järelduste tegemise kaudu.
vLLM-i seadistamine on üsna lihtne. Luuakse SSH-ühendus meie äsja loodud AWS-i instantsiga ja paigaldatakse vLLM pipi abil:
pip install vllm
Kuna me kavatseme teha jaotatud järeldusi vLLM-i abil 8 x A10 GPU-l, on vaja ka Ray installida:
pip install ray
Kui teil tekib paigaldamisel ühilduvusprobleeme, võib olla lihtsam vLLM-i lähtekoodist kompileerida või kasutada nende Docker-kujutist: vaadake vLLMi paigaldusjuhendit.
Nüüd loome oma Pythonist järeldusskripti:
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?"))
Võite käivitada ülaltoodud skripti. Kui käivitate selle skripti esimest korda, peate ootama, kuni mudel laetakse alla ja laetakse GPU-sse, seejärel saate midagi sellist:
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
Seda on üsna lihtne mõista. Teil tuleb lihtsalt kohandada tensor_parallel_size vastavalt teie käsutuses olevate GPUde arvule.
Nüüd tahame algatada sobiva järelduste serveri, mis suudab hallata arvukaid päringuid ja teostada samaaegselt järeldusi. Alustamiseks käivitage server:
LLaMA 3 8B puhul:
python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Meta-Llama-3-8B-Instruct
LLaMA 3 70B puhul:
python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Meta-Llama-3-70B-Instruct
--tensor-parallel-size 8
Mudeli laadimine GPU-le peaks võtma kuni 1 minut. Seejärel võite käivitada teise terminali ja alustada päringute tegemist:
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?"
}'
Nüüd on teil korralik tootmisvalmis järelduste server, mis suudab tänu pidevale pakkimisele käsitleda palju paralleelseid päringuid. Kui päringute arv on liiga suur, siis on GPU mingil hetkel siiski ülekoormatud. Sellisel juhul tuleb mudelit mitmel GPU instantsil korrata ja päringud koormuse tasakaalustada (kuid see ei kuulu käesoleva artikli reguleerimisalasse).
Nagu näete, ei nõua LLaMA 3 juurutamine tootmisse mingit keerulist koodi tänu vLLMi-sugustele järeldusserveritele.
Õige riistvara hankimine on aga keeruline. Esiteks sellepärast, et need GPUd on väga kallid, aga ka sellepärast, et GPUdest on praegu ülemaailmselt puudus. Kui te üritate esimest korda AWSis GPU-serverit pakkuda, siis ei pruugi teil olla luba GPU-serveri loomiseks. Sellisel juhul peate pöörduma klienditoe poole ja selgitama oma kasutusjuhtumit. Selles artiklis kasutasime AWS EC2-d, kuid loomulikult on saadaval ka teised pakkujad (Azure, GCP, OVH, Scaleway...).
Kui te ei ole huvitatud LLaMA 3 ise kasutusele võtmisest, soovitame kasutada meie NLP Cloud API-d. See võimalus võib olla tõhusam ja potentsiaalselt palju kuluefektiivsem kui oma LLaMA 3 infrastruktuuri haldamine. Proovi LLaMA 3 NLP Cloudis nüüd!
Kui teil on küsimusi LLaMA 3 ja AI kasutuselevõtu kohta üldiselt, küsige meilt julgelt, meil on alati hea meel aidata!
Julien
NLP Cloudi tehnoloogiajuht