Modelos de ajuste fino com componentes de inferência de adaptadores - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Modelos de ajuste fino com componentes de inferência de adaptadores

Com a Amazon SageMaker AI, você pode hospedar modelos básicos pré-treinados sem precisar criar seus próprios modelos do zero. No entanto, para adaptar um modelo básico de uso geral às necessidades exclusivas de sua empresa, você deve criar uma versão aprimorada dele. Uma técnica de ajuste fino econômica é a adaptação de baixa classificação (LoRa). O princípio por trás do LoRa é que apenas uma pequena parte de um grande modelo básico precisa ser atualizado para adaptá-lo a novas tarefas ou domínios. Um adaptador LoRa aumenta a inferência de um modelo básico com apenas algumas camadas extras de adaptador.

Se você hospeda seu modelo básico usando um componente de inferência de SageMaker IA, você pode ajustar esse modelo básico com adaptadores LoRa criando componentes de inferência de adaptador. Ao criar um componente de inferência de adaptador, você especifica o seguinte:

  • O componente básico de inferência que deve conter o componente de inferência do adaptador. O componente de inferência básica contém o modelo básico que você deseja adaptar. O componente de inferência do adaptador usa os recursos computacionais que você atribuiu ao componente básico de inferência.

  • O local onde você armazenou o adaptador LoRa no Amazon S3.

Depois de criar o componente de inferência do adaptador, você pode invocá-lo diretamente. Quando você faz isso, a SageMaker IA combina o adaptador com o modelo básico para aumentar a resposta gerada.

Antes de começar

Antes de criar um componente de inferência de adaptador, você deve atender aos seguintes requisitos:

  • Você tem um componente básico de inferência que contém o modelo básico a ser adaptado. Você implantou esse componente de inferência em um endpoint de SageMaker IA.

    Para obter mais informações sobre a implantação de componentes de inferência em endpoints, consulte. Implantar modelos para inferência em tempo real

  • Você tem um modelo de adaptador LoRa e armazenou os artefatos do modelo como um tar.gz arquivo no Amazon S3. Você especifica o URI S3 dos artefatos ao criar o componente de inferência do adaptador.

Os exemplos a seguir usam o SDK para Python (Boto3) para criar e invocar um componente de inferência de adaptador.

exemplo create_inference_componentchamada para criar um componente de inferência de adaptador

O exemplo a seguir cria um componente de inferência de adaptador e o atribui a um componente de inferência básico:

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

Ao usar esse exemplo em seu próprio código, substitua os valores do espaço reservado da seguinte forma:

  • adapter_ic_name— Um nome exclusivo para seu componente de inferência do adaptador.

  • endpoint_name— O nome do endpoint que hospeda o componente básico de inferência.

  • base_inference_component_name— O nome do componente básico de inferência que contém o modelo básico a ser adaptado.

  • adapter_s3_uri— O URI do S3 que localiza o tar.gz arquivo com os artefatos do adaptador LoRa.

Você cria um componente de inferência de adaptador com código semelhante ao código de um componente de inferência normal. Uma diferença é que, para o Specification parâmetro, você omite a ComputeResourceRequirements chave. Quando você invoca um componente de inferência do adaptador, ele é carregado pelo componente básico de inferência. O componente de inferência do adaptador usa os recursos computacionais do componente básico de inferência.

Para obter mais informações sobre como criar e implantar componentes de inferência com o SDK para Python (Boto3), consulte. Implante modelos com o Python SDKs

Depois de criar um componente de inferência do adaptador, você o invoca especificando seu nome em uma solicitação. invoke_endpoint

exemplo invoke_endpointchamada para invocar um componente de inferência do adaptador

O exemplo a seguir invoca um componente de inferência do adaptador:

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"]

Ao usar esse exemplo em seu próprio código, substitua os valores do espaço reservado da seguinte forma:

  • endpoint_name— O nome do endpoint que hospeda os componentes de inferência da base e do adaptador.

  • adapter_ic_name— O nome do componente de inferência do adaptador.

  • prompt— O prompt para a solicitação de inferência.

Para obter mais informações sobre como invocar componentes de inferência com o SDK para Python (Boto3), consulte. Invocar modelos para inferência em tempo real