Design clássico · Pleno
Gmail Smart Compose
Projeto de entrevista clássico. Pontos centrais: LM autorregressivo, latência abaixo de 100 ms, beam search e taxa de aceitação.
Resposta curta
Projeto de entrevista clássico. Pontos centrais: LM autorregressivo, latência abaixo de 100 ms, beam search e taxa de aceitação. O Smart Compose é um recurso do Gmail que usa aprendizado de máquina para oferecer sugestões de conclusão de frase enquanto a pessoa digita, para que o e-mail seja escrito mais rápido.
01 · CONTEXTO E DESAFIOS
Completar a frase enquanto a pessoa digita
O Smart Compose é um recurso do Gmail que usa aprendizado de máquina para oferecer sugestões de conclusão de frase enquanto a pessoa digita, para que o e-mail seja escrito mais rápido. É um bom exemplo de design de sistemas de ML.
Como as sugestões saem a cada tecla, o modelo precisa responder idealmente em até 100 ms para a pessoa não notar atraso. Ao mesmo tempo, o Gmail tem mais de 1,4 bilhão de usuários, então o modelo precisa de capacidade suficiente para sugerir sob medida em contextos sutilmente diferentes.
Havia ainda uma restrição de dados: os pesquisadores não tinham acesso aos e-mails e, por isso, precisaram desenvolver e treinar um sistema sobre um conjunto de dados que eles próprios não podem ler.
02 · O MODELO
Que contexto o modelo enxerga e por que um modelo híbrido
Modelos de linguagem típicos aprendem a prever a próxima palavra condicionada ao prefixo já digitado. Num e-mail, porém, as palavras digitadas são só um sinal: o modelo também é condicionado ao assunto e, se a pessoa está respondendo, ao e-mail anterior.
Uma abordagem seria tratar o problema como tradução automática sequência a sequência (seq2seq), em que a origem é o assunto somado ao e-mail anterior e o destino é o e-mail em escrita. A qualidade de predição era boa, mas a abordagem não atendeu à restrição de latência por ordens de grandeza.
A solução combinou um modelo de saco de palavras (BoW) com um modelo de linguagem recorrente (RNN-LM), mais rápido que os modelos seq2seq com apenas um leve sacrifício de qualidade. Assunto e e-mail anterior são codificados pela média dos embeddings de cada campo, e as médias unidas alimentam o RNN-LM em cada passo de decodificação.
| Critério | Sequência a sequência (seq2seq) | BoW com RNN-LM |
|---|---|---|
| Contexto | Origem é o assunto somado ao e-mail anterior | Média dos embeddings de cada campo |
| Qualidade de predição | Funcionou bem | Leve sacrifício de qualidade |
| Latência | Falhou por ordens de grandeza | Mais rápido que seq2seq |
O diagrama começa pelo editor, de onde saem os sinais que o modelo recebe.
O assunto e o e-mail anterior são codificados pela média dos embeddings de cada campo.
As médias unidas são entregues ao modelo recorrente em cada passo de decodificação, junto com as palavras já digitadas.
03 · TREINO E SERVING
Treinar rápido e servir no ritmo da digitação
O treino percorre bilhões de exemplos e exige ajuste de hiperparâmetros. Para acelerar, o time usou um TPUv2 Pod completo nos experimentos e conseguiu treinar um modelo até a convergência em menos de um dia.
Mesmo com o modelo híbrido, a versão inicial em CPU padrão tinha latência média de centenas de milissegundos. Ao transferir a maior parte da computação para TPUs, a latência média caiu para dezenas de milissegundos e uma única máquina passou a atender mais pedidos.
O editor envia um pedido de sugestão a cada tecla, e a resposta deve vir idealmente em até 100 ms.
Na versão inicial, a inferência rodava em CPU padrão, com latência média de centenas de milissegundos.
Com a maior parte da computação enviada às TPUs, a latência média caiu para dezenas de milissegundos e uma máquina passou a atender mais pedidos.
04 · PRIVACIDADE E PRÓXIMOS PASSOS
Viés, memorização e evolução do modelo
Modelos de linguagem podem refletir vieses humanos, com associações de palavras e conclusões de frase indesejadas. Quanto à privacidade, os modelos não podem expor informação privada, e o time fez testes extensivos para garantir que só frases comuns a múltiplos usuários fossem memorizadas.
Como evolução, o time cita arquiteturas mais avançadas, que só irão à produção quando a restrição de latência puder ser atendida, e modelos de linguagem pessoais, para emular o estilo de escrita de cada pessoa.
Perguntas frequentes
O que é Gmail Smart Compose?
Projeto de entrevista clássico. Pontos centrais: LM autorregressivo, latência abaixo de 100 ms, beam search e taxa de aceitação.
O que o design de Gmail Smart Compose cobre?
Ele está organizado nestas seções: Completar a frase enquanto a pessoa digita, Que contexto o modelo enxerga e por que um modelo híbrido, Treinar rápido e servir no ritmo da digitação e Viés, memorização e evolução do modelo.
Quanto tempo leva Gmail Smart Compose e qual é o nível?
Leva cerca de 14 minutos para ler e tem nível Pleno.
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.