Connect with us

Künstliche Intelligenz

Llama 2: Ein tiefer Einblick in den Open-Source-Herausforderer von ChatGPT

mm
META LLAMA 2 LLM

Große Sprachmodelle (LLMs), die komplexe Denkaufgaben ausführen können, haben in spezialisierten Bereichen wie Programmierung und kreativem Schreiben vielversprechende Ergebnisse gezeigt. Allerdings ist die Welt der LLMs nicht einfach ein Plug-and-Play-Paradies; es gibt Herausforderungen bei der Benutzerfreundlichkeit, Sicherheit und Rechenanforderungen. In diesem Artikel werden wir uns mit den Fähigkeiten von Llama 2 auseinandersetzen, während wir eine detaillierte Anleitung für die Einrichtung dieses leistungsstarken LLMs über Hugging Face und T4-GPUs auf Google Colab bereitstellen.

Entwickelt von Meta in Partnerschaft mit Microsoft, zielt dieses Open-Source-Large-Language-Modell darauf ab, die Bereiche der generativen KI und des natürlichen Sprachverständnisses neu zu definieren. Llama 2 ist nicht nur ein weiteres statistisches Modell, das auf Terabyte von Daten trainiert wurde; es ist die Verkörperung einer Philosophie. Eine, die einen Open-Source-Ansatz als Rückgrat der KI-Entwicklung, insbesondere im Bereich der generativen KI, betont.

Llama 2 und sein dialogoptimierter Ersatz, Llama 2-Chat, verfügen über bis zu 70 Milliarden Parameter. Sie unterziehen sich einem Feinabstimmungsprozess, der darauf ausgelegt ist, sie eng an menschliche Vorlieben anzupassen, was sie sicherer und effektiver macht als viele andere öffentlich verfügbare Modelle. Dieses Maß an Feinabstimmung wird oft für geschlossene “Produkt”-LLMs wie ChatGPT und BARD reserviert, die nicht allgemein für öffentliche Überprüfung oder Anpassung verfügbar sind.

Technischer Tiefeinblick in Llama 2

Für das Training des Llama-2-Modells; wie seine Vorgänger, verwendet es eine auto-regressive Transformer-Architektur, die auf einem umfangreichen Korpus von selbstüberwachtem Daten vortrainiert wurde. Allerdings fügt es eine zusätzliche Ebene der Raffinesse hinzu, indem es Reinforcement Learning mit menschlichem Feedback (RLHF) verwendet, um es besser an menschliches Verhalten und Vorlieben anzupassen. Dies ist rechenintensiv, aber entscheidend für die Verbesserung der Sicherheit und Effektivität des Modells.

Meta Llama 2-Trainingsarchitektur

Meta Llama 2-Trainingsarchitektur

Vortraining & DatenEffizienz

Llama 2s grundlegende Innovation liegt in seinem Vortrainingsregime. Das Modell nimmt Anregungen von seinem Vorgänger, Llama 1, auf, aber introduces mehrere entscheidende Verbesserungen, um seine Leistung zu steigern. Bemerkenswert ist eine 40-prozentige Erhöhung der Gesamtzahl der trainierten Token und eine Verdoppelung der Kontextlänge. Darüber hinaus nutzt das Modell gruppierte Abfrageaufmerksamkeit (GQA), um die Inferenzskalierbarkeit zu erhöhen.

Supervised Fine-Tuning (SFT) & Reinforcement Learning mit menschlichem Feedback (RLHF)

Llama-2-Chat wurde sorgfältig mit SFT und RLHF feinabgestimmt. In diesem Zusammenhang dient SFT als integraler Bestandteil des RLHF-Rahmenwerks, um die Antworten des Modells an menschliche Vorlieben und Erwartungen anzupassen.

OpenAI hat eine aufschlussreiche Illustration bereitgestellt, die die SFT- und RLHF-Methoden erläutert, die in InstructGPT verwendet werden. Ähnlich wie LLaMa 2 nutzt auch InstructGPT diese fortschrittlichen Trainingsmethoden, um die Leistung seines Modells zu optimieren.

Schritt 1 in dem unten angezeigten Bild konzentriert sich auf Supervised Fine-Tuning (SFT), während die folgenden Schritte den Reinforcement-Learning-Prozess aus menschlichem Feedback (RLHF) vervollständigen.

Supervised Fine-Tuning (SFT) ist ein spezieller Prozess, der darauf abzielt, ein vortrainiertes Large Language Model (LLM) für eine spezifische Downstream-Aufgabe zu optimieren. Im Gegensatz zu unüberwachten Methoden, die keine Datenvalidierung erfordern, verwendet SFT ein Dataset, das vorab validiert und beschriftet wurde.

Im Allgemeinen ist das Erstellen dieser Datensätze teuer und zeitaufwändig. Llama 2s Ansatz war Qualität vor Quantität. Mit nur 27.540 Annotationen erreichte Metas Team Leistungen, die mit denen menschlicher Annotatoren vergleichbar sind. Dies stimmt mit jüngsten Studien überein, die zeigen, dass sogar begrenzte, aber saubere Datensätze hochwertige Ergebnisse liefern können.

Im SFT-Prozess wird das vortrainierte LLM einem beschrifteten Dataset ausgesetzt, wobei die überwachten Lernalgorithmen zum Einsatz kommen. Die internen Gewichte des Modells werden basierend auf Gradienten neu justiert, die aus einer taskspezifischen Verlustfunktion berechnet werden.

Diese Optimierung ermöglicht es dem LLM, die komplexen Muster und Nuancen zu erfassen, die in dem beschrifteten Dataset eingebettet sind. Folglich wird das Modell nicht nur zu einem generalisierten Werkzeug, sondern entwickelt sich zu einem spezialisierten Asset, das in der Lage ist, die ZielAufgabe mit hoher Genauigkeit auszuführen.

Reinforcement Learning ist der nächste Schritt, der darauf abzielt, das Modellverhalten enger an menschliche Vorlieben anzupassen.

Die Feinabstimmungsphase nutzte Reinforcement Learning mit menschlichem Feedback (RLHF), wobei Techniken wie Importance Sampling und Proximal Policy Optimization verwendet wurden, um algorithmischen Rauschen einzuführen und lokale Optima zu vermeiden. Diese iterative Feinabstimmung verbesserte nicht nur das Modell, sondern passte auch seine Ausgabe an menschliche Erwartungen an.

Llama 2-Chat verwendete ein binäres Vergleichsprotokoll, um menschliche Präferenzdaten zu sammeln, was einen bemerkenswerten Trend hin zu qualitativeren Ansätzen markiert. Dieses Mechanismus informierte die Belohnungsmodelle, die dann verwendet wurden, um das konversationale KI-Modell fein zu justieren.

Ghost-Aufmerksamkeit: Multi-Turn-Dialoge

Meta führte eine neue Funktion ein, Ghost-Aufmerksamkeit (GAtt), die darauf ausgelegt ist, Llama 2s Leistung in Multi-Turn-Dialogen zu verbessern. Dies löst effektiv das anhaltende Problem des Kontextverlusts in laufenden Konversationen. GAtt wirkt wie ein Anker, der die initialen Anweisungen mit allen nachfolgenden Benachrichtigungen verbindet. In Kombination mit Reinforcement-Learning-Techniken hilft es dabei, konsistente, relevante und benutzerorientierte Antworten über längere Dialoge hinweg zu produzieren.

Von Meta Git-Repository mit download.sh

  1. Meta-Website besuchen: Navigieren Sie zu Metas offizieller Llama-2-Seite und klicken Sie auf ‘Das Modell herunterladen’
  2. Details ausfüllen: Lesen Sie die Bedingungen und akzeptieren Sie sie, um fortzufahren.
  3. E-Mail-Bestätigung: Sobald das Formular abgeschickt wurde, erhalten Sie eine E-Mail von Meta mit einem Link zum Herunterladen des Modells aus ihrem Git-Repository.
  4. download.sh ausführen: Klonen Sie das Git-Repository und führen Sie das download.sh-Skript aus. Dieses Skript fordert Sie auf, sich mithilfe einer von Meta bereitgestellten URL zu authentifizieren, die in 24 Stunden abläuft. Sie können auch die Größe des Modells – 7B, 13B oder 70B – wählen.

Von Hugging Face

  1. Zugriffsberechtigung erhalten: Nachdem Sie von Meta Zugriff erhalten haben, gehen Sie zu Hugging Face.
  2. Zugriff anfordern: Wählen Sie Ihr gewünschtes Modell und senden Sie eine Anfrage, um Zugriff zu erhalten.
  3. Bestätigung: Erwarten Sie eine ‘Zugriff gewährt’-E-Mail innerhalb von 1-2 Tagen.
  4. Zugriffstoken generieren: Navigieren Sie zu ‘Einstellungen’ in Ihrem Hugging-Face-Konto, um Zugriffstoken zu erstellen.

Die Transformers-4.31-Veröffentlichung ist vollständig mit LLaMa 2 kompatibel und bietet viele Tools und Funktionen innerhalb des Hugging-Face-Ökosystems. Von Trainings- und Inferenzskripten bis hin zu 4-Bit-Quantisierung mit bitsandbytes und parameterEffizienter Feinabstimmung (PEFT) ist das Toolkit umfangreich. Um loszulegen, stellen Sie sicher, dass Sie die neueste Transformers-Version verwenden und in Ihrem Hugging-Face-Konto angemeldet sind.

Hier ist eine strukturierte Anleitung, um LLaMa-2-Modellinferenz in einer Google-Colab-Umgebung mit GPU-Laufzeit auszuführen:

Google-Colab-Modell - T4-GPU

Google-Colab-Modell – T4-GPU

 

 

 

 

 

 

Paketinstallation


!pip install transformers
!huggingface-cli login

Notwendige Python-Bibliotheken importieren.

from transformers import AutoTokenizer
import transformers
import torch

Modell und Tokenizer initialisieren

In diesem Schritt geben Sie an, welches Llama-2-Modell Sie verwenden werden. Für diese Anleitung verwenden wir meta-llama/Llama-2-7b-Chat-hf.

modell = "meta-llama/Llama-2-7b-Chat-hf"
tokenizer = AutoTokenizer.from_pretrained(modell)

Pipeline einrichten

Nutzen Sie die Hugging-Face-Pipeline für Textgenerierung mit bestimmten Einstellungen:

pipeline = transformers.pipeline(
"text-generation",
modell=modell,
torch_dtype=torch.float16,
device_map="auto")

Textsequenzen generieren

Schließlich führen Sie die Pipeline aus und generieren eine Textsequenz basierend auf Ihrer Eingabe:

sequenzen = pipeline(
‘Wer sind die wichtigsten Beiträger auf dem Gebiet der künstlichen Intelligenz?\n’,
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200)

Ich habe die letzten fünf Jahre damit verbracht, mich in die faszinierende Welt des Machine Learning und Deep Learning zu vertiefen. Meine Leidenschaft und mein Fachwissen haben mich dazu geführt, an über 50 verschiedenen Software-Entwicklungsprojekten mitzuwirken, mit einem besonderen Fokus auf KI/ML. Meine anhaltende Neugier hat mich auch zum Natural Language Processing hingezogen, ein Feld, das ich weiter erforschen möchte.