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 mit voreingestellten und benutzerdefinierten Punktezählern
Wenn Sie den Bewertungstyp Custom Scorer verwenden, unterstützt SageMaker Evaluation zwei integrierte Scorer (auch als „Belohnungsfunktionen“ bezeichnet), Prime Math und Prime Code, die aus der Volcengine/verl RL-Trainingsbibliothek
Integrierte Punktezähler
Erstklassige Mathematik
Der Prime Math Scorer erwartet einen benutzerdefinierten JSONL-Datensatz mit Einträgen, die eine mathematische Frage als Antwort prompt/query und die richtige Antwort als Ground Truth enthalten. Bei dem Datensatz kann es sich um jedes der unter genannten unterstützten Formate handeln. Unterstützte Datensatzformate für Bring-Your-Own-Dataset (BYOD-) Aufgaben
Beispiel für einen Datensatzeintrag (aus Gründen der Übersichtlichkeit erweitert):
{ "system":"You are a math expert: ", "query":"How many vertical asymptotes does the graph of $y=\\frac{2}{x^2+x-6}$ have?", "response":"2" # Ground truth aka correct answer }
Prime-Code
Der Prime-Code-Scorer erwartet einen benutzerdefinierten JSONL-Datensatz mit Einträgen, die ein Codierungsproblem enthalten, und Testfällen, die im Feld angegeben sind. metadata Strukturieren Sie die Testfälle mit dem erwarteten Funktionsnamen für jeden Eintrag, Beispieleingaben und erwarteten Ausgaben.
Beispiel für einen Datensatzeintrag (aus Gründen der Übersichtlichkeit erweitert):
{ "system":"\\nWhen tackling complex reasoning tasks, you have access to the following actions. Use them as needed to progress through your thought process.\\n\\n[ASSESS]\\n\\n[ADVANCE]\\n\\n[VERIFY]\\n\\n[SIMPLIFY]\\n\\n[SYNTHESIZE]\\n\\n[PIVOT]\\n\\n[OUTPUT]\\n\\nYou should strictly follow the format below:\\n\\n[ACTION NAME]\\n\\n# Your action step 1\\n\\n# Your action step 2\\n\\n# Your action step 3\\n\\n...\\n\\nNext action: [NEXT ACTION NAME]\\n\\n", "query":"A number N is called a factorial number if it is the factorial of a positive integer. For example, the first few factorial numbers are 1, 2, 6, 24, 120,\\nGiven a number N, the task is to return the list/vector of the factorial numbers smaller than or equal to N.\\nExample 1:\\nInput: N = 3\\nOutput: 1 2\\nExplanation: The first factorial number is \\n1 which is less than equal to N. The second \\nnumber is 2 which is less than equal to N,\\nbut the third factorial number is 6 which \\nis greater than N. So we print only 1 and 2.\\nExample 2:\\nInput: N = 6\\nOutput: 1 2 6\\nExplanation: The first three factorial \\nnumbers are less than equal to N but \\nthe fourth factorial number 24 is \\ngreater than N. So we print only first \\nthree factorial numbers.\\nYour Task: \\nYou don't need to read input or print anything. Your task is to complete the function factorialNumbers() which takes an integer N as an input parameter and return the list/vector of the factorial numbers smaller than or equal to N.\\nExpected Time Complexity: O(K), Where K is the number of factorial numbers.\\nExpected Auxiliary Space: O(1)\\nConstraints:\\n1<=N<=10^{18}\\n\\nWrite Python code to solve the problem. Present the code in \\n```python\\nYour code\\n```\\nat the end.", "response": "", # Dummy string for ground truth. Provide a value if you want NLP metrics like ROUGE, BLEU, and F1. ### Define test cases in metadata field "metadata": { "fn_name": "factorialNumbers", "inputs": ["5"], "outputs": ["[1, 2]"] } }
Benutzerdefinierte Punktezähler (Bringen Sie Ihre eigenen Metriken mit)
Passen Sie Ihren Arbeitsablauf zur Modellevaluierung mit einer benutzerdefinierten Nachverarbeitungslogik vollständig an, sodass Sie benutzerdefinierte Metriken berechnen können, die auf Ihre Bedürfnisse zugeschnitten sind. Sie müssen Ihren benutzerdefinierten Scorer als AWS Lambda-Funktion implementieren, die Modellantworten akzeptiert und Prämienwerte zurückgibt.
Beispiel für eine Lambda-Eingabe-Payload
Ihr benutzerdefiniertes AWS Lambda erwartet Eingaben im OpenAI-Format. Beispiel:
{ "id": "123", "messages": [ { "role": "user", "content": "Do you have a dedicated security team?" }, { "role": "assistant", "content": "As an AI developed by Amazon, I do not have a dedicated security team..." } ], "reference_answer": { "compliant": "No", "explanation": "As an AI developed by Company, I do not have a traditional security team..." } }
Beispiel für eine Payload für die Lambda-Ausgabe
Der SageMaker Evaluierungscontainer erwartet, dass Ihre Lambda-Antworten diesem Format folgen:
{ "id": str, # Same id as input sample "aggregate_reward_score": float, # Overall score for the sample "metrics_list": [ # OPTIONAL: Component scores { "name": str, # Name of the component score "value": float, # Value of the component score "type": str # "Reward" or "Metric" } ] }
Benutzerdefinierte Lambda-Definition
Verwenden Sie das folgende Skelett als Ausgangspunkt für Ihre eigene Funktion.
def lambda_handler(event, context): return lambda_grader(event) def lambda_grader(samples: list[dict]) -> list[dict]: """ Args: Samples: List of dictionaries in OpenAI format Example input: { "id": "123", "messages": [ { "role": "user", "content": "Do you have a dedicated security team?" }, { "role": "assistant", "content": "As an AI developed by Company, I do not have a dedicated security team..." } ], # This section is the same as your training dataset "reference_answer": { "compliant": "No", "explanation": "As an AI developed by Company, I do not have a traditional security team..." } } Returns: List of dictionaries with reward scores: { "id": str, # Same id as input sample "aggregate_reward_score": float, # Overall score for the sample "metrics_list": [ # OPTIONAL: Component scores { "name": str, # Name of the component score "value": float, # Value of the component score "type": str # "Reward" or "Metric" } ] } """
Eingabe- und Ausgabefelder
Eingabefelder
| Feld | Description | Weitere Hinweise |
|---|---|---|
| id | Eindeutiger Bezeichner für die Probe | In der Ausgabe wiedergegeben. Zeichenkettenformat |
| messages | Chatverlauf im OpenAI-Format bestellt | Reihe von Nachrichtenobjekten |
| nachrichten [] .role | Sprecher der Nachricht | Allgemeine Werte: „Benutzer“, „Assistent“, „System“ |
| nachrichten [] .content | Textinhalt der Nachricht | Einfache Zeichenfolge |
| Metadaten | Informationen in freier Form zur Unterstützung der Benotung | Objekt; optionale Felder, die aus Trainingsdaten übernommen wurden |
Ausgabefelder
| Feld | Description | Weitere Hinweise |
|---|---|---|
| id | Derselbe Bezeichner wie das Eingabebeispiel | Muss mit der Eingabe übereinstimmen |
| aggregate_reward_score | Gesamtpunktzahl für die Stichprobe | Float (z. B. 0,0—1,0 oder aufgabendefinierter Bereich) |
| metrics_list | Die Werte der Komponenten, aus denen sich das Aggregat zusammensetzt | Anordnung metrischer Objekte |
Erforderliche Berechtigungen
Stellen Sie sicher, dass die SageMaker Ausführungsrolle, die Sie für die Evaluierung verwenden, über AWS Lambda-Berechtigungen verfügt.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:region:account-id:function:function-name" } ] }
Stellen Sie sicher, dass die Ausführungsrolle Ihrer AWS Lambda-Funktion über grundlegende Lambda-Ausführungsberechtigungen sowie über zusätzliche Berechtigungen verfügt, die Sie möglicherweise für alle AWS Downstream-Aufrufe benötigen.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" } ] }