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.
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:
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:
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:
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
.
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.
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:
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.
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.
In den folgenden Beispielen setzen wir die Konfiguration des Systems:
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:
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:
- SageMaker JumpStart Dokumentation
- Dokumentation zu SageMaker JumpStart-Grundmodellen
- Produktdetailseite von SageMaker JumpStart
- SageMaker JumpStart Modellkatalog [EN]
Ü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. |