Haben Sie Probleme mit KI oder Full-Stack-Entwicklung? Unsere Experten sind für Sie da: maßgeschneiderte Beratung, technische Integration und mehr. Erreichen Sie uns unter [email protected].

Bereitstellung des generativen Modells von Mistral 7b auf einem A10-Grafikprozessor auf AWS

Summary

Dieser NLP-Cloud-Kurs zeigt, wie man das generative KI-Modell Mistral 7b auf einem NVIDIA A10-Grafikprozessor auf AWS einsetzt und verwendet.

Das Modell Mistral 7b übertrifft LLaMA 3 7b in allen Benchmarks und LLaMA 3 13b in vielen Benchmarks. Es liegt sogar gleichauf mit dem Modell LLaMA 1 34b.

Für die Bereitstellung und Nutzung sind mindestens 15 GB VRAM erforderlich, weshalb wir einen A10-Grafikprozessor mit mindestens 24 GB VRAM benötigen.

Hier ist die Struktur des Kurses:

Transcript

Hallo, hier ist Julien Sainas von NLP Cloud.

Heute sehen wir uns an, wie das generative Modell Mistral 7b auf einer AWS A10 GPU bereitgestellt wird.

Mistral 7b ist ein hochmodernes generatives Modell, das von einem französischen Unternehmen namens Mistral AI herausgegeben wurde.

Dieses Modell wurde im September 2023 veröffentlicht und übertrifft Lama 2 7b in allen offiziellen Benchmarks.

Noch interessanter ist, dass es bei vielen Benchmarks das Lama 2 13b übertrifft und mit dem Lama 1 34b gleichauf ist.

Mistral AI hat dieses Modell mit einer Apache-Lizenz veröffentlicht, die es Ihnen erlaubt, das Modell nach Belieben zu verwenden.

Das Team hat sowohl ein Basismodell als auch eine fein abgestimmte Chat-Version veröffentlicht.

In diesem Video werden wir heute die Chat-Version einsetzen.

Mistral 7b benötigt mindestens 14 Gigabyte virtuellen Speicher und mehr im Falle einer großen Kontextgröße.

Wir werden sie also auf einer A10 NVIDIA GPU auf AWS bereitstellen, da diese GPU über 24 Gigabyte virtuellen Speicher verfügt und recht kostengünstig ist.

Der einfachste Weg, Mistral 7b einzusetzen, ist die Verwendung des Hugging Face Frameworks und die Befolgung der offiziellen Richtlinien von Mistral AI.

In einem ersten Schritt müssen wir die richtige AWS-Maschine auswählen.

Es gibt eine Vielzahl von Maschinen auf AWS. Der beste Rat, den ich Ihnen geben kann, ist, mit dieser Seite über Instance-Typen zu beginnen und dann links zu Accelerated Computing zu gehen.

Hier finden Sie eine Liste aller beschleunigten Hardware-Instanzen, die AWS anbietet, und diejenige, die wir heute brauchen, ist die G5.

Wie Sie hier sehen können, hat das G5 einen A10-GPU eingebaut, was wir wollen.

Es gibt verschiedene Arten von G5-Instanzen.

Einige haben nur einen Grafikprozessor, andere vier oder acht Grafikprozessoren.

Ein Grafikprozessor ist für uns ausreichend, weil es genügend virtuellen Speicher auf einem Grafikprozessor gibt, aber wir müssen sehr vorsichtig mit der Menge an Speicher sein, die die Instanz hat, weil wir, wenn wir das Mistral 7b Modell starten, vorübergehend etwas Speicher benötigen, um das Modell zu laden.

Deshalb werden wir heute eine G5 4X große Instanz auswählen, denn 64 Gigabyte sollten ausreichen.

Jetzt wechsle ich zu meiner AWS-Konsole und klicke auf Launch Instance (Instanz starten).

Nennen wir es Test A10 Mistral.

Wir werden das Betriebssystem Ubuntu auswählen, aber es gibt einen Trick.

Wir wollen nicht das Standard-Betriebssystem Ubuntu auswählen, weil wir dann die NVIDIA-Treiber manuell installieren müssen, was sehr mühsam ist.

Wir werden hier den Deep Learning AMI GPU PyTorch Server auswählen, der viel besser ist, weil dieses AMI mit Ubuntu plus NVIDIA-Treibern plus CUDA-Toolkit plus PyTorch und anderen Dingen kommt, die wir heute für unsere Tests brauchen.

Hier wählen wir die große Instanz G5 4X.

Wenn Sie noch kein Schlüsselpaar haben, müssen Sie eines erstellen.

Wenn Sie dies zum ersten Mal tun und nicht genau wissen, wie Sie VS Code mit Ihrer AWS-Instanz verbinden, empfehle ich Ihnen, sich unser spezielles Video zur Remote-Entwicklungsumgebung mit VS Code auf AWS anzusehen.

Es ist nicht nötig, andere Ports zu öffnen, und ich empfehle, dass Sie vielleicht 100 Gigabyte Festplattenkapazität hinzufügen.

Theoretisch sollte das Modell nur 20 Gigabyte Festplattenspeicher beanspruchen, aber es ist immer am besten, mehr zu haben, weil wir vielleicht Bibliotheken installieren müssen, also sind wir hier sicher.

Klicken wir auf Instanz starten.

Gut, es ist geschafft.

Wenn Sie ein Quotenproblem haben, weil Sie vielleicht zum ersten Mal eine 8N GPU starten, empfehle ich Ihnen, sich an den AWS-Support zu wenden.

Ich nehme jetzt die öffentliche IP hier und wechsle jetzt zu VS Code.

Unten links müssen Sie ein aktuelles Fenster mit einem Host verbinden, und zuerst müssen Sie Ihre Hosts konfigurieren.

Das ist die IP-Adresse, die ich gerade von AWS abgerufen habe, und das ist mein SSH-Schlüssel.

Ich speichere die Datei und mache das Gleiche noch einmal, und diesmal klicke ich auf Mistral 7B.

Ich möchte den neuen Fingerabdruck akzeptieren.

Perfekt.

Jetzt sind wir bei unserer 8N-GPU-Maschine.

Prüfen wir zunächst, ob die GPU mit den richtigen Treibern verfügbar ist.

Mit NVIDIA SMI, perfekt.

Ich kann sehen, dass ich hier eine 8N-GPU habe und dass sie leer ist, also habe ich heute fast 24 Gigabyte VRAM für mein Modell.

Ich erstelle ein Testverzeichnis, das ich mit VS Code öffne, und erstelle nun eine Testdatei.

Vielleicht sollten wir es infer.py nennen.

Was sollten wir also in diese Datei infer.py schreiben? Ganz einfach.

Gehen wir zu unserem Mistral-KI-Modell auf Hugging Face.

Wenn dies das erste Mal ist, dass du ein Modell auf Hugging Face herunterlädst, kannst du im Grunde genommen hier zu den Modellen gehen, und du hast Tonnen von Modellen zur Verfügung.

Sie können hier klicken und Mistral 7B eingeben.

Wie Sie sehen können, stand Mistral bereits ganz oben auf der Liste, weil es heutzutage sehr trendy ist.

Ich wähle das Instruct-Modell, weil es heute mehr Spaß macht, damit zu spielen, und ich folge hier einfach den Richtlinien des Mistral-KI-Teams.

Ich kopiere also einfach den Code in VS Code.

Es wird so nicht funktionieren, weil wir vorher die Transformers-Bibliothek installieren müssen.

Da dieses Mistral 7B-Modell gerade erst zu Transformers hinzugefügt wurde, ist es noch nicht im PyPy-Paket verfügbar, aber das ist kein Problem.

Wir werden Transformers direkt aus dem GitHub-Repository installieren.

Gut.

Jetzt ist Transformers korrekt installiert.

Das letzte, was wir tun müssen, ist, die 16er Version des Modells zu verwenden, denn wenn wir die Standardversion des Modells, die 32er Version, verwenden, wird es zu groß für unseren A10-Grafikprozessor sein, und die meiste Zeit ist der Unterschied zwischen FP16 und FP32 für diese Art von Modell absolut nicht bemerkbar.

Was wir also heute tun müssen, ist Torch zu importieren und diesen Parameter, Torch dtype, beim Laden des Modells hinzuzufügen.

Gut.

Lassen Sie uns nun versuchen, das Inferenzskript auszuführen.

Gut.

Wir haben also ein richtiges Rezept für Mayonnaise.

Vielleicht können wir etwas anderes versuchen.

Fragen wir das Modell, wie man Transformers auf einem Linux-Server installiert.

Wir können dies entfernen.

Gut.

Also CSS, ich bin mir nicht sicher, warum.

Das klingt richtig, außer der CSS-Auszeichnung hier.

Ich bin mir nicht sicher, warum es dieses Detail gibt, aber ich denke, das reicht, um Ihnen zu zeigen, dass es ein schönes 7B-Modell ist, und jetzt wissen Sie, wie man es benutzt, also sind Sie jetzt dran.

Sie wissen nun, wie Sie das Mistral 7B Modell auf Ihrem eigenen Server einsetzen können.

Wie Sie sehen, ist es nicht unbedingt komplex, vor allem, weil wir heute nur eine einzige GPU verwenden.

Wenn Sie nicht über einen A10-Grafikprozessor mit ausreichend virtuellem Speicher verfügen, benötigen Sie möglicherweise mehrere kleinere Grafikprozessoren.

In diesem Fall müssen Sie Ihr Modell auf mehrere kleinere GPUs aufteilen.

Es wird etwas komplexer sein, und wir werden ein weiteres Video dafür brauchen.

Ich wünsche Ihnen einen schönen Tag.