Como otimizar modelos de IA

Como otimizar modelos de IA

Resposta curta: Para otimizar modelos de IA, escolha uma restrição principal (latência, custo, memória, qualidade, estabilidade ou taxa de transferência) e, em seguida, crie uma linha de base confiável antes de fazer qualquer alteração. Elimine primeiro os gargalos do pipeline e, depois, aplique ganhos de baixo risco, como precisão mista e processamento em lote; se a qualidade se mantiver, passe para as ferramentas de compilação/tempo de execução e somente então reduza o tamanho do modelo por meio de quantização ou destilação, quando necessário.

Principais conclusões:

Restrição : Escolha uma ou duas métricas-alvo; a otimização é um cenário de concessões, não de ganhos fáceis.

Medição : Analisar o desempenho de cargas de trabalho reais com picos de p50/p95/p99, taxa de transferência, utilização e memória.

Pipeline : Corrigir a tokenização, os carregadores de dados, o pré-processamento e o processamento em lote antes de modificar o modelo.

Serviço : Utilize cache, processamento em lote deliberado, ajuste de concorrência e fique atento à latência final.

Medidas de segurança : Execute lembretes de desempenho, métricas de tarefas e verificações pontuais após cada alteração de desempenho.

Infográfico sobre como otimizar modelos de IA

🔗 Como avaliar modelos de IA de forma eficaz:
Critérios e etapas essenciais para avaliar modelos de forma justa e confiável.

🔗 Como medir o desempenho da IA ​​com métricas reais:
Use benchmarks, latência, custo e sinais de qualidade para comparar.

🔗 Como testar modelos de IA antes da produção
Fluxo de trabalho prático de testes: divisão de dados, casos de estresse e monitoramento.

🔗 Como usar IA para criação de conteúdo:
Transforme ideias em rascunhos mais rapidamente com instruções estruturadas e iteração.


1) O que “Otimizar” significa na prática (porque cada um usa o termo de uma maneira diferente) 🧠

Quando as pessoas dizem "otimizar um modelo de IA", elas podem estar se referindo a:

  • Aumentar a velocidade (reduzir a latência)

  • Tornar mais barato (menos horas de GPU, menor gasto com nuvem)

  • Reduzir o tamanho (ocupação de memória, implantação na borda)

  • Tornar mais preciso (melhorias na qualidade, menos alucinações)

  • Tornar o processo mais estável (menos variação, menos falhas na produção).

  • Facilitar o serviço (produtividade, processamento em lotes, desempenho previsível)

Eis a verdade, um tanto irritante: você não pode maximizar tudo isso ao mesmo tempo. A otimização é como apertar um balão — você aperta um lado e o outro estoura. Nem sempre acontece, mas com frequência suficiente para que você deva planejar as compensações necessárias.

Portanto, antes de tocar em qualquer coisa, escolha sua restrição principal :

  • Se você estiver atendendo usuários em tempo real, você se preocupa com a latência do percentil 95 ( percentis do AWS CloudWatch ) e com o desempenho na cauda ( prática recomendada de "latência na cauda" ) 📉

  • Se você está treinando, se preocupa com o tempo para obter qualidade e a utilização da GPU 🔥

  • Se você estiver implantando em dispositivos, a RAM e a energia 🔋


2) Como é uma boa versão da otimização de modelos de IA ✅

Uma boa versão de otimização não se resume a "aplicar quantização e rezar". Trata-se de um sistema. As melhores configurações geralmente incluem:

  • Uma base de referência confiável.
    Se você não consegue reproduzir seus resultados atuais, não tem como saber se houve alguma melhora. Simples assim… mas as pessoas ignoram essa etapa. E aí entram em uma espiral descendente.

  • Uma métrica-alvo clara, como
    "Mais rápido", é vaga. "Reduzir a latência do p95 de 900 ms para 300 ms com a mesma pontuação de qualidade" é um objetivo real.

  • Medidas de segurança para a qualidade:
    Cada ganho de desempenho acarreta o risco de uma regressão silenciosa na qualidade. Você precisa de testes, avaliações ou, pelo menos, um conjunto de testes de sanidade.

  • Consciência de hardware:
    Um modelo "rápido" em uma GPU pode ser extremamente lento em outra. As CPUs são um caos à parte.

  • Alterações iterativas, não uma reformulação radical.
    Quando você muda cinco coisas de uma vez e o desempenho melhora, você não sabe por quê. O que é... inquietante.

A otimização deve ser como afinar um violão: pequenos ajustes, atenção aos detalhes, repetição 🎸. Se parecer que você está fazendo malabarismos com facas, algo está errado.


3) Tabela comparativa: Opções populares para otimizar modelos de IA 📊

A seguir, uma tabela comparativa rápida e um tanto desorganizada de ferramentas/abordagens de otimização comuns. Não, ela não é perfeitamente "justa" - a vida real também não é.

Ferramenta/Opção Público Preço Por que funciona
PyTorch torch.compile ( Documentação do PyTorch ) Pessoal do PyTorch Livre Captura de grafos + truques de compilador podem reduzir a sobrecarga… às vezes é mágica ✨
ONNX Runtime ( Documentação do ONNX Runtime ) Equipes de implantação Quase grátis Otimizações robustas de inferência, amplo suporte, ideal para servir pratos padronizados
TensorRT ( Documentação do TensorRT da NVIDIA ) Implantação da NVIDIA Vibrações pagas (geralmente em pacote) Fusão agressiva do kernel + manuseio preciso, muito rápido ao clicar
DeepSpeed ​​( Documentação do ZeRO ) Equipes de treinamento Livre Otimizações de memória e taxa de transferência (ZeRO etc.). A sensação é de estar pilotando um jato
FSDP (PyTorch) ( Documentação do FSDP do PyTorch ) Equipes de treinamento Livre Fragmentar parâmetros/gradientes torna modelos grandes menos assustadores
quantização bitsandbytes ( bitsandbytes ) inventores de LLM Livre Pesos de bits baixos, enorme economia de memória - a qualidade depende, mas ufa 😬
Destilação ( Hinton et al., 2015 ) Equipes de produto “Custo-tempo” O modelo com alunos menores herda o comportamento, geralmente apresentando o melhor retorno sobre o investimento a longo prazo
Poda ( tutorial de poda em PyTorch ) Pesquisa + produção Livre Remove o peso morto. Funciona melhor quando combinado com o recondicionamento
Atenção Relâmpago / Núcleos Fundidos ( Artigo Atenção Relâmpago ) fanáticos por performance Livre Atenção mais rápida, melhor memória. Uma verdadeira vitória para os Transformers
Servidor de inferência Triton ( agrupamento dinâmico ) Operações/Infraestrutura Livre Serviço de produção, processamento em lotes, linhas de produção multimodelos - parece algo de nível empresarial

Confissão sobre uma peculiaridade de formatação: "Preço" está confuso porque o código aberto ainda pode te custar um fim de semana de depuração, o que é... um preço. 😵💫


4) Comece com a Mensuração: Elabore um Perfil Imponente 🔍

Se você só puder fazer uma coisa seguindo este guia, faça isto: meça corretamente.

Nos meus próprios testes, os maiores "avanços em otimização" vieram da descoberta de algo embaraçosamente simples como:

  • O carregador de dados está sobrecarregando a GPU

  • gargalo de pré-processamento da CPU

  • Tamanhos de lote muito pequenos causam sobrecarga na inicialização do kernel

  • Tokenização lenta (os tokenizadores podem ser vilões silenciosos)

  • Fragmentação de memória ( Notas sobre o alocador de memória CUDA do PyTorch )

  • uma única camada que domina a computação

O que medir (conjunto mínimo)

  • Latência (p50, p95, p99) ( SRE em percentis de latência )

  • Taxa de transferência (tokens/seg, requisições/seg)

  • Utilização da GPU (computação + memória)

  • Picos de VRAM/RAM

  • Custo por 1.000 tokens (ou por inferência)

Mentalidade prática de criação de perfis

  • Descreva um cenário que lhe interesse (não um tema qualquer).

  • Anote tudo em um pequeno "diário de desempenho".
    Sim, é tedioso... mas evita que você se culpe negativamente mais tarde.

(Se você quiser uma ferramenta concreta para começar: PyTorch Profiler ( documentação do torch.profiler ) e Nsight Systems ( NVIDIA Nsight Systems ) são as opções mais comuns.)


5) Otimização de Dados + Treinamento: O Superpoder Silencioso 📦🚀

As pessoas se preocupam demais com a arquitetura do modelo e se esquecem do pipeline. Enquanto isso, o pipeline consome silenciosamente metade da GPU.

Vitórias fáceis que aparecem rapidamente

  • Use precisão mista (FP16/BF16 onde estável) ( PyTorch AMP / torch.amp ).
    Geralmente é mais rápido e costuma funcionar bem, mas fique atento a peculiaridades numéricas.

  • Acumulação de gradiente quando o tamanho do lote é limitado ( 🤗 Guia de aceleração )
    Mantém a otimização estável sem sobrecarregar a memória.

  • O checkpointing de gradiente ( torch.utils.checkpoint )
    troca poder computacional por memória, tornando viáveis ​​contextos maiores.

  • Tokenização eficiente ( 🤗 Tokenizadores )
    A tokenização pode se tornar o gargalo em grande escala. Não é glamorosa; é importante.

  • Otimização do DataLoader:
    Mais workers, memória fixa, pré-busca - discreto, mas eficaz 😴➡️💪 ( Guia de Otimização de Desempenho do PyTorch )

Ajuste fino com uso eficiente de parâmetros

Se você estiver ajustando modelos grandes, os métodos PEFT (como adaptadores no estilo LoRa) podem reduzir drasticamente o custo de treinamento, mantendo uma robustez surpreendente ( 🤗 Guia PEFT do Transformers , artigo do LoRa ). Este é um daqueles momentos em que você pensa: "Por que não fizemos isso antes?".


6) Otimização em nível de arquitetura: dimensionar corretamente o modelo 🧩

Às vezes, a melhor maneira de otimizar é... parar de usar um modelo que seja grande demais para a tarefa. Eu sei, uma heresia 😄.

Faça uma avaliação com base em alguns pontos básicos:

  • Decida se você precisa de uma pessoa com inteligência geral ou de alguém especializado.

  • Mantenha a janela de contexto com o tamanho necessário, nem maior que isso.

  • Utilize um modelo treinado para a tarefa em questão (modelos de classificação para trabalhos de classificação, e assim por diante).

Estratégias práticas de dimensionamento adequado

  • Para a maioria das solicitações,
    utilize uma infraestrutura menor. Em seguida, direcione as consultas mais complexas para um modelo maior.

  • Use uma configuração em duas etapas:
    rascunhos rápidos do modelo, verificação ou edição do modelo mais robusto.
    É como escrever com um amigo exigente — irritante, mas eficaz.

  • Reduza o tamanho da saída.
    Tokens de saída custam tempo e dinheiro. Se o seu modelo for prolixo, você paga por essa prolixidade.

Já vi equipes reduzirem custos drasticamente ao impor prazos de entrega mais curtos. Parece mesquinho. Mas funciona.


7) Otimizações de compilador + grafo: de onde vem a velocidade 🏎️

Esta é a camada que "faz o computador executar tarefas mais inteligentes".

Técnicas comuns:

Em termos simples: seu modelo pode ser rápido matematicamente, mas lento operacionalmente. Os compiladores corrigem parte disso.

Anotações práticas (também conhecidas como cicatrizes)

  • Essas otimizações podem ser sensíveis a mudanças na forma do modelo.

  • Alguns modelos aceleram bastante, outros quase não se mexem.

  • Às vezes você ganha um aumento de velocidade e um bug intrigante - como se um duende tivesse se instalado 🧌

Ainda assim, quando funciona, é uma das vitórias mais incontestáveis.


8) Quantização, poda, destilação: Menor sem chorar (demais) 🪓📉

Esta é a parte que as pessoas querem ver… porque parece uma apresentação gratuita. Pode ser, mas você precisa encará-la como uma cirurgia.

Quantização (pesos/ativações de menor precisão)

  • Ótimo para velocidade de inferência e memória

  • Risco: queda na qualidade, especialmente em casos extremos

  • Boa prática: avalie com base em um conjunto de testes real, não em impressões

Sabores comuns que você ouvirá falar:

Poda (remover parâmetros)

  • Remove pesos ou estruturas "sem importância" ( tutorial de poda do PyTorch )

  • Geralmente é necessário retreinamento para recuperar a qualidade

  • Funciona melhor do que as pessoas pensam… quando feito com cuidado

Destilação (o aluno aprende com o professor)

Essa é a minha alavanca favorita a longo prazo. A destilação pode produzir um modelo menor que se comporta de maneira semelhante e, muitas vezes, é mais estável do que a quantização extrema ( Destilando o Conhecimento em uma Rede Neural ).

Uma metáfora imperfeita: a destilação é como despejar uma sopa complexa por um filtro e obter… uma sopa menos densa. Não é bem assim que a sopa funciona, mas você entendeu a ideia 🍲.


9) Serviço e Inferência: A Verdadeira Zona de Batalha 🧯

Você pode "otimizar" um modelo e ainda assim servi-lo mal. É na hora de servir que a latência e o custo se tornam reais.

Sacar para vencer faz a diferença

  • O processamento em lotes
    melhora a taxa de transferência, mas aumenta a latência se for exagerado. É preciso encontrar um equilíbrio. ( Triton dynamic batching )

  • O
    armazenamento em cache de prompts e a reutilização do cache KV podem ser extremamente vantajosos para contextos repetidos. ( Explicação do cache KV )

  • Saída em fluxo contínuo.
    Os usuários têm a sensação de que é mais rápido, mesmo que o tempo total seja semelhante. A percepção importa 🙂.

  • Redução da sobrecarga token por token.
    Algumas pilhas realizam trabalho extra por token. Reduza essa sobrecarga e você terá grandes vantagens.

Fique atento à latência da cauda

Sua média pode parecer ótima, enquanto seu P99 é um desastre. Infelizmente, os usuários vivem na cauda da distribuição. ( "Latência na cauda" e por que as médias mentem )


10) Otimização com reconhecimento de hardware: Combine o modelo com a máquina 🧰🖥️

Otimizar sem levar em conta o hardware é como ajustar um carro de corrida sem verificar os pneus. Claro, você pode fazer isso, mas é um pouco imprudente.

Considerações sobre a GPU

  • A largura de banda da memória costuma ser o fator limitante, e não a capacidade computacional bruta

  • Lotes maiores podem ajudar, até que deixem de ajudar

  • A fusão de kernels e as otimizações de atenção são cruciais para os Transformers ( FlashAttention: atenção exata com reconhecimento de E/S ).

Considerações sobre a CPU

  • Threads, vetorização e localidade de memória são muito importantes

  • A sobrecarga da tokenização pode dominar ( 🤗 Tokenizadores “rápidos” )

  • Você pode precisar de estratégias de quantização diferentes das utilizadas em GPUs

Considerações sobre dispositivos móveis/Edge

  • O uso da memória passa a ser a prioridade número um

  • A variação de latência é importante porque os dispositivos são… instáveis

  • Modelos menores e especializados muitas vezes superam modelos grandes e generalistas


11) Diretrizes de Qualidade: Não se "otimize" a ponto de criar um bug 🧪

Toda vitória em velocidade deve vir acompanhada de uma verificação de qualidade. Caso contrário, você comemora, envia o produto e depois recebe uma mensagem do tipo "por que o assistente de repente começa a falar como um pirata?" 🏴☠️

Diretrizes pragmáticas:

  • Sugestões de ouro (conjunto fixo de sugestões que você sempre testa)

  • Métricas da tarefa (precisão, F1, BLEU, o que for adequado)

  • Inspeções humanas pontuais (sim, é sério)

  • Limiares de regressão (“queda máxima permitida de X%)

Monitore também os modos de falha:

  • desvio de formatação

  • mudanças no comportamento de recusa

  • frequência de alucinações

  • inflação do comprimento da resposta

A otimização pode mudar o comportamento de maneiras surpreendentes. Peculiares. Irritantes. Previsivelmente, em retrospectiva.


12) Checklist: Como otimizar modelos de IA passo a passo ✅🤖

Se você deseja uma ordem clara de operações sobre como otimizar modelos de IA , aqui está o fluxo de trabalho que costuma manter as pessoas sãs:

  1. Defina sucesso.
    Escolha 1 ou 2 métricas principais (latência, custo, taxa de transferência, qualidade).

  2. Meça
    o perfil de referência de cargas de trabalho reais, registre os valores de p50/p95, memória e custo. ( PyTorch Profiler )

  3. Corrigir gargalos no pipeline:
    Carregamento de dados, tokenização, pré-processamento e processamento em lote.

  4. Aplique ganhos computacionais de baixo risco:
    Precisão mista, otimizações de kernel, melhor processamento em lote.

  5. Experimente otimizações de compilador/runtime:
    captura de grafos, runtimes de inferência, fusão de operadores. ( tutorial torch.compile , documentação do ONNX Runtime )

  6. Reduza o custo do modelo.
    Quantize cuidadosamente, simplifique se possível e remova o que não for necessário.

  7. Otimização do serviço
    de cache, concorrência, teste de carga e correções de latência de cauda.

  8. Valide a qualidade.
    Execute testes de regressão e compare os resultados lado a lado.

  9. Iterar.
    Pequenas alterações, anotações claras, repetir. Discreto - eficaz.

E sim, ainda é assim que se faz: Como Otimizar Modelos de IA, mesmo que pareça mais "Como parar de pisar em ancinhos". É a mesma coisa.


13) Erros Comuns (Para que Você Não os Repita como o Resto de Nós) 🙃

  • Otimizar antes de medir
    é perda de tempo. E depois você vai otimizar a coisa errada com confiança...

  • Perseguir um único parâmetro de avaliação.
    Os parâmetros de avaliação mentem por omissão. Sua carga de trabalho é a verdade.

  • Ignorar
    problemas de memória causa lentidão, travamentos e instabilidade. ( Entendendo o uso de memória CUDA no PyTorch )

  • Quantização excessiva muito cedo.
    A quantificação de poucos bits pode ser incrível, mas comece com etapas mais seguras.

  • Sem um plano de reversão.
    Se você não consegue reverter rapidamente, cada implantação se torna estressante. Estresse gera bugs.


Considerações finais: A maneira humana de otimizar 😌⚡

Otimizar modelos de IA não é uma questão de um truque simples. É um processo em camadas: medir, corrigir o pipeline, usar compiladores e runtimes, ajustar o serviço e, se necessário, reduzir o tamanho do modelo com quantização ou destilação. Faça tudo passo a passo, mantenha os padrões de qualidade e não confie apenas na sensação de "está mais rápido" como métrica (suas sensações são ótimas, mas não são um perfilador).

Se você quer a versão mais curta possível:

  • Meça primeiro 🔍

  • Otimize o pipeline em seguida 🧵

  • Em seguida, otimize o modelo 🧠

  • Em seguida, otimize o serviço 🏗️

  • Mantenha sempre o controle de qualidade ✅

E, se isso ajudar, lembre-se: o objetivo não é um "modelo perfeito". O objetivo é um modelo que seja rápido, acessível e confiável o suficiente para que você possa dormir tranquilo à noite... na maioria das noites 😴.

Perguntas frequentes

O que significa otimizar um modelo de IA na prática?

"Otimizar" geralmente significa melhorar uma restrição principal: latência, custo, uso de memória, precisão, estabilidade ou taxa de transferência de dados. A dificuldade está nas compensações — priorizar uma área pode prejudicar outra. Uma abordagem prática é escolher uma meta clara (como latência p95 ou tempo para atingir a qualidade) e otimizar com base nela. Sem uma meta, é fácil "melhorar" e ainda assim perder.

Como otimizar modelos de IA sem comprometer a qualidade

Considere cada alteração de velocidade ou custo como uma potencial regressão silenciosa. Utilize mecanismos de proteção, como avisos importantes, métricas de tarefas e verificações rápidas por humanos. Defina um limite claro para desvios de qualidade aceitáveis ​​e compare os resultados lado a lado. Isso evita que a sensação de "está mais rápido" se transforme em "por que de repente ficou estranho em produção?" após o lançamento.

O que medir antes de começar a otimizar

Comece com os percentis de latência (p50, p95, p99), taxa de transferência (tokens/seg ou requisições/seg), utilização da GPU e pico de VRAM/RAM. Monitore o custo por inferência ou por 1.000 tokens, caso o custo seja uma restrição. Analise um cenário real que você atende, não um cenário de teste. Manter um pequeno "diário de desempenho" ajuda a evitar palpites e a repetição de erros.

Resultados rápidos e de baixo risco para o desempenho do treinamento

A precisão mista (FP16/BF16) costuma ser a opção inicial mais rápida, mas fique atento a peculiaridades numéricas. Se o tamanho do lote for limitado, o acúmulo de gradientes pode estabilizar a otimização sem sobrecarregar a memória. O checkpoint de gradientes troca computação extra por menos memória, permitindo contextos maiores. Não ignore a tokenização e o ajuste do carregador de dados — eles podem silenciosamente sobrecarregar a GPU.

Quando usar torch.compile, ONNX Runtime ou TensorRT

Essas ferramentas visam reduzir a sobrecarga operacional: captura de grafos, fusão de kernels e otimizações de grafos em tempo de execução. Elas podem proporcionar ganhos de velocidade significativos na inferência, mas os resultados variam de acordo com o formato do modelo e o hardware. Algumas configurações parecem mágicas; outras quase não apresentam alterações. Espere sensibilidade a mudanças de formato e eventuais bugs inesperados — faça medições antes e depois em sua carga de trabalho real.

Vale a pena a quantização e como evitar exageros?

A quantização pode reduzir drasticamente o uso de memória e acelerar a inferência, especialmente com INT8, mas a qualidade pode ser comprometida em casos extremos. Opções com menor número de bits (como INT4/k-bit) oferecem maior economia, porém com maior risco. A prática mais segura é avaliar os resultados em um conjunto de testes real e compará-los, em vez de usar intuição. Comece com medidas mais seguras e só reduza a precisão se necessário.

A diferença entre poda e destilação para redução do tamanho do modelo

A poda remove parâmetros "inúteis" e, frequentemente, precisa de re-treinamento para recuperar a qualidade, especialmente quando feita de forma agressiva. A destilação treina um modelo aluno menor para imitar o comportamento de um modelo professor maior, e pode representar um retorno sobre o investimento (ROI) mais forte a longo prazo do que a quantização extrema. Se você deseja um modelo menor que se comporte de maneira semelhante e permaneça estável, a destilação costuma ser o caminho mais limpo.

Como reduzir o custo e a latência da inferência por meio de melhorias no serviço

É no processamento que a otimização se torna tangível: o processamento em lote aumenta a taxa de transferência, mas pode prejudicar a latência se exagerado, portanto, ajuste-o com cuidado. O cache (cache de prompts e reutilização de cache chave-valor) pode ser enorme quando os contextos se repetem. A saída em fluxo contínuo melhora a velocidade percebida, mesmo que o tempo total seja semelhante. Também fique atento à sobrecarga token por token em sua pilha — pequenas tarefas por token se acumulam rapidamente.

Por que a latência de cauda é tão importante na otimização de modelos de IA?

As médias podem parecer ótimas enquanto o percentil 99 é um desastre, e os usuários tendem a ficar presos na cauda da distribuição. A latência na cauda geralmente vem de variações: fragmentação de memória, picos de pré-processamento da CPU, lentidão na tokenização ou comportamento inadequado no processamento em lote. É por isso que o guia enfatiza percentis e cargas de trabalho reais. Se você otimizar apenas o percentil 50, ainda poderá oferecer uma experiência que "aleatoriamente pareça lenta"

Referências

  1. Amazon Web Services (AWS) - Percentis do AWS CloudWatch (definições estatísticas) - docs.aws.amazon.com

  2. Google - A Cauda em Escala (melhores práticas para latência de cauda) - sre.google

  3. Google - Objetivos de Nível de Serviço (Livro SRE) - percentis de latência - sre.google

  4. PyTorch - torch.compile - docs.pytorch.org

  5. PyTorch - FullyShardedDataParallel (FSDP) - docs.pytorch.org

  6. PyTorch - Criador de perfil PyTorch - docs.pytorch.org

  7. PyTorch - Semântica CUDA: gerenciamento de memória (notas sobre o alocador de memória CUDA) - docs.pytorch.org

  8. PyTorch - Precisão Mista Automática (torch.amp / AMP) - docs.pytorch.org

  9. PyTorch - torch.utils.checkpoint - docs.pytorch.org

  10. PyTorch - Guia de Otimização de Desempenho - docs.pytorch.org

  11. PyTorch - Tutorial de poda - docs.pytorch.org

  12. PyTorch - Compreendendo o uso de memória CUDA no PyTorch - docs.pytorch.org

  13. PyTorch - tutorial/visão geral do torch.compile - docs.pytorch.org

  14. ONNX Runtime - Documentação do ONNX Runtime - onnxruntime.ai

  15. NVIDIA - Documentação do TensorRT - docs.nvidia.com

  16. NVIDIA - Tipos quantizados do TensorRT - docs.nvidia.com

  17. NVIDIA - Nsight Systems - developer.nvidia.com

  18. NVIDIA - Servidor de Inferência Triton - processamento em lote dinâmico - docs.nvidia.com

  19. do DeepSpeed ​​- ZeRO Stage 3 - deepspeed.readthedocs.io

  20. bitsandbytes (fundação bitsandbytes) - bitsandbytes - github.com

  21. Hugging Face - Acelere: Guia de Acumulação de Gradiente - embraceface.co

  22. Hugging Face - Documentação de Tokenizadores - embraceface.co

  23. Abraçando o Rosto - Transformers: Guia PEFT - embraceface.co

  24. Hugging Face - Transformers: Explicação do cache KV - embraceface.co

  25. Hugging Face - Transformers: Tokenizadores "rápidos" (classes de tokenizador) - embraceface.co

  26. arXiv - Destilando o conhecimento em uma rede neural (Hinton et al., 2015) - arxiv.org

  27. arXiv - LoRA: Adaptação de baixa classificação de grandes modelos de linguagem - arxiv.org

  28. arXiv - FlashAttention: Atenção exata rápida e com uso eficiente de memória, com reconhecimento de E/S - arxiv.org

Encontre as últimas novidades em IA na Loja Oficial de Assistentes de IA

Sobre nós

Voltar ao blog