Acabámos de descobrir como transferir ONE TRILLION parâmetros entre GPUs em 1,3 segundos. Isso representa um aumento de velocidade de 20x em relação aos métodos tradicionais. Deixe-me mostrar como fizemos isso:
Perplexity
PerplexityHá 18 horas
A transferência de peso é um dos maiores gargalos ao realizar RL distribuído em modelos de alta capacidade. O nosso primeiro blog de Pesquisa Perplexity explica como os engenheiros de inferência da Perplexity aproveitaram a comunicação ponto a ponto RDMA para desbloquear atualizações de parâmetros ultra-rápidas para modelos de trilhões de parâmetros. Ao aproveitar primitivas RDMA de baixo nível, agendamento estático e pipelining, aceleramos as atualizações em uma ordem de magnitude, para apenas 1,3 segundos por atualização.
1/ O Problema Ao treinar modelos de IA massivos com aprendizado por reforço, você precisa de dois clusters de GPU separados trabalhando juntos: GPUs de treinamento que atualizam o modelo e GPUs de inferência que o executam. Após cada etapa de treinamento, você precisa copiar todos aqueles pesos atualizados do treinamento para a inferência. Para modelos com trilhões de parâmetros, a maioria dos sistemas leva de 30 segundos a vários MINUTOS para fazer isso. Isso é um gargalo enorme. Sua etapa de treinamento pode levar 5 segundos, mas depois você espera 30 segundos apenas copiando pesos.
1/ O Problema Quando estamos a treinar modelos de IA massivos com aprendizagem por reforço, precisamos de dois clusters de GPU separados a trabalhar em conjunto: GPUs de treino que atualizam o modelo e GPUs de inferência que o executam. Após cada passo de treino, temos de copiar todos esses pesos atualizados do treino para a inferência. Para o nosso modelo Kimi-K2 de um trilhão de parâmetros, a maioria dos sistemas existentes leva de 30 segundos a vários MINUTOS para fazer isso. Isso é um gargalo massivo. O nosso passo de treino pode levar 5 segundos, mas depois esperaríamos 30 segundos apenas a copiar pesos. Inaceitável.
2/ O Velho Método Os sistemas tradicionais canalizam tudo através de uma GPU "rank-0". Todas as GPUs de treinamento enviam para uma GPU principal, que envia para uma GPU de inferência, que distribui para o resto. É como forçar todo o correio a passar por um único correio. Essa única conexão torna-se o gargalo - limitada a cerca de 50 gigabytes por segundo. Sabíamos que tinha que haver uma maneira melhor.
3/ A Nossa Inovação A nossa solução: RDMA WRITE - Acesso Direto à Memória Remota. Com RDMA, as nossas GPUs de treino podem escrever diretamente na memória da GPU de inferência. Sem intermediários. Sem pedir permissão. Nós simplesmente teleportamos dados diretamente para a RAM de outro computador. A GPU receptora nem sequer é notificada. É uma operação "unilateral". E aqui está a chave: CADA GPU de treino comunica diretamente com CADA GPU de inferência. Todas ao mesmo tempo. Em paralelo. Saturamos toda a rede em vez de criar um gargalo em um único link. Também utilizamos o pipelining - dividindo as transferências em estágios sobrepostos para que diferentes recursos de hardware permaneçam ocupados simultaneamente. Além disso, calculamos o cronograma de transferência uma vez na inicialização e apenas o reproduzimos. Sem sobrecarga de planejamento repetido.
4/ Os Nossos Resultados Para o Kimi-K2 com 1 trilhão de parâmetros: 1,3 segundos para transferir de 256 GPUs de treino para 128 GPUs de inferência. Isso significa mover cerca de 2 terabytes de dados em pouco mais de um segundo. Através de uma rede. Entre máquinas. Quando estamos a gastar milhares de dólares por hora em clusters de GPU, eliminar este gargalo significa enormes economias de custos e ciclos de iteração mais rápidos.
4/ Os Nossos Resultados Para o Kimi-K2 com 1 trilhão de parâmetros: 1,3 segundos para transferir de 256 GPUs de treino para 128 GPUs de inferência. Isso significa mover cerca de 2 terabytes de dados em pouco mais de um segundo. Através de uma rede. Entre máquinas. Quando estamos a gastar milhares de dólares por hora em clusters de GPU, eliminar este gargalo significa enormes economias de custos e ciclos de iteração mais rápidos.
5/ Por que é importante A parte elegante? Não inventámos novo hardware. Apenas utilizámos a tecnologia RDMA existente com engenharia de sistemas inteligente. Às vezes, as melhores soluções não são sobre inventar algo novo - são sobre usar ferramentas existentes de forma realmente, realmente eficaz. É assim que construímos na Perplexity.
Então, essa é a visão geral de alto nível do nosso sistema de transferência de peso. Mas tenho certeza de que vocês têm perguntas, certo? Perguntem-me qualquer coisa.
87,3K