Pular para o conteúdo

Arquitetura real · Staff

Meta DLRM

Arquitetura real em produção. Pontos centrais: tabelas de embedding gigantes e paralelismo de modelo + paralelismo de dados.

18 min de leitura · Fonte: Meta · Conteúdo revisado em 23 de outubro de 2026

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.

  1. As características categóricas são processadas por embeddings.

    Diagrama da arquitetura: DLRM: fluxo do modelo
    CLCaracterísticas categóricas
    CLCaracterísticas contínuas
    DBTabelas de embeddingembeddings
    CPMLP inferior
    CPInteração por produto escalar
    CPMLP superior e sigmoide
  2. As características contínuas passam pela MLP inferior.

    Diagrama da arquitetura: DLRM: fluxo do modelo
    CLCaracterísticas categóricas
    CLCaracterísticas contínuas
    DBTabelas de embedding
    CPMLP inferiorMLP inferior
    CPInteração por produto escalar
    CPMLP superior e sigmoide
  3. A camada de interação calcula o produto escalar entre pares de vetores de embedding e das características densas processadas.

    Diagrama da arquitetura: DLRM: fluxo do modelo
    CLCaracterísticas categóricas
    CLCaracterísticas contínuas
    DBTabelas de embedding
    CPMLP inferior
    CPInteração por produto escalarproduto escalar
    CPMLP superior e sigmoide
  4. A MLP superior processa as interações e uma sigmoide devolve a probabilidade de clique.

    Diagrama da arquitetura: DLRM: fluxo do modelo
    CLCaracterísticas categóricas
    CLCaracterísticas contínuas
    DBTabelas de embedding
    CPMLP inferior
    CPInteração por produto escalar
    CPMLP superior e sigmoideprobabilidade

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.

AspectoTabelas de embeddingMLPs
Peso principalConcentram a maioria dos parâmetros; várias tabelas exigem, cada uma, mais de vários GB de memóriaParâmetros menores em memória, mas muito cálculo
GargaloCapacidade de memória e largura de bandaCálculo
Paralelismo naturalParalelismo de modeloParalelismo de dados
MotivoReplicar tabelas grandes em cada dispositivo é proibitivoAmostras 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.

  1. As tabelas de embedding ficam repartidas entre os dispositivos, e cada um guarda só uma parte delas.

    Diagrama da arquitetura: DLRM: paralelismo combinado
    DBEmbeddings no dispositivo Aparte das tabelas
    DBEmbeddings no dispositivo Boutra parte
    CPButterfly shuffle (all-to-all)
    CPRéplica das MLPs no dispositivo A
    CPRéplica das MLPs no dispositivo B
    CPAcúmulo de gradientes (allreduce)
  2. 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.

    Diagrama da arquitetura: DLRM: paralelismo combinado
    DBEmbeddings no dispositivo A
    DBEmbeddings no dispositivo B
    CPButterfly shuffle (all-to-all)troca necessária
    CPRéplica das MLPs no dispositivo A
    CPRéplica das MLPs no dispositivo B
    CPAcúmulo de gradientes (allreduce)
  3. 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.

    Diagrama da arquitetura: DLRM: paralelismo combinado
    DBEmbeddings no dispositivo A
    DBEmbeddings no dispositivo B
    CPButterfly shuffle (all-to-all)all-to-all
    CPRéplica das MLPs no dispositivo A
    CPRéplica das MLPs no dispositivo B
    CPAcúmulo de gradientes (allreduce)
  4. Cada dispositivo processa amostras diferentes com uma réplica das MLPs, que é o paralelismo de dados.

    Diagrama da arquitetura: DLRM: paralelismo combinado
    DBEmbeddings no dispositivo A
    DBEmbeddings no dispositivo B
    CPButterfly shuffle (all-to-all)
    CPRéplica das MLPs no dispositivo Aréplica
    CPRéplica das MLPs no dispositivo Bréplica
    CPAcúmulo de gradientes (allreduce)
  5. 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.

    Diagrama da arquitetura: DLRM: paralelismo combinado
    DBEmbeddings no dispositivo A
    DBEmbeddings no dispositivo B
    CPButterfly shuffle (all-to-all)
    CPRéplica das MLPs no dispositivo A
    CPRéplica das MLPs no dispositivo B
    CPAcúmulo de gradientes (allreduce)allreduce
  6. Na versão descrita no artigo, as transferências do shuffle são cópias explícitas, e os autores pretendem otimizá-las.

    Diagrama da arquitetura: DLRM: paralelismo combinado
    DBEmbeddings no dispositivo A
    DBEmbeddings no dispositivo B
    CPButterfly shuffle (all-to-all)cópias explícitas
    CPRéplica das MLPs no dispositivo A
    CPRéplica das MLPs no dispositivo B
    CPAcúmulo de gradientes (allreduce)

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.