Worstel je met AI of full-stack ontwikkeling? Onze experts staan klaar om je te begeleiden: advies op maat, technische integratie en meer. Neem contact op met [email protected].

Het Mistral 7b generatieve model inzetten op een A10 GPU op AWS

Summary

Deze NLP-cloudcursus laat zien hoe je het Mistral 7b generatieve AI-model kunt implementeren en gebruiken op een NVIDIA A10 GPU op AWS.

Het Mistral 7b model verslaat LLaMA 3 7b in alle benchmarks en LLaMA 3 13b in veel benchmarks. Het staat zelfs op gelijke hoogte met het LLaMA 1 34b model.

Om het in te zetten en te gebruiken is minstens 15 GB VRAM nodig. Daarom hebben we een A10 GPU nodig met minstens 24 GB VRAM.

Dit is de structuur van de cursus:

Transcript

Hallo, dit is Julien Sainas van NLP Cloud.

Vandaag gaan we kijken hoe we het Mistral 7b generatieve model kunnen implementeren op een AWS A10 GPUHier gaan we.

Mistral 7b is een geavanceerd generatief model dat is uitgebracht door het Franse bedrijf Mistral AI.

Dit model werd uitgebracht in september 2023 en verslaat Lama 2 7b op alle officiële benchmarks.

Nog interessanter is dat het ook Lama 2 13b verslaat op veel benchmarks en op gelijke hoogte staat met Lama 1 34b.

Mistral AI heeft dit model uitgebracht met een Apache licentie, waardoor je dit model kunt gebruiken hoe je maar wilt.

Het team heeft zowel een basismodel als een verfijnde chatversie uitgebracht.

In deze video gaan we vandaag de chatversie implementeren.

Mistral 7b heeft minstens 14 gig virtueel geheugen nodig en meer in het geval van een grote contextgrootte.

We gaan het dus inzetten op een A10 NVIDIA GPU op AWS, omdat deze GPU 24 gig virtueel geheugen heeft en behoorlijk kosteneffectief is.

De eenvoudigste manier om Mistral 7b te implementeren is door het Hugging Face framework te gebruiken en de officiële richtlijnen van Mistral AI te volgen.

Als eerste stap moeten we de juiste AWS-machine selecteren.

Er zijn heel veel machines op AWS, dus het beste advies dat ik je kan geven is om te beginnen met deze instance types pagina en dan naar Accelerated Computing aan de linkerkant te gaan.

Hier heb je een lijst van alle versnelde hardware-instanties die AWS biedt, en degene die we vandaag willen is de G5.

Zoals je hier kunt zien, heeft de G5 een A10 GPU, en dat is wat we willen.

Er zijn verschillende G5 instances.

Sommige hebben maar één GPU, andere hebben vier of acht GPU's.

Eén GPU is genoeg voor ons omdat er genoeg virtueel geheugen is op één GPU, maar we moeten heel voorzichtig zijn met de hoeveelheid geheugen die de instantie heeft, want als we het Mistral 7b-model starten, hebben we tijdelijk wat geheugen nodig om het model te laden.

Daarom kiezen we vandaag voor een G5 4X large instance omdat 64 gig genoeg zou moeten zijn.

Nu ga ik naar mijn AWS-console en klik ik op Launch Instance.

Laten we het Test A10 Mistral noemen.

We selecteren het Ubuntu OS, maar er is een truc.

We willen niet het standaard Ubuntu OS kiezen omdat we dan handmatig de NVIDIA stuurprogramma's erop moeten installeren, wat erg pijnlijk is.

Wat we gaan doen is de Deep Learning AMI GPU PyTorch server hier selecteren, wat veel beter is omdat deze AMI wordt geleverd met Ubuntu plus NVIDIA drivers plus CUDA toolkit plus PyTorch en andere dingen, wat allemaal dingen zijn die we vandaag nodig hebben voor onze tests.

Hier selecteren we de G5 4X large instantie.

Als je geen sleutelpaar hebt, moet je er een aanmaken.

Als dit de eerste keer is dat je dit doet en je niet precies weet hoe je VS Code moet verbinden met je AWS-instantie, raad ik je aan om onze speciale video over externe ontwikkelomgeving met VS Code op AWS te bekijken.

U hoeft geen andere poorten te openen en ik raad u aan om misschien 100 gig aan schijfruimte toe te voegen.

In theorie zou het model slechts 20 gig aan harde schijf nodig hebben, maar het is altijd het beste om meer te hebben omdat we misschien bibliotheken moeten installeren, dus hier zijn we veilig.

Laten we op Launch Instance klikken.

Goed, het is gemaakt.

Als je een quotaprobleem hebt omdat het misschien de eerste keer is dat je een 8N GPU lanceert, raad ik je aan om contact op te nemen met de AWS-ondersteuning.

Ik neem nu het publieke IP hier, en nu schakel ik over naar VS Code.

Linksonder moet je een huidig venster verbinden met een host, en eerst moet je je hosts configureren.

Dit is het IP adres dat ik zojuist heb opgehaald van AWS en dit is mijn SSH sleutel.

Ik sla het bestand op en doe hetzelfde nog een keer, en deze keer klik ik op Mistral 7B.

Ik wil de nieuwe vingerafdruk accepteren.

Perfect.

Nu zitten we op onze 8N GPU-machine.

Laten we eerst controleren of de GPU beschikbaar is met de juiste stuurprogramma's.

Met NVIDIA SMI, perfect.

Ik kan zien dat ik hier een 8N GPU heb en dat deze leeg is, dus ik heb bijna 24 gig VRAM voor mijn model van vandaag.

Ik maak een testmap die ik zal openen met VS Code, en nu maak ik een testbestand.

Laten we het infer.py noemen.

Dus wat moeten we in dit infer.py bestand zetten? Gemakkelijk.

Laten we naar ons Mistral AI-model op Hugging Face gaan.

Als dit de eerste keer is dat je een model downloadt op Hugging Face, kun je in principe hier naar modellen gaan, en dan heb je heel veel modellen beschikbaar.

Je kunt hier klikken en Mistral 7B intypen.

Zoals je kunt zien, stond Mistral al bovenaan de lijst omdat het tegenwoordig erg trendy is.

Ik ga het Instruct-model kiezen omdat het vandaag leuker is om mee te spelen, en hier volg ik gewoon de richtlijnen van het Mistral AI-team.

Dus ik kopieer de code gewoon in VS Code.

Het zal niet werken zoals het is, omdat we eerst de Transformers-bibliotheek moeten installeren.

Dus omdat dit Mistral 7B model net is toegevoegd aan Transformers, is het nog niet beschikbaar in het PyPy pakket, maar dat is geen probleem.

We zullen Transformers direct vanuit de GitHub repository installeren.

Goed.

Transformers is nu correct geïnstalleerd.

Het laatste wat we moeten doen is de floating-point 16-versie van het model gebruiken, want als we de standaardversie van het model gebruiken, die floating-point 32 is, zal het te groot zijn voor onze A10 GPU, en meestal is het verschil tussen FP16 en FP32 voor dit soort model absoluut niet merkbaar.

Dus wat we vandaag moeten doen is Torch importeren en deze parameter, Torch dtype, toevoegen bij het laden van het model.

Goed.

Laten we nu proberen het inferentiescript uit te voeren.

Goed.

We hebben dus een goed recept over mayonaise.

Misschien kunnen we iets anders proberen.

Laten we het model vragen hoe je Transformers installeert op een Linux server.

We kunnen dit verwijderen.

Goed.

Dus CSS, ik weet niet zeker waarom.

Dat klinkt correct, behalve de CSS-opmaak hier.

Ik weet niet zeker waarom dit detail er is, maar ik denk dat dit genoeg is om je te laten zien dat het een mooi 7B model is, en nu weet je hoe je het moet gebruiken, dus nu is het jouw beurt.

Je weet nu hoe je het Mistral 7B model op je eigen server kunt implementeren.

Zoals je kunt zien is het niet per se complex, vooral omdat we vandaag maar één GPU gebruiken.

Als je geen A10 GPU met voldoende virtueel geheugen hebt, heb je misschien meerdere kleinere GPU's nodig.

In dat geval moet je je model opsplitsen over verschillende kleinere GPU's.

Het zal iets ingewikkelder zijn, en we hebben hier een andere video voor nodig.

Nog een fijne dag.