Distillazione Amazon Nova - 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à.

Distillazione Amazon Nova

Questa guida rapida ti aiuta a iniziare a utilizzare la distillazione di modelli Amazon Nova utilizzando la regolazione fine supervisionata (SFT) sull'intelligenza artificiale. SageMaker

Concetti

La distillazione di modelli è un metodo che trasferisce le conoscenze da modelli avanzati di grandi dimensioni a modelli più piccoli ed efficienti. Con i modelli Amazon Nova, un modello «insegnante» più ampio (come Amazon Nova Pro o Amazon Nova Premier) trasferisce le sue funzionalità a un modello «studente» più piccolo (come Amazon Nova Lite o Amazon Nova Micro). Questo crea un modello personalizzato che mantiene prestazioni elevate utilizzando meno risorse.

Componenti chiave

Il processo di distillazione prevede principalmente due tipi di modelli:

I modelli per insegnanti fungono da fonte di conoscenza e includono:

  • Amazon Nova Pro (amazon. nova-pro-v1:0)

  • Amazon Nova Premier (amazon. nova-premier-v1:0)

I modelli studenteschi ricevono e implementano le conoscenze:

  • Amazon Nova Lite (amazon. nova-lite-v1:0:300k)

  • Amazon Nova Micro (amazon. nova-micro-v1:0:128k)

  • Amazon Nova Pro (amazon. nova-pro-v1:0:300 k) - Disponibile solo quando usi Amazon Nova Premier come insegnante

Casi d'uso

La distillazione modale è particolarmente utile quando:

  • La tua applicazione ha requisiti rigorosi di latenza, costo e precisione.

  • È necessario un modello personalizzato per attività specifiche, ma mancano dati di formazione etichettati di alta qualità sufficienti.

  • Desiderate eguagliare le prestazioni dei modelli avanzati pur mantenendo l'efficienza dei modelli più piccoli.

Prerequisiti

  • Account AWS con accesso ai modelli Amazon Nova e alle quote di servizio appropriate (minimo 6 istanze P5 e 1 R5).

  • Ruolo IAM con autorizzazioni per lavori di formazione. SageMaker

  • Bucket Amazon S3 per archiviare dati e output di allenamento.

Configurazione dell'aumento dei dati

La fase di aumento dei dati utilizza i lavori di SageMaker formazione per generare dati di formazione di alta qualità utilizzando il modello degli insegnanti. Questa sezione descrive in dettaglio il processo di configurazione e i requisiti.

Ruolo IAM

Per creare ruoli IAM e allegare policy, consulta Creazione di ruoli e collegamento di policy (console). Se lo utilizzi AWS CLI, segui le istruzioni in create-role e. attach-role-policy Per ulteriori informazioni, consulta Come utilizzare i ruoli di esecuzione dell' SageMaker IA nella Guida per sviluppatori SageMaker AI.

Di seguito sono riportati alcuni comandi di esempio come riferimento.

Crea un ruolo di esecuzione SageMaker AI

Il ruolo viene creato con un rapporto di fiducia che consente all' SageMaker IA, Amazon Bedrock, di assumere questo ruolo. Ciò consente a questi servizi di agire per conto dell'utente durante l'esecuzione di lavori di inferenza in batch.

aws iam create-role \ --role-name NovaCustomizationRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": ["sagemaker.amazonaws.com", "bedrock.amazonaws.com"] }, "Action": "sts:AssumeRole" } ] }'

Allega le politiche necessarie

# Attach AmazonSageMakerFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess # Attach AmazonBedrockFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonBedrockFullAccess # Attach S3 access policy aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess # Attach AmazonEC2FullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccess # Attach AmazonEC2ContainerRegistryFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryFullAccess # Attach AmazonEC2ContainerRegistryFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess

Allega la seguente politica in linea al ruolo di esecuzione del cliente necessario per Distillation Container.

  • AWS KMS autorizzazioni: consente al ruolo di interagire con il servizio di gestione delle AWS chiavi, necessario per accedere alle risorse crittografate o gestire le chiavi di crittografia.

  • IAM:PassRole: questa autorizzazione è spesso richiesta quando un servizio deve passare questo ruolo a un altro servizio, un modello comune nelle integrazioni di AWS servizi.

aws iam put-role-policy \ --role-name NovaCustomizationRole \ --policy-name Distillation-Additional-Permissions\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*" } ] }

Configurazione Amazon VPC

Per creare una configurazione Amazon VPC per lavori di formazione sull' SageMaker intelligenza artificiale utilizzando AWS Management Console, segui le istruzioni in Configura il tuo VPC privato per la SageMaker formazione (console).

Crea un nuovo Amazon VPC

Name: Distillation-VPC IPv4 CIDR: 10.0.0.0/16 (or your preferred range) Availability Zones: 2 Public Subnets: 2 Private Subnets: 2 NAT Gateways: 1 (in one AZ)

Crea un gruppo di sicurezza

Name: Distillation-SG Description: Security group for data distillation jobs Inbound Rules: Allow all traffic from self Outbound Rules: Allow all traffic (0.0.0.0/0)

Crea endpoint VPC per i seguenti servizi

com.amazonaws.[region].s3 com.amazonaws.[region].sagemaker.api com.amazonaws.[region].sagemaker.runtime com.amazonaws.[region].bedrock.api com.amazonaws.[region].bedrock.runtime com.amazonaws.[region].sts com.amazonaws.[region].logs com.amazonaws.[region].ecr.api com.amazonaws.[region].ecr.dkr

Per ogni endpoint:

  • Seleziona la tua Distillation-VPC

  • Scegli le sottoreti private

  • Seleziona il gruppo di sicurezza Distillation-SG

AWS KMS chiavi

Quando si lavora con l'inferenza in batch di Amazon Bedrock, è necessaria una AWS KMS chiave per la sicurezza e la conformità dei dati. I processi di inferenza in batch di Amazon Bedrock richiedono che i bucket Amazon S3 di input e output siano crittografati AWS KMS con chiavi per garantire la protezione dei dati inattivi.

Crea una chiave KMS utilizzando questo comando: AWS CLI

# Create KMS key aws kms create-key \ --description "KMS key for Amazon Bedrock batch inference Amazon S3 bucket" \ --region us-east-1

Il comando restituirà le informazioni chiave, incluso l'ARN. Output di esempio:

{ "KeyMetadata": { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } }
Nota

Salva l'ARN della chiave KMS dall'output poiché ti servirà per la creazione del bucket Amazon S3 nella sezione successiva.

Bucket Amazon S3

Sono necessari due tipi di storage Amazon S3. Il bucket Amazon S3 gestito dal cliente archivia i dati di input e i file di output. manifest.json Puoi creare e gestire questo bucket e puoi utilizzare un singolo bucket sia per l'input che per l'output. Questo bucket deve essere configurato con la crittografia KMS poiché memorizzerà dati di output sensibili e verrà utilizzato dai processi di inferenza in batch di Amazon Bedrock: Amazon Bedrock richiede bucket crittografati con KMS per l'elaborazione delle attività di inferenza in batch.

Il bucket Amazon S3 gestito dal servizio memorizza i pesi dei modelli. Un bucket Amazon S3 gestito dal servizio viene creato automaticamente durante il primo processo di formazione. Ha controlli di accesso limitati con percorsi specifici accessibili solo tramite file manifest.

Per creare un bucket in uno specifico Regione AWS, usa il comando CLI create-bucket.

Comando di esempio per creare un bucket Amazon S3 con crittografia. AWS KMS Sostituisci {kms_key_arn} con la tua AWS KMS chiave ARN. Dovrai prima creare una AWS KMS chiave se non l'hai già fatto.

aws s3api create-bucket \ --bucket {my_bucket_name} \ --region {aws_region} \ --create-bucket-configuration LocationConstraint={aws_region} \ --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{kms_key_arn}" }, "BucketKeyEnabled": true } ] }'

Inizia un lavoro SageMaker di formazione

Prima di iniziare un lavoro di formazione, prepara i tuoi dati.

Requisito del formato dei dati: il set di dati di input deve essere in formato JSONL e ogni riga deve contenere un campione in formato inverso. Per ulteriori informazioni, consulta Preparazione dei dati per la distillazione dei modelli di comprensione.

Vincoli del set di dati

  • Richieste minime: 100

  • Dimensione massima del file: 2 GB

  • Lunghezza massima della linea: 180 KB

  • Formato di file: solo JSONL

Per caricare i dati di input, esegui il comando seguente.

aws s3 cp /path/to/input-data/ s3://customer-input-data-bucket/ —recursive

Ricetta per l'aumento dei dati

È possibile ottenere la ricetta di distillazione dall'archivio delle SageMaker HyperPod ricette. La ricetta di distillazione si trova nella directory:. recipes-collection/recipes/fine-tuning/nova Il processo di aumento dei dati è controllato da un file di configurazione YAML. Di seguito è riportata una spiegazione dettagliata di ciascun parametro. Tutti i campi sono obbligatori.

Parametro Descrizione
nome

Un nome descrittivo per il tuo lavoro di formazione. Questo aiuta a identificare il tuo lavoro in. AWS Management Console

distillation_data

Abilita il processo di distillazione dei dati, non modificare questo campo.

maxNumberOfRichieste

Il numero massimo di prompt nel set di dati.

maxResponseLength

La lunghezza massima di risposta per prompt (token).

maxInputFileSizeInGB

La dimensione massima del file di input (in GB).

maxLineLengthInkB

La dimensione massima di una singola riga nel file di input (in KB).

maxStudentModelFineTuningContextLengthInTokens

La dimensione massima della finestra contestuale (token) per il modello studentesco. Il valore is non deve superare la capacità del modello studentesco. È possibile impostare questo valore su 32.000 o 64.000 in base alla capacità del modello studentesco.

teacherModelId

Quando imposti Teacher Model Id, scegli tra due:

  • Per Amazon Titan Premier: «us.amazon. nova-premier-v1:0 "per la regione IAD. Nota: è disponibile solo nella regione IAD.

  • Per Amazon Nova Pro: «us.amazon. nova-pro-v1:0 "per la regione IAD e «eu.amazon. nova-pro-v1:0 "per la regione ARN.

temperature

Controlla la casualità della risposta (0,7 consigliato per il bilanciamento).

top_p

Soglia di probabilità cumulativa per il campionamento basato su token (si consiglia 0,9).

customer_bucket

Bucket Amazon S3 per dati. input/output

kms_key

AWS KMS chiave per crittografare l'output in S3, necessaria all'inferenza in batch di Bedrock per memorizzare l'output restituito dal processo di inferenza.

Limitazione

Per Teacher Model as Nova Premier - Supportato solo nella regione IAD (us-east-1) poiché l'inferenza in batch di Amazon Bedrock non è disponibile nella regione ARN (). eu-north-1

Best practice

Preparazione dei dati

  • Includi 100 esempi etichettati di alta qualità per guidare il modello di insegnante

  • Rimuovi le etichette di scarsa qualità prima dell'invio

  • Segui le migliori pratiche di comprensione del testo

  • Prova le istruzioni con il modello dell'insegnante prima di iniziare la distillazione

Selezione del modello

  • Usa Nova Pro come insegnante per casi d'uso generici

  • Prendi in considerazione Nova Premier per una conoscenza specialistica del settore

  • Scegli il modello studentesco in base ai requisiti di latenza e costo

Ottimizzazione delle prestazioni

  • Inizia con la temperatura consigliata (0,7) e top_p (0,9)

  • Convalida la qualità aumentata dei dati prima della messa a punto

  • Segui le linee guida in Selezione degli iperparametri per regolare gli iperparametri

Avvio di un lavoro con PySDK

Il seguente taccuino di esempio mostra come eseguire un processo di SageMaker formazione per la distillazione. Per ulteriori informazioni, consulta Utilizzare uno stimatore di SageMaker intelligenza artificiale per eseguire un processo di formazione.

import os import sagemaker,boto3 from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role() # SETUP job_name = <Your_job_name> # Must be unique for every run input_s3_uri = <S3 URI to your input dataset> # Must end in .jsonl file output_s3_uri = <S3 URI to your output bucket> + job_name image_uri = "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-distillation-repo:SM-TJ-DISTILL-LATEST" # Do not change instance_type = "ml.r5.4xlarge" # Recommedation is to use cpu instances instance_count = 1 # Must be 1, do not change role_arn = <IAM role to execute the job with> recipe_path = <Local path to your recipe> # Execution estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role_arn, instance_count=instance_count, instance_type=instance_type, training_recipe=recipe_path, max_run=432000, sagemaker_session=sagemaker_session, image_uri=image_uri, subnets= ['subnet-xxxxxxxxxxxxxxxxx','subnet-xxxxxxxxxxxxxxxxx'], # Add subnet groups created in previous steps security_group_ids= ['sg-xxxxxxxxxxxxxxxxx'], # Add security group created in previous steps disable_profiler=True, debugger_hook_config=False ) trainingInput = TrainingInput( s3_data=input_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) # The keys must be "train". estimator.fit(inputs={"train": trainingInput})

Convalida della qualità aumentata dei dati

Prima di procedere alla messa a punto, è fondamentale convalidare la qualità dei dati aumentati:

  1. Esamina il file nel tuo bucket di sample_training_data.jsonl output. Questo file contiene 50 campioni casuali dal set di dati aumentato.

  2. Ispeziona manualmente questi campioni per verificarne la pertinenza, la coerenza e l'allineamento con il tuo caso d'uso.

  3. Se la qualità non soddisfa le aspettative, potrebbe essere necessario modificare i dati di input o i parametri di distillazione ed eseguire nuovamente il processo di aumento dei dati.

Una volta completata l'aumento dei dati, la seconda fase prevede la messa a punto del modello studentesco tramite Amazon. SageMaker HyperPod Per ulteriori informazioni, consulta Ottimizzazione fine supervisionata (SFT).

Nella ricetta di formazione SFT puoi passare il percorso del set di dati restituito dal lavoro precedente.

data_s3_path: "s3://[escrow-bucket]/[job-name]/distillation_data/training_data.jsonl"

Sostituisci anche la configurazione di allenamento consigliata generata dal passaggio precedente.

Limitazioni

  • Supporta solo la tecnica di regolazione fine di SFT Nova su questi dati aumentati.

  • Supporta solo la tecnica di fine-tuning SFT Nova su Amazon. SageMaker HyperPod

  • Nessun supporto per la distillazione multimodale.

  • Nessun supporto per i modelli personalizzati per insegnanti.