Design clássico · Staff
Serviço de LLM (ChatGPT)
Projeto de entrevista clássico. Pontos centrais: serviço de LLM (inferência) e algoritmos de rate limiting.
Resposta curta
Projeto de entrevista clássico. Pontos centrais: serviço de LLM (inferência) e algoritmos de rate limiting. O exercício pede o sistema que serve um assistente de chat: o usuário envia prompts em linguagem natural e recebe respostas transmitidas de um modelo de linguagem grande.
01 · CONTEXTO
Um chat em cima de um modelo
O exercício pede o sistema que serve um assistente de chat: o usuário envia prompts em linguagem natural e recebe respostas transmitidas de um modelo de linguagem grande. As conversas ficam salvas, e o usuário pode voltar a um chat antigo e continuar de onde parou.
O enunciado trata o modelo como uma caixa-preta chamada pelo sistema, sem treiná-lo nem operar seus internos. O escopo é só texto de entrada e de saída. Editar ou ramificar mensagens existentes fica fora.
Os dois requisitos funcionais são enviar um prompt e receber uma resposta gerada por IA, e ver chats passados para retomar a conversa com o contexto anterior no prompt.
02 · REQUISITOS
Latência, GPU e custo
As partes interessantes do problema, segundo o enunciado, são transmitir tokens rápido, escalonar a capacidade limitada de GPU e manter o custo sob controle conforme as conversas crescem.
| Eixo | O que o enunciado destaca |
|---|---|
| Latência | A latência até o primeiro token pesa mais que o tempo total de conclusão. |
| Computação | As GPUs são limitadas e caras, então é preciso ser deliberado sobre quem recebe computação e quando. |
| Custo | O custo precisa ficar sob controle conforme as conversas crescem. |
| Escopo | Só texto de entrada e de saída, sem imagem, áudio ou vídeo. |
Para a escala, o enunciado parte de pouco mais de duzentos milhões de usuários ativos por dia. A estimativa dele dá cerca de 20 mil prompts por segundo no pico e cerca de 120 mil respostas em geração ao mesmo tempo.
03 · DESENHO
Do prompt ao token
No desenho, o cliente de chat envia o prompt pela entrada da API.
No desenho, o serviço de conversas consulta e atualiza o armazém de conversas, de onde vem o contexto do chat.
No desenho, o serviço de conversas coloca o pedido numa fila de geração, que fica entre ele e as GPUs.
No desenho, os workers de GPU retiram pedidos da fila e chamam o modelo como caixa-preta.
No desenho, os tokens gerados voltam ao serviço de conversas e dele seguem ao cliente.
O desenho separa o serviço de conversas dos workers de GPU por uma fila de geração. Os tokens voltam em streaming ao cliente. O enunciado diz que a latência até o primeiro token pesa mais que o tempo total de conclusão.
As perguntas de aprofundamento da próxima seção tratam de como esse caminho entrega tokens, sobrevive a reconexões e usa as GPUs.
04 · APROFUNDAMENTOS
As perguntas que sobram
O enunciado lista cinco perguntas de aprofundamento, que servem de roteiro de estudo para este caso.
| Aprofundamento | Pergunta levantada pelo enunciado |
|---|---|
| Streaming | Como transmitir tokens de volta ao cliente? |
| Continuidade | Como manter o stream vivo em reconexões e deploys? |
| Escalonamento | Como rotear e escalonar pedidos de geração entre workers de GPU? |
| Justiça entre planos | Como impedir que usuários pesados dominem o pool de GPU e ainda dar experiência melhor aos planos pagos? |
| Custo em conversas longas | Como controlar o custo de inferência sem deixar o assistente parecer esquecido? |
Segundo o guia, os padrões por trás desses prompts de LLM são os mesmos de sistemas distribuídos já conhecidos: filas, batching, balanceamento de carga e processamento assíncrono. O guia também recomenda entender como funciona rate limiting para APIs de LLM.
No desenho, o pedido de um usuário chega pela entrada da API.
No desenho, a entrada encaminha o pedido ao controle de admissão antes de qualquer fila.
No desenho, o controle de admissão consulta os contadores de uso do usuário.
No desenho, só o pedido aceito entra na fila de geração.
No desenho, os workers de GPU consomem a fila e enviam métricas ao monitoramento.
O segundo desenho coloca um controle de admissão antes da fila, para que o consumo de cada usuário seja medido antes de o pedido disputar GPU. Esse é um ponto de partida para a pergunta sobre usuários pesados e planos pagos, não uma resposta pronta.
A pergunta sobre custo em conversas longas se conecta à disciplina de custo e FinOps, e a de escalonar a GPU, ao serviço de ML.
Perguntas frequentes
O que é Serviço de LLM (ChatGPT)?
Projeto de entrevista clássico. Pontos centrais: serviço de LLM (inferência) e algoritmos de rate limiting.
O que o design de Serviço de LLM (ChatGPT) cobre?
Ele está organizado nestas seções: Um chat em cima de um modelo, Latência, GPU e custo, Do prompt ao token e As perguntas que sobram.
Quanto tempo leva Serviço de LLM (ChatGPT) e qual é o nível?
Leva cerca de 17 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.