View a markdown version of this page

Per-request Tagging von Metadaten - Amazon Bedrock

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.

Per-request Tagging von Metadaten

Mit Metadaten anfordern können Sie Key-Value-Tags an einzelne Amazon Bedrock-Inferenzaufrufe auf dem Endpunkt anhängen. bedrock-runtime Die Tags werden zusammen mit der Anfrage in Ihren Modellaufrufprotokollen aufgezeichnet. Anschließend können Sie die Nutzung einem Team, einer Anwendung, einer Umgebung, einem Experiment oder einer anderen Dimension zuordnen, die je nach Anruf unterschiedlich ist. Es gibt keine Ressource, die im Voraus erstellt oder konfiguriert werden müsste — jeder Anruf kann einen anderen Satz von Tags enthalten.

Die Anforderung von Metadaten wird auf den folgenden bedrock-runtimeAPIs unterstützt:

Anmerkung

Das Anfordern von Metadaten wird auf dem bedrock-mantleEndpunkt nicht unterstützt. Informationen zur Zuordnung, die als AWS Kostenzuordnungs-Tags direkt in den AWS Cost Explorer und in die Kosten- und Nutzungsberichte einfließen, finden Sie unter AnwendungsinferenzprofileProjekte, oderArbeitsbereiche.

So funktionieren Metadaten anfordern

Je nachdem, welche API Sie aufrufen, hängen Sie Metadaten unterschiedlich an eine Anfrage an:

  • InvokeModel und InvokeModelWithResponseStream — Legen Sie den X-Amzn-Bedrock-Request-Metadata HTTP-Header für die Anfrage fest. Der Wert ist ein JSON-Objekt, dessen Schlüssel und Werte Zeichenketten sind, die Sie auswählen.

  • Umgekehrt und ConverseStream — Legen Sie das requestMetadata Feld im Anfragetext fest. Weitere Informationen finden Sie unter requestMetadata.

Anforderungsmetadaten werden nur dann in Ihren Modellaufrufprotokollen aufgezeichnet, wenn die Protokollierung an dem Ort aktiviert ist, an AWS-Region dem der Anruf getätigt wird. Anweisungen zur Einrichtung finden Sie unterÜberwachen Sie den Modellaufruf mithilfe von CloudWatch Logs und Amazon S3.

Das folgende Beispiel zeigt eine InvokeModel Anfrage, die den Anruf mit einem Teamnamen, einer Umgebung und einer Testfall-ID kennzeichnet:

POST /model/anthropic.claude-3-haiku-20240307-v1:0/invoke HTTP/1.1 Content-Type: application/json X-Amzn-Bedrock-Request-Metadata: {"team": "orchestrator", "environment": "preview-test", "test_case": "invoke_model_sync"} { "anthropic_version": "bedrock-2023-05-31", "max_tokens": 50, "messages": [{"role": "user", "content": "Say hello in one word."}] }

Derselbe Header wird unterstützt auf InvokeModelWithResponseStream:

POST /model/anthropic.claude-3-haiku-20240307-v1:0/invoke-with-response-stream HTTP/1.1 Content-Type: application/json X-Amzn-Bedrock-Request-Metadata: {"team": "orchestrator", "environment": "preview-test", "test_case": "invoke_model_stream"} { "anthropic_version": "bedrock-2023-05-31", "max_tokens": 50, "messages": [{"role": "user", "content": "Say hello in one word."}] }
Wichtig

Wenn Sie Anfragen mit AWS Signature Version 4 (Sigv4) signieren, nehmen Sie diese X-Amzn-Bedrock-Request-Metadata in die SignedHeaders Liste auf. Anfragen, die den Header nicht in der signierten Liste enthalten, werden mit einem zurückgewiesen. InvalidSignatureException AWS SDKs, die Anforderungsmetadaten als Parameter verfügbar machen, behandeln dies automatisch.

Im folgenden Beispiel werden Anforderungsmetadaten mit dem AWS SDK for Python (Boto3) bei einem Converse-Aufruf festgelegt. Das SDK schließt die Metadaten für Sie in die SigV4-signed Header ein.

import boto3 client = boto3.client("bedrock-runtime") response = client.converse( modelId="us.anthropic.claude-opus-4-8", # or an inference profile ARN messages=[{"role": "user", "content": [{"text": "Summarize this ticket."}]}], requestMetadata={ "user": "alice@example.com", "team": "growth", "feature": "summarizer", "environment": "prod", }, )

Einschränkungen

Für die Anforderung von Metadaten gelten die folgenden Beschränkungen, die sowohl für den X-Amzn-Bedrock-Request-Metadata Header (InvokeModel, InvokeModelWithResponseStream) als auch für das requestMetadata Textfeld (Converse, ConverseStream) gelten:

  • Maximal 16 Metadateneinträge pro Anfrage.

  • Schlüssel: maximal 256 Zeichen.

  • Werte: maximal 256 Zeichen.

  • Zulässige Zeichen: ein eingeschränkter Satz alphanumerischer Zeichen und Satzzeichen.

Anfragen, die diese Grenzwerte überschreiten, werden mit einem Validierungsfehler abgelehnt.

Wo die Metadaten der Anfrage angezeigt werden

Metadaten anfordern werden in Ihren Amazon Bedrock-Modellaufrufprotokollen unter dem Feld der obersten requestMetadata Ebene angezeigt. Der folgende abgekürzte Protokolleintrag zeigt das Feld für einen Anruf: InvokeModel

{ "schemaType": "ModelInvocationLog", "schemaVersion": "1.0", "timestamp": "2024-01-15T12:00:00Z", "accountId": "123456789012", "region": "us-east-1", "requestId": "abcd1234-5678-efgh-ijkl-mnopqrstuvwx", "operation": "InvokeModel", "modelId": "anthropic.claude-3-haiku-20240307-v1:0", "requestMetadata": { "team": "orchestrator", "environment": "preview-test", "test_case": "invoke_model_sync" }, "input": { "...": "..." }, "output": { "...": "..." } }

Sie können Protokolle in Amazon Logs Insights, Amazon S3-Abfragetools wie Amazon Athena oder jedem anderen System, das CloudWatch Aufrufprotokolle liest, nach Metadatenfeldern filtern und aggregieren.

Kosten aus Ihren Protokollen ableiten

Anforderungsmetadaten und die Anzahl der Tokens werden in Ihre Modellaufrufprotokolle geschrieben, nicht in Ihre Rechnung. Es gibt zwei Möglichkeiten, sie in Kosten umzuwandeln.

Berechnet anhand der Token-Anzahl

Jeder Protokolldatensatz enthält die Anzahl der Eingabe-, Ausgabe-, Cache-Lese- und Cache-Schreib-Tokens für die Anfrage. Multiplizieren Sie diese mit den Preisen pro Token in den Amazon Bedrock-Preisen und gruppieren Sie sie nach einem beliebigen Metadaten-Tag. Dieser Ansatz erfolgt pro Aufforderung und nahezu in Echtzeit, es handelt sich jedoch um eine Schätzung. Sie behalten die Preisliste bei. Rabatte, Verpflichtungen, Chargenpreise, das kostenlose Kontingent oder der bereitgestellte Durchsatz werden darin nicht berücksichtigt, es sei denn, Sie modellieren sie.

Mit der folgenden CloudWatch Logs Insights-Abfrage werden die Gesamtwerte der Tokens pro Benutzer und Modell abgefragt, wenn Aufruf-Logs an Logs übermittelt werden: CloudWatch

fields requestMetadata.user as user, modelId, input.inputTokenCount as inTokens, output.outputTokenCount as outTokens | stats sum(inTokens) as totalInput, sum(outTokens) as totalOutput, count() as calls by user, modelId | sort totalInput desc

Für Protokolle, die an Amazon S3 gesendet werden, schätzt die folgende Amazon Athena Athena-Abfrage die Kosten pro Team. Ersetzen Sie die Tarife pro Token durch die aktuellen Tarife von Amazon Bedrock und passen Sie die Tabellen- und Spaltenverweise an Ihre AWS Glue Tabellendefinition an.

SELECT requestMetadata.team AS team, modelId, SUM(input.inputTokenCount) AS input_tokens, SUM(output.outputTokenCount) AS output_tokens, SUM(input.inputTokenCount) * 0.000015 AS est_input_cost, SUM(output.outputTokenCount) * 0.000075 AS est_output_cost FROM bedrock_invocation_logs GROUP BY requestMetadata.team, modelId ORDER BY est_input_cost DESC;
Mit CUR abgleichen

Kombinieren Sie Ihre Aufrufprotokolle mit Ihrem AWS Kosten- und Nutzungsbericht, um rechnungsgenaue Gesamtwerte zu erhalten. Weder Classic CUR noch CUR 2.0 enthalten in ihren Einzelposten eine ID pro Anfrage. In beiden Fällen werden die Gesamtkosten nach Nutzungsart für eine Stunde oder einen Tag zusammengefasst. Behandeln Sie diesen Pfad als einen Abgleich zwischen Modell und Nutzungstyp, wobei die Protokolle die Einzelheiten der einzelnen Anfragen darunter enthalten.

Anmerkung

Bei Anforderungsmetadaten und IAM-Sitzungs-Tags handelt es sich um unterschiedliche Mechanismen. Anforderungsmetadaten werden pro Anruf festgelegt und variieren je nach Anfrage. Sie landen in Ihren Aufrufprotokollen. IAM-Sitzungs-Tags sind pro Sitzung gebunden und werden nur als aggregierte Abrechnungsdaten in AWS Cost Explorer und CUR angezeigt. Verwenden Sie für die Zuordnung pro Benutzer und pro Eingabeaufforderung Anforderungsmetadaten oder eine Benutzeridentität im ARN anstelle von Sitzungs-Tags.

Überlegungen

  • Werte für Anforderungsmetadaten werden nur aufgezeichnet, wenn die Protokollierung von Modellaufrufen in den Aufrufen aktiviert ist. AWS-Region Wenn die Protokollierung nicht konfiguriert ist, ist die Anfrage trotzdem erfolgreich, aber die Metadaten werden nicht beibehalten.

  • Anforderungsmetadaten werden nicht als AWS Kostenzuordnungs-Tag bereitgestellt und erscheinen nicht im AWS Cost Explorer oder CUR. Um die Kosten anhand der Metadatendimension zu analysieren, verknüpfen Sie Ihre Aufrufprotokolle mit Ihrem Kosten- und Nutzungsbericht. requestId Alternativ können Sie die Token-Anzahl direkt aus den Protokolldatensätzen zusammenfassen und mit den Preisen pro Token in der Amazon Bedrock-Preisgestaltung multiplizieren. Für die Zuordnung, die nativ in Cost Explorer und CUR fließt, verwenden SieAnwendungsinferenzprofile, Projekte oder. Arbeitsbereiche

  • Wählen Sie stabile Schlüssel mit niedriger Kardinalität wieteam,, oder experiment für Analysen environmentfeature, die einfach zu aggregieren sind. Verwenden Sie Werte mit höherer Kardinalität wie Sitzungs- oder Ablaufverfolgungskennungen nur, wenn Sie einzelne Anrufe verfolgen müssen.

  • Vermeiden Sie es, personenbezogene Daten (PII), Anmeldeinformationen oder andere sensible Daten in Anforderungsmetadaten zu platzieren. Werte werden in Ihren Modellaufrufprotokollen und in allen Systemen gespeichert, die diese Protokolle lesen.

  • Anforderungsmetadaten werden pro Anruf bereitgestellt und von Amazon Bedrock nicht durchgesetzt. Anfragen, bei denen sie nicht angegeben werden, sind weiterhin erfolgreich, und es gibt keine serviceseitige Richtlinie, die dies vorschreibt. Um eine unternehmensweite Abdeckung zu gewährleisten, legen Sie Anforderungsmetadaten in einem gemeinsam genutzten Client oder einem LLM-Gateway fest. Verwenden Sie für eine Zuordnung, die immer ohne Code pro Anruf vorhanden ist. IAM-Hauptzuweisung Die Identität des Anrufers wird automatisch erfasst.

  • Metadaten anfordern funktioniert zusammen mit den anderen Methoden zur Nutzungsverfolgung von Amazon Bedrock. Sie können Tags IAM-Hauptzuweisung für die Zuordnung pro Identität und für die Kostenzuweisung auf Ressourcenebene Anwendungsinferenzprofile für denselben Workload verwenden.