Võitlevad tehisintellekti või täieliku arendusega? Meie eksperdid on siin, et teid juhendada: kohandatud nõuanded, tehniline integratsioon ja palju muud. Võtke ühendust aadressil [email protected].

LLaMA 3, Mistral ja Mixtrali kasutuselevõtt AWS EC2s koos vLLMiga

Aastal 2023 on avaldatud palju arenenud avatud lähtekoodiga LLMi, kuid nende tehisintellekti mudelite kasutuselevõtt tootmisse on endiselt tehniline väljakutse. Selles artiklis näitame, kuidas võtta kasutusele mõned parimad LLMid AWS EC2-s: LLaMA 3 70B, Mistral 7B ja Mixtral 8x7B. Kasutame täiustatud järeldusmootorit, mis toetab partii järeldamist, et maksimeerida läbilaskevõimet: vLLM.

vLLM

LLaMA 3, Mistral ja Mixtral

Meta on loonud ja käivitanud suurte keelemudelite (LLM) sarja LLaMA 3, mis sisaldab erinevaid genereerivaid tekstimudeleid, mis on eelnevalt treenitud ja peenhäälestatud. Need mudelid on erineva suurusega, nende parameetrid ulatuvad 7 miljardist kuni 70 miljardini.

Mistral AI, idufirma, mille asutajateks on Google'i DeepMindis ja Meta's kogemustega isikud, tegi märkimisväärse sisenemise elukestva õppe maailma Mistral 7B ja seejärel Mixtral 8x7B.

Mistral 7B on eriti muljetavaldav oma jõudluse poolest. Erinevates testides on see edestanud Llama2-13B ja isegi ületanud Llama1-34B mitmetes näitajates. See viitab sellele, et Mistral 7B pakub sarnaseid või paremaid võimeid oluliselt väiksema arvutusülesandega. Kodeerimisülesannete puhul konkureerib Mistral 7B CodeLlama 7B-ga ning selle kompaktne suurus 13,4 GB võimaldab seda käivitada tavamasinates.

Mixtral 8x7B on kohandatav ja kiire mudel, mis sobib erinevateks rakendusteks. See töötab kuus korda kiiremalt ja vastab või ületab LLaMA 3 70B jõudlust kõigis testimõõdikutes. See mudel toetab mitut keelt ja omab loomupärast kodeerimisvõimet. See suudab hallata kuni 32k tokeni pikkuseid jadasid.

Kõik need mudelid on avatud lähtekoodiga ja neid saab kasutada oma serveris, kui teil õnnestub saada juurdepääs õigele riistvarale. Vaatame, kuidas neid AWS EC2-s vLLM-i abil kasutusele võtta.

Partii järeldus ja mitme GPU koos vLLMiga

vLLM on kiire ja kasutajasõbralik raamatukogu, mis on kohandatud tõhusaks LLM-järelduseks ja kasutuselevõtuks. VLLM-i jõudlus tuleneb mitmetest täiustatud tehnikatest, nagu näiteks tähelepanu leheküljejuhtimine efektiivseks tähelepanu võtme ja väärtuse mäluhalduseks, saabuvate päringute partiitöötlus reaalajas ja kohandatud CUDA kernelid.

Lisaks pakub vLLM head paindlikkust tänu hajutatud järeldustele (tensorparallelismi kaudu), väljundvoole ja nii NVIDIA kui ka AMD GPU arhitektuuride kohandamisele.

Eelkõige on vLLM väga kasulik LLaMA 3, Mistrali ja Mixtrali kasutuselevõtmisel, sest see võimaldab meil kasutada meie mudeleid AWS EC2 instantsidel, kuhu on integreeritud mitu väiksemat GPU-d (nagu NVIDIA A10), ühe suure GPU asemel (nagu NVIDIA A100 või H100). Samuti võimaldab vLLM meil tänu partii järelduste tegemisele oluliselt suurendada meie mudeli läbilaskevõimet.

Õige riistvara seadistamine AWS EC2s

Elukestva õppejõu rakendamine on mitmel põhjusel keeruline: VRAM (GPU mälu) kasutamine, järelduste tegemise kiirus, läbilaskevõime, kettaruumi kasutamine... Siinkohal peame veenduma, et me varustame AWS EC2-s GPU-instantsi, millel on piisavalt VRAMi meie mudelite käivitamiseks.

G5 instantsid on hea valik, sest need annavad teile juurdepääsu kaasaegsetele NVIDIA A10 GPUdele ja võivad skaleeruda kuni 192 GB VRAMini (vt g5.48xlarge instants), jäädes samas üsna kulutõhusaks.

Mistral 7B on kõige lihtsamini kasutatav mudel, kuna see nõuab umbes 14 GB VRAMi. Seejärel tuleb Mixtral 8x7B 110 GB ja LLaMA 3 70B 140 GB. Siinkohal arvestame ainult fp16, mitte fp32, ja me ei kasuta mingit kvantimist.

Järelikult võib Mistral 7B töötada g5.xlarge instantsil, kuid Mixtral 8x7B ja LLaMA 3 70B nõuavad g5.48xlarge instantsi, seega hakkame käesolevas õpetuses kasutama g5.48xlarge instantsi.

Selliste instantside loomiseks logige sisse oma AWS EC2 konsooli ja käivitage uus instants: valige NVIDIA deep learning AMI, g5.48xlarge instantsil. Teil on vaja vähemalt 300 GB kettaruumi.

Deep Learning AMI G5 instantsil AWSis

Paigaldage vLLM jaotatud järelduste tegemiseks

vLLM-i paigaldamine on üsna lihtne. Avame SSH-ühenduse meie äsja loodud AWS-i instantsiga ja installeerime vLLM-i pip-i abil:

pip install vllm

Kuna me kasutame vLLM-i jaotatud järelduste tegemiseks 8 x A10 GPU-l, peame paigaldama ka Ray:

pip install ray

Kui paigaldusprotsessi ajal tekivad ühilduvusprobleemid, võib olla lihtsam ehitada vLLM lähtekoodist või kasutada nende Docker-kujutist: vt paigaldusdokumentatsiooni lisateavet.

Loo järelduste skript

Nüüd saate luua oma esimese järeldusskripti. Looge Pythoni fail, mis sisaldab järgmist:

from vllm import LLM

# Replace the model name with the one you want to use:
# Mixtral simple: mistralai/Mixtral-8x7B-v0.1
# Mixtral instruct: mistralai/Mixtral-8x7B-Instruct-v0.1
# Mistral 7B simple: mistralai/Mistral-7B-v0.1
# Mistral 7B instruct: mistralai/Mistral-7B-Instruct-v0.1
# LLaMA 3 70B: meta-llama/Llama-2-70b-hf
llm = LLM("mistralai/Mixtral-8x7B-Instruct-v0.1", tensor_parallel_size=8)

print(llm.generate("What is batch inference?"))

Nüüd käivitage oma skript Pythoniga, mis tagastab midagi sellist:

Batch inference is the process of applying machine learning models to a batch of data inputs all at once, rather than processing each input individually in real-time. In batch inference, a large set of inputs is collected and then processed together as a group, or "batch," by the machine learning model.

Batch inference is often used in scenarios where real-time predictions are not required, and where there is a large volume of data that needs to be processed. It can be more efficient and cost-effective than real-time inference, as it allows for the efficient use of computing resources and can reduce the latency associated with processing individual inputs.

Batch inference is commonly used in applications such as image recognition, natural language processing, and predictive analytics. For example, a company might use batch inference to analyze customer data and generate insights about purchasing patterns, or to analyze sensor data from industrial equipment to identify potential maintenance issues.

In summary, batch inference is the process of applying machine learning models to a batch of data inputs all at once, as an alternative to real-time inference. It is commonly used in scenarios where real-time predictions are not required and where there is a large volume of data that needs to be processed efficiently.

Nagu näete, on see lihtne. Te peate kohandama tensor_parallel_size sõltuvalt aluseks olevate GPUde arvust.

Ülaltoodud oli ühekordne stsenaarium. Nüüd tahame käivitada korraliku järeldusserveri, mis suudab käsitleda mitut päringut ja teha partii järeldusi jooksvalt. Kõigepealt käivitame serveri:

python -m vllm.entrypoints.openai.api_server \
--model mistralai/Mixtral-8x7B-Instruct-v0.1
--tensor-parallel-size 8

Mõne aja pärast, kui mudel on korrektselt VRAM-i laetud, saate avada teise kestakna ja teha mõned päringud:

curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
    "model": "mistralai/Mixtral-8x7B-Instruct-v0.1",
    "prompt": "What is batch inference?"
}'

See annab sama tulemuse kui varem, kuid seekord saate teha mitu päringut korraga.

Kokkuvõte

Täiustatud järeldusserveri, nagu vLLM, kasutamine on kasulik, kui soovite maksimeerida oma GPU kasutamist ja kasutada oma mudelit hõlpsasti mitmel GPU-l paralleelselt.

Nagu näete, on tänu sellele tehnikale üsna lihtne kasutada kõige arenenumaid avatud lähtekoodiga tehisintellekti mudeleid, nagu LLaMA 3, Mistral ja Mixtral, oma serveris.

Selles õpiobjektis kasutasime AWS EC2-d, kuid oleksime muidugi võinud kasutada ka teisi pakkujaid. Peamiseks väljakutseks on GPU-de maksumus ja ka nende kättesaadavus.

Kui te ei soovi selliseid LLM-i ise kasutusele võtta, soovitame selle asemel kasutada meie NLP Cloud API-d. See säästab teile palju aega ja võib olla isegi odavam kui oma LLMide kasutuselevõtt. Kui ei ole veel tehtud, siis proovige julgelt!

Vincent
NLP Cloudi arendajate eestkõneleja