Inteligência de Espectro revisa GLM-5 «Gate de caracteres ilegíveis»: milhões de chamadas diárias do Coding Agent, dois bugs de condição de corrida escondidos no KV Cache

De acordo com o monitoramento do Beating, a Zhipu publicou uma análise sobre problemas de caracteres ilegíveis, repetições e caracteres pouco comuns que ocorreram nos modelos da série GLM-5 no cenário do Agente de Codificação. Desde março, alguns usuários relataram que essas anomalias só eram ativadas em tarefas do Agente de Codificação com alta concorrência e contexto longo (média superior a 70 mil tokens), e não podiam ser reproduzidas em ambientes de inferência padrão. A Zhipu afirmou que seu sistema de inferência suporta bilhões de chamadas diárias ao Agente de Codificação.

Após várias semanas de investigação, a equipe identificou dois bugs concorrentes independentes na camada de baixo nível. O primeiro ocorreu na arquitetura de separação de PD (implantação que divide pré-preenchimento e decodificação em nós diferentes): após o decodificador cancelar a solicitação por timeout, ele recuperou o KV Cache (armazenamento do estado de atenção já calculado, para evitar cálculos repetidos), mas a escrita RDMA do pré-preenchimento ainda não tinha terminado, e uma nova solicitação foi alocada na mesma memória de vídeo, sobrescrevendo os dados antigos com os novos. A solução foi adicionar uma sincronização explícita antes da recuperação, garantindo que a escrita fosse concluída antes de liberar a memória. Após a implementação, a taxa de anomalias caiu de mais de 0,1% para menos de 0,03%.

O segundo bug ocorreu no HiCache (Cache KV multinível): durante a transferência assíncrona do cache da memória da CPU, faltava um ponto de sincronização entre a linha de carregamento e a de cálculo, fazendo com que o lado de cálculo começasse a ler antes que os dados fossem totalmente carregados. Após a correção, esse tipo de anomalia desapareceu completamente, e o patch foi enviado à comunidade SGLang (PR #22811).

Durante a investigação, também foi descoberto um efeito inesperado: o índice de aceitação da amostragem especulativa (técnica de acelerar usando um modelo menor para prever tokens e um maior para verificar) pode servir como sinal de detecção de anomalias. Durante caracteres ilegíveis, quase todos os tokens de rascunho eram rejeitados, enquanto na repetição a taxa de aceitação era anormalmente alta. Com base nisso, a equipe implementou monitoramento online: ao atingir um limite, a geração é automaticamente interrompida e reiniciada.

Após a correção dos bugs, a equipe também otimizou um gargalo: o KV Cache em camadas LayerSplit, que armazena em camadas diferentes cada GPU, ao invés de toda a cache, usando comunicação por broadcast para coordenação. Com uma taxa de acerto de cache de 90%, para solicitações de comprimento entre 40K e 120K, a taxa de throughput aumentou de 10% a 132%, e quanto maior o contexto, maior o benefício.

Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • Comentar
  • Republicar
  • Partilhar
Comentar
Adicionar um comentário
Adicionar um comentário
Nenhum comentário
  • Fixar