Atualmente, existem duas direções principais para a combinação de AI + Crypto: **Poder de computação distribuído e ZKML. **Este artigo analisará e refletirá sobre a rede de poder de computação distribuída descentralizada.
Sob a tendência de desenvolvimento de modelos de IA em grande escala, os recursos de poder de computação serão o grande campo de batalha na próxima década e também a coisa mais importante para a sociedade humana no futuro, e não permanecerá apenas no mercado comercial competição, mas também **se tornará um grande país Os recursos estratégicos do jogo. **No futuro, o investimento em infraestrutura de computação de alto desempenho e reservas de energia de computação aumentará exponencialmente.
**A rede de poder de computação distribuída descentralizada tem a maior demanda para treinamento de modelos grandes de IA, mas também enfrenta os maiores desafios e gargalos técnicos. ** Incluindo a necessidade de problemas complexos de sincronização de dados e otimização de rede. Além disso, a privacidade e a segurança dos dados também são restrições importantes. Embora algumas técnicas existentes possam fornecer soluções preliminares, elas ainda não são aplicáveis em tarefas de treinamento distribuídas em larga escala devido à enorme sobrecarga computacional e de comunicação.
**A rede de poder de computação distribuída descentralizada tem uma chance melhor de aterrissar no raciocínio do modelo e pode prever que o espaço incremental futuro também é grande o suficiente. ** Mas também enfrenta desafios como atraso na comunicação, privacidade de dados e segurança do modelo. Em comparação com o treinamento do modelo, a inferência tem menor complexidade computacional e interação de dados e é mais adequada para ambientes distribuídos.
Por meio dos casos de duas empresas iniciantes, Together e Gensyn.ai, a partir das perspectivas de otimização de tecnologia e design de camada de incentivo, são ilustradas a direção geral da pesquisa e as ideias específicas da rede de poder de computação distribuída descentralizada.
1. Poder de Computação Distribuído - Treinamento de Modelo Grande
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)
1. Processo geral de treinamento
Tome como exemplo o treinamento de um modelo grande com 175 bilhões de parâmetros. Devido ao grande 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.
Preparação de dados: Primeiro, é necessário um grande conjunto de dados, que contém vários dados, como informações da Internet, notícias, livros, etc. Esses dados precisam ser pré-processados antes do treinamento, incluindo limpeza de texto, tokenização, construção de vocabulário, etc.
**Segmentação de dados: **Os dados processados serão divididos em vários lotes para processamento paralelo em várias GPUs. Suponha que o tamanho do lote selecionado seja 512, ou seja, cada lote contém 512 sequências de texto. Em seguida, dividimos todo o conjunto de dados em lotes, formando uma fila de lotes.
Transferência de dados entre dispositivos: No início de cada etapa de treinamento, a CPU pega um lote da fila de lotes e, em seguida, envia os dados desse lote para a GPU por meio do barramento PCIe. Supondo que o comprimento médio de cada sequência de texto seja de 1.024 tokens, o tamanho dos dados de cada lote é de aproximadamente 512 * 1.024 * 4B = 2 MB (supondo que cada token seja representado por um número de ponto flutuante de precisão única de 4 bytes). Esse processo de transferência de dados geralmente leva apenas alguns milissegundos.
**Treinamento paralelo: ** Após cada dispositivo de GPU receber os dados, ele começa a realizar cálculos de avanço e retrocesso e calcula o gradiente de cada parâmetro. Devido à grande escala do modelo, a memória de uma única GPU não pode armazenar todos os parâmetros, então usamos a tecnologia paralela de modelo para distribuir os parâmetros do modelo em várias GPUs.
** Agregação de Gradiente e Atualização de Parâmetros: ** Após a conclusão do cálculo de retropropagação, cada GPU obtém o gradiente de uma parte dos parâmetros. Esses gradientes precisam ser agregados em todos os dispositivos GPU para calcular o gradiente global. Isso requer transmissão de dados pela rede. Supondo que uma rede de 25 Gbps seja usada, leva cerca de 224 segundos para transmitir 700 GB de dados (supondo que cada parâmetro use números de ponto flutuante de precisão simples, então 175 bilhões de parâmetros são cerca de 700 GB). Cada GPU atualiza seus parâmetros armazenados de acordo com o gradiente global.
**Sincronização: **Após a atualização dos parâmetros, todos os dispositivos GPU precisam ser sincronizados para garantir que todos usem parâmetros de modelo consistentes para a próxima etapa do treinamento. Isso também requer transferência de dados pela rede.
Repita as etapas de treinamento: Repita as etapas acima até que o treinamento de todos os lotes seja concluído ou o número predeterminado de rodadas de treinamento (época) seja alcançado.
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.
2. O gargalo da sobrecarga de comunicação:
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:
**Transmissão de dados: **Durante o treinamento, os nós precisam trocar frequentemente os parâmetros do modelo e as informações de gradiente. Isso requer a transmissão de uma grande quantidade de dados na rede, consumindo uma grande quantidade de largura de banda da rede. Se as condições da rede forem ruins ou a distância entre os nós de computação for grande, o atraso da transmissão de dados será alto, aumentando ainda mais a sobrecarga de comunicação.
**Problema de sincronização: **Os nós precisam trabalhar juntos durante o treinamento para garantir o andamento correto do treinamento. Isso requer operações frequentes de sincronização entre os nós, como atualização de parâmetros do modelo, computação de gradientes globais, etc. Essas operações síncronas precisam transmitir uma grande quantidade de dados na rede e precisam esperar que todos os nós concluam a operação, o que causará muita sobrecarga de comunicação e tempo de espera.
**Acumulação e atualização de gradiente: ** Durante o processo de treinamento, cada nó precisa calcular seu próprio gradiente e enviá-lo para outros nós para acumulação e atualização. Isso requer a transmissão de uma grande quantidade de dados de gradiente na rede e a necessidade de esperar que todos os nós concluam o cálculo e a transmissão de gradientes, o que também é o motivo de uma grande sobrecarga de comunicação.
**Consistência dos dados: **É necessário garantir que os parâmetros do modelo de cada nó sejam consistentes. Isso requer soma de verificação de dados frequente e operações de sincronização entre os nós, o que resulta em uma grande sobrecarga de comunicação.
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), o armazenamento desses 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 na 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 modelos grandes ainda requer 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 e cada servidor tenha 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ó será 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.
3. Por que a rede de poder de computação distribuída não pode fazer essas otimizações
Isso pode ser feito, mas em comparação com a sala de computadores centralizada, o efeito dessas otimizações é muito limitado.
Otimização da topologia de rede: Na sala de informática centralizada, o hardware e o layout da rede podem ser controlados diretamente, para que a topologia da rede possa ser projetada e otimizada de acordo com as necessidades. No entanto, em um ambiente distribuído, os nós de computação são distribuídos em diferentes localizações geográficas, mesmo um na China e outro nos Estados Unidos, e não há como controlar diretamente a conexão de rede entre eles. Embora o software possa ser usado para otimizar o caminho de transmissão de dados, não é tão eficaz quanto otimizar diretamente a rede de hardware. Ao mesmo tempo, devido às diferenças nas localizações geográficas, os atrasos e larguras de banda da rede também variam muito, o que limita ainda mais o efeito da otimização da topologia da rede.
**Paralelismo de modelo:**Paralelismo de modelo é uma tecnologia que divide os parâmetros do modelo em vários nós de computação e melhora a velocidade de treinamento por meio do processamento paralelo. No entanto, esse método geralmente precisa transmitir dados entre os nós com frequência, portanto, possui altos requisitos de largura de banda e latência da rede. Em uma sala de computadores centralizada, devido à alta largura de banda da rede e baixa latência, o paralelismo do modelo pode ser muito eficaz. No entanto, em um ambiente distribuído, o paralelismo do modelo é bastante limitado devido às más condições da rede.
4. Segurança de dados e desafios de privacidade
Quase todos os links envolvendo processamento e transmissão de dados podem afetar a segurança e a privacidade dos dados:
**Distribuição de dados: **Os dados de treinamento precisam ser distribuídos para cada nó participante do cálculo. Os dados neste link podem ser usados/vazados de forma maliciosa em nós distribuídos.
**Treinamento do modelo: **Durante o processo de treinamento, cada nó usará seus dados atribuídos para cálculo e, em seguida, produzirá a atualização ou gradiente dos parâmetros do modelo. Durante esse processo, se o processo de cálculo do nó for roubado ou o resultado for analisado de forma maliciosa, os dados também podem vazar.
Agregação de parâmetros e gradientes: as saídas de nós individuais precisam ser agregadas para atualizar o modelo global, e a comunicação durante o processo de agregação também pode vazar informações sobre os dados de treinamento.
Quais soluções existem para questões de privacidade de dados?
**Computação segura de várias partes:**O SMC foi aplicado com sucesso em algumas tarefas específicas de computação de pequena escala. No entanto, em tarefas de treinamento distribuído em larga escala, devido ao seu grande overhead computacional e de comunicação, ainda não tem sido amplamente utilizado.
**Privacidade diferencial: ** Aplicado em determinadas tarefas de coleta e análise de dados, como estatísticas de usuários do Chrome, etc. Mas em tarefas de aprendizado profundo em grande escala, o DP terá um impacto na precisão do modelo. Ao mesmo tempo, também é um desafio projetar um mecanismo apropriado de geração e adição de ruído.
**Federal learning: **Aplicado em algumas tarefas de treinamento de modelo de dispositivo de ponta, como previsão de vocabulário para teclados Android, etc. No entanto, em tarefas de treinamento distribuídas em larga escala, o FL enfrenta problemas como alta sobrecarga de comunicação e coordenação complexa.
Criptografia homomórfica: foi aplicada com sucesso em algumas tarefas com menor complexidade computacional. No entanto, em tarefas de treinamento distribuído em larga escala, devido ao seu alto overhead computacional, ainda não tem sido amplamente utilizado.
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.
O ZK, que tem grandes esperanças, pode resolver o problema de privacidade de dados no treinamento de modelos grandes?
**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 larga escala:
** Aumento da sobrecarga de computação e comunicação: ** Construir e verificar provas de conhecimento zero requer muitos recursos de computação. Além disso, o overhead de comunicação do ZKP também é alto, devido à necessidade de transmitir a própria prova. Essas despesas gerais podem se tornar especialmente significativas no caso de treinamento de modelo grande. Por exemplo, se o cálculo de cada minilote exigir a geração de uma prova, isso pode aumentar significativamente o tempo e o custo geral do treinamento.
**Complexidade do protocolo ZK: **Projetar e implementar um protocolo ZKP adequado para treinamento de modelos grandes será muito complicado. Este protocolo precisa ser capaz de lidar com dados de grande escala e cálculos complexos, além de ser capaz de lidar com possíveis erros anormais.
**Compatibilidade de hardware e software: **O uso do ZKP requer suporte específico de hardware e software, que pode não estar disponível em todos os dispositivos de computação distribuídos.
Resumo
Usar o ZKP para redes de computação distribuída em grande escala para treinar grandes modelos exigirá vários anos de pesquisa e desenvolvimento, e também exigirá mais energia e recursos da comunidade acadêmica nessa direção.
2. Poder de Computação Distribuído—Modelo de Raciocínio
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 amadurecem após passar por um ponto alto. Os requisitos de raciocínio 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)
1. Desafio
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.
2. Viabilidade
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 de cada camada, incluindo o cálculo da função de ativação, o cálculo da função de perda, o cálculo de o gradiente e a 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, é necessário converter o texto de entrada em um vetor e, em seguida, realizar a propagação direta através de cada camada do modelo (geralmente a camada Transformer) e, finalmente, obter a distribuição de probabilidade de saída e gerar a próxima palavra de acordo com esta distribuição. Nas GANs, o modelo precisa gerar uma imagem baseada no 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
**Seja um modelo de linguagem grande ou um modelo de imagem generativa, a complexidade computacional e a interação de dados das tarefas de raciocínio são relativamente baixas e é mais adequado para redes de poder de computação distribuídas descentralizadas. Isso é o que vemos agora. A maioria dos projetos são trabalhando em uma direção. **
3. Projeto
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:
1.Juntos
A Together é uma empresa que se concentra no código aberto de grandes modelos e está comprometida com soluções descentralizadas de poder de computação de IA. Ela espera que qualquer pessoa, em qualquer lugar, possa acessar e usar a IA. Juntos, concluímos uma rodada inicial 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 larga 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 por equipes como Together, Ontocord.ai, ETH DS3Lab, Stanford CRFM e Hazy Research. O objetivo é 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 desembarcou no treinamento do modelo
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 um trabalho sobre como superar o gargalo de comunicação no treinamento descentralizado no início de seu estabelecimento. Eles também publicaram um artigo relacionado sobre NeurIPS 2022: Superando Gargalos de Comunicação para Treinamento Descentralizado. 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 da Together também descobriu que, embora a rede fosse 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, é muito 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), apenas 31% mais lento do que o desempenho de treinamento de ponta a ponta em redes de computação 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 modelos em grande escala, 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 e raciocínio com modelos e, em seguida, para poder de computação distribuído em grandes Layout no treinamento do modelo. — Fica aquele tipo de acúmulo e aquela sensação de cabelo fino :)
Mas até agora, não vi 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.
2.Gensyn.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:
Certifique-se de que os benefícios sejam atraentes o suficiente;
Garantir que cada minerador receba os benefícios que merece, incluindo anti-trapaça e mais pagamento por mais trabalho;
Certifique-se de que as tarefas sejam direta e razoavelmente agendadas e alocadas em nós diferentes, e não haverá um grande número de nós ociosos ou superlotação de alguns nós;
O algoritmo de incentivo é simples e eficiente e não causará muita sobrecarga e atraso no sistema;
……
Veja como Gensyn.ai faz isso:
Torne-se um nó
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.
verificar
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.
Se o solucionador e o verificador divergirem
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 é: conciso e eficiente. No entanto, está limitado ao nível teórico no momento, e a implementação específica pode enfrentar os seguintes desafios:
No modelo econômico, como definir parâmetros apropriados para que possa efetivamente prevenir fraudes sem criar um limite excessivamente alto para os participantes.
Em termos de implementação técnica, como formular uma prova de raciocínio de criptografia periódica eficaz também é uma questão complexa que requer conhecimento avançado de criptografia.
Em termos de alocação de tarefas, a forma como a rede de poder de computação seleciona e aloca tarefas para diferentes solucionadores também precisa do suporte de um algoritmo de escalonamento razoável. É obviamente questionável em termos de eficiência e viabilidade alocar tarefas apenas de acordo para o mecanismo de licitação, por exemplo, nós com forte poder de computação podem lidar com tarefas de maior escala, mas não podem participar de licitações (isso envolve o incentivo para a disponibilidade do nó), nós com baixo poder de computação podem oferecer o lance mais alto, mas não são adequados para processar algumas tarefas complexas de larga escala. tarefas de computação em escala.
4. Pensando no futuro
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 estrutura 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 não é mais 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 grandes modelos de linguagem, mas está preocupado apenas com um alvo de previsão muito refinado. Portanto, na maioria dos cenários, pequenos modelos de IA ainda são a opção mais viável e não devem ser negligenciados prematuramente na onda de modelos grandes. **
Ver original
O conteúdo é apenas para referência, não uma solicitação ou oferta. Nenhum aconselhamento fiscal, de investimento ou jurídico é fornecido. Consulte a isenção de responsabilidade para obter mais informações sobre riscos.
Qual é o uso do Web3 na demanda sem precedentes por poder de computação de IA?
Conteúdo importante:
1. Poder de Computação Distribuído - Treinamento de Modelo Grande
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)
1. Processo geral de treinamento
Tome como exemplo o treinamento de um modelo grande com 175 bilhões de parâmetros. Devido ao grande 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.
2. O gargalo da sobrecarga de comunicação:
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), o armazenamento desses 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 na 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 modelos grandes ainda requer 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 e cada servidor tenha 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ó será 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.
3. Por que a rede de poder de computação distribuída não pode fazer essas otimizações
Isso pode ser feito, mas em comparação com a sala de computadores centralizada, o efeito dessas otimizações é muito limitado.
Otimização da topologia de rede: Na sala de informática centralizada, o hardware e o layout da rede podem ser controlados diretamente, para que a topologia da rede possa ser projetada e otimizada de acordo com as necessidades. No entanto, em um ambiente distribuído, os nós de computação são distribuídos em diferentes localizações geográficas, mesmo um na China e outro nos Estados Unidos, e não há como controlar diretamente a conexão de rede entre eles. Embora o software possa ser usado para otimizar o caminho de transmissão de dados, não é tão eficaz quanto otimizar diretamente a rede de hardware. Ao mesmo tempo, devido às diferenças nas localizações geográficas, os atrasos e larguras de banda da rede também variam muito, o que limita ainda mais o efeito da otimização da topologia da rede.
**Paralelismo de modelo:**Paralelismo de modelo é uma tecnologia que divide os parâmetros do modelo em vários nós de computação e melhora a velocidade de treinamento por meio do processamento paralelo. No entanto, esse método geralmente precisa transmitir dados entre os nós com frequência, portanto, possui altos requisitos de largura de banda e latência da rede. Em uma sala de computadores centralizada, devido à alta largura de banda da rede e baixa latência, o paralelismo do modelo pode ser muito eficaz. No entanto, em um ambiente distribuído, o paralelismo do modelo é bastante limitado devido às más condições da rede.
4. Segurança de dados e desafios de privacidade
Quase todos os links envolvendo processamento e transmissão de dados podem afetar a segurança e a privacidade dos dados:
Quais soluções existem 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.
O ZK, que tem grandes esperanças, pode resolver o problema de privacidade de dados no treinamento de modelos grandes?
**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 larga escala:
** Aumento da sobrecarga de computação e comunicação: ** Construir e verificar provas de conhecimento zero requer muitos recursos de computação. Além disso, o overhead de comunicação do ZKP também é alto, devido à necessidade de transmitir a própria prova. Essas despesas gerais podem se tornar especialmente significativas no caso de treinamento de modelo grande. Por exemplo, se o cálculo de cada minilote exigir a geração de uma prova, isso pode aumentar significativamente o tempo e o custo geral do treinamento.
**Complexidade do protocolo ZK: **Projetar e implementar um protocolo ZKP adequado para treinamento de modelos grandes será muito complicado. Este protocolo precisa ser capaz de lidar com dados de grande escala e cálculos complexos, além de ser capaz de lidar com possíveis erros anormais.
**Compatibilidade de hardware e software: **O uso do ZKP requer suporte específico de hardware e software, que pode não estar disponível em todos os dispositivos de computação distribuídos.
Resumo
Usar o ZKP para redes de computação distribuída em grande escala para treinar grandes modelos exigirá vários anos de pesquisa e desenvolvimento, e também exigirá mais energia e recursos da comunidade acadêmica nessa direção.
2. Poder de Computação Distribuído—Modelo de Raciocínio
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 amadurecem após passar por um ponto alto. Os requisitos de raciocínio 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)
1. Desafio
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.
2. Viabilidade
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 de cada camada, incluindo o cálculo da função de ativação, o cálculo da função de perda, o cálculo de o gradiente e a 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, é necessário converter o texto de entrada em um vetor e, em seguida, realizar a propagação direta através de cada camada do modelo (geralmente a camada Transformer) e, finalmente, obter a distribuição de probabilidade de saída e gerar a próxima palavra de acordo com esta distribuição. Nas GANs, o modelo precisa gerar uma imagem baseada no 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
**Seja um modelo de linguagem grande ou um modelo de imagem generativa, a complexidade computacional e a interação de dados das tarefas de raciocínio são relativamente baixas e é mais adequado para redes de poder de computação distribuídas descentralizadas. Isso é o que vemos agora. A maioria dos projetos são trabalhando em uma direção. **
3. Projeto
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:
1.Juntos
A Together é uma empresa que se concentra no código aberto de grandes modelos e está comprometida com soluções descentralizadas de poder de computação de IA. Ela espera que qualquer pessoa, em qualquer lugar, possa acessar e usar a IA. Juntos, concluímos uma rodada inicial 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 larga 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 por equipes como Together, Ontocord.ai, ETH DS3Lab, Stanford CRFM e Hazy Research. O objetivo é 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 desembarcou no treinamento do modelo
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 um trabalho sobre como superar o gargalo de comunicação no treinamento descentralizado no início de seu estabelecimento. Eles também publicaram um artigo relacionado sobre NeurIPS 2022: Superando Gargalos de Comunicação para Treinamento Descentralizado. Podemos resumir principalmente as seguintes direções:
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 da Together também descobriu que, embora a rede fosse 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, é muito interessante preencher a lacuna entre redes distribuídas e clusters centralizados por meio da otimização de agendamento. **
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), apenas 31% mais lento do que o desempenho de treinamento de ponta a ponta em redes de computação 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%.
A configuração conjunta da equipe é muito abrangente, os membros têm uma formação acadêmica muito forte, desde o desenvolvimento de modelos em grande escala, 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 e raciocínio com modelos e, em seguida, para poder de computação distribuído em grandes Layout no treinamento do modelo. — Fica aquele tipo de acúmulo e aquela sensação de cabelo fino :)
Mas até agora, não vi 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.
2.Gensyn.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 é: conciso e eficiente. No entanto, está limitado ao nível teórico no momento, e a implementação específica pode enfrentar os seguintes desafios:
No modelo econômico, como definir parâmetros apropriados para que possa efetivamente prevenir fraudes sem criar um limite excessivamente alto para os participantes.
Em termos de implementação técnica, como formular uma prova de raciocínio de criptografia periódica eficaz também é uma questão complexa que requer conhecimento avançado de criptografia.
Em termos de alocação de tarefas, a forma como a rede de poder de computação seleciona e aloca tarefas para diferentes solucionadores também precisa do suporte de um algoritmo de escalonamento razoável. É obviamente questionável em termos de eficiência e viabilidade alocar tarefas apenas de acordo para o mecanismo de licitação, por exemplo, nós com forte poder de computação podem lidar com tarefas de maior escala, mas não podem participar de licitações (isso envolve o incentivo para a disponibilidade do nó), nós com baixo poder de computação podem oferecer o lance mais alto, mas não são adequados para processar algumas tarefas complexas de larga escala. tarefas de computação em escala.
4. Pensando no futuro
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 estrutura 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 não é mais 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 grandes modelos de linguagem, mas está preocupado apenas com um alvo de previsão muito refinado. Portanto, na maioria dos cenários, pequenos modelos de IA ainda são a opção mais viável e não devem ser negligenciados prematuramente na onda de modelos grandes. **