O cenário do poder de computação descentralizado é enorme, mas onde estão os desafios?
Escrito por: Ian Xu, Foresight Ventures
##TL;DR
Estamos discutindo a aplicação do poder de computação distribuído no treinamento e geralmente focamos no treinamento de grandes modelos de linguagem. A principal razão é que o treinamento de modelos pequenos não requer muito poder de computação. Para fazer a privacidade de dados distribuídos e um monte de projetos O problema não é econômico, é melhor resolvê-lo direta e centralmente. O grande modelo de linguagem tem uma enorme demanda por poder de computação e agora está no estágio inicial da explosão. De 2012 a 2018, a demanda de computação de IA dobrará aproximadamente a cada 4 meses. Julgando que os próximos 5-8 anos serão ainda ser uma enorme demanda incremental.
Embora existam grandes oportunidades, os problemas também precisam ser vistos com clareza. Todos sabem que o cenário é enorme, mas onde estão os desafios específicos? Quem pode direcionar esses problemas em vez de entrar cegamente no jogo é o núcleo de julgar os excelentes projetos desta pista.
(Estrutura NVIDIA NeMo Megatron)
Tomemos, por exemplo, o treinamento de um modelo grande com 175 bilhões de parâmetros. Devido ao enorme tamanho do modelo, ele precisa ser treinado em paralelo em muitos dispositivos GPU. Suponha que haja uma sala de computadores centralizada com 100 GPUs e cada dispositivo tenha 32 GB de memória.
Esse processo envolve uma grande quantidade de transferência e sincronização de dados, o que pode se tornar um gargalo para a eficiência do treinamento. Portanto, otimizar a largura de banda e a latência da rede e usar estratégias paralelas e de sincronização eficientes são muito importantes para o treinamento de modelos em larga escala.
Deve-se notar que o gargalo de comunicação também é a razão pela qual a atual rede de poder de computação distribuída não pode fazer um grande treinamento de modelo de linguagem.
Cada nó precisa trocar informações com frequência para trabalhar em conjunto, o que cria sobrecarga de comunicação. Para modelos de linguagem grandes, esse problema é especialmente sério devido ao grande número de parâmetros do modelo. A sobrecarga de comunicação é dividida nos seguintes aspectos:
Embora existam alguns métodos para reduzir a sobrecarga de comunicação, como compressão de parâmetros e gradientes, estratégias paralelas eficientes, etc., esses métodos podem introduzir carga computacional adicional ou afetar negativamente o efeito de treinamento do modelo. Além disso, esses métodos não podem resolver completamente o problema de sobrecarga de comunicação, especialmente no caso de más condições de rede ou grandes distâncias entre os nós de computação.
Como um exemplo:
Rede de energia de computação distribuída descentralizada
O modelo GPT-3 tem 175 bilhões de parâmetros e, se representarmos esses parâmetros usando números de ponto flutuante de precisão simples (4 bytes por parâmetro), armazenar esses parâmetros requer aproximadamente 700 GB de memória. No treinamento distribuído, esses parâmetros precisam ser frequentemente transmitidos e atualizados entre os nós de computação.
Supondo que existam 100 nós de computação, cada nó precisa atualizar todos os parâmetros em cada etapa, então cada etapa precisa transferir cerca de 70 TB (700 GB*100) de dados. Se assumirmos que uma etapa leva 1s (suposição muito otimista), então 70 TB de dados precisam ser transferidos a cada segundo. Essa demanda por largura de banda já excede em muito a da maioria das redes e também é uma questão de viabilidade.
Na realidade, devido a atrasos de comunicação e congestionamento da rede, o tempo de transmissão de dados pode ser muito maior que 1s. Isso significa que os nós de computação podem precisar gastar muito tempo esperando pela transmissão de dados em vez de realizar cálculos reais. Isso vai reduzir muito a eficiência do treinamento, e essa redução de eficiência não pode ser resolvida pela espera, mas sim pela diferença entre factível e inviável, que vai inviabilizar todo o processo de treinamento.
Sala de informática centralizada
Mesmo em um ambiente de sala de informática centralizada, o treinamento de grandes modelos ainda requer uma otimização de comunicação pesada.
Em um ambiente de sala de informática centralizada, os dispositivos de computação de alto desempenho são usados como um cluster, conectados por meio de uma rede de alta velocidade para compartilhar tarefas de computação. No entanto, mesmo ao treinar um modelo com um número extremamente grande de parâmetros em um ambiente de rede de alta velocidade, a sobrecarga de comunicação ainda é um gargalo, porque os parâmetros e gradientes do modelo precisam ser frequentemente transmitidos e atualizados entre vários dispositivos de computação .
Conforme mencionado no início, suponha que haja 100 nós de computação, cada servidor com uma largura de banda de rede de 25 Gbps. Se cada servidor precisar atualizar todos os parâmetros em cada etapa de treinamento, cada etapa de treinamento precisará transferir cerca de 700 GB de dados e levará aproximadamente 224 segundos. Aproveitando a sala de computadores centralizada, os desenvolvedores podem otimizar a topologia de rede dentro do data center e usar tecnologias como paralelismo de modelo para reduzir significativamente esse tempo.
Por outro lado, se o mesmo treinamento for realizado em um ambiente distribuído, assumindo que ainda existam 100 nós de computação distribuídos em todo o mundo, a largura de banda média da rede de cada nó é de apenas 1 Gbps. Nesse caso, leva aproximadamente 5.600 segundos para transferir os mesmos 700 GB de dados, o que é muito mais longo do que na sala de computadores centralizada. Além disso, devido a atrasos e congestionamentos na rede, o tempo real necessário pode ser maior.
No entanto, em comparação com a situação em uma rede de poder de computação distribuída, é relativamente fácil otimizar a sobrecarga de comunicação em um ambiente de sala de informática centralizada. Porque em um ambiente de sala de informática centralizada, os dispositivos de computação geralmente são conectados à mesma rede de alta velocidade, e a largura de banda e o atraso da rede são relativamente bons. Em uma rede de poder de computação distribuída, os nós de computação podem ser distribuídos por todo o mundo e as condições da rede podem ser relativamente ruins, o que torna o problema de sobrecarga de comunicação mais sério.
No processo de treinamento do GPT-3, o OpenAI usa uma estrutura paralela de modelo chamada Megatron para resolver o problema de sobrecarga de comunicação. O Megatron divide os parâmetros do modelo e os processa em paralelo entre várias GPUs, sendo que cada dispositivo é responsável apenas por armazenar e atualizar uma parte dos parâmetros, reduzindo assim a quantidade de parâmetros que cada dispositivo precisa processar e diminuindo o overhead de comunicação. Ao mesmo tempo, uma rede de interconexão de alta velocidade também é usada durante o treinamento e o comprimento do caminho de comunicação é reduzido pela otimização da topologia da rede.
(Dados usados para treinar modelos LLM)
Isso pode ser feito, mas em comparação com a sala de computadores centralizada, o efeito dessas otimizações é muito limitado.
Quase todos os links envolvendo processamento e transmissão de dados podem afetar a segurança e a privacidade dos dados:
**Quais soluções estão disponíveis para questões de privacidade de dados? **
Resumo
Cada um dos métodos acima tem seus cenários e limitações aplicáveis, e nenhum dos métodos pode resolver completamente o problema de privacidade de dados no treinamento de modelo grande de rede de energia de computação distribuída.
Em teoria, o ZKP pode ser usado para garantir a privacidade dos dados na computação distribuída, permitindo que um nó prove que realizou cálculos de acordo com os regulamentos, mas não precisa divulgar dados reais de entrada e saída.
Mas, na verdade, os seguintes gargalos são enfrentados no cenário de uso do ZKP para modelos grandes de treinamento de rede de energia de computação distribuída em grande escala:
Resumo
Para usar o ZKP em redes de computação distribuída em grande escala para treinar grandes modelos, serão necessários vários anos de pesquisa e desenvolvimento, além de exigir mais energia e recursos da comunidade acadêmica nessa direção.
Outro cenário relativamente grande de poder de computação distribuído é o raciocínio do modelo. De acordo com nosso julgamento sobre o caminho de desenvolvimento de modelos grandes, a demanda por treinamento de modelo diminuirá gradualmente à medida que os modelos grandes amadurecerem após passar por um ponto alto. Os requisitos de inferência aumentarão exponencialmente de forma correspondente com a maturidade de grandes modelos e AIGC.
Em comparação com as tarefas de treinamento, as tarefas de inferência geralmente têm menor complexidade computacional e interação de dados mais fraca e são mais adequadas para ambientes distribuídos.
(Power LLM inference com NVIDIA Triton)
Atraso de comunicação:
Em um ambiente distribuído, a comunicação entre os nós é essencial. Em uma rede de poder de computação distribuída descentralizada, os nós podem estar espalhados por todo o mundo, então a latência da rede pode ser um problema, especialmente para tarefas de raciocínio que requerem resposta em tempo real.
Implantação e atualização do modelo:
O modelo precisa ser implantado em cada nó. Se o modelo for atualizado, cada nó precisa atualizar seu modelo, o que consome muita largura de banda e tempo da rede.
Dados privados:
Embora as tarefas de inferência geralmente exijam apenas dados e modelos de entrada e não precisem retornar uma grande quantidade de dados e parâmetros intermediários, os dados de entrada ainda podem conter informações confidenciais, como informações pessoais dos usuários.
Segurança do modelo:
Em uma rede descentralizada, o modelo precisa ser implantado em nós não confiáveis, o que levará ao vazamento do modelo e ao problema de direitos de propriedade e abuso do modelo. Isso também pode aumentar as preocupações de segurança e privacidade, se um modelo for usado para processar dados confidenciais, os nós podem inferir informações confidenciais analisando o comportamento do modelo.
CQ:
Cada nó em uma rede de poder de computação distribuída descentralizada pode ter diferentes capacidades e recursos de computação, o que pode dificultar a garantia do desempenho e da qualidade das tarefas de inferência.
Complexidade computacional:
Na fase de treinamento, o modelo precisa iterar repetidamente. Durante o processo de treinamento, é necessário calcular a propagação para frente e a propagação de volta para cada camada, incluindo o cálculo da função de ativação, cálculo da função de perda, cálculo do gradiente e atualização do peso . Portanto, a complexidade computacional do treinamento do modelo é alta.
Na fase de inferência, apenas uma passagem direta é necessária para calcular a previsão. Por exemplo, no GPT-3, o texto de entrada precisa ser convertido em um vetor e, em seguida, encaminhado por cada camada do modelo (geralmente a camada do transformador) e, finalmente, a distribuição de probabilidade de saída é obtida e a próxima palavra é gerada de acordo com esta distribuição. Nas GANs, o modelo precisa gerar uma imagem a partir de um vetor de ruído de entrada. Essas operações envolvem apenas a propagação direta do modelo, não precisam calcular gradientes ou atualizar parâmetros e possuem baixa complexidade computacional.
Interatividade de dados:
Durante a fase de inferência, o modelo geralmente processa uma única entrada em vez de um grande lote de dados durante o treinamento. O resultado de cada inferência depende apenas da entrada atual, não de outra entrada ou saída, portanto não há necessidade de uma grande quantidade de interação de dados e a pressão de comunicação é menor.
Tomando o modelo de imagem generativa como exemplo, supondo que usamos GANs para gerar imagens, precisamos apenas inserir um vetor de ruído no modelo e, em seguida, o modelo gerará uma imagem correspondente. Nesse processo, cada entrada gerará apenas uma saída, e não há dependência entre as saídas, portanto não há necessidade de interação de dados.
Tomando o GPT-3 como exemplo, cada geração da próxima palavra requer apenas a entrada de texto atual e o estado do modelo e não precisa interagir com outras entradas ou saídas, portanto, o requisito de interatividade de dados também é fraco.
Resumo
Independentemente de ser um modelo de linguagem grande ou um modelo de imagem generativa, a complexidade computacional e a interatividade de dados das tarefas de raciocínio são relativamente baixas, o que é mais adequado para redes de poder de computação distribuídas descentralizadas, e é por isso que a maioria dos projetos que vemos agora em uma direção de força.
O limite técnico e a amplitude técnica de uma rede de poder de computação distribuída descentralizada são muito altos e também requer o suporte de recursos de hardware, portanto, não vimos muitas tentativas agora. Tome Together e Gensyn.ai como exemplos:
(RedPajama from Together)
A Together é uma empresa que se concentra no código aberto de grandes modelos e está comprometida com soluções de poder de computação de IA descentralizadas. Ela espera que qualquer pessoa possa acessar e usar a IA em qualquer lugar. Juntos, acabamos de fechar uma rodada de sementes de 20 milhões de dólares liderada pela Lux Capital.
A Together foi cofundada por Chris, Percy e Ce. A intenção original era que o treinamento de modelo em larga escala exigisse um grande número de clusters de GPU de ponta e gastos caros, e esses recursos e capacidades de treinamento de modelo também estavam concentrados em alguns grandes empresas.
Do meu ponto de vista, um plano empresarial mais razoável para poder de computação distribuído é:
Etapa 1. Modelo de código aberto
Para implementar o raciocínio do modelo em uma rede de poder de computação distribuída descentralizada, o pré-requisito é que os nós possam obter o modelo a baixo custo, ou seja, o modelo que usa a rede de poder de computação descentralizada precisa ser de código aberto (se o modelo precisa ser licenciado no respectivo Se usado abaixo, aumentará a complexidade e o custo da implementação). Por exemplo, chatgpt, como um modelo de código não aberto, não é adequado para execução em uma rede de poder de computação descentralizada.
Portanto, pode-se especular que a barreira invisível de uma empresa que fornece uma rede de poder de computação descentralizada precisa ter fortes capacidades de desenvolvimento e manutenção de modelos em grande escala. Um poderoso modelo básico autodesenvolvido e de código aberto pode se livrar da dependência do modelo de código aberto de terceiros até certo ponto e resolver os problemas mais básicos da rede de poder de computação descentralizada. Ao mesmo tempo, é mais propício para provar que a rede de poder de computação pode efetivamente realizar treinamento e raciocínio de grandes modelos.
E Juntos fizeram o mesmo. O recém-lançado RedPajama baseado em LLaMA foi lançado em conjunto pela Together, Ontocord.ai, ETH DS3Lab, Stanford CRFM e Hazy Research, com o objetivo de desenvolver uma série de modelos de linguagem de código aberto totalmente abertos.
Etapa 2. O poder de computação distribuído desembarcou no raciocínio do modelo
Conforme mencionado nas duas seções acima, em comparação com o treinamento de modelo, a inferência de modelo tem menor complexidade computacional e interação de dados e é mais adequada para um ambiente distribuído descentralizado.
Com base no modelo de código aberto, a equipe de P&D da Together fez uma série de atualizações no modelo RedPajama-INCITE-3B, como o uso de LoRA para obter um ajuste fino de baixo custo, fazendo com que o modelo funcione na CPU (especialmente no MacBook Pro com processador M2 Pro) Funciona no modelo mais sedoso. Ao mesmo tempo, embora a escala deste modelo seja pequena, sua capacidade supera outros modelos da mesma escala, e tem sido aplicada de forma prática em cenários jurídicos, sociais e outros.
Etapa 3. O poder de computação distribuído chegou ao treinamento do modelo
(Diagrama de rede de poder de computação do treinamento superando gargalos de comunicação)
A médio e longo prazo, embora enfrentando grandes desafios e gargalos técnicos, deve ser o mais atrativo atender a demanda de poder computacional para treinamento de grandes modelos de IA. Juntos começaram a traçar como superar o gargalo de comunicação no treinamento descentralizado no início de sua implantação. Eles também publicaram um artigo relacionado no NeurIPS 2022: Overcoming Communication Bottlenecks for Decentralized Training. Podemos resumir principalmente as seguintes direções:
Otimização de Agendamento
Ao treinar em um ambiente descentralizado, é importante atribuir tarefas pesadas de comunicação a dispositivos com conexões mais rápidas porque as conexões entre os nós têm diferentes latências e larguras de banda. O Together constrói um modelo para descrever o custo de uma estratégia de agendamento específica e otimiza melhor a estratégia de agendamento para minimizar os custos de comunicação e maximizar o rendimento do treinamento. A equipe do Together também descobriu que, mesmo com uma rede 100 vezes mais lenta, a taxa de transferência de treinamento de ponta a ponta era apenas 1,7 a 2,3 vezes mais lenta. Portanto, é interessante preencher a lacuna entre redes distribuídas e clusters centralizados por meio da otimização de agendamento.
Otimização de compressão de comunicação
Together propõe compressão de comunicação para ativações diretas e gradientes reversos, e apresenta o algoritmo AQ-SGD, que fornece garantias estritas para convergência estocástica de gradiente descendente. O AQ-SGD é capaz de ajustar grandes modelos básicos em redes lentas (por exemplo, 500 Mbps) com desempenho de treinamento de ponta a ponta apenas 31% mais lento em redes centralizadas (por exemplo, 10 Gbps) sem compressão. Além disso, o AQ-SGD pode ser combinado com técnicas de compressão de gradiente de última geração, como QuantizedAdam, para obter uma aceleração de ponta a ponta de 10%.
Resumo do projeto
A configuração conjunta da equipe é muito abrangente, os membros têm uma formação acadêmica muito forte, desde o desenvolvimento de grandes modelos, a computação em nuvem até a otimização de hardware, com suporte de especialistas do setor. E a Together mostrou uma postura paciente e de longo prazo no planejamento de caminhos, desde o desenvolvimento de grandes modelos de código aberto até o teste de poder de computação ocioso (como mac) na rede de poder de computação distribuída usando raciocínio de modelo e, em seguida, poder de computação distribuído em grande Layout em treinamento modelo. — Fica aquele tipo de acúmulo e aquela sensação de cabelo fino :)
No entanto, no momento, não vimos muitos resultados de pesquisa do Together na camada de incentivo. Acho que isso é tão importante quanto a pesquisa e desenvolvimento de tecnologia e é um fator chave para garantir o desenvolvimento de uma rede de poder de computação descentralizada.
(Review.ai)
Do caminho técnico do Together, podemos entender aproximadamente o processo de implementação da rede de poder de computação descentralizada no treinamento e raciocínio do modelo, bem como as prioridades de pesquisa e desenvolvimento correspondentes.
Outro ponto importante que não pode ser ignorado é o desenho da camada de incentivo/algoritmo de consenso da rede de poder computacional. Por exemplo, uma rede excelente precisa ter:
……
Veja como Gensyn.ai faz isso:
Em primeiro lugar, os solucionadores da rede de poder computacional competem pelo direito de processar as tarefas enviadas pelos usuários por meio de lances e, de acordo com a escala da tarefa e o risco de trapacear, o solucionador precisa hipotecar um determinado valor.
O Solver gera vários pontos de verificação enquanto atualiza os parâmetros (para garantir a transparência e rastreabilidade do trabalho) e gera periodicamente provas de raciocínio criptográfico (prova de progresso do trabalho) sobre as tarefas;
Quando o Solver concluir o trabalho e gerar uma parte dos resultados do cálculo, o protocolo selecionará um verificador, e o verificador também prometerá uma certa quantia (para garantir que o verificador realize a verificação honestamente) e decidirá qual parte do cálculo os resultados precisam ser verificados de acordo com as provas fornecidas acima.
Por meio da estrutura de dados baseada em árvore do Merkle, é localizado o local exato onde os resultados dos cálculos diferem. Toda a operação de verificação estará na cadeia e os trapaceiros serão deduzidos do valor prometido.
Resumo do projeto
O design do algoritmo de incentivo e verificação faz com que Gensyn.ai não precise repetir todos os resultados de toda a tarefa de computação durante o processo de verificação, mas apenas copie e verifique uma parte dos resultados de acordo com a prova fornecida, o que melhora muito a eficiência da verificação. Ao mesmo tempo, os nós precisam armazenar apenas parte dos resultados dos cálculos, o que também reduz o consumo de espaço de armazenamento e recursos de computação. Além disso, os possíveis nós de trapaça não podem prever quais partes serão selecionadas para verificação, portanto, isso também reduz o risco de trapaça;
Este método de verificação de diferenças e descoberta de trapaceiros também pode encontrar rapidamente erros no processo de cálculo sem comparar todos os resultados do cálculo (começando no nó raiz da árvore Merkle e descendo passo a passo). Muito eficaz para tarefas de computação em larga escala.
Resumindo, o objetivo do design da camada de incentivo/verificação do Gensyn.ai é: simples e eficiente. No entanto, atualmente está limitado ao nível teórico, e a implementação específica pode enfrentar os seguintes desafios:
A questão de quem precisa de uma rede de poder de computação descentralizada não foi verificada. A aplicação de poder de computação ocioso para treinamento de modelo em larga escala que requer enormes recursos de poder de computação é obviamente o espaço mais imaginativo e faz mais sentido. Mas, na verdade, gargalos como comunicação e privacidade precisam nos fazer repensar:
Existe realmente esperança para o treinamento descentralizado de grandes modelos?
Se você pular fora desse consenso, “o cenário de pouso mais razoável”, aplicar o poder de computação descentralizado ao treinamento de pequenos modelos de IA também é um grande cenário. Do ponto de vista técnico, os atuais fatores limitantes foram resolvidos devido ao tamanho e arquitetura do modelo. Ao mesmo tempo, do ponto de vista do mercado, sempre sentimos que o treinamento de grandes modelos será enorme de agora para o futuro, mas o mercado de pequenos modelos de IA Ainda não é atraente?
Eu não acho. Em comparação com modelos grandes, os modelos pequenos de IA são mais fáceis de implantar e gerenciar e são mais eficientes em termos de velocidade de processamento e uso de memória. Em um grande número de cenários de aplicativos, usuários ou empresas não precisam dos recursos de raciocínio mais gerais de linguagem grande modelos, mas apenas Foco em uma meta de previsão muito granular. Portanto, modelos pequenos de IA ainda são uma opção mais viável na maioria dos cenários e não devem ser descartados prematuramente na maré de modelos grandes.
Referência