Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Optimieren eines großen Sprachmodells (LMM) mit Prompt-Anweisungen
Bei der anweisungsbasierten Feinabstimmung werden gekennzeichnete Beispiele verwendet, um die Leistung eines vortrainierten Grundlagenmodells für eine bestimmte Aufgabe zu verbessern. Die gekennzeichneten Beispiele sind als Eingabeaufforderung und Antwortpaare formatiert und als Anweisungen formuliert. Durch diesen Feinabstimmungsprozess werden die Gewichtungen des Modells geändert. Weitere Informationen zur anweisungsbasierten Feinabstimmung finden Sie in den Artikeln Introducing FLAN: More generalizable Language Models with Instruction Fine-Tuning
FLAN (Fine-Tuned LAnguage Net) -Modelle nutzen die Befehlsoptimierung, um Modelle für die Lösung allgemeiner nachgelagerter NLP-Aufgaben besser geeignet zu machen. Amazon SageMaker JumpStart bietet eine Reihe von Basismodellen in der FLAN-Modellfamilie an. Bei den FLAN-T5-Modellen sind die Anweisungen beispielsweise auf eine Vielzahl von Aufgaben abgestimmt, um die Zero-Shot-Leistung für eine Vielzahl gängiger Anwendungsfälle zu erhöhen. Mit zusätzlichen Daten und Feinabstimmungen können anweisungsbasierte Modelle weiter an spezifischere Aufgaben angepasst werden, die beim Vortraining nicht berücksichtigt wurden.
So optimieren Sie ein LLM für eine bestimmte Aufgabe mithilfe von Anweisungen in Form von Prompt-Antwort-Paaren:
-
Bereiten Sie Ihre Anweisungen in JSON-Dateien vor. Weitere Informationen zum erforderlichen Format für die Dateien mit den Prompt-Antwort-Paaren und zur Struktur des Datenordners finden Sie unter Vorbereiten und Hochladen von Trainingsdaten für die Optimierung mithilfe von Anweisungen.
-
Erstellen Sie Ihren Trainingsjob zur Optimierung. Detaillierte Anweisungen finden Sie unter Erstellen eines Trainingsjobs zur Optimierung mithilfe von Anweisungen.
end-to-endBeispiele finden Sie inBeispiel-Notebooks.
Nur ein Teil der Basismodelle ist mit JumpStart der anweisungsbasierten Feinabstimmung kompatibel. Die anweisungsbasierte Feinabstimmung ist für die folgenden Grundlagenmodelle verfügbar:
Anmerkung
Einige Basismodelle JumpStart , wie Llama 2 7B, erfordern die Annahme einer Endbenutzer-Lizenzvereinbarung, bevor die Feinabstimmung vorgenommen und Inferenzen durchgeführt werden können. Weitere Informationen finden Sie unter Endbenutzer-Lizenzvereinbarungen.
-
FLAN-T5 Base
-
FLAN-T5 Large
-
FLAN-T5 Small
-
FLAN-T5 XL
-
Flan-T5 XXL
-
Llama 2 13B
-
Llama 2 13B Chat
-
Llama 2 13B Neuron
-
Llama 2 70B
-
Llama 2 70B Chat
-
Llama 2 7B
-
Llama 2 7B Chat
-
Llama 2 7B Neuron
-
Mistral 7B
-
RedPajama INCITE Base 3B V1
-
RedPajama INCITE Basis 7B V1
-
RedPajama INCITE Chat 3B V1
-
RedPajama INCITE Chat 7B V1
-
RedPajama INCITE, instruiere 3B V1
-
RedPajama INCITE, Instruktiv 7B V1
Vorbereiten und Hochladen von Trainingsdaten für die Optimierung mithilfe von Anweisungen
Trainingsdaten für die Optimierung mithilfe von Anweisungen müssen im Textdateiformat JSON Lines bereitgestellt werden, wobei jede Zeile ein Wörterbuch ist. Alle Trainingsdaten müssen sich in einem einzigen Ordner befinden. Der Ordner kann mehrere JSONL-Dateien enthalten.
Der Trainingsordner kann auch eine JSON-Vorlagendatei (template.json) enthalten, die die Eingabe- und Ausgabeformate Ihrer Daten beschreibt. Wenn keine Vorlagendatei bereitgestellt wird, wird die folgende Vorlagendatei verwendet:
{ "prompt": "Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\n{instruction}\n\n### Input:\n{context}", "completion": "{response}" }
Gemäß der template.json-Datei muss jeder JSONL-Eintrag der Trainingsdaten die Felder {instruction}, {context} und {response} enthalten.
Wenn Sie eine benutzerdefinierte JSON-Vorlagendatei bereitstellen, verwenden Sie die Tasten "completion" und "prompt", um Ihre eigenen Pflichtfelder zu definieren. Gemäß der folgenden benutzerdefinierten JSON-Vorlagendatei muss jeder JSONL-Eintrag der Trainingsdaten die Felder {question}, {context} und {answer} enthalten:
{ "prompt": "question: {question} context: {context}", "completion": "{answer}" }
Aufteilen von Daten zu Trainings- und Testzwecken
Sie können optional einen weiteren Ordner mit Validierungsdaten bereitstellen. Dieser Ordner sollte auch eine oder mehrere JSONL-Dateien enthalten. Wenn kein Validierungsdatensatz bereitgestellt wird, wird eine festgelegte Menge der Trainingsdaten für Validierungszwecke reserviert. Bei der Auswahl der Hyperparameter für die Optimierung Ihres Modells können Sie den Prozentsatz der für die Validierung verwendeten Trainingsdaten anpassen.
Hochladen von Optimierungsdaten in Amazon S3
Laden Sie Ihre vorbereiteten Daten in Amazon Simple Storage Service (Amazon S3) hoch, um sie bei der Feinabstimmung eines JumpStart Basismodells zu verwenden. Sie können zum Hochladen Ihre Daten die folgenden Befehle verwenden:
from sagemaker.s3 import S3Uploader import sagemaker import random output_bucket = sagemaker.Session().default_bucket() local_data_file ="train.jsonl"train_data_location = f"s3://{output_bucket}/dolly_dataset"S3Uploader.upload(local_data_file, train_data_location) S3Uploader.upload("template.json", train_data_location) print(f"Training data: {train_data_location}")
Erstellen eines Trainingsjobs zur Optimierung mithilfe von Anweisungen
Nachdem Ihre Daten auf Amazon S3 hochgeladen wurden, können Sie Ihr JumpStart Fundamentmodell optimieren und bereitstellen. Informationen zur Optimierung Ihres Modells in Studio finden Sie unter Optimieren eines Modells in Studio. Informationen zur Feinabstimmung Ihres Modells mithilfe des SageMaker Python SDK finden Sie unter. Optimieren von öffentlich verfügbaren Basismodellen mit der JumpStartEstimator-Klasse
Beispiel-Notebooks
Weitere Informationen zur Optimierung mithilfe von Anweisungen finden Sie in den folgenden Beispiel-Notebooks: