Arquitetura real · Staff
Meta DLRM
Arquitetura real em produção. Pontos centrais: tabelas de embedding gigantes e paralelismo de modelo + paralelismo de dados.
Resposta curta
Arquitetura real em produção. Pontos centrais: tabelas de embedding gigantes e paralelismo de modelo + paralelismo de dados. Modelos de recomendação baseados em redes neurais diferem de outras redes profundas porque precisam trabalhar com dados categóricos. O blog de IA da empresa conta que a falta de detalhes públicos de modelos e de conjuntos de dados representativos atrasava a comunidade…
01 · CONTEXTO
Um modelo de recomendação que não cabe em um dispositivo
Modelos de recomendação baseados em redes neurais diferem de outras redes profundas porque precisam trabalhar com dados categóricos. O blog de IA da empresa conta que a falta de detalhes públicos de modelos e de conjuntos de dados representativos atrasava a comunidade de pesquisa, e anuncia a abertura do código do DLRM. O artigo traz a implementação em PyTorch e em Caffe2.
Esses sistemas são usados em tarefas como a previsão de taxa de cliques em anúncios e o ranqueamento.
02 · ARQUITETURA
Do dado categórico à probabilidade de clique
O DLRM trata dois tipos de entrada. As características categóricas passam por embeddings; as contínuas, por uma MLP inferior. Depois as interações de segunda ordem são calculadas de forma explícita, e o resultado passa por uma MLP superior e por uma sigmoide, que dá a probabilidade de clique.
A interação é o produto escalar entre todos os pares de vetores de embedding e das características densas já processadas. Segundo o artigo, isso imita máquinas de fatoração e reduz de forma significativa a dimensionalidade do modelo, por considerar só termos cruzados.
As características categóricas são processadas por embeddings.
As características contínuas passam pela MLP inferior.
A camada de interação calcula o produto escalar entre pares de vetores de embedding e das características densas processadas.
A MLP superior processa as interações e uma sigmoide devolve a probabilidade de clique.
03 · DOIS GARGALOS
Embeddings pesam em memória, MLPs pesam em cálculo
Segundo o artigo, o DLRM tem até várias ordens de magnitude mais parâmetros do que outros modelos comuns, como as redes convolucionais, e o treino pode levar semanas ou mais. Por isso é importante paralelizá-lo de forma eficiente.
| Aspecto | Tabelas de embedding | MLPs |
|---|---|---|
| Peso principal | Concentram a maioria dos parâmetros; várias tabelas exigem, cada uma, mais de vários GB de memória | Parâmetros menores em memória, mas muito cálculo |
| Gargalo | Capacidade de memória e largura de banda | Cálculo |
| Paralelismo natural | Paralelismo de modelo | Paralelismo de dados |
| Motivo | Replicar tabelas grandes em cada dispositivo é proibitivo | Amostras em dispositivos diferentes, com comunicação só ao acumular atualizações |
04 · PARALELISMO COMBINADO
Repartir as embeddings, replicar as MLPs
O esquema do artigo combina os dois: paralelismo de modelo nas tabelas de embedding, para aliviar a restrição de memória, e paralelismo de dados nas camadas totalmente conectadas, para escalar o cálculo. Segundo o artigo, essa combinação é um requisito único do DLRM, e o artigo diz que nem o Caffe2 nem o PyTorch suportam essa combinação.
As tabelas de embedding ficam repartidas entre os dispositivos, e cada um guarda só uma parte delas.
Ao fim da busca, cada dispositivo tem os vetores das tabelas que guarda, mas a MLP superior e a interação precisam de todos os embeddings.
A comunicação all-to-all, chamada de butterfly shuffle, redistribui o resultado da busca do minibatch inteiro em partes do minibatch para todos os dispositivos.
Cada dispositivo processa amostras diferentes com uma réplica das MLPs, que é o paralelismo de dados.
Na volta, as atualizações de parâmetros das MLPs são acumuladas com allreduce e aplicadas às réplicas de modo síncrono, deixando os parâmetros consistentes antes de cada iteração.
Na versão descrita no artigo, as transferências do shuffle são cópias explícitas, e os autores pretendem otimizá-las.
05 · MEDIÇÃO E LIMITES
Como o benchmark é usado e onde ele para
O artigo apresenta o DLRM como benchmark para experimentação algorítmica e co-design de sistemas. O benchmark gera entradas aleatórias e sintéticas; as sintéticas permitem, por exemplo, não compartilhar um conjunto de dados por privacidade, expressando as características categóricas por distribuições.
Com dados públicos, o conjunto Kaggle de anúncios tem 13 características contínuas e 26 categóricas, o que define o tamanho da entrada da MLP e o número de embeddings do modelo.
No perfil de um modelo de exemplo, a maior parte do tempo vai para a busca de embeddings e para as camadas totalmente conectadas. Na CPU essas camadas pesam bastante, e na GPU são quase desprezíveis.
Perguntas frequentes
O que é Meta DLRM?
Arquitetura real em produção. Pontos centrais: tabelas de embedding gigantes e paralelismo de modelo + paralelismo de dados.
O que o design de Meta DLRM cobre?
Ele está organizado nestas seções: Um modelo de recomendação que não cabe em um dispositivo, Do dado categórico à probabilidade de clique, Embeddings pesam em memória, MLPs pesam em cálculo, Repartir as embeddings, replicar as MLPs e Como o benchmark é usado e onde ele para.
Quanto tempo leva Meta DLRM e qual é o nível?
Leva cerca de 18 minutos para ler e tem nível Staff.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.