Máte problémy s AI alebo vývojom celého balíka? Naši odborníci sú tu, aby vám poradili: poradenstvo na mieru, technická integrácia a ďalšie služby. Obráťte sa na [email protected].

Ako nainštalovať a nasadiť LLaMA 3 do výroby?

Spoločnosť Meta pred niekoľkými dňami vydala generatívny model umelej inteligencie LLaMA 3, ktorý už teraz vykazuje pôsobivé schopnosti.

Pomocou tohto sprievodcu krok za krokom sa dozviete, ako nainštalovať a nasadiť LLaMA 3 do výroby. Od hardvérových požiadaviek až po nasadenie a škálovanie - venujeme sa všetkému, čo potrebujete vedieť na bezproblémovú implementáciu.

LLaMA 3

Úvod do LLaMA 3

Spoločnosť Meta predstavila úvodné verzie svojho open-source modelu umelej inteligencie Llama 3, ktorý možno využiť na tvorbu textov, programovanie alebo chatboty. Okrem toho spoločnosť Meta oznámila svoje plány na začlenenie LLaMA 3 do svojich primárnych aplikácií pre sociálne médiá. Cieľom tohto kroku je konkurovať iným asistentom AI, ako sú ChatGPT od OpenAI, Copilot od Microsoftu a Gemini od Googlu.

Podobne ako Llama 2, aj Llama 3 vyniká ako voľne dostupný veľký jazykový model s otvorenými váhami, ktorý ponúka popredná spoločnosť zaoberajúca sa umelou inteligenciou (aj keď ho nemožno označiť za "open source" v bežnom zmysle slova).

V súčasnosti si môžete Llama 3 bezplatne stiahnuť z webovej stránky spoločnosti Meta v dvoch rôznych veľkostiach parametrov: 8 miliárd (8B) a 70 miliárd (70B). Používatelia sa môžu zaregistrovať, aby získali prístup k týmto verziám. Llama 3 sa ponúka v dvoch variantoch: predtrénovaný, čo je základný model na predpovedanie ďalších tokenov, a inštrukčne vyladený, ktorý je jemne vyladený na dodržiavanie príkazov používateľa. Obe verzie majú kontextový limit 8 192 tokenov.

V rozhovore s Dwarkeshom Patelom Mark Zuckerberg, generálny riaditeľ spoločnosti Meta, uviedol, že vycvičili dva vlastné modely pomocou klastra s 24 000 grafickými procesormi. Model 70B bol vycvičený s približne 15 biliónmi tokenov údajov a nikdy nedosiahol bod nasýtenia alebo limit svojich možností. Potom sa spoločnosť Meta rozhodla sústrediť na trénovanie ďalších modelov. Spoločnosť tiež prezradila, že v súčasnosti pracuje na verzii Llama 3 so 400B parametrami, ktorá by podľa odborníkov, ako je Jim Fan z Nvidie, mohla dosahovať podobné výsledky ako GPT-4 Turbo, Claude 3 Opus a Gemini Ultra v benchmarkoch, ako sú MMLU, GPQA, HumanEval a MATH.

Podľa spoločnosti Meta sa Llama 3 hodnotila pomocou rôznych kritérií vrátane MMLU (vedomosti na úrovni vysokoškolákov), GSM-8K (matematika pre základné školy), HumanEval (kódovanie), GPQA (otázky pre absolventov) a MATH (slovné úlohy z matematiky). Tieto porovnávacie testy ukazujú, že model 8B prekonáva modely s otvorenými váhami, ako sú Gemma 7B a Mistral 7B Instruct spoločnosti Google, a model 70B je konkurencieschopný voči Gemini Pro 1.5 a Claude 3 Sonnet.

Spoločnosť Meta uvádza, že model Llama 3 bol vylepšený o schopnosť porozumieť kódovaniu, podobne ako model Llama 2, a po prvýkrát bol vycvičený pomocou obrázkov aj textu. Jeho súčasný výstup je však obmedzený na text.

Porovnávacie testy LLaMA 3 Porovnávacie testy LLaMA 3

Požiadavky na hardvér LLaMA 3 a výber správnych inštancií na AWS EC2

Keďže mnohé organizácie používajú AWS pre svoje produkčné pracovné zaťaženia, pozrime sa, ako nasadiť LLaMA 3 na AWS EC2.

Pri implementácii LLM existuje viacero prekážok, napríklad spotreba VRAM (pamäte GPU), rýchlosť odvodzovania, priepustnosť a využitie diskového priestoru. V tomto scenári musíme zabezpečiť, aby sme na AWS EC2 pridelili inštanciu GPU s dostatočnou kapacitou VRAM na podporu vykonávania našich modelov.

LLaMA 3 8B vyžaduje približne 16 GB miesta na disku a 20 GB VRAM (pamäte GPU) v FP16. LLaMA 3 by ste samozrejme mohli nasadiť na CPU, ale latencia by bola príliš vysoká pre reálne produkčné využitie. Pokiaľ ide o LLaMA 3 70B, vyžaduje približne 140 GB diskového priestoru a 160 GB VRAM v FP16.

Získať 20 GB VRAM pre LLaMA 3 8B je pomerne jednoduché. Odporúčam vám zabezpečiť grafický procesor NVIDIA A10: tento grafický procesor sa dodáva s 24 GB VRAM a je to rýchly grafický procesor založený na platforme Ampere. V systéme AWS EC2 by ste mali vybrať inštanciu G5, aby ste mohli zabezpečiť GPU A10. Bude stačiť inštancia g5.xlarge.

Nasadenie modelu LLaMA 3 70B je však oveľa náročnejšie. Žiadny GPU nemá dostatok VRAM pre tento model, takže budete musieť zabezpečiť inštanciu s viacerými GPU. Ak poskytnete inštanciu g5.48xlarge na AWS, získate 192 GB VRAM (8 x GPU A10), čo bude stačiť pre LLaMA 3 70B.

V takejto konfigurácii môžete očakávať nasledujúce oneskorenia (časy odozvy): 50 tokenov vygenerovaných za 1 sekundu pre LLaMA 3 8B a 50 tokenov vygenerovaných za 5 sekúnd pre LLaMA 3 70B.

S cieľom znížiť prevádzkové náklady týchto modelov a zvýšiť latenciu môžete preskúmať techniky kvantizácie, ale uvedomte si, že takéto optimalizácie môžu poškodiť presnosť vášho modelu. Kvantovanie je mimo rozsahu tohto článku.

Ak chcete zabezpečiť takéto inštancie, prihláste sa do konzoly AWS EC2 a spustite novú inštanciu: vyberte NVIDIA deep learning AMI na inštancii g5.xlarge alebo g5.48xlarge. Nezabudnite zabezpečiť aj dostatok miesta na disku.

Deep Learning AMI na inštancii G5 na AWS

Odvodzovanie produkcie pomocou vLLM

vLLM je knižnica určená na rýchle a jednoduché odvodzovanie a nasadenie LLM. Jej efektívnosť sa pripisuje rôznym sofistikovaným metódam vrátane stránkovanej pozornosti na optimálnu správu pamäte kľúčov a hodnôt pozornosti, spracovania prichádzajúcich dotazov v dávkach v reálnom čase a personalizovaných jadier CUDA.

Okrem toho vLLM poskytuje vysoký stupeň prispôsobivosti vďaka využitiu distribuovaného výpočtu (s využitím tenzorového paralelizmu), streamovania v reálnom čase a kompatibility s grafickými kartami NVIDIA aj AMD.

Konkrétne vLLM výrazne pomôže pri nasadení LLaMA 3, pretože nám umožní využívať inštancie AWS EC2 vybavené niekoľkými kompaktnými grafickými procesormi NVIDIA A10. To je výhodnejšie ako použitie jedného veľkého GPU, napríklad NVIDIA A100 alebo H100. Okrem toho vLLM výrazne zvýši efektivitu nášho modelu vďaka nepretržitej dávkovej inferencii.

Nastavenie vLLM je pomerne jednoduché. Vytvorme SSH pripojenie k našej nedávno vytvorenej inštancii AWS a nainštalujme vLLM pomocou pip:

pip install vllm

Keďže plánujeme vykonávať distribuovanú inferenciu pomocou vLLM na 8 x GPU A10, je potrebná aj inštalácia Ray:

pip install ray

V prípade, že sa pri inštalácii stretnete s problémami s kompatibilitou, môže byť pre vás jednoduchšie skompilovať vLLM zo zdrojových kódov alebo použiť ich obraz Docker: pozrite si návod na inštaláciu vLLM.

Spustenie inferenčného servera

Teraz vytvorme náš inferenčný skript v jazyku Python:

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?"))

Vyššie uvedený skript môžete spustiť. Ak tento skript spúšťate prvýkrát, musíte počkať, kým sa model stiahne a načíta do GPU, potom sa zobrazí niečo podobné:

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

Je to celkom jednoduché na pochopenie. Jednoducho musíte nastaviť tensor_parallel_size podľa počtu GPU, ktoré máte.

Teraz sa snažíme iniciovať vytvorenie vhodného inferenčného servera, ktorý by bol schopný spravovať množstvo požiadaviek a vykonávať simultánne inferencie. Na začiatok spustite server:

Pre LLaMA 3 8B:

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

Pre LLaMA 3 70B:

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

Načítanie modelu na GPU by malo trvať maximálne 1 minútu. Potom môžete spustiť druhý terminál a začať zadávať nejaké požiadavky:

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?"
}'

Teraz máte správny inferenčný server pripravený na produkciu, ktorý dokáže spracovať mnoho paralelných požiadaviek vďaka nepretržitému dávkovaniu. V určitom okamihu, ak je počet požiadaviek príliš vysoký, bude však GPU preťažený. V takom prípade budete musieť model replikovať na niekoľkých inštanciách GPU a vyrovnávať záťaž požiadaviek (to však už je mimo rozsahu tohto článku).

Záver

Ako vidíte, nasadenie LLaMA 3 do produkcie si nevyžaduje žiadny zložitý kód vďaka inferenčným serverom, ako je vLLM.

Zabezpečenie správneho hardvéru je však náročné. Jednak preto, že tieto grafické procesory sú veľmi drahé, ale aj preto, že v súčasnosti je ich nedostatok na celom svete. Ak sa o zabezpečenie servera s GPU v AWS pokúšate prvýkrát, možno nemáte povolenie na vytvorenie servera s GPU. V takom prípade budete musieť kontaktovať podporu a vysvetliť svoj prípad použitia. V tomto článku sme použili AWS EC2, ale k dispozícii sú samozrejme aj iní dodávatelia (Azure, GCP, OVH, Scaleway...).

Ak nemáte záujem nasadiť LLaMA 3 sami, odporúčame vám využiť naše rozhranie API NLP Cloud. Táto možnosť môže byť efektívnejšia a potenciálne oveľa hospodárnejšia ako správa vlastnej infraštruktúry LLaMA 3. Vyskúšajte LLaMA 3 na NLP Cloud teraz!

Ak máte otázky týkajúce sa LLaMA 3 a nasadenia AI vo všeobecnosti, neváhajte sa nás opýtať, vždy vám radi pomôžeme!

Julien
Technický riaditeľ spoločnosti NLP Cloud