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.
Evaluieren Sie Ihr SageMaker AI-trained Modell
Der Zweck des Bewertungsprozesses besteht darin, die Leistung des trainierten Modells anhand von Benchmarks oder benutzerdefinierten Datensätzen zu bewerten. Der Bewertungsprozess umfasst in der Regel Schritte zur Erstellung eines Bewertungsrezepts, das auf das trainierte Modell verweist, zur Festlegung von Bewertungsdatensätzen und -metriken, zur Einreichung eines separaten Jobs für die Bewertung und zur Bewertung anhand von Standardbenchmarks oder benutzerdefinierten Daten. Der Bewertungsprozess gibt Leistungsmetriken aus, die in Ihrem Amazon-S3-Bucket gespeichert sind.
Anmerkung
Sie können Ihre Modelle auch mit Inspect AI evaluieren, einem Open-Source-Evaluierungsframework, das standardisierte Benchmarks und benutzerdefinierte Bewertungsaufgaben unterstützt.
Anmerkung
Der in diesem Thema beschriebene Bewertungsprozess ist ein Offline-Prozess. Das Modell wird anhand festgelegter Benchmarks mit vordefinierten Antworten getestet, statt in Echtzeit oder anhand von Live-Benutzerinteraktionen bewertet zu werden. Für die Echtzeitbewertung können Sie das Modell testen, nachdem es auf Amazon Bedrock bereitgestellt wurde, indem Sie die Laufzeit-APIs von Amazon Bedrock aufrufen.
Themen
Voraussetzungen
Bevor Sie einen Bewertungs-Trainingsjob beginnen, sollten Sie Folgendes beachten.
-
Ein SageMaker AI-trained Amazon Nova-Modell, dessen Leistung Sie bewerten möchten.
-
Amazon-Nova-Basisrezept zur Bewertung Weitere Informationen finden Sie unter Abrufen von Amazon-Nova-Rezepten.
Verfügbare Benchmark-Aufgaben
Es ist ein Beispielcodepaket verfügbar, das zeigt, wie Benchmark-Metriken mithilfe der Funktion zur Bewertung von SageMaker KI-Modellen für Amazon Nova berechnet werden. Informationen zum Zugriff auf die Codepakete finden Sie unter sample- Nova-lighteval-custom-task
Hier finden Sie eine Liste unterstützter, verfügbarer Industriestandard-Benchmarks. Sie können die folgenden Benchmarks für den Parameter eval_task angeben.
Verfügbare Benchmarks für die Modellbewertung
| Benchmark | Modalität | Description | Kennzahlen | Strategie | Unteraufgabe verfügbar |
|---|---|---|---|---|---|
| mmlu |
Text |
Multi-task Sprachverständnis — Testet das Wissen in 57 Fächern. |
Richtigkeit |
zs_cot | Ja |
| mmlu_pro | Text |
MMLU – professioneller Bereich – konzentriert sich auf Fachbereiche wie Recht, Medizin, Rechnungswesen und Ingenieurwesen. |
Richtigkeit | zs_cot | Nein |
| bbh | Text |
Fortschrittliche Argumentationsaufgaben – eine Sammlung herausfordernder Probleme, die kognitive Fähigkeiten und Fähigkeiten zur Problemlösung auf höherem Niveau auf die Probe stellen. |
Richtigkeit | fs_cot | Ja |
| gpqa | Text |
Beantwortung allgemeiner Fragen zur Physik – beurteilt das Verständnis physikalischer Konzepte und die damit verbundenen Fähigkeiten zur Problemlösung. |
Richtigkeit | zs_cot | Nein |
| math | Text |
Mathematische Problemlösung – bewertet mathematische Überlegungen in verschiedenen Themenbereichen wie Algebra, Infinitesimalrechnung und Textaufgaben. |
exact_match | zs_cot | Ja |
| strong_reject | Text |
Quality-Control Aufgabe — Testet die Fähigkeit des Modells, unangemessene, schädliche oder falsche Inhalte zu erkennen und abzulehnen. |
deflection | zs | Ja |
| ifeval | Text |
Instruction-Following Bewertung — Misst, wie genau ein Modell gegebene Anweisungen befolgt und Aufgaben gemäß den Spezifikationen erledigt. |
Richtigkeit | zs | Nein |
| gen_qa | Multi-Modal (Bild) |
Benutzerdefinierte Datensatzauswertung — Ermöglicht es Ihnen, Ihren eigenen Datensatz für das Benchmarking bereitzustellen und Modellergebnisse mit Referenzantworten anhand von Metriken wie ROUGE und BLEU zu vergleichen. |
all | gen_qa | Nein |
| mmmu | Multi-Modal |
Massive Multidiscipline Multimodal Understanding (MMMU) — College-level Benchmark, das Multiple-Choice-Fragen und offene Fragen aus 30 Disziplinen umfasst.) |
Richtigkeit | zs_cot | Ja |
| llm_judge | Text |
LLM-as-a-Judge Präferenzvergleich — Verwendet ein Nova Judge-Modell, um die Präferenz zwischen Antwortpaaren (B im Vergleich zu A) für Ihre Prompts zu ermitteln. Dabei wird die Wahrscheinlichkeit berechnet, dass B gegenüber A bevorzugt wird. |
all | judge | Nein |
|
mm_llm_judge |
Multi-Modal (Bild) |
Dieser neue Benchmark verhält sich genauso wie der oben aufgeführte textbasierte |
all | judge | Nein |
|
rubric_llm_judge |
Text |
Rubrik Judge ist ein erweitertes LLM-as-a-judge Bewertungsmodell, das auf Nova 2.0 Lite basiert. Im Gegensatz zum ursprünglichen Richtermodell |
all |
judge |
Nein |
|
aime_2024 |
Text |
AIME 2024 — Probleme bei der American Invitational Mathematics Examination, bei der fortgeschrittenes mathematisches Denken und Problemlösen getestet werden |
exact_match |
zs_cot |
Nein |
|
Kalender_Terminplanung |
Text |
Natural Plan — Kalenderplanung, Aufgabentests, Planungsfunktionen für die Planung von Besprechungen über mehrere Tage und mehrere Personen |
exact_match |
fs |
Nein |
|
humaneval |
Text |
HumanEval - Ein Benchmark-Datensatz zur Bewertung der Codegenerierungsfunktionen großer Sprachmodelle |
pass@1 |
zs | Nein |
Bewertung spezifischer Konfigurationen
Im Folgenden finden Sie eine Aufschlüsselung der wichtigsten Komponenten des Rezepts sowie Anleitungen dazu, wie Sie sie für Ihre Anwendungsfälle modifizieren können.
Verstehen und Ändern Ihrer Rezepte
Allgemeine Laufkonfiguration
run: name: eval_job_name model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod # or s3://escrow_bucket/model_location replicas: 1 data_s3_path: "" mlflow_tracking_uri: "" mlflow_experiment_name : "" mlflow_run_name : ""
-
name: ein beschreibender Name für Ihren Bewertungsjob -
model_type: gibt die zu verwendende Nova-Modellvariante an. Ändern Sie dieses Feld nicht manuell. Zu den Optionen gehören:-
amazon.nova-micro-v1:0:128k
-
amazon.nova-lite-v1:0:300k
-
amazon.nova-pro-v1:0:300k
-
amazon.nova-2-lite-v 1:0:256 k
-
-
model_name_or_path: der Pfad zum Basismodell oder zum S3-Pfad für den Checkpoint nach dem Training. Zu den Optionen gehören:-
Nova- micro/prod
-
Nova- lite/prod
-
Nova- pro/prod
-
Nova-Lite- 2/prod
-
S3-Pfad für den Checkpoint-Pfad nach dem Training (
s3:customer-escrow-111122223333-smtj-<unique_id>/<training_run_name>)Anmerkung
Bewerten eines trainierten Modells
Um ein trainiertes Modell nach einem Nova-SFT-Trainingsjob zu bewerten, gehen Sie nach der Ausführung eines erfolgreichen Trainingsjobs wie folgt vor. Am Ende der Trainingsprotokolle wird die Protokollmeldung „Training ist abgeschlossen“ angezeigt. In Ihrem Ausgabe-Bucket befindet sich auch eine
manifest.json-Datei, die den Speicherort Ihres Checkpoints enthält. Diese Datei befindet sich in eineroutput.tar.gz-Datei an Ihrem S3-Ausgabeort. Um mit der Bewertung fortzufahren, verwenden Sie diesen Checkpoint, indem Sie ihn in Ihrer Rezeptkonfiguration als Wert fürrun.model_name_or_pathfestlegen.
-
-
replica: Die Anzahl der Recheninstanzen, die für verteilte Inferenz (Ausführung der Inferenz über mehrere Knoten hinweg) verwendet werden sollen. Stellen Siereplica> 1 ein, um die Inferenz mit mehreren Knoten zu aktivieren, was die Auswertung beschleunigt. Wenn beideinstance_countund angegebenreplicasind,instance_counthat Vorrang. Beachten Sie, dass mehrere Replikate nur für SageMaker KI-Ausbildungsjobs gelten, nicht. SageMaker HyperPod -
data_s3_path: der Amazon-S3-Pfad für den Eingabedatensatz. Dieses Feld ist erforderlich, sollte aber immer leer bleiben. -
mlflow_tracking_uri: (Optional) Der Standort des MLFlow-Tracking-Servers (nur auf SMHP erforderlich) -
mlflow_experiment_name: (Optional) Name des Experiments zur Gruppierung verwandter ML-Läufe -
mlflow_run_name: (Optional) Benutzerdefinierter Name für einen bestimmten Trainingslauf innerhalb eines Experiments
Bewertungskonfiguration
evaluation: task: mmlu strategy: zs_cot subtask: abstract_algebra metric: accuracy
-
task: gibt den Bewertungs-Benchmark oder die zu verwendende Aufgabe an. Die unterstützte Aufgabe umfasst:-
mmlu -
mmlu_pro -
bbh -
gpqa -
math -
strong_reject -
gen_qa -
ifeval -
mmmu -
llm_judge -
mm_llm_judge -
rubric_llm_judge -
aime_2024 -
calendar_scheduling -
humaneval
-
-
strategy: definiert den Bewertungsansatz.-
zs_cot: Zero-shot Gedankenkette — ein Ansatz zur Anregung umfangreicher Sprachmodelle, der das schrittweise Denken fördert, ohne dass explizite Beispiele erforderlich sind. -
fs_cot: Few-shot Gedankenkette — ein Ansatz, der einige Beispiele für schrittweises Denken liefert, bevor das Modell aufgefordert wird, ein neues Problem zu lösen. -
zs: Zero-shot - ein Ansatz zur Lösung eines Problems ohne vorherige Trainingsbeispiele. -
gen_qa: spezifische Strategie für die Verwendung eines eigenen Datensatzes -
judge: Spezifische Strategie für Nova LLM als Judge undmm_llm_judge.
-
-
subtask: Optional. Spezifische Komponenten der Bewertungsaufgabe. Eine vollständige Liste der verfügbaren Unteraufgaben finden Sie unter Verfügbare Unteraufgaben.-
Informationen zu den unterstützten Unteraufgaben finden Sie unter „Verfügbare Benchmark-Aufgaben“.
-
Sie sollten dieses Feld entfernen, wenn es keine Benchmark-Unteraufgaben gibt.
-
-
metric: die zu verwendende Bewertungsmetrik-
accuracy: Prozentsatz der richtigen Antworten -
exact_match: (für math-Benchmark) gibt die Rate zurück, mit der die eingegebenen vorhergesagten Zeichenketten exakt mit ihren Referenzen übereinstimmen. -
deflection: gibt bei einem Benchmark mit starker Ablehnung die relative Abweichung vom Basismodell und die Differenz der Signifikanzmetriken zurück. -
all:Gibt für
gen_qaund das Benchmarking mit eigenem Datensatz die folgenden Metriken zurück:-
rouge1: misst die Überlappung von Unigrammen (einzelnen Wörtern) zwischen generiertem Text und Referenztext. -
rouge2: misst die Überlappung von Bigrammen (zwei aufeinanderfolgenden Wörtern) zwischen generiertem Text und Referenztext. -
rougeL: misst die längste gemeinsame Teilsequenz zwischen Texten und berücksichtigt Lücken beim Abgleich. -
exact_match: binärer Wert (0 oder 1), der angibt, ob der generierte Text Zeichen für Zeichen exakt mit dem Referenztext übereinstimmt -
quasi_exact_match: ähnlich wie Exact Match, aber weniger strikt, wobei in der Regel Unterschiede zwischen Groß- und Kleinschreibung, Zeichensetzung und Leerzeichen ignoriert werden -
f1_score: harmonisches Mittel zwischen Präzision und Erinnerungswert, das die Wortüberschneidung zwischen vorhergesagten Antworten und Referenzantworten misst -
f1_score_quasi: ähnlich wie f1_score, jedoch mit weniger striktem Abgleich, bei dem normalisierter Text verglichen und geringfügige Unterschiede ignoriert werden -
bleu: misst die Genauigkeit von N-Gramm-Übereinstimmungen zwischen generiertem Text und Referenztext, was häufig bei der Bewertung von Übersetzungen verwendet wird.
Geben Sie für
llm_judgeundmm_llm_judge, bringen Sie Ihren eigenen Datensatz-Benchmark mit, die folgenden Metriken zurück:-
a_scores: Anzahl der Siege vonresponse_Abei Vorwärts- und Rückwärtsdurchläufen zur Bewertung -
a_scores_stderr: Standardfehler vonresponse_A_scoresbei paarweisen Beurteilungen -
b_scores: misst die Anzahl der Siege vonresponse_Bbei Vorwärts- und Rückwärtsdurchläufen zur Bewertung. -
a_scores_stderr: Standardfehler vonresponse_B_scoresbei paarweisen Beurteilungen -
ties: Anzahl der Beurteilungen, bei denenresponse_Aundresponse_Bals gleichwertig bewertet wurden -
ties_stderr: Standardfehler vontiesbei paarweisen Beurteilungen -
inference_error: Anzahl der Beurteilungen, die nicht richtig bewertet werden konnten -
score: Gesamtpunktzahl basierend auf Siegen aus Vorwärts- und Rückwärtsdurchläufen fürresponse_B -
score_stderr: Gesamtpunktzahl basierend auf Siegen aus Vorwärts- und Rückwärtsdurchläufen fürresponse_B -
inference_error_stderr: Standardfehler der Gesamtpunktzahl bei paarweisen Beurteilungen -
winrate: Die Wahrscheinlichkeit, die einer anhand der Wahrscheinlichkeitresponse_Aberechneten Bradley-Terry Wahrscheinlichkeit vorgezogenresponse_Bwird. -
lower_rate: Untergrenze (2,5. Perzentil) der geschätzten Gewinnrate aus dem Bootstrap-Sampling -
upper_rate: Obergrenze (97,5. Perzentil) der geschätzten Gewinnrate aus dem Bootstrap-Sampling
-
-
Konfiguration der Inferenz (optional)
inference: max_new_tokens: 2048 top_k: -1 top_p: 1.0 temperature: 0 top_logprobs: 10 reasoning_effort: null # options: low/high to enable reasoning or null to disable reasoning
-
max_new_tokens: maximale Anzahl der zu generierenden Token. Muss eine Ganzzahl sein. (Für LLM Judge nicht verfügbar.) -
top_k: Anzahl der zu berücksichtigenden Token mit der höchsten Wahrscheinlichkeit. Muss eine Ganzzahl sein. -
top_p: kumulativer Wahrscheinlichkeitsschwellenwert für das Token-Sampling. Muss ein Gleitkommawert zwischen 1,0 und 0,0 sein. -
temperature: Zufälligkeit bei der Token-Auswahl (höher = eher zufällig). Behalten Sie 0 bei, um ein deterministisches Ergebnis zu erhalten. Typ Float, der Mindestwert ist 0. -
top_logprobs: Die Anzahl der Top-Logprobs, die in der Inferenzantwort zurückgegeben werden sollen. Dieser Wert muss eine Ganzzahl zwischen 0 und 20 sein. Logprobs enthalten die betrachteten Ausgabetokens und die Log-Wahrscheinlichkeiten jedes im Nachrichteninhalt zurückgegebenen Ausgabetokens. -
reasoning_effort: steuert das Argumentationsverhalten von Modellen, die zur Argumentation fähig sind. Wirdreasoning_effortnur gesetzt, wenn ein Modellmodel_typeangegeben wird, das zum Denken fähig ist (derzeit).amazon.nova-2-lite-v1:0:256kDie verfügbaren Optionen sind Null (Standardwert, wenn nicht gesetzt; deaktiviert die Argumentation), Niedrig oder Hoch.
Ausgabeformat „Wahrscheinlichkeit protokollieren“
Wenn top_logprobs es in Ihren Inferenzeinstellungen konfiguriert ist, enthält die Bewertungsausgabe Log-Wahrscheinlichkeiten auf Token-Ebene in den Parquet-Dateien. Jede Token-Position enthält ein Wörterbuch der Top-Kandidaten-Token mit ihren Log-Wahrscheinlichkeiten in der folgenden Struktur:
{ "Ġint": {"logprob_value": -17.8125, "decoded_value": " int"}, "Ġthe": {"logprob_value": -2.345, "decoded_value": " the"} }
Jeder Token-Eintrag enthält:
-
logprob_value: Der Log-Wahrscheinlichkeitswert für das Token -
decoded_value: Die für Menschen lesbare dekodierte Zeichenkettendarstellung des Tokens
Das rohe Tokenizer-Token wird als Wörterbuchschlüssel verwendet, um die Eindeutigkeit zu gewährleisten und gleichzeitig eine lesbare Interpretation zu ermöglichen. decoded_value
Beispiele für Bewertungsrezepte
Amazon Nova bietet vier verschiedene Arten von Bewertungsrezepten. Alle Rezepte sind im SageMaker HyperPod Rezept-Repository verfügbar. GitHub
Bewertungsrezepte
Diese Rezepte ermöglichen es Ihnen, die grundlegenden Funktionen von Amazon-Nova-Modellen anhand einer umfassenden Suite von reinen Text-Benchmarks zu bewerten.
Rezeptformat: xxx_general_text_benchmark_eval.yaml.
Diese Rezepte ermöglichen es Ihnen, Ihren eigenen Datensatz für das Benchmarking zu verwenden und die Modellergebnisse anhand verschiedener Arten von Metriken mit Referenzantworten zu vergleichen.
Rezeptformat: xxx_
bring_your_own_dataset_eval.yaml.
Anforderungen für die Verwendung des eigenen Datensatzes
Dateiformat:
-
Eine einzige
gen_qa.jsonl-Datei mit Bewertungsbeispielen. Der Dateiname solltegen_qa.jsonlund kein anderer sein. -
Sie müssen Ihren Datensatz an einen S3-Ort hochladen, auf den Sie auf SageMaker KI-Schulungsjobs zugreifen können.
-
Die Datei muss dem für allgemeine Fragen und Antworten erforderlichen Schemaformat entsprechen.
Anforderungen an das Schemaformat — Jede Zeile in der .jsonl Datei muss ein JSON-Objekt mit den folgenden Feldern sein.
-
Pflichtfelder
query: Zeichenfolge, die die Frage oder Anweisung enthält, für die eine Antwort erforderlich istresponse: Zeichenfolge, die die erwartete Modellausgabe enthält -
Optionale Felder
system: Zeichenfolge, die den System-Prompt enthält, der vor der Verarbeitung der Abfrage das Verhalten, die Rolle oder die Persönlichkeit des KI-Modells festlegtimages: Array, das eine Liste von Objekten mit Datenattributen (Base64-kodierte Bildzeichenfolgen) enthält.metadata: Zeichenfolge, die Metadaten enthält, die dem Eintrag zu Tagging-Zwecken zugeordnet sind.
Beispieleintrag
{ "system":"You are an English major with top marks in class who likes to give minimal word responses: ", "query":"What is the symbol that ends the sentence as a question", "response":"?" }{ "system":"You are a pattern analysis specialist who provides succinct answers: ", "query":"What is the next number in this series? 1, 2, 4, 8, 16, ?", "response":"32" }{ "system":"You have great attention to detail and follow instructions accurately: ", "query":"Repeat only the last two words of the following: I ate a hamburger today and it was kind of dry", "response":"of dry" }{ "system": "Image inference: ", "query": "What is the number in the image? Please just use one English word to answer.", "response": "two", "images": [ { "data": "data:image/png;Base64,iVBORw0KGgoA ..." } ] }
Um Ihren benutzerdefinierten Datensatz zu verwenden, ändern Sie Ihr Bewertungsrezept, indem Sie die folgenden Pflichtfelder hinzufügen, ohne die bestehende Konfiguration zu ändern:
evaluation: task: gen_qa strategy: gen_qa metric: all
Einschränkungen
-
Pro Bewertung ist nur eine
.jsonl-Datei zulässig. -
Die Datei muss strikt dem definierten Schema folgen.
Bringen Sie Ihre eigenen Metriken mit
Sie können Ihre eigenen Metriken mitbringen, um Ihren Workflow zur Modellbewertung mit benutzerdefinierten Funktionen für die Vorverarbeitung, Nachverarbeitung und Metriken vollständig anzupassen. Durch die Vorverarbeitung können Sie Eingabedaten verarbeiten, bevor Sie sie an den Inferenzserver senden. Mit der Nachverarbeitung können Sie die Berechnung der Metriken anpassen und benutzerdefinierte Metriken an Ihre Bedürfnisse anpassen.
Folgen Sie diesen Schritten, um Ihre eigenen Metriken mit benutzerdefiniertem Bewertungs-SDK bereitzustellen.
-
Wenn Sie dies noch nicht getan haben, erstellen Sie eine AWS Lambda Funktion in Ihrer AWS-Konto ersten.
-
Laden Sie die vorgefertigte
nova-custom-eval-layer.zipDatei aus dem GitHub Repositoryherunter. Sie können dieses Open-Source-SDK für die benutzerdefinierte Evaluierung von Nova verwenden, um Eingabe- und Ausgabenutzlasten für Ihre benutzerdefinierte Funktion zu validieren und eine einheitliche Schnittstelle für die Integration mit Novas eigener Metrikauswertung während des Trainings bereitzustellen. -
Laden Sie die benutzerdefinierte Lambda-Layer mit dem folgenden Befehl hoch:
aws lambda publish-layer-version \ --layer-name nova-custom-eval-layer \ --zip-file fileb://nova-custom-eval-layer.zip \ --compatible-runtimes python3.12 python3.11 python3.10 python3.9 -
Fügen Sie diese Ebene zusammen mit der erforderlichen Ebene:
AWSLambdaPowertoolsPythonV3-python312-arm64(für diepydanticAbhängigkeit erforderlich) als benutzerdefinierte AWS Ebene zu Ihrer Lambda-Funktion hinzu. -
Aktualisieren Sie Ihren Lambda-Code anhand des bereitgestellten Beispiels und ändern Sie den Code nach Bedarf. Dieser Beispielcode erstellt eine Lambda-Funktion für die benutzerdefinierte Bewertung von Nova mit Vor- und Nachverarbeitungsschritten für die Modellevaluierung.
from nova_custom_evaluation_sdk.processors.decorators import preprocess, postprocess from nova_custom_evaluation_sdk.lambda_handler import build_lambda_handler @preprocess def preprocessor(event: dict, context) -> dict: data = event.get('data', {}) return { "statusCode": 200, "body": { "system": data.get("system"), "prompt": data.get("prompt", ""), "gold": data.get("gold", "") } } @postprocess def postprocessor(event: dict, context) -> dict: # data is already validated and extracted from event data = event.get('data', []) inference_output = data.get('inference_output', '') gold = data.get('gold', '') metrics = [] inverted_accuracy = 0 if inference_output.lower() == gold.lower() else 1.0 metrics.append({ "metric": "inverted_accuracy_custom", "value": accuracy }) # Add more metrics here return { "statusCode": 200, "body": metrics } # Build Lambda handler lambda_handler = build_lambda_handler( preprocessor=preprocessor, postprocessor=postprocessor ) -
Gewähren Sie Lambda Zugriff auf den Evaluierungsauftrag. Stellen Sie sicher, dass die für den Evaluierungsauftrag angegebene Ausführungsrolle eine Richtlinie zum Aufrufen Ihrer Lambda-Funktion enthält. Hier ist eine Beispielrichtlinie.
-
Überprüfen Sie das Lambda-Payload-Schema. In der folgenden Tabelle ist das Lambda-Anforderungs- und Antwortschema aufgeführt. Sie können Ihr Schema mithilfe des benutzerdefinierten Nova-Evaluierungs-SDK validieren.
Lambda-Anforderungs-Payload Nutzlast „Lambda-Antwort“ Präprozessor { "process_type": "preprocess", "data": { "system": "You are a helpful assistant", "prompt": "What is 2+2?", "gold": "4" } }{ "statusCode": 200, "body": { "system": "You are a helpful assistant that can substitute * for addition", "prompt": "What is 2*2?", "gold": "4" } }Postprozessor { "process_type": "postprocess", "data": { "prompt": "What is 2+2?", "inference_output": "2+2=4", "gold": "4" } }{ "statusCode": 200, "body": [ {"metric": "accuracy", "value": 1.0}, {"metric": "f1_score", "value": 1.0}, {"metric": "exact_match", "value": 1}, {"metric": "length_ratio", "value": 0.8} ] } -
Ändern Sie die Rezeptdatei. Ein Beispiel.
processor: lambda_arn: arn:aws:lambda:us-east-1:111122223333:function:name lambda_type: "custom_metrics" preprocessing: enabled: true postprocessing: enabled: true aggregation: average-
lambda-arn: Der Amazon-Ressourcenname (ARN) für Ihre Lambda-Funktion, die die Vor- und Nachverarbeitung verarbeitet. -
lambda_type: „custom_metrics“ oder „rft“. -
preprocessing: Ob benutzerdefinierte Vorverarbeitungsvorgänge aktiviert werden sollen. -
postprocessing: Ob benutzerdefinierte Nachbearbeitungsvorgänge aktiviert werden sollen. -
aggregation: Built-in Aggregationsfunktion (gültige Optionen: Min, Max, Durchschnitt, Summe).
-
Einschränkungen
-
Bring Your Own Metrics gilt nur für Texteingabe-Datensätze.
-
Multi-modal Eingabedatensätze werden nicht unterstützt.
-
Der Vorverarbeitungsschritt verarbeitet das Metadatenfeld nicht.
Wichtig
llm_judgeund mm_llm_judge kann nur mit Amazon Nova-Basismodellen ausgeführt werden (z. B.nova-micro/prod, nova-lite/prodnova-pro/prod, odernova-lite-2/prod). Sie werden auf benutzerdefinierten Modell-Checkpoints nicht unterstützt.
rubric_llm_judgekann nur mit Amazon Nova 2.0-Basismodellen ausgeführt werden (z. B.nova-lite-2/prod). Es wird auf Amazon Nova 1.0-Basismodellen oder auf benutzerdefinierten Modellprüfpunkten nicht unterstützt.
Um ein benutzerdefiniertes Modell mit einem Judge-Workflow zu evaluieren, verwenden Sie zunächst Ihr benutzerdefiniertes Modell, um den Prompt- und Response-Datensatz zu generieren, und führen Sie dann den Judge-Workflow anhand eines Amazon Nova-Basismodells aus, das diesen Datensatz als Eingabe verwendet.
Nova LLM Judge ist eine Modellbewertungsfunktion, mit der Sie die Qualität der Antworten eines Modells mit den Antworten eines Basismodells anhand eines benutzerdefinierten Datensatzes vergleichen können. Es akzeptiert einen Datensatz, der Aufforderungen, Ausgangsantworten und Antworten des Herausforderers enthält, und verwendet dann ein Nova Judge-Modell, um anhand von paarweisen Vergleichen eine Metrik zur Gewinnrate zu ermitteln, die auf der Bradley-Terry xxx_llm_judge_eval.yaml.
Anforderungen an den Nova-LLM-Datensatz
Dateiformat:
-
Eine einzige
llm_judge.jsonl-Datei mit Bewertungsbeispielen. Der Dateiname solltellm_judge.jsonlund kein anderer sein. -
Sie müssen Ihren Datensatz an einen S3-Standort hochladen, auf den SageMaker KI-Schulungsjobs zugegriffen werden kann.
-
Die Datei muss dem für den
llm_judge-Datensatz erforderlichen Schemaformat entsprechen. -
Der Eingabedatensatz sollte sicherstellen, dass alle Datensätze eine Kontextlänge von weniger als 12 000 haben.
Schemaformat – Jede Zeile in der .jsonl-Datei muss ein JSON-Objekt mit den folgenden Feldern sein.
-
Pflichtfelder
prompt: Zeichenfolge, die den Prompt für die generierte Antwort enthältresponse_A: Zeichenfolge, die die Basisantwort enthältresponse_B: Zeichenfolge, die die alternative Antwort enthält, die mit der Basisantwort verglichen wird
Beispieleintrag
{ "prompt": "What is the most effective way to combat climate change?", "response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.", "response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less." } { "prompt": "Explain how a computer's CPU works", "response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.", "response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations." } { "prompt": "How does photosynthesis work?", "response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.", "response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts." }
Um Ihren benutzerdefinierten Datensatz zu verwenden, ändern Sie Ihr Bewertungsrezept mit den folgenden Pflichtfeldern, verändern Sie jedoch nicht den Inhalt:
evaluation: task: llm_judge strategy: judge metric: all
Einschränkungen
-
Pro Bewertung ist nur eine
.jsonl-Datei zulässig. -
Die Datei muss strikt dem definierten Schema folgen.
-
Die Nova-Judge-Modelle sind für die Spezifikationen von Micro, Lite und Pro identisch.
-
Benutzerdefinierte Judge-Modelle werden derzeit nicht unterstützt.
Nova LLM als Jurorin für multimodale (Bild-) Benchmark-Rezepte
Nova LLM Judge for Multimodal (Bild), kurz für Nova MM_LLM Judge, ist eine Funktion zur Modellbewertung, mit der Sie die Qualität der Antworten eines Modells anhand eines benutzerdefinierten Datensatzes mit den Antworten eines Basismodells vergleichen können. Es akzeptiert einen Datensatz, der Prompts, Baseline-Antworten und Challenger-Antworten sowie Bilder in Form einer Base64-encoded Zeichenfolge enthält, und verwendet dann ein Nova Judge-Modell, um anhand von paarweisen Vergleichen eine Gewinnraten-Metrik zu ermitteln, die auf der Wahrscheinlichkeit basiert. Bradley-Terry xxx_mm_llm_judge_eval.yaml.
Anforderungen an den Nova-LLM-Datensatz
Dateiformat:
-
Eine einzige
mm_llm_judge.jsonl-Datei mit Bewertungsbeispielen. Der Dateiname muss exakt sein.llm_judge.jsonl -
Sie müssen Ihren Datensatz an einen S3-Ort hochladen, von dem aus SageMaker AI-Trainingsjobs darauf zugreifen können.
-
Die Datei muss dem für den
mm_llm_judge-Datensatz erforderlichen Schemaformat entsprechen. -
Der Eingabedatensatz sollte sicherstellen, dass alle Datensätze eine Kontextlänge von weniger als 12 k haben, mit Ausnahme des Bildattributs.
Schemaformat – Jede Zeile in der .jsonl-Datei muss ein JSON-Objekt mit den folgenden Feldern sein.
-
Pflichtfelder
prompt: Zeichenfolge, die den Prompt für die generierte Antwort enthältimages: Array, das eine Liste von Objekten mit Datenattributen enthält (Werte sind Base64-encoded Bildzeichenfolgen).response_A: Zeichenfolge, die die Basisantwort enthältresponse_B: Zeichenfolge, die die alternative Antwort enthält, die mit der Basisantwort verglichen wird
Beispieleintrag
Aus Gründen der Lesbarkeit enthält das folgende Beispiel neue Zeilen und Einrückungen, aber im eigentlichen Datensatz sollte sich jeder Datensatz in einer einzigen Zeile befinden.
{ "prompt": "What is in the image?", "images": [ { "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..." } ], "response_A": "a dog.", "response_B": "a cat.", } { "prompt": "How many animals are in each of the images?", "images": [ { "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..." }, { "data": "data:image/jpeg;Base64,/DKEafe3gihn..." } ], "response_A": "The first image contains one cat and the second image contains one dog", "response_B": "The first image has one aminal and the second has one animal" }
Um Ihren benutzerdefinierten Datensatz zu verwenden, ändern Sie Ihr Bewertungsrezept mit den folgenden Pflichtfeldern, verändern Sie jedoch nicht den Inhalt:
evaluation: task: mm_llm_judge strategy: judge metric: all
Einschränkungen
-
Pro Bewertung ist nur eine
.jsonl-Datei zulässig. -
Die Datei muss strikt dem definierten Schema folgen.
-
Nova MM Judge-Modelle unterstützen nur Bildreferenzen.
-
Die Nova MM Judge-Modelle sind in allen Spezifikationen von Amazon Nova Micro, Amazon Nova Lite und Amazon Nova Pro identisch.
-
Benutzerdefinierte Judge-Modelle werden derzeit nicht unterstützt.
-
Die Amazon S3-Bild-URI wird nicht unterstützt.
-
Der Eingabedatensatz sollte sicherstellen, dass alle Datensätze eine Kontextlänge von weniger als 12 k haben, mit Ausnahme des Bildattributs.
Die Evaluierung anhand von CPT-Modellen (kontinuierlich vortrainiert) kann eine größere Herausforderung darstellen als Modelle, die einer SFT (überwachtes Feintuning) unterzogen wurden, da CPT-Modelle regelmäßig nicht in der Lage sind, Anweisungen zu befolgen. Anstatt den Anweisungen zu folgen, arbeitet das CPT-Modell als Abschlussmodell, was bedeutet, dass sie nur versuchen, das mit der Eingabe-Token-Sequenz bereitgestellte Muster fortzusetzen. Angesichts dieser Einschränkung funktionieren typische Bewertungsdatensätze aufgrund des „Q & A“ -Formats der Eingaben möglicherweise nicht richtig. Anstatt die Frage zu beantworten, versucht das Modell einfach, mit derselben Frage fortzufahren. Indem wir Datensätze jedoch auf eine bestimmte Weise formatieren, um Modelle in einem Vervollständigungsstil zu veranlassen, können wir uns ein Bild von der Leistung des Modells machen.
Folgen Sie den folgenden Schritten, um zu verstehen, wie Sie mithilfe des Nova Forge-Evaluierungsworkflows eine Bewertung an einem kontinuierlichen, vortrainierten Modell durchführen.
Vorbereitung und Formatierung von Datensätzen
Bei der Evaluierung eines CPT-Modells wird der bereits bestehende Bring Your Own Dataset-Workflow genutzt, der bereits im Rahmen der Evaluierung von Nova Forge-Modellen bereitgestellt wurde. Abfragen innerhalb des Datensatzes müssen jedoch in einem reinen „Vervollständigungsformat“ formatiert werden, da CPT-Modelle nicht auf die gleiche Weise auf Standardfragen antworten wie ein SFT-Modell.
Eine weitere wichtige häufige Einschränkung von Modellen, die ausschließlich einer CPT unterzogen wurden, ist ihre Unfähigkeit, STOP- oder Sequenzend-Tokens zu generieren — das bedeutet, dass das Modell weiterhin Token generiert, bis es gewaltsam gestoppt wird (z. B. mit dem Parameter max_new_tokens). Angesichts dieser Einschränkung empfiehlt es sich, die Modelle anhand einzelner Token-Antworten (z. B. Multiple-Choice) zu bewerten, um sicherzustellen, dass das Modell nicht weiterhin Junk-Ausgaben generiert, die nach Aufforderung nicht benötigt werden.
Beispielsweise könnte ein typischer Bewertungsdatensatz (wie MMLU, GPQA, MATH usw.) dem Modell eine Frage aufwerfen wie:
Early settlements and high population density along coastlines and rivers are best attributed to which of the following? A: "Poor climate conditions" B: "Limited forest cover" C: "Cars" D: "Access to trade routes" (Expected answer is D.)
Ein CPT-Modell würde jedoch nicht verstehen, wie diese Frage richtig zu beantworten ist, da es an Feinabstimmung bei der Befolgung der Anweisungen mangelt. Daher müssen CPT-Modelle in einem Vervollständigungsstil abgefragt werden, wie zum Beispiel:
Early settlements and high population density along coastlines and rivers are best attributed to which of the following? A: Poor climate conditions B: Limited forest cover C: Cars D: Access to trade routes The correct answer to this question is option (Expected answer is D.)
Nach der Inferenzüberprüfung liefern die vom Modell generierten Output-Logprobs Details darüber, ob das Modell die Eingabe korrekt verarbeitet und die richtige Antwort generiert hat. Es kann nicht garantiert werden, dass das Modell immer die erwartete exakte Antwort (in diesem Fall den Buchstaben D) liefert. Sie sollte jedoch in den Logprobs enthalten sein, wenn das Modell ordnungsgemäß funktioniert.
Ein weiteres Beispiel für eine Aufforderung im Stil der Vervollständigung ohne Mehrfachauswahl:
The capital of France is (Expected answer of Paris)
Wir würden erwarten, dass das Modell entweder die Antwort „Paris“ ausgibt oder dass das Token, das „Paris“ entspricht, irgendwo in der Logprobs-Ausgabe erscheint.
Formatierung von Datensätzen
Die CPT-Bewertung nutzt den bestehenden Bring Your Own Dataset-Workflow. Die Daten müssen im Format „Query Response“ in einer JSONL-Datei formatiert werden, die durch neue Zeilen getrennt ist.
Ein Beispiel für einen Datensatz mit 4 Einträgen:
{"query": "The capital of France is", "response": "Paris"} {"query": "2 + 2 =", "response": "4"} {"query": "The mitochondria is the powerhouse of the", "response": "cell"} {"query": "What is the largest planet?\nA: Mars\nB: Jupiter\nC: Saturn\nD: Earth\nAnswer:", "response": "B"}
Jede Zeile muss enthalten:
-
query: Der Text der Aufforderung zur Vervollständigung -
response: Die erwartete Fertigstellung (Ground Truth)
Das Model erhält Rohtexteingaben ohne Chat-Formatierung. CPT-Modelle sind in der Regel noch nicht mit speziellen Tokens trainiert und reagieren nicht richtig auf Chat-Vorlagen. Wenn also das Model dazu aufgefordert wird, wird NUR die in der Abfrage angegebene Zeichenfolge an das Model gesendet (wobei ihr automatisch ein zusätzliches [BOS] Token vorangestellt wird).
Konfiguration des Rezepts
Hier ist ein Beispiel für ein Rezept, das für die Bewertung eines CPT-Modells konfiguriert ist:
run: name: cpt_eval_job model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: s3://bucket/path/to/cpt-checkpoint/ evaluation: task: gen_qa # Required for CPT - bring your own dataset strategy: gen_qa metric: all # Returns rouge1, rouge2, rougeL, exact_match, f1_score, bleu inference: checkpoint_is_instruction_tuned: "false" # Required for CPT checkpoints top_logprobs: 5 # Change to desired amount of logprobs to calculate max_new_tokens: 1 # Keep low for completion tasks temperature: 0.0
Wichtige Änderungen für die CPT-Bewertung:
-
checkpoint_is_instruction_tuned: "false"Dies ist ein neuer Parameter, der speziell zur Unterstützung von Bewertungsläufen an CPT-Checkpoints hinzugefügt wurde. Wenn checkpoint_is_instruction_tuned auf false gesetzt wird, wird die standardmäßige Amazon Nova-Chat-Vorlage deaktiviert, die normalerweise die Eingabeaufforderung umschließt.
-
top_logprobs: 5Log-Wahrscheinlichkeiten (Logprobs) geben Aufschluss über die Konfidenzverteilung des Modells auf mögliche nächste Tokens. So können Sie besser beurteilen, ob das Modell während des Vortrainings die erwarteten Abschlüsse gelernt hat. Wenn das Modell die gewünschte Leistung erbringt, sollten wir die erwartete Antwort (d. h. „A“, „B“ usw.) in der Regel entweder als generiertes Ausgangstoken oder als Zeichen in den Logprobs sehen.
-
max_new_tokens: 1CPT-Modelle wurden in der Regel noch nicht darauf trainiert, spezielle „Stop“ - oder „End of Sequence“ -Token zu generieren, um zu signalisieren, wann die Inferenz beendet werden muss. Das bedeutet, dass das Modell in der Regel so lange neue Token generiert, bis die spezifische maximale Token-Länge erreicht ist, was zu unnötigen Rückschlüssen führt. Normalerweise ist es am effizientesten, max_new_tokens auf 1 zu beschränken und eine Aufforderung bereitzustellen, mit der das Modell anhand einer einzigen Antwort (wie einer Multiple-Choice-Frage) bewertet werden kann. Wenn Sie max_new_tokens auf 1 setzen, wird sichergestellt, dass keine zusätzlichen Junk-Token generiert werden.
Hauptparameter
-
checkpoint_is_instruction_tuned: Muss auf (oder als boolescher Wert) gesetzt werden, um Chat-Vorlagen zu deaktivieren
"false"false -
top_logprobs: 5, empfohlen, um zu sehen, wie das Modell während des CPT lernt
-
Aufgabe: Muss sein
gen_qa- CPT-Modelle können keine Benchmarks wie MMLU oder MATH verwenden, denen Anweisungen folgen -
Strategie: Muss sein
gen_qa -
max_new_tokens: Es wird empfohlen, die Werte niedrig zu halten (1-5), da CPT-Modelle die Vervollständigung und nicht die Generierung durchführen
Ausführen von Bewertungs-Trainingsjobs
Starten Sie einen Trainingsjob mit dem folgenden Beispiel-Jupiter-Notebook. Bitte verwenden Sie das folgende Notizbuch als Beispiel für die Ausführung des Evaluierungstrainings. Weitere Informationen finden Sie unter Einen SageMaker KI-Schätzer verwenden, um einen Trainingsjob auszuführen.
Referenztabellen
Bevor Sie das Notebook ausführen, berücksichtigen Sie bei der Auswahl von Image-URI- und Instance-Konfigurationen die folgenden Referenztabellen.
Auswahl des Image-URI
| Rezept | Image-URI |
|---|---|
|
Bewertungs-Image-URI |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-TJ-Eval-V2-latest |
Auswahl des Instance-Typs und der Anzahl von Instances
| Modell | Job type | Instance-Typ | Empfohlene Anzahl von Instances | Erlaubte Anzahl von Instances |
|---|---|---|---|---|
| Amazon Nova Micro | Bewertung () SFT/DPO |
g5.12xlarge |
1 | 1 - 16 |
| Amazon Nova Lite | Bewertung (SFT/DPO) |
g5.12xlarge |
1 | 1 - 16 |
| Amazon Nova Pro | Bewertung (SFT/DPO) |
p5.48xlarge |
1 | 1 - 16 |
| Nova 2 Lite | Bewertung (SFT/DPO) |
p5.48xlarge |
1 | 1 - 16 |
Beispiel-Notebook
Das folgende Beispiel-Notebook zeigt, wie ein Bewertungs-Trainingsjob ausgeführt wird.
# install python SDK # Do not use sagemaker v3, as sagemaker v3 introduced breaking changes !pip install sagemaker==2.254.1 import os import sagemaker,boto3 from sagemaker.inputs import TrainingInput from sagemaker.pytorch import PyTorch sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role() # Download recipe from https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/evaluation/nova to local # Assume the file name be `recipe.yaml` # Populate parameters # input_s3_uri = "s3://<path>/input/" # (Optional) Only used for multi-modal dataset or bring your own dataset s3 location output_s3_uri= "s3://<path>/output/" # Output data s3 location, a zip containing metrics json and tensorboard metrics files will be stored to this location instance_type = "instance_type" # ml.g5.16xlarge as example instance_count = 1 # The number of instances for inference (setinstance_count> 1 for multi-node inference to accelerate evaluation) job_name = "your job name" recipe_path = "recipe path" # ./recipe.yaml as example image_uri = "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-TJ-Eval-V2-latest" # Do not change output_kms_key = "<KMS key arn to encrypt trained model in Amazon-owned S3 bucket>" # optional, leave blank for Amazon managed encryption # (Optional) To bring your own dataset and LLM judge for evaluation # evalInput = TrainingInput( # s3_data=input_s3_uri, # distribution='FullyReplicated', # s3_data_type='S3Prefix' #) estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role, instance_type=instance_type, instance_count=instance_count, training_recipe=recipe_path, sagemaker_session=sagemaker_session, image_uri=image_uri, output_kms_key=output_kms_key ) estimator.fit() # If input dataset exist, pass in inputs # estimator.fit(inputs={"train": evalInput})
Auswertung und Analyse der Bewertungsergebnisse
Nach erfolgreichem Abschluss Ihres Bewertungsjobs können Sie die Ergebnisse anhand der folgenden Schritte bewerten und analysieren.
Gehen Sie wie folgt vor, um die Ergebnisse zu bewerten und zu analysieren.
-
Machen Sie sich mit der Struktur des Ausgabespeicherorts vertraut. Die Ergebnisse werden an Ihrem angegebenen Amazon-S3-Ausgabespeicherort als komprimierte Datei gespeichert:
s3://your-bucket/output/benchmark-name/└── job_name/ └── output/ └── output.tar.gz -
Laden Sie die
output.tar.gz-Datei aus Ihrem Bucket herunter. Extrahieren Sie den Inhalt.run_name/ ├── eval_results/ | └── results_[timestamp].json │ └── inference_output.jsonl (only present for gen_qa) | └── details/ | └── model/ | └── <execution-date-time>/ | └──details_<task_name>_#_<datetime>.parquet └── tensorboard_results/ └── eval/ └── events.out.tfevents.[timestamp]-
results_[timestamp].json– JSON-Datei mit den Ausgabemetriken -
details_<task_name>_#_<datetime>.parquet– Inferenz-Ausgabedatei (außerstrong_reject) -
events.out.tfevents.[timestamp]- TensorBoard Ausgabedatei -
inference_output.jsonl– Bereinigte Inferenzausgabedatei (nur fürgen_qa-Aufgaben)
-
-
Ergebnisse anzeigen in TensorBoard. So visualisieren Sie Ihre Bewertungsmetriken:
-
Laden Sie den extrahierten Ordner in einen S3-Bucket hoch.
-
Navigiere zu SageMaker KI TensorBoard
-
Wählen Sie Ihre „S3-Ordner“.
-
Fügen Sie den S3-Ordnerpfad hinzu.
-
Warten Sie, bis die Synchronisation abgeschlossen ist.
-
-
Analysieren Sie die Inferenzausgaben. Alle Bewertungsaufgaben, mit Ausnahme von
llm_judgeundstrong_reject, enthalten die folgenden Felder für die Analyse in der Inferenzausgabe.-
full_prompt— Die vollständige Benutzeraufforderung, die an das für die Evaluierungsaufgabe verwendete Modell gesendet wird. -
gold- Das Feld, das die richtige (n) Antwort (en) enthält, wie im Datensatz angegeben. -
metrics— Das Feld, das die Metriken enthält, die anhand der einzelnen Inferenz ausgewertet wurden. Werte, die aggregiert werden müssen, haben keinen Wert in den einzelnen Inferenzausgaben. -
predictions- Das Feld, das eine Liste der Modellausgaben für die angegebene Eingabeaufforderung enthält. -
pred_logits— Das Feld, das die betrachteten Ausgabe-Tokens und die Log-Wahrscheinlichkeiten jedes im Nachrichteninhalt zurückgegebenen Ausgabetokens enthält.
Anhand dieser Felder können Sie die Ursache für metrische Unterschiede ermitteln und das Verhalten der benutzerdefinierten Modelle verstehen.
Für
llm_judgeenthält die Inferenzausgabedatei die folgenden Felder unter dem Metrikfeld pro Bewertungspaar.-
forward_output– die reinen Präferenzen des Judge bei der Bewertung der Reihenfolge nach (response_A, response_B) -
backward_output– die reinen Präferenzen des Judge bei der Bewertung in umgekehrter Reihenfolge (response_B, response_A) -
Pairwise metrics– Metriken, die paarweise für Vorwärts- und Rückwärtsbeurteilungen berechnet werden, daruntera_scores,b_scores,ties,inference-scoreundscore.Anmerkung
Aggregierte Metriken wie
winratesind nur in den zusammenfassenden Ergebnisdateien verfügbar, nicht nach individueller Beurteilung.
Für
gen_qaenthält die Dateiinference_output.jsonldie folgenden Felder für jedes JSON-Objekt:-
Prompt – der letzte Prompt, der an das Modell gesendet wurde
-
Inferenz – die unformatierte Inferenzausgabe des Modells
-
gold — Die Zielantwort aus dem Eingabedatensatz
-
metadata — Die Metadatenzeichenfolge aus dem Eingabedatensatz, falls angegeben
-
Bewährte Methoden zur Bewertung und Problembehebung
Bewährte Methoden
Im Folgenden sind einige bewährte Verfahren für den Bewertungsprozess aufgeführt.
-
Organisieren Sie Ihre Ausgabepfade nach Modell und Benchmark-Typ.
-
Halten Sie konsistente Namenskonventionen ein, um die Nachverfolgung zu vereinfachen.
-
Speichern Sie die extrahierten Ergebnisse an einem sicheren Ort.
-
Überwachen TensorBoard Sie den Synchronisierungsstatus für ein erfolgreiches Laden der Daten.
Fehlerbehebung
Sie können die CloudWatch Protokollgruppe /aws/sagemaker/TrainingJobs zum Trainieren von Job-Fehlerprotokollen verwenden.
Ausfall des Motorkerns
Problem:
Wenn Sie Folgendes sehen:
RuntimeError: Engine core initialization failed.
Ursache:
Obwohl dies ein allgemeiner Fehler ist, der mehrere Ursachen haben kann, tritt er in der Regel auf, wenn der Modell-Checkpoint, den Sie laden möchten, und dem angegebenen Modelltyp nicht übereinstimmt. E.g. Sie möchten einen fein abgestimmten Nova 2.0 Lite-Modell-Checkpoint evaluieren, aber der von Ihnen angegebene Modelltyp ist vom Modelltyp 1.0. z. amazon.nova-micro-v1:0:128k
Das richtige Mapping sollte wie folgt lauten
model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod # or s3://escrow_bucket/model_location
Vorbeugung:
Vergewissern Sie sich, model_name_or_path dass das auf der rechten Seite abgebildet ist, model_type bevor Sie den Bewertungsauftrag abschicken.
Verfügbare Unteraufgaben
Im Folgenden sind die verfügbaren Unteraufgaben für die Modellevaluierung in mehreren Bereichen aufgeführt, darunter MMLU (Massive Multitask Language Understanding), BBH (Big Bench Hard), MATH und MMMU (Massive Multimodal Understanding). Multi-discipline Diese Unteraufgaben ermöglichen es Ihnen, die Leistung Ihres Modells in Bezug auf bestimmte Fähigkeiten und Wissensbereiche zu bewerten.
MMLU
MMLU_SUBTASKS = [ "abstract_algebra", "anatomy", "astronomy", "business_ethics", "clinical_knowledge", "college_biology", "college_chemistry", "college_computer_science", "college_mathematics", "college_medicine", "college_physics", "computer_security", "conceptual_physics", "econometrics", "electrical_engineering", "elementary_mathematics", "formal_logic", "global_facts", "high_school_biology", "high_school_chemistry", "high_school_computer_science", "high_school_european_history", "high_school_geography", "high_school_government_and_politics", "high_school_macroeconomics", "high_school_mathematics", "high_school_microeconomics", "high_school_physics", "high_school_psychology", "high_school_statistics", "high_school_us_history", "high_school_world_history", "human_aging", "human_sexuality", "international_law", "jurisprudence", "logical_fallacies", "machine_learning", "management", "marketing", "medical_genetics", "miscellaneous", "moral_disputes", "moral_scenarios", "nutrition", "philosophy", "prehistory", "professional_accounting", "professional_law", "professional_medicine", "professional_psychology", "public_relations", "security_studies", "sociology", "us_foreign_policy", "virology", "world_religions" ]
BBH
BBH_SUBTASKS = [ "boolean_expressions", "causal_judgement", "date_understanding", "disambiguation_qa", "dyck_languages", "formal_fallacies", "geometric_shapes", "hyperbaton", "logical_deduction_five_objects", "logical_deduction_seven_objects", "logical_deduction_three_objects", "movie_recommendation", "multistep_arithmetic_two", "navigate", "object_counting", "penguins_in_a_table", "reasoning_about_colored_objects", "ruin_names", "salient_translation_error_detection", "snarks", "sports_understanding", "temporal_sequences", "tracking_shuffled_objects_five_objects", "tracking_shuffled_objects_seven_objects", "tracking_shuffled_objects_three_objects", "web_of_lies", "word_sorting" ]
Math (Mathematik)
MATH_SUBTASKS = [ "algebra", "counting_and_probability", "geometry", "intermediate_algebra", "number_theory", "prealgebra", "precalculus",
MMMU
MATH_SUBTASKS = [ "Accounting", "Agriculture", "Architecture_and_Engineering", "Art", "Art_Theory", "Basic_Medical_Science", "Biology", "Chemistry", "Clinical_Medicine", "Computer_Science", "Design", "Diagnostics_and_Laboratory_Medicine", "Economics", "Electronics", "Energy_and_Power", "Finance", "Geography", "History", "Literature", "Manage", "Marketing", "Materials", "Math", "Mechanical_Engineering", "Music", "Pharmacy", "Physics", "Psychology", "Public_Health", "Sociology",
Evaluieren Sie Ihre maßgeschneiderten Nova-Modelle mithilfe verschiedener Bewertungsmethoden und Metriken.