Otimização de inferência para modelos do Amazon SageMaker AI - 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á.

Otimização de inferência para modelos do Amazon SageMaker AI

Com o Amazon SageMaker AI, você pode melhorar o desempenho de seus modelos de IA generativa aplicando técnicas de otimização de inferência. Ao otimizar seus modelos, você pode obter uma melhor relação custo/desempenho para seu caso de uso. Na otimização de um modelo, você escolhe quais das técnicas de otimização oferecidas devem ser aplicadas, como quantização, decodificação especulativa e compilação. Depois que seu modelo for otimizado, você poderá executar uma avaliação para ver as métricas de desempenho de latência, throughput e preço.

Para muitos modelos, o SageMaker AI também oferece várias versões pré-otimizadas, cada uma projetada para atender a diferentes necessidades de latência e throughput das aplicações. Para esses modelos, você pode implantar uma das versões otimizadas sem primeiro otimizar o modelo por conta própria.

Técnicas de otimização

O Amazon SageMaker AI oferece as técnicas de otimização a seguir.

Compilação

A compilação otimiza o modelo para obter o melhor desempenho disponível no tipo de hardware escolhido sem perda de precisão. Você pode aplicar a compilação de modelos para otimizar LLMs para um hardware acelerado, como instâncias de GPU, do AWS Trainium ou do AWS Inferentia.

Ao otimizar um modelo com compilação, você se beneficia da compilação antecipada. Você reduz o tempo de implantação e a latência de ajuste de escala automático do modelo porque os respectivos pesos não exigem compilação just-in-time quando o modelo é implantado em uma nova instância.

Se você optar por compilar seu modelo para uma instância de GPU, o SageMaker AI usará a biblioteca TensorRT-LLM para executar a compilação. Se você optar por compilar seu modelo para uma instância do AWS Trainium ou do AWS Inferentia, o SageMaker AI usará o AWS Neuron SDK para executar a compilação.

Quantização

A quantização é uma técnica para reduzir os requisitos de hardware de um modelo usando um tipo de dados menos preciso para os pesos e ativações. Depois de otimizar um modelo com quantização, você pode hospedá-lo em GPUs mais baratas e disponíveis. Contudo, o modelo quantizado pode ser menos preciso do que o modelo de origem que você otimizou.

Os formatos de dados que o SageMaker AI aceita para quantização variam de modelo para modelo. Os formatos compatíveis incluem os seguintes:

  • INT4-AWQ: um formato de dados de 4 bits. A quantização de pesos com reconhecimento de ativação (AWQ) é uma técnica de quantização para LLMs eficiente e precisa que utiliza poucos bits e somente pesos.

  • FP8: ponto flutuante de 8 bits (FP8) é um formato de baixa precisão para números de ponto flutuante. Ele contrabalança eficiência de memória e precisão do modelo representando valores com menos bits do que o formato de ponto flutuante FP16 padrão.

  • INT8-SmoothQuant: um formato de dados de 8 bits. SmoothQuant é um método de quantização de precisão mista que escala ativações e pesos conjuntamente, equilibrando os respectivos intervalos dinâmicos.

Decodificação especulativa

A decodificação especulativa é uma técnica para acelerar o processo de decodificação de LLMs. Ela otimiza os modelos para latência sem comprometer a qualidade do texto gerado.

Essa técnica usa um modelo menor, porém mais rápido, chamado modelo de rascunho. O modelo de rascunho gera possíveis tokens, que são então validados pelo modelo de destino maior, porém mais lento. Em cada iteração, o modelo de rascunho gera vários tokens possíveis. O modelo de destino verifica os tokens e, se descobrir que determinado token não é aceitável, o rejeita e o regenera. Portanto, o modelo de destino verifica os tokens e gera uma pequena quantidade deles.

O modelo de rascunho é significativamente mais rápido do que o modelo de destino. Ela gera todos os tokens rapidamente e, em seguida, envia lotes de tokens ao modelo de destino para verificação. O modelo de destino avalia todos em paralelo, o que acelera a resposta final.

O SageMaker AI oferece um modelo de rascunho predefinido que você pode usar, para que não precise criar o seu. Se preferir usar um modelo de rascunho personalizado, o SageMaker AI também oferece essa opção.

Carregamento rápido de modelos

A técnica de carregamento rápido do modelos prepara um LLM para que o SageMaker AI possa carregá-lo em uma instância de ML mais rapidamente.

Para preparar o modelo, o SageMaker AI o fragmenta com antecedência, dividindo-o em partes que podem residir em uma GPU separada para inferência distribuída. Além disso, o SageMaker AI armazena os pesos do modelo em partes do mesmo tamanho que ele pode carregar na instância simultaneamente.

Quando o SageMaker AI carrega o modelo otimizado na instância, ele transmite os respectivos pesos diretamente do Amazon S3 para as GPUs da instância. Ao transmitir os pesos, o SageMaker AI omite várias etapas demoradas que normalmente são necessárias. Essas etapas incluem baixar os artefatos do modelo do Amazon S3 para o disco, carregar os artefatos do modelo na memória do host e fragmentar o modelo no host antes de finalmente carregar os fragmentos nas GPUs.

Depois de otimizar seu modelo para um carregamento mais rápido, você pode implantá-lo mais depressa em um endpoint do SageMaker AI. Além disso, se você configurar o endpoint para usar o ajuste de escala automático, a escala horizontal aumentará mais rapidamente para atender a aumentos no tráfego.