Implementa un modello preottimizzato - 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à.

Implementa un modello preottimizzato

Alcuni modelli JumpStart sono preottimizzati da SageMaker, il che significa che puoi implementare versioni ottimizzate di questi modelli senza prima creare un processo di ottimizzazione dell'inferenza. Per l'elenco dei modelli con opzioni preottimizzate, vedere. Riferimento ai modelli supportati

Utilizza la seguente procedura per distribuire un JumpStart modello preottimizzato utilizzando Amazon SageMaker Studio.

Per distribuire un modello preottimizzato
  1. In Studio, nel menu di navigazione a sinistra, scegli. JumpStart

  2. Nella pagina Tutti i modelli pubblici, scegli uno dei modelli preottimizzati.

  3. Nella pagina dei dettagli del modello, scegli Deploy.

  4. Nella pagina di distribuzione, alcuni JumpStart modelli richiedono la firma di un contratto di licenza per l'utente finale (EULA) prima di procedere. Se richiesto, consulta i termini di licenza nella sezione Contratto di licenza. Se i termini sono accettabili per il tuo caso d'uso, seleziona la casella di controllo Accetto e leggi i termini e le condizioni. EULA

    Per ulteriori informazioni, consulta Contratti di licenza con l'utente finale.

  5. Per il nome dell'endpoint e il conteggio iniziale delle istanze, accetta i valori predefiniti o imposta quelli personalizzati.

  6. Per Tipo di istanza, mantieni il valore predefinito. Altrimenti, non puoi implementare una configurazione preottimizzata.

  7. In Modelli, espandi la configurazione del modello. Studio mostra una tabella che fornisce le configurazioni preottimizzate tra cui scegliere. Ogni opzione include metriche per la latenza e la velocità effettiva. Scegliete l'opzione più adatta alle vostre esigenze applicative.

  8. Seleziona Deploy (Implementa).

Con Amazon SageMaker PythonSDK, puoi implementare un modello preottimizzato. Innanzitutto, definisci il modello utilizzando la classe. ModelBuilder Quindi, costruite il modello. Infine, si distribuisce il modello utilizzando la Model classe.

Per configurare il tuo progetto
  1. Nel codice dell'applicazione, importate le librerie necessarie. L'esempio seguente importa SDK for Python (Boto3). Importa anche i moduli da Amazon SageMaker Python SDK che usi per definire e lavorare con i modelli:

    import boto3 from sagemaker.serve.builder.model_builder import ModelBuilder from sagemaker.serve.builder.schema_builder import SchemaBuilder from sagemaker.session import Session
  2. Inizializza una SageMaker sessione. L'esempio seguente utilizza la Session() classe in Amazon SageMaker PythonSDK:

    sagemaker_session = Session()
Per definire il tuo modello
  1. Crea un'SchemaBuilderistanza e fornisci esempi di input e output. Fornite questa istanza alla ModelBuilder classe quando definite un modello. Con esso, genera SageMaker automaticamente le funzioni di marshalling per la serializzazione e la deserializzazione dell'input e dell'output.

    Per ulteriori informazioni sull'utilizzo delle classi and, consulta. SchemaBuilder ModelBuilder Crea un modello in Amazon SageMaker con ModelBuilder

    L'esempio seguente fornisce esempi di stringhe di input e output per la SchemaBuilder classe:

    response = "Jupiter is the largest planet in the solar system. It is the fifth planet from the sun." sample_input = { "inputs": "What is the largest planet in the solar system?", "parameters": {"max_new_tokens": 128, "top_p": 0.9, "temperature": 0.6}, } sample_output = [{"generated_text": response}] schema_builder = SchemaBuilder(sample_input, sample_output)
  2. Definite il vostro modello in. SageMaker L'esempio seguente imposta i parametri per inizializzare un'ModelBuilderistanza:

    model_builder = ModelBuilder( model="jumpstart-model-id", schema_builder=schema_builder, sagemaker_session=sagemaker_session, role_arn=sagemaker_session.get_caller_identity_arn(), )

    Questo esempio utilizza un JumpStart modello. Sostituisci jumpstart-model-id con l'ID di un JumpStart modello, ad esempiometa-textgeneration-llama-3-70b.

Per recuperare le metriche di riferimento
  1. Per determinare quale configurazione preottimizzata desideri implementare, consulta le opzioni disponibili. SageMaker L'esempio seguente le visualizza:

    model_builder.display_benchmark_metrics()

    Questo display_benchmark_metrics() metodo stampa una tabella come la seguente:

    | Instance Type | Config Name | Concurrent Users | Latency, TTFT (P50 in sec) | Throughput (P50 in tokens/sec/user) | |:----------------|:--------------|-------------------:|-----------------------------:|--------------------------------------:| | ml.g5.48xlarge | lmi-optimized | 1 | 2.25 | 49.70 | | ml.g5.48xlarge | lmi-optimized | 2 | 2.28 | 21.10 | | ml.g5.48xlarge | lmi-optimized | 4 | 2.37 | 14.10 | . . . | ml.p4d.24xlarge | lmi-optimized | 1 | 0.10 | 137.40 | | ml.p4d.24xlarge | lmi-optimized | 2 | 0.11 | 109.20 | | ml.p4d.24xlarge | lmi-optimized | 4 | 0.13 | 85.00 | . . .

    Nella prima colonna, la tabella elenca i potenziali tipi di istanza che è possibile utilizzare per ospitare il JumpStart modello scelto. Per ogni tipo di istanza, sottoConfig Name, sono elencati i nomi delle configurazioni preottimizzate. Le configurazioni SageMaker fornite sono denominate. lmi-optimized Per ogni tipo di istanza e configurazione, la tabella fornisce metriche di riferimento. Queste metriche indicano il throughput e la latenza che il modello supporterà per un numero diverso di utenti simultanei.

  2. In base alle metriche del benchmark, scegli il tipo di istanza e il nome di configurazione che meglio supportano le tue esigenze di prestazioni. Utilizzerai questi valori quando creerai una configurazione di distribuzione.

Per implementare un modello preottimizzato
  1. Crea una configurazione di distribuzione. L'esempio seguente utilizza un'ModelBuilderistanza. Passa un tipo di istanza e un nome di configurazione al set_deployment_config() metodo to the:

    model_builder.set_deployment_config( config_name="config-name", instance_type="instance-type", )

    Replace (Sostituisci) nome-configurazione con un nome di configurazione tratto dalla tabella, ad esempio. lmi-optimized Sostituire instance-type con un tipo di istanza presente nella tabella, ad esempioml.p4d.24xlarge.

  2. Crea il tuo modello. L'esempio seguente utilizza il .build() metodo dell'ModelBuilderistanza:

    optimized_model = model_builder.build()

    Il .build() metodo restituisce un'istanza distribuibileModel.

  3. Distribuisci il tuo modello su un endpoint di inferenza. L'esempio seguente utilizza il .deploy() metodo dell'istanza: Model

    predictor = optimized_model.deploy(accept_eula=True)

    Il deploy() metodo restituisce un'Predictoristanza, che potete utilizzare per inviare richieste di inferenza al modello.

Per testare il modello con una richiesta di inferenza
  • Dopo aver distribuito il modello su un endpoint di inferenza, verifica le previsioni del modello. L'esempio seguente invia una richiesta di inferenza utilizzando l'istanza: Predictor

    predictor.predict(sample_input)

    Il modello restituisce il testo che genera con una risposta come la seguente:

    {'generated_text': ' Jupiter is the largest planet in the solar system. It is the fifth planet from the sun. It is a gas giant with . . .'}