Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Con Amazon SageMaker AI, puede alojar modelos básicos previamente entrenados sin necesidad de crear sus propios modelos desde cero. Sin embargo, para adaptar un modelo básico de uso general a las necesidades únicas de su empresa, debe crear una versión ajustada del mismo. Una técnica rentable de ajuste es la adaptación de rango bajo (LoRa). El principio en el que se basa LoRa es que solo una pequeña parte de un gran modelo básico necesita actualizarse para adaptarlo a nuevas tareas o dominios. Un adaptador LoRa aumenta la inferencia a partir de un modelo base con solo unas cuantas capas de adaptador adicionales.
Si aloja su modelo base mediante un componente de inferencia de SageMaker IA, puede ajustar ese modelo base con adaptadores LoRa creando componentes de inferencia de adaptadores. Al crear un componente de inferencia de adaptadores, debe especificar lo siguiente:
-
El componente de inferencia base que va a contener el componente de inferencia del adaptador. El componente de inferencia base contiene el modelo básico que desea adaptar. El componente de inferencia del adaptador utiliza los recursos informáticos que usted asignó al componente de inferencia base.
-
La ubicación en la que ha almacenado el adaptador LoRa en Amazon S3.
Después de crear el componente de inferencia del adaptador, puede invocarlo directamente. Cuando lo hace, la SageMaker IA combina el adaptador con el modelo base para aumentar la respuesta generada.
Antes de empezar
Antes de poder crear un componente de inferencia del adaptador, debe cumplir los siguientes requisitos:
-
Tiene un componente de inferencia básico que contiene el modelo básico que debe adaptarse. Ha implementado este componente de inferencia en un punto final de SageMaker IA.
Para obtener más información sobre la implementación de componentes de inferencia en los puntos finales, consulte. Implementación de modelos para inferencia en tiempo real
-
Tiene un modelo de adaptador LoRa y ha almacenado los artefactos del modelo como un
tar.gz
archivo en Amazon S3. Al crear el componente de inferencia del adaptador, debe especificar el URI de S3 de los artefactos.
En los siguientes ejemplos, se utiliza el SDK para Python (Boto3) para crear e invocar un componente de inferencia de adaptadores.
ejemplo create_inference_component
llame para crear un componente de inferencia de adaptador
El siguiente ejemplo crea un componente de inferencia adaptador y lo asigna a un componente de inferencia base:
sm_client.create_inference_component(
InferenceComponentName = adapter_ic_name
,
EndpointName = endpoint_name
,
Specification={
"BaseInferenceComponentName": base_inference_component_name
,
"Container": {
"ArtifactUrl": adapter_s3_uri
},
},
)
Cuando utilice este ejemplo en su propio código, sustituya los valores de los marcadores de posición de la siguiente manera:
-
adapter_ic_name
— Un nombre exclusivo para el componente de inferencia del adaptador. -
endpoint_name
— El nombre del punto final que aloja el componente de inferencia base. -
base_inference_component_name
— El nombre del componente de inferencia base que contiene el modelo básico que se va a adaptar. -
adapter_s3_uri
— El URI de S3 que localiza eltar.gz
archivo con los artefactos del adaptador LoRa.
Se crea un componente de inferencia del adaptador con un código similar al código de un componente de inferencia normal. Una diferencia es que, en el caso del Specification
parámetro, se omite la clave. ComputeResourceRequirements
Cuando se invoca un componente de inferencia del adaptador, el componente de inferencia base lo carga. El componente de inferencia del adaptador utiliza los recursos de cálculo del componente de inferencia base.
Para obtener más información sobre la creación e implementación de componentes de inferencia con el SDK para Python (Boto3), consulte. Implemente modelos con Python SDKs
Tras crear un componente de inferencia del adaptador, se invoca especificando su nombre en una solicitud. invoke_endpoint
ejemplo invoke_endpoint
llame para invocar un componente de inferencia del adaptador
El siguiente ejemplo invoca un componente de inferencia de adaptadores:
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"]
Cuando utilice este ejemplo en su propio código, sustituya los valores de los marcadores de posición de la siguiente manera:
-
endpoint_name
— El nombre del punto final que aloja los componentes de inferencia base y adaptador. -
adapter_ic_name
— El nombre del componente de inferencia del adaptador. -
prompt
— El mensaje de la solicitud de inferencia.
Para obtener más información sobre la invocación de componentes de inferencia con el SDK para Python (Boto3), consulte. Invocación de modelos para realizar inferencias en tiempo real