Fine-tuning dei modelli di fondazione disponibili al pubblico con la classe JumpStartEstimator - Amazon SageMaker AI

Fine-tuning dei modelli di fondazione disponibili al pubblico con la classe JumpStartEstimator

Nota

Per istruzioni su come eseguire il fine-tuning dei modelli di fondazione in un hub privato selezionato, consulta Fine-tuning dei modelli di hub selezionati.

È possibile eseguire il fine-tuning di un algoritmo integrato o di un modello preaddestrato con poche righe di codice utilizzando SageMaker Python SDK.

  1. Innanzitutto, trova l’ID del modello relativo al modello di tua scelta nella tabella degli algoritmi integrati con modelli preaddestrati.

  2. Utilizzando l’ID del modello, definisci il tuo job di addestramento come strumento di stima JumpStart.

    from sagemaker.jumpstart.estimator import JumpStartEstimator model_id = "huggingface-textgeneration1-gpt-j-6b" estimator = JumpStartEstimator(model_id=model_id)
  3. Esegui estimator.fit() sul tuo modello, indicando i dati di addestramento da utilizzare per il fine-tuning.

    estimator.fit( {"train": training_dataset_s3_path, "validation": validation_dataset_s3_path} )
  4. Quindi, utilizza il metodo deploy per implementare automaticamente il modello per l’inferenza. In questo esempio, utilizziamo il modello GPT-J 6B di Hugging Face.

    predictor = estimator.deploy()
  5. È quindi possibile eseguire l’inferenza con il modello implementato utilizzando il metodo predict.

    question = "What is Southern California often abbreviated as?" response = predictor.predict(question) print(response)
Nota

Questo esempio utilizza il modello di fondazione GPT-J 6B, adatto a un’ampia gamma di casi d’uso per la generazione di testo, tra cui la risposta a domande, il riconoscimento di entità denominate, il riepilogo e altro ancora. Per ulteriori informazioni sui casi d’uso dei modelli, consulta Modelli di fondazione disponibili.

Facoltativamente, puoi specificare le versioni del modello o i tipi di istanza durante la creazione del tuo JumpStartEstimator. Per ulteriori informazioni sulla classe JumpStartEstimator e sui relativi parametri, consulta JumpStartEstimator.

Controllo dei tipi di istanza predefiniti

Se lo desideri, durante il fine-tuning di un modello preaddestrato puoi includere versioni di modello o tipi di istanza specifici utilizzando la classe JumpStartEstimator. Tutti i modelli JumpStart hanno un tipo di istanza predefinito. Recupera il tipo di istanza di implementazione predefinita utilizzando il seguente codice:

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

È possibile visualizzare tutti i tipi di istanza supportati per un determinato modello JumpStart con il metodo instance_types.retrieve().

Controllo degli iperparametri predefiniti

Per controllare gli iperparametri predefiniti utilizzati per l’addestramento, puoi applicare il metodo retrieve_default() della classe hyperparameters.

from sagemaker 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)

Per ulteriori informazioni sugli iperparametri disponibili, consulta iperparametri comunemente supportati per il fine-tuning.

Controllo delle definizioni delle metriche predefinite

Puoi anche controllare le definizioni delle metriche predefinite:

print(metric_definitions.retrieve_default(model_id=model_id, model_version=model_version))