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.
-
Innanzitutto, trova l’ID del modello relativo al modello di tua scelta nella tabella degli algoritmi integrati con modelli preaddestrati
. -
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) -
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} ) -
Quindi, utilizza il metodo
deployper implementare automaticamente il modello per l’inferenza. In questo esempio, utilizziamo il modello GPT-J 6B di Hugging Face.predictor = estimator.deploy() -
È 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))