- De agosto até o início de setembro, houve uma queda na qualidade das respostas do Claude causada por três bugs de infraestrutura
- As principais causas dos problemas foram, respectivamente, erro de roteamento da janela de contexto, corrupção de saída e erro de miscompilation do approximate top-k no XLA:TPU
- Cada bug se sobrepunha aos outros em diferentes hardwares e caminhos de implantação, tornando o diagnóstico ainda mais difícil
- Entre os motivos para o atraso na detecção e correção estavam falhas no processo de validação e restrições de acesso decorrentes da política de privacidade
- A Anthropic está trabalhando na ampliação de avaliações e monitoramento e no desenvolvimento de ferramentas de depuração mais rápidas para evitar incidentes semelhantes
Visão geral e contexto
- De agosto até o início de setembro, foram relatados casos intermitentes de queda na qualidade das respostas do Claude
- No começo, isso foi considerado uma variação normal dentro do feedback dos usuários, mas a investigação começou à medida que os relatos continuaram aumentando
- A Anthropic deixou claro que a causa do problema não foi demanda nem carga de servidores, mas apenas bugs de infraestrutura
- O Claude atende milhões de usuários por várias plataformas (APIs, Amazon Bedrock, Google Vertex AI etc.) e mantém critérios rigorosos de validação para garantir resultados equivalentes em diferentes hardwares, como AWS Trainium, NVIDIA GPU e Google TPU
- Neste post-mortem, são explicadas as causas dos bugs, os motivos do atraso no diagnóstico e na correção, e as medidas para evitar recorrência
Como o Claude opera em larga escala
- O serviço do Claude mantém uma implantação global em vários hardwares (Trainium, GPU, TPU)
- Os critérios de equivalência de implementação para garantir a mesma qualidade em cada plataforma são rigorosos
- Ao fazer mudanças na infraestrutura, é necessário um processo de validação preciso em todas as plataformas e configurações
Linha do tempo dos principais incidentes
- 5 de agosto: primeiro bug, afetando cerca de 0,8% das requisições do Sonnet 4
- 25 e 26 de agosto: segundo e terceiro bugs implantados, respectivamente
- 29 de agosto: uma mudança no balanceamento de carga fez o tráfego problemático aumentar, afetando mais usuários
- Como os sintomas dos bugs se sobrepunham, a dificuldade de diagnóstico foi muito alta
Os três bugs sobrepostos e o processo de correção
1. Erro de roteamento da janela de contexto
- Em 5 de agosto, algumas requisições do Sonnet 4 foram roteadas incorretamente para servidores destinados à janela de contexto de 1M tokens
- Após a mudança no balanceamento de carga, o problema passou a afetar até 16% das requisições do Sonnet 4, com impacto pequeno também no Amazon Bedrock e no Google Vertex AI
- Como o roteamento era "sticky", ao se conectar uma vez ao servidor errado, as conexões seguintes continuavam indo para o mesmo servidor
- Correção: melhoria na lógica de roteamento, patch aplicado na plataforma própria em 4 de setembro, implantação no Google Cloud até 16 de setembro, e aplicação gradual em andamento no Bedrock
2. Corrupção de saída (bug)
- Em 25 de agosto, uma configuração incorreta foi aplicada aos servidores TPU da API do Claude, causando erros durante a geração de tokens
- Houve casos de mistura de caracteres sem sentido como tailandês ou chinês em respostas a perguntas em inglês, além de inserção de erros gramaticais evidentes em código
- Afetou apenas Opus 4.1, Opus 4 e Sonnet 4; plataformas de terceiros não foram impactadas
- Correção: rollback da mudança em 2 de setembro e adição de testes de detecção de saída com caracteres anômalos ao processo de implantação
3. Erro de miscompilation do approximate top-k no XLA:TPU
- Em 25 de agosto, durante o aprimoramento do método de seleção de tokens, veio à tona um bug latente no compilador XLA:TPU
- Afetou Claude Haiku 3.5, parte do Sonnet 4 e Opus 3
- Plataformas de terceiros não foram impactadas
- Correção: rollback do Haiku 3.5 em 4 de setembro e do Opus 3 em 12 de setembro; no Sonnet 4, embora o problema não tenha sido reproduzido diretamente, foi feito rollback como medida preventiva
- Em paralelo, a Anthropic está trabalhando com a equipe do XLA:TPU para corrigir o bug do compilador e migrar para o uso de exact top-k
Análise detalhada do bug no compilador XLA
- O Claude realiza cálculo de probabilidades e amostragem para cada candidato durante o processo de geração de tokens
- As TPUs operam em ambiente distribuído, exigindo sincronização dos cálculos de probabilidade dos tokens, o que traz complexidade adicional
- Em dezembro de 2024, foi identificado um problema em que o token de maior probabilidade podia ser omitido devido a erro causado pelo uso de precisão mista bf16-32 bits, e foi implantada uma correção temporária
- Em 26 de agosto, durante uma reformulação do código de amostragem para resolver a causa raiz, surgiu um bug mais profundo no approximate top-k que, em certos casos, produzia resultados completamente incorretos
- Esse bug estava sendo mascarado pela correção temporária anterior
- Além disso, o bug na operação approximate top-k apresentava sintomas irregulares conforme o ambiente de produção e o tamanho do batch
- Mais recentemente, em vez de approximate top-k, foi adotado o exact top-k, cujo custo de desempenho caiu bastante, e operações principais foram aprimoradas com padronização em fp32
Motivos para o atraso na detecção
- Estavam em uso procedimentos como avaliações automatizadas periódicas e implantação prévia em grupos selecionados
- Esses incidentes expuseram lacunas no processo de avaliação. Por exemplo, havia métricas que não detectavam bem as situações problemáticas, e a política interna de privacidade (engenheiros sem acesso a requisições específicas de usuários) dificultava a análise rápida
- Como os sintomas variavam conforme plataforma e versão, foi difícil identificar uma única causa
- Mesmo com o aumento repentino de relatos online, a relação com uma mudança padrão de balanceamento de carga não foi percebida de imediato
Melhorias futuras e medidas de resposta
- Desenvolvimento de métricas mais sensíveis, com reforço das avaliações automatizadas para distinguir com mais clareza implementações normais e estados corrompidos
- Expansão dos sistemas de avaliação e monitoramento para todo o ambiente real de produção, incluindo avaliações centradas em operação, como no caso de erros de roteamento da janela de contexto
- Criação de ferramentas de depuração mais rápidas e sofisticadas, além de infraestrutura e ferramentas customizadas para analisar rapidamente o feedback da comunidade preservando a privacidade
- Ênfase não apenas na avaliação interna, mas também na confiabilidade da coleta contínua de feedback dos usuários: para erros ou bugs difíceis de prever, os relatos reais dos usuários funcionam como um sinal importante
- Incentivo ativo ao uso do comando "/bug" ou da função de 'thumbs down', além do envio por e-mail de métodos de avaliação da qualidade do modelo
Observações de referência
- XLA:TPU é um compilador que converte código de linguagem de otimização de alto nível XLA em instruções para TPU
- Como o tamanho do modelo é grande, ele é distribuído por vários chips em vez de um único chip, e operações como sorting precisam ser implementadas em formato vetorizado
- A operação approximate top-k é usada para melhorar o desempenho, mas pode trazer problemas graves, como deixar de fora o token com maior probabilidade
- Atualmente, foi adotado o método exact top-k, e pode haver pequenas mudanças no padrão de inclusão de tokens próximos ao limite de top-p. Em alguns casos, o usuário pode precisar ajustar o valor de top-p
Ainda não há comentários.