Kæmper du med AI eller full-stack-udvikling? Vores eksperter er her for at vejlede dig: skræddersyet rådgivning, teknisk integration og meget mere. Kontakt os på [email protected].

Implementering af Mistral 7b Generative Model på en A10 GPU på AWS

Summary

Dette NLP cloud-kursus viser, hvordan man implementerer og bruger Mistral 7b generativ AI-model på en NVIDIA A10 GPU på AWS.

Mistral 7b-modellen slår LLaMA 3 7b i alle benchmarks og LLaMA 3 13b i mange benchmarks. Den er faktisk endda på niveau med LLaMA 1 34b-modellen.

Implementering og brug kræver mindst 15 GB VRAM, hvilket er grunden til, at vi har brug for en A10 GPU med mindst 24 GB VRAM.

Her er strukturen for kurset:

Transcript

Hej, det er Julien Sainas fra NLP Cloud.

I dag skal vi se, hvordan man implementerer Mistral 7b generative model på en AWS A10 GPUHere we go.

Mistral 7b er en state-of-the-art generativ model udgivet af det franske firma Mistral AI.

Denne model blev udgivet i september 2023 og slår Lama 2 7b på alle de officielle benchmarks.

Endnu mere interessant er det, at den også slår Lama 2 13b på mange benchmarks, og den er på niveau med Lama 1 34b.

Mistral AI udgav denne model med en Apache-licens, som giver dig mulighed for at bruge denne model, som du vil.

Teamet udgav både en grundlæggende model og en finjusteret chatversion.

Vi vil implementere chatversionen i denne video i dag.

Mistral 7b kræver mindst 14 gigabyte virtuel hukommelse og mere i tilfælde af en stor kontekststørrelse.

Så vi vil implementere det på en A10 NVIDIA GPU på AWS, da denne GPU har 24 gigabyte virtuel hukommelse og er ret omkostningseffektiv.

Den nemmeste måde at implementere Mistral 7b på er at bruge Hugging Face-frameworket og følge Mistral AI's officielle retningslinjer.

Som et første skridt skal vi vælge den rigtige AWS-maskine.

Der er masser af maskiner på AWS, så det bedste råd, jeg kan give dig, er at starte med denne side om instanstyper og derefter gå til Accelerated Computing til venstre.

Her har du en liste over alle de accelererede hardwareinstanser, som AWS tilbyder, og den, vi vil have i dag, er G5.

Som du kan se her, indeholder G5 en A10 GPU, hvilket er, hvad vi ønsker.

Der findes flere varianter af G5-instanser.

Nogle har kun én GPU, andre har fire eller otte GPU'er.

En GPU er nok for os, fordi der er nok virtuel hukommelse på en GPU, men vi skal være meget forsigtige med mængden af hukommelse, som instansen har, for når vi starter Mistral 7b-modellen, skal vi midlertidigt bruge noget hukommelse til at indlæse modellen.

Det er derfor, vi vælger en G5 4X large instance i dag, fordi 64 gigabyte burde være nok.

Nu skifter jeg til min AWS-konsol, og jeg klikker på Launch Instance.

Lad os kalde den Test A10 Mistral.

Vi vælger Ubuntu OS, men der er et trick.

Vi ønsker ikke at vælge standard Ubuntu OS, fordi vi bliver nødt til manuelt at installere NVIDIA-driverne på det, hvilket er meget smertefuldt.

Det, vi vil gøre, er at vælge Deep Learning AMI GPU PyTorch-serveren her, hvilket er meget bedre, fordi denne AMI kommer med Ubuntu plus NVIDIA-drivere plus CUDA toolkit plus PyTorch og andre ting, som er alle de ting, vi skal bruge i dag til vores tests.

Her vælger vi den store instans G5 4X.

Hvis du ikke har et nøglepar, skal du oprette et.

Hvis det er første gang, du gør dette, og du ikke er helt sikker på, hvordan du forbinder VS Code til din AWS-instans, anbefaler jeg, at du ser vores dedikerede video om fjernudviklingsmiljø med VS Code på AWS.

Det er ikke nødvendigt at åbne andre porte, og jeg anbefaler, at du tilføjer måske 100 gigabyte disk.

I teorien skal modellen kun bruge 20 gigabyte harddisk, men det er altid bedst at have mere, fordi vi måske får brug for at installere biblioteker, så her er vi på den sikre side.

Lad os klikke på Launch Instance.

Godt, den er skabt.

Hvis du har et kvoteproblem, fordi det måske er første gang, du lancerer en 8N GPU, anbefaler jeg, at du kontakter AWS-supporten.

Jeg tager nu den offentlige IP her, og nu skifter jeg til VS Code.

Nederst til venstre skal du forbinde et aktuelt vindue til host, og først skal du konfigurere dine hosts.

Her er den IP-adresse, jeg lige har hentet fra AWS, og her er min SSH-nøgle.

Jeg gemmer filen, og jeg gør det samme igen, og denne gang klikker jeg på Mistral 7B.

Jeg vil gerne acceptere det nye fingeraftryk.

Perfekt.

Nu er vi på vores 8N GPU-maskine.

Lad os først tjekke, om GPU'en er tilgængelig med de rigtige drivere.

Med NVIDIA SMI er det perfekt.

Jeg kan se, at jeg har en 8N GPU her, og at den er tom, så jeg har næsten 24 gigabyte VRAM til min model i dag.

Jeg opretter en testmappe, som jeg vil åbne med VS Code, og nu opretter jeg en testfil.

Lad os kalde den infer.py.

Så hvad skal vi skrive i denne infer.py-fil? Det er nemt.

Lad os gå til vores Mistral AI-model på Hugging Face.

Hvis det er første gang, du downloader en model på Hugging Face, kan du i princippet gå her til modeller, og du har masser af modeller til rådighed.

Du kan klikke her og skrive Mistral 7B.

Som du kan se, var Mistral allerede øverst på listen, fordi den er meget trendy i disse dage.

Jeg vælger Instruct-modellen, fordi den er sjovere at lege med i dag, og her følger jeg bare retningslinjerne fra Mistrals AI-team.

Så jeg kopierer og indsætter simpelthen koden i VS Code.

Det vil ikke fungere, som det er, fordi vi først skal installere Transformers-biblioteket.

Så da denne Mistral 7B-model lige er blevet tilføjet til Transformers, er den endnu ikke tilgængelig i PyPy-pakken, men det er ikke et problem.

Vi installerer Transformers direkte fra GitHub-repositoriet.

Det er godt.

Nu er Transformers installeret korrekt.

Den sidste ting, vi skal gøre, er at bruge floating-point 16-versionen af modellen, for hvis vi bruger standardversionen af modellen, som er floating-point 32, vil den være for stor til vores A10 GPU, og for det meste er forskellen mellem FP16 og FP32 for denne type model absolut ikke mærkbar.

Så det, vi skal gøre i dag, er at importere Torch og tilføje denne parameter, Torch dtype, når vi indlæser modellen.

Det er godt.

Lad os nu prøve at køre inferensscriptet.

Det er godt.

Så vi har en rigtig opskrift på mayonnaise.

Måske kan vi prøve noget andet.

Lad os spørge modellen, hvordan man installerer Transformers på en Linux-server.

Vi kan fjerne det.

Det er godt.

Så CSS, jeg er ikke sikker på hvorfor.

Det lyder korrekt, bortset fra CSS-opmærkningen her.

Jeg er ikke sikker på, hvorfor der er denne detalje, men jeg tror, det er nok til at vise dig, at det er en fin 7B-model, og nu ved du, hvordan man bruger den, så nu er det din tur.

Du ved nu, hvordan du implementerer Mistral 7B-modellen på din egen server.

Som du kan se, er det ikke nødvendigvis komplekst, især fordi vi kun bruger en enkelt GPU i dag.

Hvis du ikke har en A10 GPU med nok virtuel hukommelse, har du måske brug for flere mindre GPU'er.

I så fald bliver du nødt til at dele din model op på flere mindre GPU'er.

Det bliver en smule mere komplekst, og vi får brug for endnu en dedikeret video til dette.

Hav en god dag.