Ottimizza i modelli con componenti di inferenza dell'adattatore - 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à.

Ottimizza i modelli con componenti di inferenza dell'adattatore

Con Amazon SageMaker AI, puoi ospitare modelli di base preformati senza dover creare i tuoi modelli da zero. Tuttavia, per personalizzare un modello di base generico in base alle esigenze specifiche della tua azienda, devi crearne una versione ottimizzata. Una tecnica di messa a punto conveniente è il Low-Rank Adaptation (LoRa). Il principio alla base di LoRa è che solo una piccola parte di un modello di base di grandi dimensioni deve essere aggiornata per adattarla a nuove attività o domini. Un adattatore LoRa aumenta l'inferenza da un modello base con solo pochi livelli di adattatore aggiuntivi.

Se ospitate il vostro modello base di base utilizzando un componente di inferenza SageMaker AI, potete perfezionare quel modello di base con gli adattatori LoRa creando componenti di inferenza dell'adattatore. Quando create un componente di inferenza dell'adattatore, specificate quanto segue:

  • Il componente di inferenza di base che deve contenere il componente di inferenza dell'adattatore. Il componente di inferenza di base contiene il modello di base che desiderate adattare. Il componente di inferenza dell'adattatore utilizza le risorse di calcolo assegnate al componente di inferenza di base.

  • La posizione in cui hai archiviato l'adattatore LoRa in Amazon S3.

Dopo aver creato il componente di inferenza dell'adattatore, puoi richiamarlo direttamente. Quando lo fai, l' SageMaker intelligenza artificiale combina l'adattatore con il modello base per aumentare la risposta generata.

Prima di iniziare

Prima di poter creare un componente di inferenza dell'adattatore, è necessario soddisfare i seguenti requisiti:

  • È disponibile un componente di inferenza di base che contiene il modello di base da adattare. Hai implementato questo componente di inferenza su un SageMaker endpoint di intelligenza artificiale.

    Per ulteriori informazioni sulla distribuzione dei componenti di inferenza sugli endpoint, consulta. Implementa modelli per l'inferenza in tempo reale

  • Hai un modello di adattatore LoRa e hai archiviato gli artefatti del modello come tar.gz file in Amazon S3. Specificate l'URI S3 degli artefatti quando create il componente di inferenza dell'adattatore.

I seguenti esempi utilizzano l'SDK for Python (Boto3) per creare e richiamare un componente di inferenza dell'adattatore.

Esempio create_inference_componentchiamata per creare un componente di inferenza dell'adattatore

L'esempio seguente crea un componente di inferenza dell'adattatore e lo assegna a un componente di inferenza di base:

sm_client.create_inference_component( InferenceComponentName = adapter_ic_name, EndpointName = endpoint_name, Specification={ "BaseInferenceComponentName": base_inference_component_name, "Container": { "ArtifactUrl": adapter_s3_uri }, }, )

Quando utilizzate questo esempio nel vostro codice, sostituite i valori segnaposto come segue:

  • adapter_ic_name— Un nome univoco per il componente di inferenza dell'adattatore.

  • endpoint_name— Il nome dell'endpoint che ospita il componente di inferenza di base.

  • base_inference_component_name— Il nome del componente di inferenza di base che contiene il modello di base da adattare.

  • adapter_s3_uri— L'URI S3 che individua il tar.gz file con gli artefatti dell'adattatore LoRa.

Si crea un componente di inferenza dell'adattatore con un codice simile al codice per un normale componente di inferenza. Una differenza è che, per il Specification parametro, si omette la chiave. ComputeResourceRequirements Quando si richiama un componente di inferenza dell'adattatore, questo viene caricato dal componente di inferenza di base. Il componente di inferenza dell'adattatore utilizza le risorse di calcolo del componente di inferenza di base.

Per ulteriori informazioni sulla creazione e la distribuzione di componenti di inferenza con l'SDK for Python (Boto3), consulta. Implementa modelli con Python SDKs

Dopo aver creato un componente di inferenza dell'adattatore, lo richiamate specificandone il nome in una richiesta. invoke_endpoint

Esempio invoke_endpointchiamata per richiamare un componente di inferenza dell'adattatore

L'esempio seguente richiama un componente di inferenza dell'adattatore:

response = sm_rt_client.invoke_endpoint( EndpointName = endpoint_name, InferenceComponentName = adapter_ic_name, Body = json.dumps( { "inputs": prompt, "parameters": {"max_new_tokens": 100, "temperature":0.9} } ), ContentType = "application/json", ) adapter_reponse = response["Body"].read().decode("utf8")["generated_text"]

Quando utilizzate questo esempio nel vostro codice, sostituite i valori segnaposto come segue:

  • endpoint_name— Il nome dell'endpoint che ospita i componenti di inferenza di base e dell'adattatore.

  • adapter_ic_name— Il nome del componente di inferenza dell'adattatore.

  • prompt— Il prompt per la richiesta di inferenza.

Per ulteriori informazioni sull'invocazione di componenti di inferenza con l'SDK for Python (Boto3), consulta. Richiama modelli per l'inferenza in tempo reale