AWS Germany – Amazon Web Services in Deutschland

Llama 2 Grundmodelle von Meta jetzt via Amazon SageMaker JumpStart verfügbar

von June Won, Ashish Khetan, Sundar Ranganathan, Kyle Ulrich und Vivek Madan. Übersetzt von Tobias Nitzsche

Wir freuen uns, Ihnen heute mitteilen zu können, dass die von Meta entwickelten Llama 2 Grundmodelle (FMs) nun über Amazon SageMaker JumpStart für Kund:innen zur Verfügung stehen. Die Llama 2 Familie der Großsprachmodelle (LLMs) ist eine Sammlung von vortrainierten und fein abgestimmten generativen Textmodellen, die in ihrer Größe von 7 Milliarden bis zu 70 Milliarden Parametern variieren. Fein abgestimmte LLMs, genannt Llama-2-Chat, sind für Dialoganwendungen optimiert. Sie können diese Modelle ganz einfach ausprobieren und sie mit SageMaker JumpStart verwenden. SageMaker JumpStart ist eine Plattform für maschinelles Lernen (ML), welche einfachen Zugang zu Algorithmen, Modellen und ML-Lösungen bietet, damit Sie schnell mit ML beginnen können.

In diesem Beitrag gehen wir darauf ein, wie Sie die Llama 2 Modelle über SageMaker JumpStart nutzen können.

Was ist Llama 2?

Llama 2 ist ein auto-regressives Sprachmodell, das eine optimierte Transformer-Architektur verwendet. Llama 2 ist für kommerzielle und Forschungszwecke in englischer Sprache vorgesehen. Es gibt es in verschiedenen Parametergrößen – 7 Milliarden, 13 Milliarden und 70 Milliarden – sowie in vortrainierten und fein abgestimmten Varianten. Laut Meta verwenden die abgestimmten Versionen überwachtes Feintuning (SFT) und Verstärkungslernen mit menschlichem Feedback (RLHF), um sich an menschliche Vorlieben hinsichtlich Hilfsbereitschaft und Sicherheit anzupassen. Llama 2 wurde mit 2 Billionen Token an Daten aus öffentlich verfügbaren Quellen vortrainiert. Die abgestimmten Modelle sind für assistentenähnliche Chats vorgesehen, während die vortrainierten Modelle für eine Vielzahl von Aufgaben zur Generierung natürlicher Sprache angepasst werden können. Unabhängig davon, welche Version des Modells ein:e Entwickler:in verwendet, kann der Leitfaden für den verantwortungsvollen Einsatz von Meta [EN, Extern] dabei helfen, zusätzliches Feintuning zu leiten, das möglicherweise notwendig ist, um die Modelle mit geeigneten Sicherheitsmaßnahmen anzupassen und zu optimieren.

Was ist SageMaker JumpStart?

Mit SageMaker JumpStart können ML-Nutzer:innen aus einer breiten Auswahl von Open-Source-Grundmodellen wählen. ML-Nutzer:innen können Grundmodelle auf dedizierten Amazon SageMaker-Instanzen in einer netzwerkisolierten Umgebung erstellen und Modelle mit SageMaker für das Modelltraining und die Bereitstellung anpassen.

Sie können jetzt auch Llama 2 mit nur wenigen Klicks in Amazon SageMaker Studio oder programmatisch über das SageMaker Python SDK entdecken und bereitstellen. Dies ermöglicht es Ihnen, die Modellleistung und MLOps-Steuerelemente mit SageMaker-Funktionen wie Amazon SageMaker Pipelines, Amazon SageMaker Debugger oder Containerprotokollen zu nutzen. Llama 2 Modelle sind ab heute im Amazon SageMaker Studio verfügbar, zunächst in den Regionen us-east 1 und us-west 2.

Modelle entdecken

Sie können auf die Grundmodelle über SageMaker JumpStart in der SageMaker Studio UI und dem SageMaker Python SDK zugreifen. In diesem Abschnitt gehen wir darauf ein, wie Sie die Modelle in SageMaker Studio entdecken können.

SageMaker Studio ist eine integrierte Entwicklungsumgebung (IDE), die Ihnen eine einheitliche webbasierte visuelle Schnittstelle bietet, über welche Sie speziell entwickelte Tools für alle Schritte der ML-Entwicklung nutzen können: von der Datenvorbereitung über den Aufbau und Training bis hin zur Bereitstellung Ihrer ML-Modelle. Weitere Details zum Einstieg und zur Einrichtung von SageMaker Studio finden Sie in Amazon SageMaker Studio.

Sie können Sie auf SageMaker JumpStart über Ihr SageMaker Studio zugreifen. SageMaker JumpStart beinhaltet vortrainierte Modelle, Notebooks, sowie vorgefertigte Lösungen.

Von der SageMaker JumpStart Startseite aus können Sie nach Lösungen, Modellen, Notebooks und anderen Ressourcen suchen. Sie finden zwei Flaggschiff-Llama-2-Modelle im Abschnitt „Foundation Models: Text Generation„.

Wenn Sie die Llama 2 Modelle nicht sehen, aktualisieren Sie Ihre SageMaker Studio-Version, indem Sie sie herunterfahren und neu starten. Weitere Informationen zu Versionsupdates finden Sie unter Herunterfahren und Aktualisieren von Studio-Apps.

Sie können auch vier andere Modellvarianten finden, indem Sie „Alle Textgenerierungsmodelle erkunden“ wählen oder nach llama in der Suchbox suchen.

Sie können eine Modellkarte auswählen, um mehr Details über ein Modell wie zB. Lizenz, verwendete Trainingsdaten und Anwendungsmethoden zu sehen. Sie finden zudem zwei weitere Schaltflächen “Deploy“ und “Open Notebook„, die Ihnen bei Der Nutzung des Models helfen.

Wenn Sie eine der beiden Schaltflächen auswählen, wird ein Pop-up mit der Endnutzer-Lizenzvereinbarung und der akzeptablen Nutzungsrichtlinie angezeigt. Um Fortzufahren, müssen Sie diese anerkennen.

Nach Bestätigung können Sie mit dem nächsten Schritt zur Modellnutzung fortfahren.

Ein Modell bereitstellen

Wenn Sie „Deploy“ wählen und die Bedingungen anerkennen, beginnt die Modellbereitstellung. Alternativ können Sie die Bereitstellung über das Beispiel-Notebook starten. Dieses erscheint, wenn Sie “Open Notebook“ wählen. Das Beispiel-Notebook bietet eine durchgehende Anleitung zur Bereitstellung des Modells für Inferenzen und zur Bereinigung von Ressourcen.

Zur Bereitstellung mittels eines Notebooks beginnen wir mit der Auswahl eines geeigneten Modells, welches durch die jeweilige model_id spezifiziert ist. Sie können jedes der ausgewählten Modelle mit dem folgenden Code auf SageMaker bereitstellen.

from sagemaker.jumpstart.model import JumpStartModel
my_model = JumpStartModel(model_id = "meta-textgeneration-llama-2-70b-f")
predictor = my_model.deploy()

Dies bereitet das Modell mit Standardkonfigurationen auf SageMaker vor, einschließlich der Standardinstanztypen und der Standard-VPC-Konfigurationen. Sie können diese Konfigurationen auch ändern, indem Sie in JumpStartModel Nicht-Standard-Werte angeben [EN]. Nachdem Ihr gewähltes Model bereitgestellt wurde, können Sie Inferenzen gegen den bereitgestellten Endpunkt über den SageMaker-Predictor ausführen:

payload = {
    “inputs”:  
      [
        [
         {"role": "system", "content": "Always answer with Haiku"},
         {"role": "user", "content": "I am going to Paris, what should I see?"},
        ]   
      ],
   "parameters":{"max_new_tokens":256, "top_p":0.9, "temperature":0.6}
}

Fein abgestimmte Chatmodelle (Llama-2-7b-chat, Llama-2-13b-chat, Llama-2-70b-chat) akzeptieren einen Verlauf des Chats zwischen dem Nutzer und dem Chat-Assistenten und erzeugen den anschließenden Chat. Die vortrainierten Modelle (Llama-2-7b, Llama-2-13b, Llama-2-70b) erfordern einen String-Prompt und führen eine Textvervollständigung auf dem bereitgestellten Prompt durch. Sehen Sie den folgenden Code:

predictor.predict(payload, custom_attributes="accept_eula=true")

Beachten Sie, dass accept_eula standardmäßig auf false gesetzt ist. Sie müssen accept_eula=true setzen, um den Endpunkt erfolgreich aufzurufen. Dadurch akzeptieren Sie die Benutzerlizenzvereinbarung und die akzeptable Nutzungsrichtlinie, wie zuvor erwähnt. Sie können die Lizenzvereinbarung zudem herunterladen [EN, Extern].

Die zur Übertragung der EULA verwendet custom_attributes. Dies sind Schlüssel-/Wertpaare. Schlüssel und Wert werden durch = getrennt und Paare sind durch ; getrennt. Wenn der Nutzer denselben Schlüssel mehr als einmal übermittelt, wird der letzte Wert behalten und an den Skript-Handler übergeben (d.h. in diesem Fall zur bedingten Logik verwendet). Wenn also accept_eula=false; accept_eula=true an den Server übergeben wird, wird accept_eula=true behalten und an den Skript-Handler weitergegeben.

Inferenzparameter steuern den Textgenerierungsprozess am Endpunkt. Die maximale Kontrolle über neue Token bezieht sich auf die Größe der vom Modell erzeugten Ausgabe. Beachten Sie, dass dies nicht dasselbe ist wie die Anzahl der Wörter, da das Vokabular des Modells nicht dasselbe ist wie das Vokabular der englischen Sprache und jedes Token nicht unbedingt ein englisches Wort ist. Die Temperatur kontrolliert die Zufälligkeit in der Ausgabe. Eine höhere Temperatur führt zu kreativeren und halluzinierten Ausgaben. Alle Inferenzparameter sind optional.

Die folgende Tabelle listet alle in SageMaker JumpStart verfügbaren Llama-Modelle zusammen mit denmodell_ids, den Standard-Instanztypen und der maximalen Anzahl von Gesamt-Token (Summe aus Anzahl der Eingabe-Token und Anzahl der generierten Token) auf, die für jedes Modell unterstützt werden.

Model Name Model ID Max Total Tokens Default Instance Type
Llama-2-7b meta-textgeneration-llama-2-7b 4096 ml.g5.2xlarge
Llama-2-7b-chat meta-textgeneration-llama-2-7b-f 4096 ml.g5.2xlarge
Llama-2-13b meta-textgeneration-llama-2-13b 4096 ml.g5.12xlarge
Llama-2-13b-chat meta-textgeneration-llama-2-13b-f 4096 ml.g5.12xlarge
Llama-2-70b meta-textgeneration-llama-2-70b 4096 ml.g5.48xlarge
Llama-2-70b-chat meta-textgeneration-llama-2-70b-f 4096 ml.g5.48xlarge

Beachten Sie, dass SageMaker Endpunkte eine Timeout-Begrenzung von 60s haben. Daher wird, selbst wenn das Modell in der Lage sein könnte, 4096 Token zu generieren, die Anfrage fehlschlagen, wenn die Textgenerierung mehr als 60s dauert. Für die Modelle 7B, 13B und 70B empfehlen wir, max_new_tokens nicht größer als 1500, 1000 bzw. 500 einzustellen, während die Gesamtzahl der Token weniger als 4K betragen sollte.

Inferenz und Beispiel-Prompts für Llama-2-70b

Sie können Llama-Modelle für die Textvervollständigung für jeden Textabschnitt verwenden. Durch Textgenerierung können Sie eine Vielzahl von Aufgaben durchführen, wie zum Beispiel Fragen beantworten, Sprachübersetzungen durchführen, Sentimentanalysen und vieles mehr. Die Eingabe für den Endpunkt sieht wie folgender Code aus:

payload = {
    “inputs”: str,
   (optional)"parameters":{"max_new_tokens":int, "top_p":float, "temperature":float}
}

Im Folgenden finden Sie einige Beispiel-Prompts und den vom Modell generierten Text. Alle Ausgaben werden mit den Inferenzparametern {"max_new_tokens": 512, "top_p": 0.9, "temperature": 0.6} generiert.

Input: Einfach ausgedrückt besagt die Relativitätstheorie, dass  

 Output: 
die Zeit und der Raum nicht absolute Größen sind, sondern von dem Beobachter und seiner Bewegung abhängen. Dies bedeutet, dass die Zeit und der Raum für verschiedene Beobachter unterschiedlich sein können und dass es keine absolute Wahrheit gibt, die für alle Beobachter gilt. Stattdessen gibt es verschiedene Perspektiven und Bezugssysteme, die alle gleichermaßen valid sind.

Dies führt dazu, dass die Physik nicht mehr in der Lage ist, absolute Geschwindigkeiten oder absolute Zeitpunkte zu bestimmen. Stattdessen müssen sich die Physiker auf die Relativität der Größen und die Perspektive des Beobachters konzentrieren. Dies hat Auswirkungen auf viele Bereiche der Physik, wie z.B. die Mechanik, die Elektrodynamik und die Kosmologie.

Insgesamt ist die Relativitätstheorie eine fundamental wichtige Theorie, die unser Verständnis von Raum und Zeit revolutioniert hat und uns dazu angerührt hat, die Welt in einem völlig neuen Licht zu betrachten.

##############################################################

Input: Ich glaube, der Sinn des Lebens ist

 Output: 
, etwas zu tun, das einen glücklich macht und einem einen Sinn gibt. Es ist wichtig, dass jeder seine eigenen Ziele und Träume verfolgt und versucht, sie zu erreichen. Es kann auch hilfreich sein, sich auf die Bedürfnisse anderer zu konzentrieren und ihnen zu helfen, ihre Ziele zu erreichen. Wichtig ist auch, dass man sich auf die eigenen Stärken und Fähigkeiten konzentriert und versucht, sich kontinuierlich zu entwickeln und zu wachsen. Am Ende des Tages ist es wichtig, dass man sich mit dem Gefühl des Erfolgs und der Zufriedenheit zurückversetzen kann.

##############################################################

Input: Eine kurze Gratulation an das Team zum Launch:

Output:
Herzlichen Glückwunsch zum erfolgreichen Launch! Ich bin stolz darauf, Teil eines solchen tollen Teams zu sein. Wir haben gemeinsam hart daran gearbeitet, um diesen Meilenstein zu erreichen, und ich bin sicher, dass wir noch viele weitere Erfolge feiern werden. Prost!

Im nächsten Beispiel zeigen wir, wie man Llama-Modelle mit wenigen Schüssen im Kontextlernen verwendet, wobei wir dem Modell verfügbare Trainingssamples bereitstellen. Beachten Sie, dass wir nur Inferenzen am bereitgestellten Modell durchführen und während dieses Prozesses ändern sich die Modellgewichte nicht.

Input: Übersetze Englisch ins Französische:
        
        sea otter => loutre de mer
        peppermint => menthe poivrée
        plush girafe => girafe peluche
        cheese => 

 Output: 
Käse => fromage

Inferenz und Beispiel-Prompts für Llama-2-70b-chat

Mit den Llama-2-Chat-Modellen, die für Dialoganwendungen optimiert sind, ist die Eingabe zu den Chat-Modell-Endpunkten die bisherige Historie zwischen dem Chat-Assistenten und dem Nutzer. Sie können Fragen stellen, die im Kontext der bisher geführten Konversation stehen. Sie können auch die Systemkonfiguration bereitstellen, wie zum Beispiel Persönlichkeiten, die das Verhalten des Chat-Assistenten definieren. Die Eingabe für den Endpunkt sieht wie folgender Code aus:

payload = {
    “inputs”:  [
     [
      (optional){"role": "system", "content": str},
      (repeated k times) {"role": "user", "content": str}, {"role": "assistant", "content": str},
      {"role": "user", "content": str},
     ]
    ],
   (optional)"parameters":{"max_new_tokens":int, "top_p":float, "temperature":float}
}

Im Folgenden finden Sie einige Beispiel-Prompts und den vom Modell generierten Text. Alle Ausgaben werden mit den Inferenzparametern {"max_new_tokens": 512, "top_p": 0.9, "temperature": 0.6} generiert.

Input:
User: Was ist das Rezept für Mayonnaise?

Output:
Das Rezept für Mayonnaise ist einfach und besteht aus nur wenigen Zutaten. Hier ist eine klassische Rezeptur:

Zutaten:

* 2 Eier
* 150 ml Neutralöl (zum Beispiel Canolaöl)
* 1 EL Apfelessig
* 1 TL Senf
* Salz und Pfeffer nach Geschmack

Anleitung:

1. In einer Schüssel die Eier mit dem Apfelessig und Senf vermengen, bis eine glatte Masse entsteht.
2. Langsam das Öl in dünner Stream einrühren, während kontinuierlich umgerührt wird.
3. Bis das Öl vollständig eingearbeitet ist, sollte die Masse eine cremige Konsistenz haben.
4. Mit Salz und Pfeffer abschmecken.
5. In einem luftdichten Behälter im Kühlschrank aufbewahren.

Tipp: Um eine cremigere Mayonnaise zu erzielen, kann man das Öl langsamer einrühren oder das Ei in einem Mixer vorbereiten, bevor man das Öl hinzufügt.

Im folgenden Beispiel hat der Nutzer mit dem Assistenten über Touristenorte in Paris gesprochen. Als nächstes erkundigt sich der Nutzer nach der ersten Option, die vom Chat-Assistenten empfohlen wurde.

Input:
User: Ich fahre nach Paris, was soll ich sehen?

Assistant: Paris, die Hauptstadt Frankreichs, ist für ihre atemberaubende Architektur, Kunstmuseen, historischen Sehenswürdigkeiten und romantische Atmosphäre bekannt. Hier sind einige der Top-Attraktionen, die es in Paris zu sehen gibt:

1. Der Eiffelturm: Der ikonische Eiffelturm ist eines der bekanntesten Wahrzeichen der Welt und bietet atemberaubende Ausblicke auf die Stadt.
2. Das Louvre-Museum: Der Louvre ist eines der größten und berühmtesten Museen der Welt und beherbergt eine beeindruckende Sammlung von Kunst und Artefakten, darunter die Mona Lisa.
3. Kathedrale Notre-Dame: Diese wunderschöne Kathedrale ist eines der berühmtesten Wahrzeichen von Paris und bekannt für ihre gotische Architektur und atemberaubenden Buntglasfenster.

Dies sind nur einige der vielen Attraktionen, die Paris zu bieten hat. Da es so viel zu sehen und zu tun gibt, ist es kein Wunder, dass Paris eines der beliebtesten Reiseziele der Welt ist.

User: Was ist das Tolle an Nummer 1?

Output:
Der Eiffelturm ist ein Wahrzeichen von Paris und ein berühmtes Symbol für Frankreich. Er wurde 1889 erbaut und ist seitdem ein beliebter Anziehungspunkt für Touristen und Einheimische. Der Eiffelturm ist nicht nur eine imposante Struktur, sondern auch ein technisches Meisterwerk, das die damaligen Ingenieure und Architekten in Bewunderung versetzt hat.

Der Eiffelturm ist zudem auch ein Symbol für die romantische Aura von Paris, die Stadt der Liebe und des Lichts. Viele Paare besuchen den Turm, um sich zu verloben oder sich zu versöhnen. Die atemberaubenden Ausblicke auf die Stadt von oben sind ein unvergessliches Erlebnis.

Darüber hinaus ist der Eiffelturm ein wichtiger Teil der französischen Kultur und Geschichte. Er wurde erbaut, um die Weltausstellung von 1889 zu feiern, und seitdem ist er ein Symbol für die französische Ingenieurskunst und die fortschrittliche Technologie des Landes.

Insgesamt ist der Eiffelturm ein wahres Wahrzeichen von Paris und ein unvergessliches Erlebnis für alle, die die Stadt besuchen.

In den folgenden Beispielen setzen wir die Konfiguration des Systems:

Input:
System: Antworte ausschließlich in Haiku
User:Ich fahre nach Paris, was soll ich sehen?

Output:
Eiffelturm hoch steil,
Mona Lisa lächelt geheimnisvoll,
Lichter der Stadt glühen.

##############################################################

Input:
System: Antworte ausschließlich mit Emoji
User: Wie komme ich von Peking nach New York?

Output:
🇨🇳🛫🛬🇺🇸🗽🏙️🚕💨🛩️🛬🛫😴💤🛩️🛬🛫😍

Aufräumen

Wenn Sie mit der Ausführung des Notebooks fertig sind, stellen Sie sicher, dass Sie alle Ressourcen löschen, so dass alle Ressourcen, die Sie im Prozess erstellt haben, gelöscht werden und Ihre Abrechnung gestoppt wird:

predictor.delete_model()
predictor.delete_endpoint()

Fazit

In diesem Beitrag haben wir Ihnen gezeigt, wie Sie mit den Llama 2 Modellen in SageMaker Studio starten können. Damit haben Sie Zugang zu sechs Llama 2 Grundmodellen, die Milliarden von Parametern enthalten. Da Grundmodelle vortrainiert sind, können sie auch dazu beitragen, die Trainings- und Infrastrukturkosten zu senken und die Anpassung an Ihren Anwendungsfall zu ermöglichen. Um mit SageMaker JumpStart zu beginnen, besuchen Sie die folgenden Ressourcen:

Über die Autoren

June Won ist Produktmanager bei SageMaker JumpStart. Er konzentriert sich darauf, Grundmodelle leicht auffindbar und nutzbar zu machen, um Kund:innen beim Aufbau generativer KI-Anwendungen zu unterstützen. Seine Erfahrungen bei Amazon umfassen auch die mobile Einkaufsanwendung und die Zustellung auf der letzten Meile.
Dr. Vivek Madan ist angewandter Wissenschaftler im Amazon SageMaker JumpStart-Team. Er promovierte an der University of Illinois in Urbana-Champaign und war Postdoktorand an der Georgia Tech. Er ist aktiver Forscher im Bereich Maschinelles Lernen und Algorithmus-Design und hat Arbeiten auf den Konferenzen EMNLP, ICLR, COLT, FOCS und SODA veröffentlicht.
Dr. Kyle Ulrich ist angewandter Wissenschaftler im Amazon SageMaker JumpStart-Team. Seine Forschungsinteressen umfassen skalierbare Algorithmen für maschinelles Lernen, Computer Vision, Zeitreihen, Bayes’sche Nichtparametrie und Gaußsche Prozesse. Seine Promotion erhielt er von der Duke University und er hat Arbeiten auf den Konferenzen NeurIPS, Cell und Neuron veröffentlicht.
Dr. Ashish Khetan ist leitender angewandter Wissenschaftler bei Amazon SageMaker JumpStart und hilft bei der Entwicklung von Algorithmen für maschinelles Lernen. Er promovierte an der University of Illinois in Urbana-Champaign. Er ist ein aktiver Forscher im Bereich Maschinelles Lernen und statistische Inferenz und hat viele Arbeiten auf den Konferenzen NeurIPS, ICML, ICLR, JMLR, ACL und EMNLP veröffentlicht.
Sundar Ranganathan ist der weltweite Leiter der GenAI/Frameworks GTM bei AWS. Er konzentriert sich auf die Entwicklung von GTM-Strategien für große Sprachmodelle, GenAI und groß angelegte ML-Workloads über AWS-Dienste wie Amazon EC2, EKS, EFA, AWS Batch und Amazon SageMaker. Seine Erfahrungen umfassen Führungspositionen im Produktmanagement und in der Produktentwicklung bei NetApp, Micron Technology, Qualcomm und Mentor Graphics.