Codebeispiele für den bereitgestellten Durchsatz in Amazon Bedrock - 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.

Codebeispiele für den bereitgestellten Durchsatz in Amazon Bedrock

Die folgenden Codebeispiele zeigen, wie ein bereitgestellter Durchsatz mit dem und dem Python-SDK erstellt, verwendet AWS CLI und verwaltet wird.

AWS CLI

Erstellen Sie einen unverbindlichen Provisioned Throughput, der MyPT auf der Grundlage eines benutzerdefinierten Modells aufgerufen wirdMyCustomModel, das anhand des Anthropic Claude v2.1-Modells angepasst wurde, indem Sie den folgenden Befehl in einem Terminal ausführen.

aws bedrock create-provisioned-model-throughput \ --model-units 1 \ --provisioned-model-name MyPT \ --model-id arn:aws:bedrock:us-east-1::custom-model/anthropic.claude-v2:1:200k/MyCustomModel

Die Antwort gibt a zurück. provisioned-model-arn Warten Sie etwas, bis die Erstellung abgeschlossen ist. Um den Status zu überprüfen, geben Sie den Namen oder den ARN des bereitgestellten Modells wie provisioned-model-id im folgenden Befehl ein.

aws bedrock get-provisioned-model-throughput \ --provisioned-model-id MyPT

Ändern Sie den Namen des bereitgestellten Durchsatzes und ordnen Sie ihn einem anderen Modell zu, das seit Version 2.1 angepasst wurde. Anthropic Claude

aws bedrock update-provisioned-model-throughput \ --provisioned-model-id MyPT \ --desired-provisioned-model-name MyPT2 \ --desired-model-id arn:aws:bedrock:us-east-1::custom-model/anthropic.claude-v2:1:200k/MyCustomModel2

Führen Sie mit dem folgenden Befehl die Inferenz mit Ihrem aktualisierten bereitgestellten Modell aus. Sie müssen den ARN des bereitgestellten Modells, der in der UpdateProvisionedModelThroughput Antwort zurückgegeben wurde, als. model-id Die Ausgabe wird in eine Datei mit dem Namen output.txt in Ihrem aktuellen Ordner geschrieben.

aws bedrock-runtime invoke-model \ --model-id ${provisioned-model-arn} \ --body '{"inputText": "What is AWS?", "textGenerationConfig": {"temperature": 0.5}}' \ --cli-binary-format raw-in-base64-out \ output.txt

Löschen Sie den bereitgestellten Durchsatz mit dem folgenden Befehl. Der bereitgestellte Durchsatz wird Ihnen nicht mehr in Rechnung gestellt.

aws bedrock delete-provisioned-model-throughput --provisioned-model-id MyPT2
Python (Boto)

Erstellen Sie einen unverbindlichen Provisioned Throughput, der auf einem benutzerdefinierten Modell MyPT basiertMyCustomModel, das anhand des Anthropic Claude v2.1-Modells angepasst wurde, indem Sie den folgenden Codeausschnitt ausführen.

import boto3 bedrock = boto3.client(service_name='bedrock') bedrock.create_provisioned_model_throughput( modelUnits=1, provisionedModelName='MyPT', modelId='arn:aws:bedrock:us-east-1::custom-model/anthropic.claude-v2:1:200k/MyCustomModel' )

Die Antwort gibt a zurück. provisionedModelArn Warten Sie etwas, bis die Erstellung abgeschlossen ist. Sie können den Status mit dem folgenden Codeausschnitt überprüfen. Sie können entweder den Namen des bereitgestellten Durchsatzes oder den von der CreateProvisionedModelThroughputAntwort zurückgegebenen ARN als angeben. provisionedModelId

bedrock.get_provisioned_model_throughput(provisionedModelId='MyPT')

Ändern Sie den Namen des bereitgestellten Durchsatzes und ordnen Sie ihn einem anderen Modell zu, das seit Version 2.1 angepasst wurde. Anthropic Claude Senden Sie dann eine GetProvisionedModelThroughputAnfrage und speichern Sie den ARN des bereitgestellten Modells in einer Variablen, um ihn für Inferenzen zu verwenden.

bedrock.update_provisioned_model_throughput( provisionedModelId='MyPT', desiredProvisionedModelName='MyPT2', desiredModelId='arn:aws:bedrock:us-east-1::custom-model/anthropic.claude-v2:1:200k/MyCustomModel2' ) arn_MyPT2 = bedrock.get_provisioned_model_throughput(provisionedModelId='MyPT2').get('provisionedModelArn')

Führen Sie die Inferenz mit Ihrem aktualisierten bereitgestellten Modell mit dem folgenden Befehl aus. Sie müssen den ARN des bereitgestellten Modells als angeben. modelId

import json import logging import boto3 from botocore.exceptions import ClientError class ImageError(Exception): "Custom exception for errors returned by the model" def __init__(self, message): self.message = message logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) def generate_text(model_id, body): """ Generate text using your provisioned custom model. Args: model_id (str): The model ID to use. body (str) : The request body to use. Returns: response (json): The response from the model. """ logger.info( "Generating text with your provisioned custom model %s", model_id) brt = boto3.client(service_name='bedrock-runtime') accept = "application/json" content_type = "application/json" response = brt.invoke_model( body=body, modelId=model_id, accept=accept, contentType=content_type ) response_body = json.loads(response.get("body").read()) finish_reason = response_body.get("error") if finish_reason is not None: raise ImageError(f"Text generation error. Error is {finish_reason}") logger.info( "Successfully generated text with provisioned custom model %s", model_id) return response_body def main(): """ Entrypoint for example. """ try: logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") model_id = arn_myPT2 body = json.dumps({ "inputText": "what is AWS?" }) response_body = generate_text(model_id, body) print(f"Input token count: {response_body['inputTextTokenCount']}") for result in response_body['results']: print(f"Token count: {result['tokenCount']}") print(f"Output text: {result['outputText']}") print(f"Completion reason: {result['completionReason']}") except ClientError as err: message = err.response["Error"]["Message"] logger.error("A client error occurred: %s", message) print("A client error occured: " + format(message)) except ImageError as err: logger.error(err.message) print(err.message) else: print( f"Finished generating text with your provisioned custom model {model_id}.") if __name__ == "__main__": main()

Löschen Sie den bereitgestellten Durchsatz mit dem folgenden Codeausschnitt. Der bereitgestellte Durchsatz wird Ihnen nicht mehr in Rechnung gestellt.

bedrock.delete_provisioned_model_throughput(provisionedModelId='MyPT2')