Ajustar modelos com componentes de inferência do adaptador - SageMaker Inteligência Artificial 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á.

Ajustar modelos com componentes de inferência do adaptador

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 de base de uso geral às necessidades exclusivas de sua empresa, você deve criar uma versão ajustada dele. Uma técnica de ajuste fino econômica é a adaptação de baixa classificação (LoRa). O princípio por trás da LoRa se aplica quando apenas uma pequena parte de um grande modelo de base precisa ser atualizada para adaptá-lo a novas tarefas ou domínios. Um adaptador de LoRa aumenta a inferência de um modelo de base 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 do adaptador, você especifica o seguinte:

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

  • O local onde você armazenou o adaptador de 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

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

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

    Para ter mais informações sobre como implantar componentes de inferência em endpoints, consulte Implantar modelos para inferência em tempo real.

  • Você tem um modelo de adaptador de LoRa e armazenou os artefatos do modelo como um arquivo tar.gz no Amazon S3. Você especifica o URI do 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 Chamada create_inference_component para criar um componente de inferência de adaptador

O seguinte exemplo 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 parâmetro Specification, você omite a chave ComputeResourceRequirements. Quando você invoca um componente de inferência de adaptador, ele é carregado pelo componente de inferência básico. O componente de inferência de adaptador usa os recursos de computação do componente de inferência básico.

Para saber mais sobre como criar e implantar componentes de inferência com o SDK para Python (Boto3), consulte Implemente modelos com o Python SDKs.

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

exemplo Chamada invoke_endpoint para invocar um componente de inferência de adaptador

O seguinte exemplo invoca um componente de inferência de 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 saber mais sobre o como invocar componentes de inferência com o SDK para Python (Boto3), consulte Invocar modelos para inferência em tempo real.