Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Fine-tune modelli di base disponibili al pubblico con la classe ModelTrainer
Nota
Per istruzioni su come eseguire il fine-tuning dei modelli di fondazione in un hub privato selezionato, consulta Fine-tune modelli di hub curati.
Puoi mettere a punto un algoritmo integrato o un modello preaddestrato in poche righe di codice utilizzando l'SDK. SageMaker Python
-
Innanzitutto, trova l'ID del modello di tua scelta in. Modelli di fondazione disponibili
-
Utilizzando l'ID del modello, definisci il tuo lavoro di formazione con un JumpStart
ModelTrainer.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) -
Richiamate il
train()metodo a vostro piacimentoModelTrainer, indicando i dati di allenamento da utilizzare per la messa a punto.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), ] ) -
Quindi, utilizza il metodo
deployper implementare automaticamente il modello per l’inferenza. In questo esempio, utilizziamo il modello 6B di GPT-J . Hugging Facefrom sagemaker.serve import ModelBuilder model_builder = ModelBuilder.from_jumpstart_config(jumpstart_config=jumpstart_config) model = model_builder.build() endpoint = model_builder.deploy() -
È quindi possibile eseguire l'inferenza con il modello distribuito utilizzando il metodo.
invokeText-generation modelli come questo accettano un corpo di richiesta JSON con una chiave.inputsSerializza il payload conjson.dumpse imposta il tipo di contenuto su.application/jsonimport 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'))
Nota
Questo esempio utilizza il modello base GPT-J 6B, adatto per un'ampia gamma di casi d'uso della generazione di testo, tra cui la risposta alle domande, il riconoscimento delle entità denominate, il riepilogo e altro ancora. Per ulteriori informazioni sui casi d’uso dei modelli, consulta Modelli di fondazione disponibili.
Facoltativamente, puoi specificare una versione del modello sul tuo. JumpStartConfig Per scegliere un tipo e un numero di istanze, passate un Compute oggetto aModelTrainer.from_jumpstart_config. JumpStartConfigDi per sé non accetta le impostazioni delle istanze. Per ulteriori informazioni sulla ModelTrainer classe e sui suoi parametri, consulta SageMaker Train
Controllo dei tipi di istanza predefiniti
Quando si perfeziona un modello preaddestrato con la ModelTrainer classe, è possibile specificare facoltativamente una versione del modello sul proprio. JumpStartConfig Puoi anche scegliere un tipo di istanza con un oggetto. Compute Tutti i JumpStart modelli hanno un tipo di istanza predefinito. Recupera il tipo di istanza di implementazione predefinita utilizzando il seguente codice:
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)
È possibile visualizzare tutti i tipi di istanza supportati per un determinato JumpStart modello con il instance_types.retrieve() metodo.
Controllo degli iperparametri predefiniti
Per controllare gli iperparametri predefiniti utilizzati per l’addestramento, puoi applicare il metodo retrieve_default() della classe hyperparameters.
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)
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:
from sagemaker.core import metric_definitions print(metric_definitions.retrieve_default(model_id=model_id, model_version=model_version))