View a markdown version of this page

Fine-tune öffentlich verfügbare Foundation-Modelle mit der Klasse ModelTrainer - 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.

Fine-tune öffentlich verfügbare Foundation-Modelle mit der Klasse ModelTrainer

Anmerkung

Anweisungen zur Optimierung von Basismodellen in einem privaten, kuratierten Hub finden Sie unter Fine-tune kuratierte Hub-Modelle.

Mithilfe des SDK können Sie einen integrierten Algorithmus oder ein vortrainiertes Modell in nur wenigen Codezeilen optimieren. SageMaker Python

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

  2. Definieren Sie anhand der Modell-ID Ihren Ausbildungsberuf mit einer JumpStartModelTrainer.

    from sagemaker.train import ModelTrainer from sagemaker.core.jumpstart.configs import JumpStartConfig jumpstart_config = JumpStartConfig(model_id="huggingface-textgeneration1-gpt-j-6b") model_trainer = ModelTrainer.from_jumpstart_config(jumpstart_config=jumpstart_config)
  3. Rufen Sie die train() Methode auf Ihrem auf ModelTrainer und zeigen Sie auf die Trainingsdaten, die Sie für die Feinabstimmung verwenden möchten.

    from sagemaker.train.configs import InputData model_trainer.train( input_data_config=[ InputData(channel_name="train", data_source=training_dataset_s3_path), InputData(channel_name="validation", data_source=validation_dataset_s3_path), ] )
  4. Verwenden Sie dann die deploy-Methode, um Ihr Modell automatisch für die Inferenz bereitzustellen. In diesem Beispiel verwenden wir das GPT-J 6B-Modell vonHugging Face.

    from sagemaker.serve import ModelBuilder model_builder = ModelBuilder.from_jumpstart_config(jumpstart_config=jumpstart_config) model = model_builder.build() endpoint = model_builder.deploy()
  5. 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 Basismodell GPT-J 6B verwendet, das für eine Vielzahl von Anwendungsfällen zur Textgenerierung geeignet ist, darunter die Beantwortung von Fragen, die Erkennung benannter Entitäten, Zusammenfassung und mehr. Weitere Informationen zu Anwendungsfällen für Modelle finden Sie unter Verfügbare Basismodelle.

Sie können optional eine Modellversion auf Ihrem JumpStartConfig angeben. Um einen Instanztyp und eine Anzahl auszuwählen, übergeben Sie ein Compute Objekt anModelTrainer.from_jumpstart_config. Das JumpStartConfig selbst akzeptiert keine Instanzeinstellungen. Weitere Informationen zur ModelTrainer Klasse und ihren Parametern finden Sie unter SageMaker Train in der SageMaker Python SDK-Dokumentation auf der Read the Docs-Website.

Standard-Instance-Typen überprüfen

Bei der Feinabstimmung eines vorab trainierten Modells mit der ModelTrainer Klasse können Sie optional eine Modellversion auf Ihrem angeben. JumpStartConfig Sie können auch einen Instanztyp mit einem Compute Objekt auswählen. Alle JumpStart Modelle haben einen Standard-Instanztyp. Rufen Sie den standardmäßigen Trainings-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="training") print(instance_type)

Mit der instance_types.retrieve() Methode können Sie alle unterstützten Instanztypen für ein bestimmtes JumpStart Modell anzeigen.

Standard-Hyperparameter überprüfen

Um die für das Training verwendeten Standard-Hyperparameter zu überprüfen, können Sie die retrieve_default()-Methode aus der hyperparameters-Klasse verwenden.

from sagemaker.core import hyperparameters my_hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version) print(my_hyperparameters) # Optionally override default hyperparameters for fine-tuning my_hyperparameters["epoch"] = "3" my_hyperparameters["per_device_train_batch_size"] = "4" # Optionally validate hyperparameters for the model hyperparameters.validate(model_id=model_id, model_version=model_version, hyperparameters=my_hyperparameters)

Weitere Informationen über verfügbare Hyperparameter finden Sie unter Häufig unterstützte Hyperparameter bei der Optimierung.

Standard-Metrikdefinitionen überprüfen

Sie können auch die standardmäßigen Metrikdefinitionen überprüfen:

from sagemaker.core import metric_definitions print(metric_definitions.retrieve_default(model_id=model_id, model_version=model_version))