View a markdown version of this page

Fine-tune modelli di hub curati - Amazon SageMaker AI

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 hub curati

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 JumpStart modello disponibile pubblicamente nell'hub pubblico di SageMaker intelligenza artificiale, ma puoi perfezionare il modello sui tuoi dati per il tuo 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.

Puoi ottimizzare i modelli di hub curati in poche righe di codice usando Python SDK. SageMaker Per informazioni più generali sulla messa a punto dei modelli disponibili al pubblico, consulta. JumpStart Modelli di fondazione e iperparametri per il fine-tuning

Prerequisiti

Per ottimizzare un riferimento al JumpStart modello nel tuo hub curato, procedi come segue:

  1. Assicurati che al ruolo IAM dell'utente sia associata l'autorizzazione SageMaker AITrainHubModel. 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:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sagemaker:TrainHubModel", "Resource": "arn:aws:sagemaker:*:111122223333:hub/*" } ] }
    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’autorizzazione TrainHubModel all’account richiedente, come mostrato nell’esempio seguente.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountSageMakerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "sagemaker:TrainHubModel" ], "Resource": [ "arn:aws:sagemaker:*:111122223333:hub/*" ] } ] }
  2. Disponi di un hub privato e curato con un riferimento al JumpStart modello che desideri perfezionare. Per ulteriori informazioni sulla creazione di un hub privato, consulta Creazione di un hub di modelli privato. Per sapere come aggiungere JumpStart modelli disponibili pubblicamente al tuo hub privato, consulta. Aggiunta di modelli a un hub privato

    Nota

    Il JumpStart modello scelto dovrebbe essere ottimizzabile. È possibile verificare se un modello è ottimizzabile controllando la tabella Algoritmi con modelli. Built-in Pre-trained

  3. 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-tune un riferimento al modello hub curato

La procedura seguente mostra come ottimizzare un riferimento al modello nel tuo hub privato curato utilizzando l' SageMaker SDK Python.

  1. Assicuratevi di avere installato l'ultima versione (almeno2.242.0) di Python SDK. SageMaker Per ulteriori informazioni, consulta Usare la versione 3.x di Python SDK. SageMaker

    !pip install --upgrade sagemaker
  2. Importa AWS SDK for Python (Boto3) i moduli di cui avrai bisogno dall'SDK Python. SageMaker

    import boto3 from sagemaker.train import ModelTrainer from sagemaker.core.jumpstart.configs import JumpStartConfig from sagemaker.core.helper.session_helper import Session
  3. Inizializza una sessione Boto3, un client SageMaker AI e una sessione Python SDK. SageMaker

    sagemaker_client = boto3.Session(region_name=<AWS-region>).client("sagemaker") sm_session = Session(sagemaker_client=sagemaker_client)
  4. Crea un ID ModelTrainer utilizzando from_jumpstart_config e fornisci l'ID del JumpStart modello, il nome del tuo hub che contiene il riferimento al modello e la tua sessione Python SDK. SageMaker Per un elenco degli ID dei modelli, consulta la tabella Built-in Algoritmi con Pre-trained modelli.

    Facoltativamente, è possibile specificare i instance_count campi instance_type e durante la creazione di. ModelTrainer 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_path alla 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>

    jumpstart_config = JumpStartConfig( model_id="meta-textgeneration-llama-3-2-1b", hub_name=<your-hub-name>, # Optional: specify your desired instance type and count for the training job # instance_type = "ml.g5.2xlarge" # instance_count = 1 ) model_trainer = ModelTrainer.from_jumpstart_config(jumpstart_config=jumpstart_config) # Optional: specify a custom S3 location to store the fine-tuned model artifacts # output_path: "s3://<output-path-for-model-artifacts>"
  5. Crea un dizionario con la chiave training in cui specifichi la posizione del set di dati per il fine-tuning. Questo esempio rimanda a un URI Amazon S3. Se hai ulteriori considerazioni, come l'utilizzo della modalità locale o di più canali di dati di addestramento, consulta ModelTrainer.train () nella documentazione di SageMaker Python SDK per maggiori informazioni.

    training_input = { "training": "s3://<your-fine-tuning-dataset>" }
  6. Richiama il train() metodo del model trainer e trasmetti i tuoi dati di training 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 in True.

    model_trainer.train(input_data_config=[training_input], accept_eula=False)

Il processo di fine-tuning dovrebbe ora iniziare.

Puoi verificare il tuo lavoro di perfezionamento visualizzando i lavori di formazione, nella console SageMaker AI o utilizzando l'API. ListTrainingJobs

Puoi accedere agli artefatti del modello ottimizzati su Amazon S3 output_path che sono stati specificati nell'ModelTraineroggetto (il bucket SageMaker AI Amazon S3 predefinito per la regione o un percorso Amazon S3 personalizzato che hai specificato, se applicabile).