Implementazione e previsioni del modello Autopilot - 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à.

Implementazione e previsioni del modello Autopilot

Dopo aver perfezionato un modello linguistico di grandi dimensioni (LLM), puoi implementare il modello per la generazione di testo in tempo reale configurando un endpoint per ottenere previsioni interattive.

Nota

Ti consigliamo di eseguire lavori di inferenza in tempo reale per migliorare le prestazioni ml.g5.12xlarge. In alternativa, ml.g5.8xlarge le istanze sono adatte per le attività di generazione di testo con Falcon-7B-Instruct e -7B-Instruct. MPT

Puoi trovare le specifiche di queste istanze nella categoria Accelerated Computing nella selezione dei tipi di istanza forniti da Amazon. EC2

Generazione di testo in tempo reale

Puoi utilizzarlo SageMaker APIs per distribuire manualmente il tuo modello ottimizzato su un endpoint di inferenza in tempo reale di SageMaker AI Hosting, quindi iniziare a fare previsioni richiamando l'endpoint come segue.

Nota

In alternativa, quando crei il tuo esperimento di ottimizzazione in Autopilot, puoi scegliere l'opzione di implementazione automatica. Per informazioni sulla configurazione dell'implementazione automatica dei modelli, consulta Come abilitare l'implementazione automatica.

Puoi anche usare SageMaker Python SDK e la JumpStartModel classe per eseguire inferenze con modelli ottimizzati da Autopilot. Ciò può essere fatto specificando una posizione personalizzata per l'artefatto del modello in Amazon S3. Per informazioni sulla definizione del modello come modello e sulla distribuzione del modello per l'inferenza, JumpStart consulta Distribuzione a basso codice con la classe. JumpStartModel

  1. Ottieni le definizioni di container di inferenza candidati

    È possibile trovare l'oggetto InferenceContainerDefinitions all'interno dell'BestCandidateoggetto recuperato dalla risposta alla chiamata. DescribeAutoMLJobV2API Una definizione di container per inferenza si riferisce all'ambiente containerizzato progettato per implementare ed eseguire il modello addestrato per fare previsioni.

    Il seguente esempio di AWS CLI comando utilizza DescribeAutoMLJobV2APIper ottenere le definizioni di contenitore consigliate per il nome del processo.

    aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name job-name --region region
  2. Crea un modello di SageMaker intelligenza artificiale

    Utilizza le definizioni dei contenitori del passaggio precedente per creare un modello di SageMaker intelligenza artificiale utilizzando il CreateModelAPI. Vedi il AWS CLI comando seguente come esempio. Utilizza il CandidateName come nome del modello.

    aws sagemaker create-model --model-name '<your-candidate-name>' \ --primary-container '<container-definition' \ --execution-role-arn '<execution-role-arn>' --region '<region>
  3. Creare una configurazione endpoint

    Il seguente esempio di AWS CLI comando utilizza il CreateEndpointConfigAPIper creare una configurazione dell'endpoint.

    Nota

    Per evitare che la creazione dell'endpoint scada a causa di un lungo download del modello, consigliamo di impostare ModelDataDownloadTimeoutInSeconds = 3600e ContainerStartupHealthCheckTimeoutInSeconds = 3600.

    aws sagemaker create-endpoint-config --endpoint-config-name '<your-endpoint-config-name>' \ --production-variants '<list-of-production-variants>' ModelDataDownloadTimeoutInSeconds=3600 ContainerStartupHealthCheckTimeoutInSeconds=3600 \ --region '<region>'
  4. Creare l'endpoint

    L' AWS CLI esempio seguente utilizza il CreateEndpointAPIper creare l'endpoint.

    aws sagemaker create-endpoint --endpoint-name '<your-endpoint-name>' \ --endpoint-config-name '<endpoint-config-name-you-just-created>' \ --region '<region>'

    Controlla lo stato di avanzamento della distribuzione degli endpoint utilizzando il. DescribeEndpointAPI Vedi il AWS CLI comando seguente come esempio.

    aws sagemaker describe-endpoint —endpoint-name '<endpoint-name>' —region <region>

    Dopo che EndpointStatus cambia in InService, l'endpoint è pronto per l'uso per l'inferenza in tempo reale.

  5. Richiamare l'endpoint

    Il seguente comando richiama l'endpoint per l'inferenza in tempo reale. Il prompt deve essere codificato in byte.

    Nota

    Il formato del prompt di input dipende dal modello linguistico. Per ulteriori informazioni sul formato dei prompt per la generazione di testo, consulta Formato di richiesta per l'inferenza in tempo reale dei modelli di generazione di testo.

    aws sagemaker invoke-endpoint --endpoint-name '<endpoint-name>' \ --region '<region>' --body '<your-promt-in-bytes>' [--content-type] 'application/json' <outfile>

Formato di richiesta per l'inferenza in tempo reale dei modelli di generazione di testo

Diversi modelli di linguaggio di grandi dimensioni (LLMs) possono avere dipendenze software, ambienti di runtime e requisiti hardware specifici che influiscono sul contenitore consigliato da Autopilot per ospitare il modello per l'inferenza. Inoltre, ogni modello determina il formato dei dati di input richiesto e il formato previsto per le previsioni e gli output.

Ecco alcuni esempi di input per alcuni modelli e container consigliati.

  • Per i modelli Falcon con il container consigliato huggingface-pytorch-tgi-inference:2.0.1-tgi1.0.3-gpu-py39-cu118-ubuntu20.04:

    payload = { "inputs": "Large language model fine-tuning is defined as", "parameters": { "do_sample": false, "top_p": 0.9, "temperature": 0.1, "max_new_tokens": 128, "stop": ["<|endoftext|>", "</s>"] } }
  • Per tutti gli altri modelli con il contenitore consigliato: djl-inference:0.22.1-fastertransformer5.3.0-cu118

    payload= { "text_inputs": "Large language model fine-tuning is defined as" }