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 de SageMaker IA da Amazon
A Amazon SageMaker AI fornece duas abordagens para otimizar sua inferência generativa do modelo de IA:
-
Recomendações de inferência. SageMaker A IA analisa automaticamente seu modelo e sua carga de trabalho, avalia os tipos de instância, aplica otimizações e retorna configurações validadas e prontas para implantação com métricas reais de desempenho. Essa é a abordagem recomendada para a maioria dos clientes. Para começar, consulte o Recomendações otimizadas de inferência generativa de IA.
-
Otimização manual. Para clientes que desejam uma abordagem do tipo “faça você mesmo”, você pode aplicar técnicas de otimização individuais, como quantização, decodificação especulativa e compilação. Você escolhe quais técnicas aplicar, executa trabalhos de otimização e avalia os resultados você mesmo. 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, a SageMaker IA também fornece várias versões pré-otimizadas, em que cada uma atende às diferentes necessidades de latência e taxa de transferência dos aplicativos. 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
A Amazon SageMaker AI oferece suporte às seguintes técnicas de otimização.
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 hardware acelerado, como instâncias de GPU, instâncias de AWS Trainium ou instâncias de Inferentia. AWS
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, a SageMaker IA usa a TensorRT-LLM biblioteca para executar a compilação. Se você optar por compilar seu modelo para uma instância de AWS Trainium ou AWS Inferentia, a SageMaker IA usa o SDK AWS Neuron 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 a SageMaker IA suporta para quantização variam de modelo para modelo. Os formatos compatíveis incluem os seguintes:
-
INT4-AWQ — Um formato de dados de 4 bits. Activation-aware A quantização de peso (AWQ) é uma técnica de quantização para LLMs que é eficiente, precisa, com poucos bits e somente com peso.
-
FP8: ponto flutuante de 8 bits (FP8) é um formato de baixa precisão para números de ponto flutuante. Ele equilibra 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 dimensiona ativações e pesos em conjunto, equilibrando suas faixas dinâmicas.
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.
SageMaker A IA oferece um modelo de rascunho pré-construído que você pode usar, para que você não precise criar o seu próprio. Se você preferir usar seu próprio modelo de rascunho personalizado, a SageMaker IA também oferece suporte a essa opção.
Carregamento rápido de modelos
A técnica de carregamento rápido de modelos prepara um LLM para que a SageMaker IA possa carregá-lo em uma instância de ML mais rapidamente.
Para preparar o modelo, a SageMaker IA o fragmenta com antecedência dividindo-o em partes que podem residir em uma GPU separada para inferência distribuída. Além disso, a SageMaker IA armazena os pesos do modelo em partes do mesmo tamanho que a SageMaker IA pode carregar na instância simultaneamente.
Quando a SageMaker IA carrega o modelo otimizado na instância, ela transmite os pesos do modelo diretamente do Amazon S3 para as GPUs da instância. Ao transmitir os pesos, a SageMaker IA 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 rapidamente em um endpoint de SageMaker IA. 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.