View a markdown version of this page

Bereitstellen öffentlich verfügbarer Basismodelle mit der ModelBuilder-Klasse - Amazon SageMaker KI

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.

Bereitstellen öffentlich verfügbarer Basismodelle mit der ModelBuilder-Klasse

Mithilfe des SageMaker Python SDK können Sie in nur wenigen Codezeilen einen integrierten Algorithmus oder ein vortrainiertes Modell auf einem SageMaker KI-Endpunkt bereitstellen.

  1. Suchen Sie zunächst die Modell-ID für das Modell Ihrer Wahl unterVerfügbare Basismodelle.

  2. Definieren Sie Ihr Modell anhand der Modell-ID als JumpStart Modell.

    from sagemaker.serve import ModelBuilder from sagemaker.core.jumpstart.configs import JumpStartConfig jumpstart_config = JumpStartConfig(model_id="huggingface-text2text-flan-t5-xl") model_builder = ModelBuilder.from_jumpstart_config(jumpstart_config=jumpstart_config)
  3. Verwenden Sie die deploy-Methode, um Ihr Modell automatisch für die Inferenz bereitzustellen. In diesem Beispiel verwenden wir das FLAN-T5 XL-Modell vonHugging Face.

    model = model_builder.build() endpoint = model_builder.deploy()
  4. Anschließend können Sie mithilfe der invoke Methode eine Inferenz mit dem bereitgestellten Modell ausführen. Text-generation Modelle wie dieses akzeptieren einen JSON-Anforderungstext mit einem inputs Schlüssel. Serialisieren Sie die Nutzlast mit json.dumps und setzen Sie den Inhaltstyp auf. application/json

    import json question = "What is Southern California often abbreviated as?" payload = {"inputs": question, "parameters": {"max_new_tokens": 100}} response = endpoint.invoke(body=json.dumps(payload), content_type="application/json") print(response.body.read().decode('utf-8'))
Anmerkung

In diesem Beispiel wird das Foundation-Modell FLAN-T5 XL verwendet, das für eine Vielzahl von Anwendungsfällen zur Textgenerierung geeignet ist, darunter Beantwortung von Fragen, Zusammenfassung, Chatbot-Erstellung und mehr. Weitere Informationen zu Anwendungsfällen für Modelle finden Sie unter Verfügbare Basismodelle.

Weitere Informationen zur ModelBuilder Klasse und ihren Parametern finden Sie ModelBuilder in der SageMaker Python SDK-Dokumentation auf der Read the Docs-Website.

Standard-Instance-Typen überprüfen

Wenn Sie ein vortrainiertes Modell bereitstellen, können Sie optional eine Modellversion auf Ihrem JumpStartConfig angeben. Sie können auch einen Instanztyp auf Ihrem auswählen ModelBuilder (z. B. mit dem instance_type Parameter). Alle JumpStart Modelle haben einen Standard-Instanztyp. Rufen Sie den standardmäßigen Bereitstellungs-Instance-Typ mit dem folgenden Code ab:

from sagemaker.core import instance_types instance_type = instance_types.retrieve_default( model_id=model_id, model_version=model_version, scope="inference") print(instance_type)

Alle unterstützten Instanztypen für ein bestimmtes JumpStart Modell mit der instance_types.retrieve() Methode anzeigen.

Verwenden von Inferenzkomponenten, um mehrere Modelle auf einem gemeinsamen Endpunkt bereitzustellen

Eine Inferenzkomponente ist ein SageMaker KI-Hosting-Objekt, mit dem Sie ein oder mehrere Modelle auf einem Endpunkt bereitstellen können, um die Flexibilität und Skalierbarkeit zu erhöhen. Sie müssen den endpoint_type ändern, damit Ihr JumpStart Modell auf Inferenzkomponenten basiert und nicht auf dem standardmäßigen modellbasierten Endpunkt. Import EndpointType und Bereitstellung mit dem auf Inferenzkomponenten basierenden Endpunkttyp:

from sagemaker.core.enums import EndpointType endpoint = model_builder.deploy( endpoint_name = 'jumpstart-model-id-123456789012', endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED )

Weitere Informationen zum Erstellen von Endpunkten mit Inferenzkomponenten und zum Bereitstellen von SageMaker KI-Modellen finden Sie unter. Gemeinsame Ressourcennutzung mit mehreren Modellen

Überprüfen gültiger Eingabe- und Ausgabeinferenzformate

Um gültige Dateneingabe- und -ausgabeformate auf Inferenz zu überprüfen, können Sie die retrieve_options()-Methode aus den Klassen Serializers und Deserializers verwenden.

from sagemaker.core.serializers.implementations import retrieve_options as retrieve_serializer_options from sagemaker.core.deserializers.implementations import retrieve_options as retrieve_deserializer_options print(retrieve_serializer_options(model_id=model_id, model_version=model_version)) print(retrieve_deserializer_options(model_id=model_id, model_version=model_version))

Überprüfen unterstützter Inhalts- und Annahmetypen

Sie können die retrieve_options()-Methode ebenfalls verwenden, um die unterstützten Inhalts- und Annahmetypen zu überprüfen.

from sagemaker.core import content_types, accept_types print(content_types.retrieve_options(model_id=model_id, model_version=model_version)) print(accept_types.retrieve_options(model_id=model_id, model_version=model_version))

Weitere Informationen zu Dienstprogrammen finden Sie unter APIs für Dienstprogramme.