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.
Vorbereitung der Daten für die multimodale Feinabstimmung
Wichtig
Bevor Sie mit der Vorbereitung Ihres Datensatzes beginnen, stellen Sie sicher, dass die überwachte Feinabstimmung (SFT) der richtige Ansatz für Ihren Anwendungsfall ist. SFT bringt dem Modell neue Verhaltensweisen, Antwortformate und Denkmuster bei. Es vermittelt dem Modell kein neues Faktenwissen. Wenn Ihr primäres Ziel darin besteht, domänenspezifische Fakten, Terminologie oder Wissen einzuführen, das das Modell noch nicht erkannt hat, sollten Sie eine Retrieval-Augmented Generation (RAG) in Betracht ziehen, um diesen Kontext zum Zeitpunkt der Inferenz bereitzustellen. Hinweise zur Wahl zwischen SFT, Reinforcement Fine-Tuning (RFT) und RAG finden Sie unter. Amazon Nova-Anpassung bei SageMaker Schulungsjobs
Im Folgenden finden Sie Richtlinien und Anforderungen für die Vorbereitung von Daten für die Feinabstimmung von Verständnismodellen:
-
Die Mindestdatengröße für die Feinabstimmung hängt von der Aufgabe ab (d. h. komplex oder einfach), jedoch empfehlen wir Ihnen, mindestens 100 Beispiele für jede Aufgabe zu verwenden, die das Modell lernen soll.
-
Wir empfehlen, Ihren optimierten Prompt sowohl während des Trainings als auch während der Inferenz in einer Zero-Shot-Umgebung zu verwenden, um optimale Ergebnisse zu erzielen.
-
Trainings- und Validierungsdatensätze müssen JSONL-Dateien sein, wobei jede Zeile ein JSON-Objekt darstellt, das einem Datensatz entspricht. Diese Dateinamen dürfen nur aus alphanumerischen Zeichen, Unterstrichen, Bindestrichen, Schrägstrichen und Punkten bestehen.
-
Bild- und Video-Einschränkungen
-
Der Datensatz darf keine unterschiedlichen Medienmodalitäten enthalten. Das heißt, der Datensatz kann entweder Text mit Bildern oder Text mit Videos sein.
-
Ein Beispiel (einzelner Datensatz in Nachrichten) kann mehrere Bilder enthalten
-
Ein Beispiel (einzelner Datensatz in Nachrichten) kann nur 1 Video enthalten
-
-
schemaVersionkann ein beliebiger Zeichenfolgenwert sein -
Die (Optional)
system-Runde kann ein vom Kunden bereitgestellter benutzerdefinierter System-Prompt sein. -
Unterstützte Rollen sind
userundassistant. -
Die erste Runde in
messagessollte immer mit"role": "user"beginnen. Die letzte Runde ist die Antwort des Bots, gekennzeichnet durch."role": "assistant" -
image.source.s3Location.uriundvideo.source.s3Location.urimüssen für Amazon Bedrock zugänglich sein. -
Ihre Amazon-Bedrock-Servicerolle muss in der Lage sein, auf die Bilddateien in Amazon S3 zuzugreifen. Weitere Informationen über die Gewährung von Zugriffsrechten finden Sie unter Eine Servicerolle für die Modellanpassung erstellen
-
Die Bilder oder Videos müssen sich im selben Amazon-S3-Bucket wie Ihr Datensatz befinden. Wenn sich Ihr Datensatz beispielsweise in
s3://amzn-s3-demo-bucket/train/train.jsonlbefindet, müssen Ihre Bilder oder Videos ins3://amzn-s3-demo-bucketgespeichert sein -
Die Begriffe
User:,Bot:,Assistant:,System:,<image>,<video>und[EOS]sind reservierte Schlüsselwörter. Wenn eine Benutzer- oder Systemaufforderung mit einem dieser Schlüsselwörter beginnt oder diese Schlüsselwörter irgendwo in der Eingabeaufforderung vorkommen, schlägt Ihre Trainingsaufgabe aufgrund von Datenproblemen fehl. Wenn Sie diese Schlüsselwörter für Ihren Anwendungsfall verwenden müssen, müssen Sie sie durch andere Stichwörter mit ähnlicher Bedeutung ersetzen, damit Ihre Schulung fortgesetzt werden kann.
Anmerkung
Um Ihren Datensatz zu validieren, bevor Sie einen Job zur Feinabstimmung einreichen, können Sie das auf GitHub verfügbare Datensatzvalidierungsskript
Entwerfen effektiver Schulungsbeispiele
Ihre Trainingsdaten sollten das Verhalten zeigen, das das Modell zeigen soll. SFT bringt dem Modell bei, wie es reagieren soll, und nicht, was es wissen soll. Wenn Sie Trainingsbeispiele in erster Linie erstellen, um Ihnen Faktenwissen zu vermitteln (zum Beispiel „Was bedeutet Fehlercode E-45 ?“ mit der Antwort „E-45 weist auf ein Sensor-Timeout hin“) sollten Sie sich überlegen, ob RAG oder Prompt Engineering ohne Feinabstimmung dasselbe Ergebnis erzielen könnten.
Beachten Sie bei der Konvertierung von Quelldaten in das Konversationsformat die folgenden Prinzipien:
-
Beginnen Sie mit echten Benutzeranfragen. Write-User-Wendungen, die widerspiegeln, wie Endbenutzer das Modell in der Produktion tatsächlich aufrufen werden. Vermeiden Sie künstliche oder zu vereinfachte Fragen, die nicht den tatsächlichen Nutzungsmustern entsprechen.
-
Schreiben Sie Antworten von Assistenten nach Goldstandard. Jede Runde des Assistenten sollte die ideale Antwort sein, die das Modell erzeugen soll — korrekt, gut formatiert und in Ton und Struktur in allen Beispielen einheitlich.
-
Verwenden Sie die Systemaufforderung strategisch. Platzieren Sie persistente Anweisungen wie Ausgabeformat, Persona und Domänenkontext nacheinander im System. Verwenden Sie sowohl beim Training als auch bei der Inferenz dieselbe Systemaufforderung, um die besten Ergebnisse zu erzielen.
-
Konzentrieren Sie sich bei den Beispielen auf eine Fähigkeit pro Stichprobe. Wenn Sie das Modell zum Klassifizieren, Beantworten von Fragen und Zusammenfassen benötigen, erstellen Sie separate Beispielsätze für jede Fähigkeit, anstatt mehrere Fähigkeiten in einer einzigen Stichprobe zu kombinieren.
-
Priorisieren Sie Qualität vor Quantität. Ein paar hundert qualitativ hochwertige, konsistente Beispiele übertreffen in der Regel Tausende von lauten oder widersprüchlichen Beispielen. Deduplizieren und überprüfen Sie Ihre Daten vor dem Training.
Gängige Muster für die Datentransformation
Die folgenden Muster veranschaulichen, wie gängige Unternehmensdatenformate in effektive SFT-Schulungsbeispiele umgewandelt werden können.
Muster 1: Strukturierte Datensätze zur Klassifizierung oder Suche
Wenn es sich bei Ihren Quelldaten um eine Tabelle oder Datenbank mit Datensätzen mit Feldern wie issuecause, und handeltresolution, stellen Sie jeden Datensatz als Benutzerfrage mit den entsprechenden Eingabefeldern und der Antwort des Assistenten als Zielausgabefeldern ein.
// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a technical support assistant. Given an issue description, identify the most likely root cause and recommended resolution." } ], "messages": [ { "role": "user", "content": [ { "text": "A user reports: 'Application crashes on startup after the latest update.' What is the likely cause and resolution?" } ] }, { "role": "assistant", "content": [ { "text": "Cause: Incompatible configuration file from the previous version.\nResolution: Delete the local configuration cache and restart the application to regenerate default settings." } ] } ] }
Muster 2: Von hierarchischen oder taxonomischen Daten bis hin zu strukturierten Fragen und Antworten
Wenn es sich bei Ihren Quelldaten um eine Codehierarchie oder Taxonomie wie Produktkategoriebäume oder Klassifikationssysteme handelt, generieren Sie Fragen, die das Modell bitten, sich in der Hierarchie zurechtzufinden. Beziehen Sie den Klassifizierungskontext in die Systemaufforderung oder in die Benutzerrunde ein.
// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a product catalog assistant. Answer questions about product categories and classifications accurately." } ], "messages": [ { "role": "user", "content": [ { "text": "What top-level category does product code 'EL-4520' belong to, and what subcategories does it include?" } ] }, { "role": "assistant", "content": [ { "text": "Product code EL-4520 belongs to the Electronics category. It includes the subcategories: Audio Equipment, Portable Speakers, and Wireless Accessories." } ] } ] }
Muster 3: Von den prozeduralen Dokumenten zum Anleitungsdialog
Wenn Ihre Quelldaten aus Standardarbeitsanweisungen, Runbooks oder schrittweisen Anleitungen bestehen, konvertieren Sie Verfahren in aufgabenorientierte Fragen. Der Benutzer fragt, wie eine Aufgabe ausgeführt werden soll, und der Assistent stellt die Schritte in einem konsistenten Format bereit.
// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are an IT operations assistant. Provide step-by-step instructions based on approved runbooks and standard operating procedures." } ], "messages": [ { "role": "user", "content": [ { "text": "How do I reset a user's multi-factor authentication when they have lost access to their device?" } ] }, { "role": "assistant", "content": [ { "text": "Follow these steps to reset a user's multi-factor authentication:\n1. Verify the user's identity using the approved verification procedure.\n2. Disable the existing MFA configuration in the identity management console.\n3. Generate a new temporary access code and send it to the user's verified email.\n4. Instruct the user to log in with the temporary code and re-enroll their new device.\n5. Confirm the new MFA device is working by requesting a test authentication.\n6. Document the reset in the support ticket." } ] } ] }
Anmerkung
Wenn in den Mustern 1 und 2 der sachliche Inhalt (wie Codes, Kategorien oder Auflösungen) nicht bereits in den Daten des Modells vor dem Training enthalten ist, sollten Sie in Erwägung ziehen, RAG zu verwenden, um diese Informationen zum Zeitpunkt der Inferenz bereitzustellen, anstatt sich ausschließlich auf SFT zu verlassen, um sie auswendig zu lernen. SFT ist am effektivsten, wenn es darum geht, dem Modell das Antwortformat und das Argumentationsmuster beizubringen, während RAG die faktische Grundlage übernimmt.
Beispieldatensatzformate
Die folgenden Beispieldatensatzformate bieten Ihnen eine Orientierungshilfe.
Das folgende Beispiel dient ausschließlich der benutzerdefinierten Feinabstimmung von Text.
// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a digital assistant with a friendly personality" } ], "messages": [ { "role": "user", "content": [ { "text": "What is the capital of Mars?" } ] }, { "role": "assistant", "content": [ { "text": "Mars does not have a capital. Perhaps it will one day." } ] } ] }
Das folgende Beispiel dient der benutzerdefinierten Feinabstimmung von Text und einem einzelnen Bild.
// train.jsonl{ "schemaVersion": "bedrock-conversation-2024", "system": [{ "text": "You are a smart assistant that answers questions respectfully" }], "messages": [{ "role": "user", "content": [{ "text": "What does the text in this image say?" }, { "image": { "format": "png", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.png", "bucketOwner": "your-aws-account-id" } } } } ] }, { "role": "assistant", "content": [{ "text": "The text in the attached image says 'LOL'." }] } ] }
Das folgende Beispiel dient der benutzerdefinierten Feinabstimmung von Text und Video.
{ "schemaVersion": "bedrock-conversation-2024", "system": [{ "text": "You are a helpful assistant designed to answer questions crisply and to the point" }], "messages": [{ "role": "user", "content": [{ "text": "How many white items are visible in this video?" }, { "video": { "format": "mp4", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-video.mp4", "bucketOwner": "your-aws-account-id" } } } } ] }, { "role": "assistant", "content": [{ "text": "There are at least eight visible items that are white" }] } ] }
Einschränkungen für Datensätze
Amazon Nova wendet die folgenden Einschränkungen auf Modellanpassungen für Verständnismodelle an.
Modell |
Minimale Anzahl von Beispielen |
Maximale Anzahl von Beispielen |
Kontextlänge |
|---|---|---|---|
Amazon Nova Micro |
8 |
20 000 |
32 000 |
Amazon Nova Lite |
8 |
20 000 |
32 000 |
Amazon Nova Pro |
8 |
20 000 |
32 000 |
Maximale Anzahl an Bildern |
10/sample |
Maximale Größe von Bilddateien |
10 MB |
Maximale Anzahl von Videos |
1/sample |
Maximales Video length/duration |
90 Sekunden |
Maximale Größe von Videodateien |
50 MB |
Unterstützte Medienformate
-
Bild –
png,jpeg,gif,webp -
Video –
mov,mkv,mp4,webm