Home UnternehmenAI Meta LLaMa und Alpakas frei im Labor! Lokales Ausführen großer Sprachmodelle

Meta LLaMa und Alpakas frei im Labor! Lokales Ausführen großer Sprachmodelle

by Jordan Ranous

In den letzten Monaten waren große Sprachmodelle Gegenstand umfangreicher Forschung und Entwicklung, wobei hochmoderne Modelle wie GPT-4, Meta LLaMa und Alpaca die Grenzen der Verarbeitung natürlicher Sprache und der für ihre Ausführung erforderlichen Hardware erweiterten . Das Ausführen von Inferenzen auf diesen Modellen kann rechenintensiv sein und erfordert leistungsstarke Hardware, um Ergebnisse in Echtzeit zu liefern.

In den letzten Monaten waren große Sprachmodelle Gegenstand umfangreicher Forschung und Entwicklung, wobei hochmoderne Modelle wie GPT-4, Meta LLaMa und Alpaca die Grenzen der Verarbeitung natürlicher Sprache und der für ihre Ausführung erforderlichen Hardware erweiterten . Das Ausführen von Inferenzen auf diesen Modellen kann rechenintensiv sein und erfordert leistungsstarke Hardware, um Ergebnisse in Echtzeit zu liefern.

Im Storage Review-Labor haben wir zwei NVIDIA RTX 8000-GPUs damit beauftragt, das LLaMa-Modell von Meta auszuführen, um zu sehen, wie sie bei der Ausführung von Inferenzen auf großen Sprachmodellen abschneiden. Wir haben das genutzt Lenovo P920 als Host für die Karten, wodurch Engpässe minimiert werden. Die RTX 8000 ist eine High-End-Grafikkarte, die für den Einsatz in KI- und Deep-Learning-Anwendungen geeignet ist, und wir haben diese aufgrund des 48 GB GDDR6-Speichers und der 4608 CUDA-Kerne auf jeder Karte gezielt aus dem Stapel ausgewählt Kevin hortet den gesamten A6000's.

Meta-Lama NVIDIA RTX 8000 GPUs

Meta LLaMA ist ein umfangreiches Sprachmodell, das auf einer Vielzahl von Internettexten trainiert wird. Es ist öffentlich verfügbar und liefert hochmoderne Ergebnisse bei verschiedenen Aufgaben der Verarbeitung natürlicher Sprache. In diesem Artikel stellen wir eine Schritt-für-Schritt-Anleitung zur Einrichtung und Ausführung der LLaMA-Inferenz auf NVIDIA-GPUs bereit. Es ist nicht garantiert, dass dies für alle funktioniert.

Meta LLaMa-Anforderungen

Bevor wir beginnen, müssen wir sicherstellen, dass die folgenden Anforderungen installiert sind:

  • NVIDIA-GPU(s) mit mindestens 16 GB VRAM
  • NVIDIA-Treiber installiert (mindestens Version 440.33)
  • CUDA Toolkit installiert (mindestens Version 10.1)
  • Anaconda installiert
  • PyTorch installiert (mindestens Version 1.7.1)
  • Festplattenplatz; Der gesamte Satz an LLaMa-Kontrollpunkten beläuft sich auf über 200 TB.

Hinweis: Es wird empfohlen, eine dedizierte Anaconda-Umgebung für LLaMA zu haben. Wir haben einige auf dem Prüfstand, damit wir mit Paketen und Parametern herumspielen können, ohne die Basisinstallation zu belasten.

Richten Sie in Anaconda eine oder zwei dedizierte Umgebungen ein

Schritte zum Ausführen der Meta-LLaMA-Inferenz auf NVIDIA-GPUs

  1. Laden Sie das LLaMA-Repository herunter: Der erste Schritt besteht darin, das LLaMA-Repository von GitHub zu klonen.
git clone https://github.com/EleutherAI/LLaMA.git
  1. Holen Sie sich den LLaMA-Checkpoint und Tokenizer: Besuchen Sie die GitHub-Seite und füllen Sie das verlinkte Google-Formular aus, um auf den Download zuzugreifen. Es stehen auch andere LLMs zur Verfügung, beispielsweise Alpaca. Zu diesem Zweck gehen wir davon aus, dass Zugriff auf die LLaMa-Dateien besteht.
  1. Listen Sie die für LLaMa erforderlichen Programme auf und installieren Sie sie, indem Sie den folgenden Befehl im geklonten Repository-Verzeichnis ausführen:
pip install -r requirements.txt
pip install -e .
  1. Inferenzskript einrichten: Die example.py Das im LLaMA-Repository bereitgestellte Skript kann zum Ausführen der LLaMA-Inferenz verwendet werden. Das Skript kann auf einem Single- oder Multi-GPU-Knoten mit ausgeführt werden torchrun und gibt Vervollständigungen für zwei vordefinierte Eingabeaufforderungen aus.

Öffnen example.py und stellen Sie die folgenden Parameter nach Ihren Wünschen ein. Beschreibungen für jeden Parameter und seine Funktion sind unten aufgeführt.

  • --max_seq_len: maximale Sequenzlänge (Standard ist 2048)
  • --max_batch_size: maximale Batchgröße (Standard ist 8)
  • --gen_length: Generationslänge (Standard ist 512)
  • --temperature: Erzeugungstemperatur (Standard ist 1.0)
  • --top_p: Top-P-Abtastung (Standard ist 0.9)

Zum Beispiel, um LLaMA-Inferenz auf einer einzelnen GPU mit Prüfpunkt- und Tokenizer-Dateien im Verzeichnis auszuführen /path/to/files, benutze den folgenden Befehl:

torchrun --nproc_per_node 1 example.py --ckpt_dir /path/to/files --tokenizer_path /path/to/files/tokenizer.model

Beachten Sie das nproc_per_node Das Argument hängt von der Größe des Modells und der Anzahl der GPUs ab, die für die Standard-LLaMa-Prüfpunkte erforderlich sind. Sehen Sie sich die folgende Tabelle an, um den entsprechenden Wert für Ihr System und Modell festzulegen, das Sie ausführen:

Modell GPUs erforderlich
7B 1
13 Mrd 2
33 Mrd 4
65 Mrd 8

Im folgenden Beispiel haben wir die Standard-Eingabeaufforderungen in der Beispieldatei verwendet, aber mit dem gespielt temperature und top_p Variablen, was einige interessante Ergebnisse liefert. Wir haben auch die Antwortlänge erhöht.

Seien Sie vorsichtig, wenn Sie mit dem Thermostat spielen!

Aufschlüsselung der Datei example.py und der Variablen, die Sie kennen müssen

Die meisten davon sind im Modell voreingestellt und müssen nicht angepasst werden; Wenn Sie jedoch mit der Verwendung von LLMs und Inferenzen beginnen, finden Sie hier einige nützliche Informationen, die die Funktionsweise der Flags und Schalter aufschlüsseln.

  1. local_rank: Der Rang der aktuellen GPU (des aktuellen Prozesses) in der Gruppe der GPUs, die für die Modellparallelität verwendet werden. Dies wird automatisch eingestellt.
  2. world_size: Die Gesamtzahl der GPUs, die für die Modellparallelität verwendet werden. Dies wird automatisch eingestellt.
  3. ckpt_dir: Das Verzeichnis, das die Modellprüfpunkte enthält. Dies wird zur Laufzeit festgelegt.
  4. tokenizer_path: Der Pfad zum Tokenizer, der zur Vorverarbeitung des Texts verwendet wird. Dies wird zur Laufzeit festgelegt.
  5. temperature: Ein Parameter, der die Zufälligkeit des generierten Texts steuert (höhere Werte machen die Ausgabe zufälliger und niedrigere Werte machen sie fokussierter).
  6. top_p: Ein Parameter, der die Nucleus-Sampling-Strategie steuert. Dabei handelt es sich um eine Methode zum Generieren von Text, die nur die wahrscheinlichsten Token mit einer kumulativen Wahrscheinlichkeit von höchstens auswählt top_p.
  7. max_seq_len: Die maximale Sequenzlänge für die Eingabe und Ausgabe des Modells. Sie können dies anpassen, um Ihren VRAM-Bedarf zu verringern.
  8. max_batch_size: Die maximale Anzahl von Eingabesequenzen, die das Modell parallel verarbeiten kann. Sie können dies anpassen, um Ihren VRAM-Bedarf zu verringern.
  9. prompts: Eine Liste von Eingabeaufforderungen, auf deren Grundlage das Modell Text generieren soll.
  10. results: Eine Liste des generierten Textes, der jeder Eingabeaufforderung entspricht.

Abschließende Überlegungen

Unsere Tests haben gezeigt, dass die RTX 8000-GPUs eine beeindruckende Leistung liefern können, wobei die Inferenzzeiten je nach Modellparametern und Eingabegröße zwischen einigen Sekunden und etwa einer Minute liegen. Die GPUs konnten große Batch-Größen bewältigen und Inferenzen auf mehreren Modellen gleichzeitig ausführen, ohne dass es zu einer spürbaren Verlangsamung kam.

Einer der Vorteile der Verwendung von GPUs für die Inferenz besteht darin, dass sie durch das Hinzufügen weiterer GPUs zum System leicht skaliert werden können. Dadurch können noch größere Modelle in Echtzeit ausgeführt werden, was neue Anwendungen in Bereichen wie Chatbots, Frage-Antwort-Systemen und Stimmungsanalysen ermöglicht.

Alpaca ist ein kompaktes KI-Sprachmodell, das von einem Team von Informatikern der Stanford University entwickelt wurde. Es basiert auf dem LLaMA 7B-Modell von Meta, das über 7 Milliarden Parameter verfügt und mithilfe einer großen Textmenge aus dem Internet trainiert wurde. Zur Feinabstimmung von Alpaca wurden 52,000 Demonstrationen zum Befolgen von Anweisungen mit dem text-davinci-003-Modell von OpenAI erstellt, einem vielseitigen Modell, das verschiedene Aufgaben auf der Grundlage natürlichsprachlicher Anweisungen ausführen kann. Alpakas sind besser darin, Anweisungen zu befolgen und Texte für verschiedene Zwecke zu verfassen, darunter das Schreiben von Zusammenfassungen, Geschichten und Witzen. Da die Schulungskosten unter 600 US-Dollar liegen, ist Alpaca sowohl kostengünstig als auch leicht reproduzierbar. Beeindruckend ist zu erwähnen, dass Alpaca sogar auf einem Laptop ausgeführt werden kann. Wir trainieren ein Alpaca-ähnliches Modell mit den Methoden von Stanford, aber mit unserer eigenen Wendung.

Dies ist nur eine Möglichkeit, wie wir im Labor mit den neuesten technologischen Fortschritten arbeiten, und dank einiger leistungsstarker NVIDIA-GPUs können wir sogar noch mehr als nur Rückschlüsse ziehen; wir trainieren. Halten Sie Ausschau nach dem nächsten Artikel über die Feinabstimmung von Modellen wie Meta LLaMa.

Beteiligen Sie sich an StorageReview 

Newsletter | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | TikTok | RSS Feed