Codebeispiele für den bereitgestellten Durchsatz - 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

Die folgenden Codebeispiele zeigen, wie Sie einen bereitgestellten Durchsatz mit dem und dem Python SDK erstellen, verwenden AWS CLI und verwalten.

AWS CLI

Erstellen Sie einen unverbindlichen Provisioned Throughput, der auf der MyPT Grundlage eines benutzerdefinierten Modells aufgerufen wurdeMyCustomModel, das aus dem Anthropic Claude v2.1-Modell, 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 provisioned-model-arn zurück. Warten Sie etwas, bis die Erstellung abgeschlossen ist. Um den Status zu überprüfen, geben Sie den Namen oder den Namen 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 angepasst wurde von Anthropic Claude v2.1.

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 die Inferenz mit Ihrem aktualisierten bereitgestellten Modell mit dem folgenden Befehl aus. Sie müssen das in ARN der UpdateProvisionedModelThroughput Antwort zurückgegebene Modell des bereitgestellten Modells als. model-id Die Ausgabe wird in eine Datei mit dem Namen geschrieben output.txt in Ihrem aktuellen Ordner.

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 basiert, MyCustomModel das aus dem Anthropic Claude v2.1-Modell, 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 Namen des von der CreateProvisionedModelThroughputAntwort ARN zurückgegebenen Durchsatzes 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 von angepasst wurde Anthropic Claude v2.1. Senden Sie dann eine GetProvisionedModelThroughputAnfrage und speichern Sie das ARN bereitgestellte Modell in einer Variablen, um es 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 das 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')