Aveți probleme cu inteligența artificială sau cu dezvoltarea full-stack? Experții noștri sunt aici pentru a vă ghida: consiliere personalizată, integrare tehnică și multe altele. Contactați-ne la [email protected].

Implementarea modelului generativ Mistral 7b pe un GPU A10 pe AWS

Summary

Acest curs NLP cloud arată cum să implementați și să folosiți modelul generativ AI Mistral 7b pe un GPU NVIDIA A10 pe AWS.

Modelul Mistral 7b depășește LLaMA 3 7b în toate testele de referință și LLaMA 3 13b în multe teste de referință. De fapt, este chiar la egalitate cu modelul LLaMA 1 34b.

Implementarea și utilizarea acestuia necesită cel puțin 15 GB de VRAM, motiv pentru care avem nevoie de un GPU A10 cu cel puțin 24 GB de VRAM.

Iată care este structura cursului:

Transcript

Bună ziua, sunt Julien Sainas de la NLP Cloud.

Astăzi, vom vedea cum să implementăm modelul generativ Mistral 7b pe un AWS A10 GPUHaideți să începem.

Mistral 7b este un model generativ de ultimă generație lansat de o companie franceză numită Mistral AI.

Acest model a fost lansat în septembrie 2023 și depășește Lama 2 7b în toate testele de referință oficiale.

Și mai interesant este faptul că depășește Lama 2 13b la multe criterii de referință și este la egalitate cu Lama 1 34b.

Mistral AI a lansat acest model cu o licență Apache, care vă permite să utilizați acest model în orice mod doriți.

Echipa a lansat atât un model de bază, cât și o versiune de chat îmbunătățită.

Vom implementa versiunea de chat în acest videoclip de astăzi.

Mistral 7b necesită cel puțin 14 giga de memorie virtuală și chiar mai mult în cazul unui context de dimensiuni mari.

Așadar, îl vom implementa pe un GPU NVIDIA A10 pe AWS, deoarece acest GPU are 24 de giga de memorie virtuală și este destul de rentabil.

Cel mai simplu mod de a implementa Mistral 7b este să folosiți cadrul Hugging Face și să urmați instrucțiunile oficiale ale Mistral AI.

Ca prim pas, va trebui să selectăm mașina AWS potrivită.

Există o mulțime de mașini pe AWS, așa că cel mai bun sfat pe care vi-l pot da este să începeți cu această pagină de tipuri de instanțe și apoi să mergeți la Accelerated Computing în partea stângă.

Aici aveți o listă cu toate instanțele hardware accelerate pe care le oferă AWS, iar cea pe care o dorim astăzi este G5.

După cum puteți vedea aici, G5 integrează un GPU A10, ceea ce este ceea ce ne dorim.

Există mai multe tipuri de instanțe G5.

Unele au doar un singur GPU, altele au patru sau opt GPU.

Un GPU este suficient pentru noi, deoarece există suficientă memorie virtuală pe un GPU, dar trebuie să fim foarte atenți la cantitatea de memorie pe care o are instanța, deoarece atunci când vom porni modelul Mistral 7b, vom avea nevoie temporar de o anumită cantitate de memorie pentru a încărca modelul.

Acesta este motivul pentru care vom selecta astăzi un G5 4X large instance, deoarece 64 de giga ar trebui să fie suficient.

Acum, trec la consola AWS și fac clic pe Launch Instance.

Să-i spunem Test A10 Mistral.

Vom selecta sistemul de operare Ubuntu, dar există un truc.

Nu dorim să selectăm sistemul de operare standard Ubuntu, deoarece va trebui să instalăm manual driverele NVIDIA pe acesta, ceea ce este foarte dureros.

Ceea ce vom face este să selectăm serverul Deep Learning AMI GPU PyTorch aici, care este mult mai bun, deoarece acest AMI vine cu Ubuntu, plus driverele NVIDIA, plus kitul de instrumente CUDA, plus PyTorch și alte lucruri, care sunt toate lucrurile de care vom avea nevoie astăzi pentru testele noastre.

Aici, selectăm instanța mare G5 4X.

Dacă nu aveți o pereche de chei, trebuie să creați una.

Dacă este prima dată când faceți acest lucru și nu sunteți sigur cum să conectați VS Code la instanța AWS, vă recomand să urmăriți videoclipul nostru dedicat despre mediul de dezvoltare la distanță cu VS Code pe AWS.

Nu este nevoie să deschideți alte porturi, iar eu vă recomand să adăugați poate 100 de giga de disc.

Teoretic, modelul ar trebui să ocupe doar 20 de giga de hard disk, dar întotdeauna este mai bine să avem mai mult, pentru că poate va trebui să instalăm biblioteci, așa că aici vom fi în siguranță.

Să dăm clic pe Launch Instance (Lansare instanță).

Bine, este creat.

Dacă aveți o problemă cu cotele pentru că poate este prima dată când lansați un GPU 8N, vă recomand să vă adresați serviciului de asistență AWS.

Acum iau IP-ul public de aici, iar acum trec la VS Code.

În partea din stânga jos, trebuie să conectați o fereastră curentă la gazdă și, mai întâi, trebuie să vă configurați gazdele.

Aceasta este adresa IP pe care tocmai am recuperat-o de la AWS, iar aceasta este cheia mea SSH.

Salvez fișierul și fac din nou același lucru, iar de data aceasta dau click pe Mistral 7B.

Doresc să accept noua amprentă digitală.

Perfect.

Acum suntem pe mașina noastră cu GPU 8N.

Să verificăm mai întâi dacă GPU-ul este disponibil cu driverele potrivite.

Cu NVIDIA SMI, perfect.

Văd că am un GPU 8N aici și că este gol, deci am aproape 24 de giga de VRAM pentru modelul meu de astăzi.

Creez un director de testare pe care îl voi deschide cu VS Code, iar acum creez un fișier de testare.

Poate că ar trebui să-l numim infer.py.

Deci, ce ar trebui să punem în acest fișier infer.py? Ușor.

Să trecem la modelul Mistral AI pe tema "Hugging Face".

Dacă este pentru prima dată când descărcați un model de pe Hugging Face, puteți merge aici la modele și veți avea la dispoziție o mulțime de modele.

Puteți face clic aici și tasta Mistral 7B.

După cum puteți vedea, Mistral era deja în fruntea listei, deoarece este foarte la modă în aceste zile.

Voi selecta modelul Instruct pentru că este mai amuzant să mă joc cu el astăzi, iar aici urmez doar liniile directoare ale echipei Mistral AI.

Așa că pur și simplu am copiat și lipit codul în VS Code.

Nu va funcționa așa cum este, deoarece înainte de aceasta va trebui să instalăm biblioteca Transformers.

Deci, deoarece acest model Mistral 7B tocmai a fost adăugat la Transformers, nu este încă disponibil în pachetul PyPy, dar nu este o problemă.

Vom instala Transformers direct din depozitul GitHub.

Bine.

Acum, Transformers este instalat corect.

Ultimul lucru pe care va trebui să îl facem este să folosim versiunea în virgulă mobilă 16 a modelului, deoarece dacă folosim versiunea implicită a modelului, care este în virgulă mobilă 32, va fi prea mare pentru GPU-ul nostru A10 și, de cele mai multe ori, diferența dintre FP16 și FP32 pentru acest tip de model nu este absolut deloc vizibilă.

Așadar, ceea ce trebuie să facem astăzi este să importăm Torch și să adăugăm acest parametru, Torch dtype, la încărcarea modelului.

Bine.

Acum, să încercăm să rulăm scriptul de inferență.

Bine.

Deci, avem o rețetă corectă despre maioneză.

Poate putem încerca altceva.

Să întrebăm modelul cum se instalează Transformers pe un server Linux.

Putem elimina acest lucru.

Bine.

Deci, CSS, nu sunt sigur de ce.

Sună corect, cu excepția marcajului CSS de aici.

Nu știu sigur de ce există acest detaliu, dar cred că este suficient pentru a vă arăta că este un model 7B frumos, iar acum știți cum să îl folosiți, așa că acum este rândul vostru.

Acum știți cum să implementați modelul Mistral 7B pe propriul server.

După cum puteți vedea, nu este neapărat complex, mai ales că astăzi folosim doar un singur GPU.

Dacă nu aveți un GPU A10 cu suficientă memorie virtuală, este posibil să aveți nevoie de mai multe GPU-uri mai mici.

În acest caz, va trebui să vă împărțiți modelul pe mai multe GPU mai mici.

Va fi un pic mai complex și vom avea nevoie de un alt videoclip dedicat pentru acest lucru.

Vă doresc o zi bună.