Usa i modelli di base con l'SDK SageMaker Python - Amazon SageMaker

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à.

Usa i modelli di base con l'SDK SageMaker Python

Tutti i modelli di JumpStart base possono essere distribuiti a livello di codice utilizzando l'SDK. SageMaker Python I modelli di base per la generazione di testo disponibili pubblicamente possono essere distribuiti utilizzando l'ID del modello in. Tabella dei modelli di generazione di testo disponibile pubblicamente I modelli proprietari devono essere distribuiti utilizzando le informazioni del pacchetto del modello dopo la sottoscrizione al modello in Marketplace AWS.

Le sezioni seguenti mostrano come ottimizzare i modelli di base utilizzando la JumpStartEstimator classe e come distribuire i modelli utilizzando la JumpStartModel classe, insieme a utilità SDK aggiuntive. Python

Importante

Alcuni modelli di fondazione richiedono l'accettazione esplicita di un contratto di licenza con l’utente finale (End User License Agreement, EULA). Per ulteriori informazioni, consulta Accettazione dell'EULA con l'SDK SageMaker Python.

Per fare riferimento agli ID dei modelli disponibili per tutti i modelli di base disponibili pubblicamente, consulta la Tabella degli algoritmi incorporati con modelli preaddestrati. Cerca il nome del modello di base di tua scelta nella barra di ricerca, modifica il numero di voci visualizzate utilizzando il menu a discesa Mostra voci o scegli il testo successivo evidenziato in blu sul lato sinistro della pagina per navigare tra i modelli disponibili.

Perfeziona i modelli di base disponibili al pubblico con la classe JumpStartEstimator

Puoi perfezionare un algoritmo integrato o un modello pre-addestrato in poche righe di codice utilizzando l'SDK. SageMaker Python

  1. Innanzitutto, trova l'ID del modello per il modello di tua scelta nella tabella Algoritmi integrati con modello preaddestrato.

  2. Utilizzando l'ID del modello, definisci il tuo lavoro di formazione come estimatore JumpStart .

    from sagemaker.jumpstart.estimator import JumpStartEstimator model_id = "huggingface-textgeneration1-gpt-j-6b" estimator = JumpStartEstimator(model_id=model_id)
  3. Esegui estimator.fit() sul tuo modello, indicando i dati di addestramento da utilizzare per la messa a punto.

    estimator.fit( {"train": training_dataset_s3_path, "validation": validation_dataset_s3_path} )
  4. Quindi, utilizza il deploy metodo per distribuire automaticamente il modello per l'inferenza. In questo esempio, utilizziamo il modello GPT-J 6B di. Hugging Face

    predictor = estimator.deploy()
  5. È quindi possibile eseguire l'inferenza con il modello distribuito utilizzando il metodo. predict

    question = "What is Southern California often abbreviated as?" response = predictor.predict(question) print(response)
Nota

Questo esempio utilizza il modello di base GPT-J 6B, adatto a un'ampia gamma di casi d'uso per la generazione di testo, tra cui la risposta a domande, il riconoscimento di entità denominate, il riepilogo e altro ancora. Per ulteriori informazioni sui casi d'uso del modello, vedere. Esplorare i modelli di fondazione più recenti

Facoltativamente, puoi specificare le versioni del modello o i tipi di istanza durante la creazione del tuoJumpStartEstimator. Per ulteriori informazioni sulla JumpStartEstimator classe e i relativi parametri, vedete JumpStartEstimator.

Controlla i tipi di istanza predefiniti

Facoltativamente, puoi includere versioni di modello o tipi di istanza specifici durante la messa a punto di un modello preaddestrato utilizzando la classe. JumpStartEstimator Tutti i JumpStart modelli hanno un tipo di istanza predefinito. Recuperate il tipo di istanza di addestramento predefinito utilizzando il codice seguente:

from sagemaker 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.

Controllate gli iperparametri predefiniti

Per controllare gli iperparametri predefiniti utilizzati per l'allenamento, puoi usare il retrieve_default() metodo della hyperparameters classe.

from sagemaker 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, vedere. Iperparametri di regolazione fine comunemente supportati

Controlla le definizioni delle metriche predefinite

Puoi anche controllare le definizioni delle metriche predefinite:

print(metric_definitions.retrieve_default(model_id=model_id, model_version=model_version))

Implementa modelli di base disponibili pubblicamente con la classe JumpStartModel

Puoi implementare un algoritmo integrato o un modello pre-addestrato su un SageMaker endpoint in poche righe di codice utilizzando l'SDK. SageMaker Python

  1. Innanzitutto, trova l'ID del modello per il modello di tua scelta nella Tabella degli algoritmi integrati con modelli preaddestrati.

  2. Utilizzando l'ID del modello, definisci il tuo modello come JumpStart modello.

    from sagemaker.jumpstart.model import JumpStartModel model_id = "huggingface-text2text-flan-t5-xl" my_model = JumpStartModel(model_id=model_id)
  3. Utilizzate il deploy metodo per implementare automaticamente il modello per l'inferenza. In questo esempio, utilizziamo il modello FLAN-T5 XL di. Hugging Face

    predictor = my_model.deploy()
  4. È quindi possibile eseguire l'inferenza con il modello distribuito utilizzando il metodo. predict

    question = "What is Southern California often abbreviated as?" response = predictor.predict(question) print(response)
Nota

Questo esempio utilizza il modello base FLAN-T5 XL, adatto a un'ampia gamma di casi d'uso per la generazione di testo, tra cui risposta a domande, riepilogo, creazione di chatbot e altro ancora. Per ulteriori informazioni sui casi d'uso del modello, vedere. Esplorare i modelli di fondazione più recenti

Per ulteriori informazioni sulla JumpStartModel classe e i relativi parametri, vedete JumpStartModel.

Controlla i tipi di istanza predefiniti

Facoltativamente, puoi includere versioni o tipi di istanza specifici del modello quando distribuisci un modello preaddestrato utilizzando la classe. JumpStartModel Tutti i JumpStart modelli hanno un tipo di istanza predefinito. Recuperate il tipo di istanza di distribuzione predefinito utilizzando il codice seguente:

from sagemaker import instance_types instance_type = instance_types.retrieve_default( model_id=model_id, model_version=model_version, scope="inference") print(instance_type)

Visualizza tutti i tipi di istanza supportati per un determinato JumpStart modello con il instance_types.retrieve() metodo.

Usa i componenti di inferenza per distribuire più modelli su un endpoint condiviso

Un componente di inferenza è un oggetto di SageMaker hosting che puoi utilizzare per distribuire uno o più modelli su un endpoint per aumentare la flessibilità e la scalabilità. È necessario modificare il endpoint_type JumpStart modello in modo che diventi l'endpoint predefinito inference-component-based basato sul modello.

predictor = my_model.deploy( endpoint_name = 'jumpstart-model-id-123456789012', endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED )

Per ulteriori informazioni sulla creazione di endpoint con componenti di inferenza e sulla distribuzione SageMaker di modelli, consulta. Utilizzo condiviso delle risorse con più modelli

Verifica i formati di inferenza di input e output validi

Per verificare i formati di input e output dei dati validi per l'inferenza, puoi utilizzare il retrieve_options() metodo delle classi Serializers andDeserializers.

print(sagemaker.serializers.retrieve_options(model_id=model_id, model_version=model_version)) print(sagemaker.deserializers.retrieve_options(model_id=model_id, model_version=model_version))

Controlla i contenuti supportati e accetta i tipi

Allo stesso modo, è possibile utilizzare il retrieve_options() metodo per verificare il contenuto supportato e accettare i tipi per un modello.

print(sagemaker.content_types.retrieve_options(model_id=model_id, model_version=model_version)) print(sagemaker.accept_types.retrieve_options(model_id=model_id, model_version=model_version))

Per ulteriori informazioni sulle utilità, consulta Utility APIs.

Usa modelli di base proprietari con l'SDK SageMaker Python

I modelli proprietari devono essere distribuiti utilizzando le informazioni del pacchetto del modello dopo la sottoscrizione al modello in Marketplace AWS. Per ulteriori informazioni su SageMaker e Marketplace AWS, consulta Compra e vendi SageMaker algoritmi e modelli Amazon in Marketplace AWS. Per trovare Marketplace AWS i link ai modelli proprietari più recenti, consulta la pagina Guida introduttiva ad Amazon SageMaker JumpStart.

Dopo esserti abbonato al modello che preferisci Marketplace AWS, puoi implementare il modello base utilizzando l' SageMaker PythonSDK e l'SDK associati al fornitore del modello. Ad esempio, AI21 Labs, Cohere e LightOn utilizziamo rispettivamente i "ai21[SM]" pacchetti, e. cohere-sagemaker lightonsage

Ad esempio, per definire un JumpStart modello utilizzando Jurassic-2 Jumbo Instruct di AI21 Labs, utilizzate il codice seguente:

import sagemaker import ai21 role = get_execution_role() sagemaker_session = sagemaker.Session() model_package_arn = "arn:aws:sagemaker:us-east-1:865070037744:model-package/j2-jumbo-instruct-v1-1-43-4e47c49e61743066b9d95efed6882f35" my_model = ModelPackage( role=role, model_package_arn=model_package_arn, sagemaker_session=sagemaker_session )

Ad step-by-step esempio, trovate ed eseguite il notebook associato al modello di base proprietario di vostra scelta in Studio Classic. SageMaker Per ulteriori informazioni, consulta Usa i modelli di base in Amazon SageMaker Studio Classic. Per ulteriori informazioni sull' SageMaker PythonSDK, consulta. ModelPackage