Fine-tuning dei modelli di hub selezionati
Nel tuo hub di modelli privato selezionato puoi eseguire job di addestramento per il fine-tuning utilizzando i riferimenti ai modelli. I riferimenti ai modelli rimandano a un modello JumpStart disponibile al pubblico nell’hub pubblico di SageMaker AI, ma è possibile eseguire il fine-tuning del modello in base ai propri dati per il caso d’uso specifico. Dopo il processo di fine-tuning, hai accesso ai pesi del modello che puoi quindi utilizzare o implementare su un endpoint.
È possibile eseguire il fine-tuning di modelli di hub selezionati in poche righe di codice utilizzando SageMaker Python SDK. Per informazioni più generali sul fine-tuning dei modelli JumpStart disponibili al pubblico, consulta Modelli di fondazione e iperparametri per il fine-tuning.
Prerequisiti
Per eseguire il fine-tuning di un riferimento al modello JumpStart nel tuo hub, effettua le seguenti operazioni:
-
Assicurati che il ruolo IAM dell’utente disponga dell’autorizzazione
TrainHubModelSageMaker AI collegata. Per ulteriori informazioni, consulta Aggiunta e rimozione di autorizzazioni per identità IAM nella Guida per l’utente di AWS IAM.È consigliabile collegare al ruolo IAM dell’utente una policy come la seguente:
Nota
Se il tuo hub selezionato è condiviso tra più account e il contenuto dell’hub è di proprietà di un altro account, assicurati che il tuo
HubContent(la risorsa di riferimento al modello) disponga di una policy IAM basata su risorse che conceda anche l’autorizzazioneTrainHubModelall’account richiedente, come mostrato nell’esempio seguente. -
Scegli un hub privato selezionato con un riferimento a un modello JumpStart di cui desideri eseguire il fine-tuning. Per ulteriori informazioni sulla creazione di un hub privato, consulta Creazione di un hub di modelli privato. Per informazioni su come aggiungere al tuo hub privato modelli JumpStart disponibili al pubblico, consulta Aggiunta di modelli a un hub privato.
Nota
Dovrebbe essere possibile eseguire il fine-tuning del modello JumpStart scelto. Per verificare se è possibile eseguire il fine-tuning di un modello, consulta la tabella degli algoritmi integrati con modelli preaddestrati
. -
Scegli un set di dati di addestramento da utilizzare per il fine-tuning del modello. Il set di dati deve essere nel formato di addestramento appropriato per il modello di cui desideri eseguire il fine-tuning.
Fine-tuning di un riferimento al modello di hub selezionato
La procedura seguente mostra come eseguire il fine-tuning di un riferimento al modello nel tuo hub privato selezionato utilizzando SageMaker Python SDK.
-
Assicurati di aver installato la versione più recente (almeno
2.242.0) di SageMaker Python SDK. Per ulteriori informazioni, consulta Utilizzo della versione 2.x di SageMaker Python SDK. !pip install --upgrade sagemaker -
Importa AWS SDK for Python (Boto3) e i moduli necessari da SageMaker Python SDK.
import boto3 from sagemaker.jumpstart.estimator import JumpStartEstimator from sagemaker.session import Session -
Inizializza una sessione Boto3, un client SageMaker AI e una sessione SageMaker Python SDK.
sagemaker_client = boto3.Session(region_name=<AWS-region>).client("sagemaker") sm_session = Session(sagemaker_client=sagemaker_client) -
Crea
JumpStartEstimatore fornisci l’ID del modello JumpStart, il nome dell’hub che contiene il riferimento al modello e la sessione SageMaker Python SDK. Per un elenco degli ID dei modelli, consulta la tabella degli algoritmi integrati con modelli preaddestrati. Facoltativamente, puoi specificare i campi
instance_typeeinstance_countdurante la creazione dello strumento di stima. In caso contrario, il job di addestramento utilizza il tipo e il numero di istanze predefiniti per il modello che stai utilizzando.Se lo desideri, puoi anche specificare il
output_pathalla posizione Amazon S3 in cui intendi archiviare i pesi dei modelli ottimizzati con fine-tuning. Se non specifichi iloutput_path, utilizza un bucket SageMaker AI Amazon S3 predefinito per la Regione del tuo account, denominato con il seguente formato:sagemaker-.<region>-<account-id>estimator = JumpStartEstimator( model_id="meta-textgeneration-llama-3-2-1b", hub_name=<your-hub-name>, sagemaker_session=sm_session, # If you don't specify an existing session, a default one is created for you # Optional: specify your desired instance type and count for the training job # instance_type = "ml.g5.2xlarge" # instance_count = 1 # Optional: specify a custom S3 location to store the fine-tuned model artifacts # output_path: "s3://<output-path-for-model-artifacts>" ) -
Crea un dizionario con la chiave
trainingin cui specifichi la posizione del set di dati per il fine-tuning. Questo esempio rimanda a un URI Amazon S3. In caso di altre considerazioni, come l’utilizzo della modalità locale o di più canali di dati di addestramento, consulta JumpStartEstimator.fit()nella documentazione di SageMaker Python SDK per ottenere ulteriori informazioni. training_input = { "training": "s3://<your-fine-tuning-dataset>" } -
Chiama il metodo
fit()dello strumento di stima e passa i dati di addestramento e l’accettazione dell’EULA (se applicabile).Nota
Il seguente esempio imposta
accept_eula=False.Per poter accettare l’EULA, è necessario modificare manualmente il valore inTrue.estimator.fit(inputs=training_input, accept_eula=False)
Il processo di fine-tuning dovrebbe ora iniziare.
Puoi controllare il fine-tuning visualizzando i job di addestramento nella console SageMaker AI o utilizzando l’API ListTrainingJobs.
Puoi accedere agli artefatti del modello ottimizzati con fine-tuning presenti nel output_path Amazon S3 specificato nell’oggetto JumpStartEstimator (il bucket SageMaker AI Amazon S3 predefinito per la Regione o un percorso Amazon S3 personalizzato che hai specificato, se applicabile).