Optimieren Sie ein umfangreiches Sprachmodell (LLM) mithilfe von Eingabeaufforderungen - Amazon SageMaker

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 Sie ein umfangreiches Sprachmodell (LLM) mithilfe von Eingabeaufforderungen

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 unterrichtsbasierten Feinabstimmung finden Sie in den Artikeln Einführung inFLAN: Generalisierbarere Sprachmodelle mit Befehlsfeinabstimmung und Skalierung von Instruktionsfeinabstimmungen.

Fein abgestimmte LAnguage Net (FLAN) -Modelle nutzen die Befehlsoptimierung, um Modelle für die Lösung allgemeiner nachgelagerter Aufgaben besser geeignet zu machen. NLP Amazon SageMaker JumpStart bietet eine Reihe von Basismodellen in der FLAN Modellfamilie an. FLANT-5-Modelle verfügen beispielsweise über eine Feinabstimmung der Befehle auf eine Vielzahl von Aufgaben, 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.

Um eine Feinabstimmung an einer bestimmten Aufgabe mithilfe von LLM Aufgabenanweisungen zwischen Aufforderung und Antwort vorzunehmen:

  1. Bereiten Sie Ihre Anweisungen in Dateien vor. JSON Weitere Informationen über das erforderliche Format für die Dateien des Prompt-Response-Paars und die Struktur des Datenordners finden Sie unter. Bereiten Sie Trainingsdaten für die unterrichtsbasierte Feinabstimmung vor und laden Sie sie hoch

  2. Erstellen Sie Ihren Trainingsjob zur Feinabstimmung. Detaillierte Anweisungen finden Sie unter Erstellen Sie einen Schulungsjob für die anweisungsbasierte Feinabstimmung.

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-Basis

  • Flan-T5 Groß

  • Flan-T5 Klein

  • Flan-T5 XL

  • Flan-T5 XXL

  • Lama 2 13B

  • Lama 2 13B Chat

  • Lama 2 13B Neuron

  • Lama 2 70B

  • Lama 2 70B Chat

  • Lama 2 7B

  • Lama 2 7B Chat

  • Lama 2 7B Neuron

  • Mistral 7B

  • RedPajama INCITEBasis 3B V1

  • RedPajama INCITEBasis 7B V1

  • RedPajama INCITEChat 3B V1

  • RedPajama INCITEChatten Sie 7B V1

  • RedPajama INCITEWeisen Sie 3B V1 an

  • RedPajama INCITE7B V1 anweisen

Bereiten Sie Trainingsdaten für die unterrichtsbasierte Feinabstimmung vor und laden Sie sie hoch

Trainingsdaten für die anweisungsbasierte Feinabstimmung müssen im JSON Lines-Textdateiformat 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 Felder {instruction}{context}, und enthalten. {response}

Wenn Sie eine benutzerdefinierte JSON Vorlagendatei bereitstellen, verwenden Sie die "completion" Tasten "prompt" und, um Ihre eigenen Pflichtfelder zu definieren. Gemäß der folgenden benutzerdefinierten JSON Vorlagendatei muss jeder .jsonl-Eintrag der Trainingsdaten Felder {question}{context}, und enthalten: {answer}

{ "prompt": "question: {question} context: {context}", "completion": "{answer}" }

Daten für Training und Test aufteilen

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. Sie können den Prozentsatz der für die Validierung verwendeten Trainingsdaten anpassen, wenn Sie die Hyperparameter für die Feinabstimmung Ihres Modells auswählen.

Laden Sie Feinabstimmungsdaten auf Amazon S3 hoch

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 die folgenden Befehle verwenden, um Ihre Daten hochzuladen:

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 Sie einen Schulungsjob für die anweisungsbasierte Feinabstimmung

Nachdem Ihre Daten auf Amazon S3 hochgeladen wurden, können Sie Ihr JumpStart Fundamentmodell verfeinern und bereitstellen. Informationen zur Feinabstimmung Ihres Modells in Studio finden Sie unter. Optimieren Sie ein Modell in Studio Zur Feinabstimmung Ihres Modells verwenden Sie SageMaker Python SDK, sieheDie Feinabstimmung öffentlich verfügbarer Foundation-Modelle mithilfe der Klasse JumpStartEstimator.

Beispiel-Notebooks

Weitere Informationen zur anweisungsbasierten Feinabstimmung finden Sie in den folgenden Beispielnotizbüchern: