Pular para o conteúdo

Design clássico · Sênior

ChatGPT: chatbot assistente pessoal

Projeto de entrevista clássico. Pontos centrais: pré-treino → SFT → RLHF, KV cache, batching, guardrails e memória de conversa.

16 min de leitura · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

Projeto de entrevista clássico. Pontos centrais: pré-treino → SFT → RLHF, KV cache, batching, guardrails e memória de conversa. O ByteByteGo inclui no curso Generative AI System Design Interview um capítulo chamado “ChatGPT: Personal Assistant Chatbot”. A Educative tem, no curso de design de sistemas de IA generativa, um capítulo de geração texto-para-texto, descrito como o design de treino e…

01 · CONTEXTO

Um assistente conversacional em duas metades

O ByteByteGo inclui no curso Generative AI System Design Interview um capítulo chamado “ChatGPT: Personal Assistant Chatbot”. A Educative tem, no curso de design de sistemas de IA generativa, um capítulo de geração texto-para-texto, descrito como o design de treino e implantação de um sistema de IA conversacional eficiente.

O problema pode ser lido em duas metades: como o modelo é treinado para ajudar o usuário e como ele é servido a muitos usuários ao mesmo tempo. Ambas pertencem ao design de sistemas de machine learning.

02 · TREINO

Do modelo pré-treinado ao modelo alinhado

O artigo do InstructGPT parte de uma constatação: tornar os modelos maiores não os faz, por si só, seguir melhor a intenção do usuário, e modelos grandes podem gerar saídas falsas, tóxicas ou pouco úteis.

  1. O ponto de partida é um modelo de linguagem já pré-treinado.

    Diagrama da arquitetura: Treino em etapas: pré-treino, SFT, recompensa e PPO
    DBModelo pré-treinado
    DBDemonstrações dos rotuladores
    CPAjuste supervisionado
    DBComparações de preferência
    CPTreino do modelo de recompensa
    CPOtimização com PPO
    DBModelo alinhado
  2. Rotuladores demonstram o comportamento desejado sobre os prompts, e o modelo pré-treinado é ajustado com aprendizado supervisionado nesses dados.

    Diagrama da arquitetura: Treino em etapas: pré-treino, SFT, recompensa e PPO
    DBModelo pré-treinado
    DBDemonstrações dos rotuladores
    CPAjuste supervisionadosupervisionado
    DBComparações de preferência
    CPTreino do modelo de recompensa
    CPOtimização com PPO
    DBModelo alinhado
  3. Rotuladores comparam saídas do modelo e indicam qual preferem; essas comparações treinam um modelo de recompensa que prevê a saída preferida.

    Diagrama da arquitetura: Treino em etapas: pré-treino, SFT, recompensa e PPO
    DBModelo pré-treinado
    DBDemonstrações dos rotuladores
    CPAjuste supervisionado
    DBComparações de preferência
    CPTreino do modelo de recompensarecompensa
    CPOtimização com PPO
    DBModelo alinhado
  4. A saída do modelo de recompensa vira recompensa escalar, e a política supervisionada é ajustada com PPO para otimizá-la.

    Diagrama da arquitetura: Treino em etapas: pré-treino, SFT, recompensa e PPO
    DBModelo pré-treinado
    DBDemonstrações dos rotuladores
    CPAjuste supervisionado
    DBComparações de preferência
    CPTreino do modelo de recompensa
    CPOtimização com PPOPPO
    DBModelo alinhado
  5. As etapas de comparação e de otimização podem ser repetidas continuamente; a maior parte dos dados de comparação vem das políticas supervisionadas, e uma parte vem das políticas PPO.

    Diagrama da arquitetura: Treino em etapas: pré-treino, SFT, recompensa e PPO
    DBModelo pré-treinado
    DBDemonstrações dos rotuladores
    CPAjuste supervisionado
    DBComparações de preferênciadados novos
    CPTreino do modelo de recompensa
    CPOtimização com PPO
    DBModelo alinhado
  6. No teste do artigo, saídas do InstructGPT de 1.3B parâmetros foram preferidas às do GPT-3 de 175B, com mais de 100x mais parâmetros.

    Diagrama da arquitetura: Treino em etapas: pré-treino, SFT, recompensa e PPO
    DBModelo pré-treinado
    DBDemonstrações dos rotuladores
    CPAjuste supervisionado
    DBComparações de preferência
    CPTreino do modelo de recompensa
    CPOtimização com PPO
    DBModelo alinhadoalinhado

Os prompts de treino enviados a versões anteriores do InstructGPT no API Playground passam por um filtro que remove os que contêm PII.

03 · SERVIÇO

Servir o modelo a muitos usuários

Depois do treino, o modelo precisa ser servido a vários usuários ao mesmo tempo. O desenho de referência coloca um balanceador diante dos servidores de inferência e uma camada de guardrails entre a entrada e o modelo.

  1. O diagrama começa pelo usuário, que envia a mensagem à entrada da API.

    Diagrama da arquitetura: Serviço de chat com inferência em GPU
    CLUsuário
    NWEntrada da API
    CPGuardrails
    NWBalanceador
    CPServidor de inferência
    CHCache KV na GPU
    DBHistórico da conversa
    NWMétricas
  2. O diagrama mostra uma camada de guardrails entre a entrada da API e o balanceador.

    Diagrama da arquitetura: Serviço de chat com inferência em GPU
    CLUsuário
    NWEntrada da API
    CPGuardrailsguardrails
    NWBalanceador
    CPServidor de inferência
    CHCache KV na GPU
    DBHistórico da conversa
    NWMétricas
  3. O diagrama coloca um balanceador diante do servidor de inferência.

    Diagrama da arquitetura: Serviço de chat com inferência em GPU
    CLUsuário
    NWEntrada da API
    CPGuardrails
    NWBalanceador
    CPServidor de inferência
    CHCache KV na GPU
    DBHistórico da conversa
    NWMétricas
  4. O diagrama liga o servidor de inferência a um armazenamento com o histórico da conversa.

    Diagrama da arquitetura: Serviço de chat com inferência em GPU
    CLUsuário
    NWEntrada da API
    CPGuardrails
    NWBalanceador
    CPServidor de inferência
    CHCache KV na GPU
    DBHistórico da conversa
    NWMétricas
  5. Em Transformers, os estados das requisições são os tensores de chave e valor da atenção, o cache KV, e a gestão desse cache é determinante para o tamanho máximo do lote.

    Diagrama da arquitetura: Serviço de chat com inferência em GPU
    CLUsuário
    NWEntrada da API
    CPGuardrails
    NWBalanceador
    CPServidor de inferência
    CHCache KV na GPUcache KV
    DBHistórico da conversa
    NWMétricas
  6. O diagrama termina em um destino de métricas ligado ao servidor de inferência.

    Diagrama da arquitetura: Serviço de chat com inferência em GPU
    CLUsuário
    NWEntrada da API
    CPGuardrails
    NWBalanceador
    CPServidor de inferência
    CHCache KV na GPU
    DBHistórico da conversa
    NWMétricas

A geração token a token torna a carga memory-bound, subutiliza a computação da GPU e limita a vazão. No exemplo do artigo do vLLM, um LLM de 13B parâmetros em uma GPU NVIDIA A100 com 40GB de memória, aproximadamente 65% da memória fica com os pesos do modelo e perto de 30% guarda os estados dinâmicos das requisições.

04 · LOTE

Agrupar requisições sem fazer ninguém esperar

A vazão melhora ao agrupar várias requisições em lote. Como elas compartilham os mesmos pesos, o custo de mover pesos é amortizado entre as requisições do lote.

  1. As requisições dos usuários podem chegar em momentos diferentes.

    Diagrama da arquitetura: Agendamento de lote na inferência
    CLUsuários
    QFila de requisições
    CPAgendador de lote
    CPServidor com GPU
    CHCache KV
  2. Uma estratégia de lote ingênua faz as requisições antigas esperarem as novas, ou atrasa as novas até as antigas terminarem, com atrasos significativos de fila.

    Diagrama da arquitetura: Agendamento de lote na inferência
    CLUsuários
    QFila de requisiçõesespera
    CPAgendador de lote
    CPServidor com GPU
    CHCache KV
  3. As requisições podem ter comprimentos de entrada e saída muito diferentes, e uma técnica direta de lote preenche entradas e saídas para igualar comprimentos, desperdiçando computação e memória da GPU.

    Diagrama da arquitetura: Agendamento de lote na inferência
    CLUsuários
    QFila de requisições
    CPAgendador de lote
    CPServidor com GPUdesperdício
    CHCache KV
  4. Com lote de granularidade fina, após cada iteração as requisições concluídas saem do lote e novas entram, e uma nova requisição espera uma única iteração, não o lote inteiro.

    Diagrama da arquitetura: Agendamento de lote na inferência
    CLUsuários
    QFila de requisições
    CPAgendador de lotepor iteração
    CPServidor com GPU
    CHCache KV
  5. A gestão do cache KV é determinante para o tamanho máximo do lote.

    Diagrama da arquitetura: Agendamento de lote na inferência
    CLUsuários
    QFila de requisições
    CPAgendador de lote
    CPServidor com GPU
    CHCache KVlimita o lote
Lote ingênuoLote por iteração
EsperaRequisições antigas esperam as novas, ou as novas esperam as antigas terminaremUma nova requisição espera uma única iteração, não o lote inteiro
Composição do lotePreenche entradas e saídas para igualar comprimentosApós cada iteração, as concluídas saem e novas entram
PreenchimentoDesperdiça computação e memória da GPUCom kernels de GPU especiais, dispensa o preenchimento

05 · DECISÕES

Pontos para discutir na prática

Guardrails de entrada e saída, memória de conversa e o custo por resposta, ligado a custo de GPU, ficam como pontos de discussão para a prática. Este artigo não afirma como o ChatGPT os implementa.

Perguntas frequentes

O que é ChatGPT: chatbot assistente pessoal?

Projeto de entrevista clássico. Pontos centrais: pré-treino → SFT → RLHF, KV cache, batching, guardrails e memória de conversa.

O que o design de ChatGPT: chatbot assistente pessoal cobre?

Ele está organizado nestas seções: Um assistente conversacional em duas metades, Do modelo pré-treinado ao modelo alinhado, Servir o modelo a muitos usuários, Agrupar requisições sem fazer ninguém esperar e Pontos para discutir na prática.

Quanto tempo leva ChatGPT: chatbot assistente pessoal e qual é o nível?

Leva cerca de 16 minutos para ler e tem nível Sênior.

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.