Skip to content
O que falta nos chatbots de LLM: um senso de propósito
Source: thegradient.pub

O que falta nos chatbots de LLM: um senso de propósito

Sources: https://thegradient.pub/dialog, https://thegradient.pub/dialog/, The Gradient

Overview

O diálogo com propósito trata chatbots LLM como agentes colaborativos que perseguem objetivos ao longo de várias trocas, em vez de apenas previsões de próximos tokens. Um futuro de colaboração humano-IA enfatiza um diálogo que refine informações de forma iterativa, negocie preferências e atualize o modelo de mundo de ambas as partes. A ideia abrange tarefas simples—como planejamento de viagens—até trabalhos de engenharia mais complexos, como geração de código, onde a comunicação de ida e volta ajuda a esclarecer requisitos, coletar dados ausentes e reduzir defeitos. Historicamente, sistemas de diálogo evoluíram de interações roteirizadas (por exemplo, o script de restaurante de Schank) e de chatbots iniciais (ELIZA, PARRY) para LLMs modernos, onde o histórico de diálogo precisa ser formatado para modelos que processam texto. O artigo descreve três estágios centrais: 1) Pré-treinamento: um modelo de sequência é treinado para prever o próximo token em grandes textos mistos. 2) Introduzir a formatação de diálogo: o histórico é representado por prompts, incluindo prompts do sistema e trocas passadas (ex.: blocos ). 3) RLHF: ajuste fino com recompensas/penalidades para alinhar saídas ao comportamento desejado. Os autores observam que os sistemas atuais dependem fortemente de prompts do sistema para controle de comportamento, mas ao longo de várias rodadas os modelos podem se desviar desses prompts e até se tornar mais suscetíveis a jailbreaking ou alucinações. Também discutem descobertas que mostram que contextos longos podem distrair em contextos de diálogo, motivando técnicas como split-softmax para mitigar esses efeitos. Em resumo, diálogos significativos permitem colaboração de longo prazo orientada a objetivos, mas também apresentam novos desafios de pesquisa e de segurança que não são totalmente capturados por benchmarks de uma única vez.

Key features

  • Diálogo em várias fases, com tomada de turnos e metas
  • Memória e atualizações de perfil para se adaptar a preferências ao longo do tempo
  • Prompts do sistema e formatação de diálogo para direcionar comportamento e segurança
  • RLHF como etapa de ajuste fino que complementa pré-treinamento e formatação
  • Capacidade de ler fontes externas (ex.: Twitter, arXiv, Slack, NYT) e resumir ou redigir conforme necessário
  • Colaboração com humanos similar à programação em pares, reduzindo defeitos por meio do esclarecimento
  • Potencial para personalização de longo prazo, como redigir e-mails e aprender com edições
  • Consciência de limitações: brittleness de seguir instruções, questões de segurança e deriva ao longo de rodadas
  • Considerações de contexto: contextos mais longos nem sempre significam melhor adesão; técnicas como split-softmax são propostas para mitigar isso

Common use cases

  • Planejamento de viagens ou tarefas guiadas por objetivos que se beneficiam de esclarecimento iterativo
  • Assistentes pessoais que constroem modelos de usuário ao longo do tempo (por exemplo, resumos diários de notícias adaptados a preferências)
  • Geração de código e tarefas de engenharia de software que exigem troca de informações com engenheiros para refinar requisitos e dados
  • Papéis de psicoterapia ou atendimento ao cliente, com ressalvas de segurança e de limites de função
  • Leitura de recursos (Twitter, arXiv, Slack, NYT) e produção de resumos ou rascunhos
  • Redação de e-mails ou documentos, com melhoria a partir de edições do usuário

Setup & installation

Não há comandos explícitos de configuração ou instalação fornecidos na fonte.

Quick start

# Exemplo mínimo executável (conceitual)
# Demonstra a estrutura de turnos de diálogo com um prompt do sistema.
def respond(prompt, history, system_prompt):
# Espaço reservado para inferência de LLM em diálogo interativo
return f"[Resposta de LLM para '{prompt}' com system '{system_prompt}']"
def run():
system_prompt = "humano, útil e inofensivo"
history = []
turns = [
{"role": "user", "text": "Quero planejar uma viagem."},
{"role": "user", "text": "Foco na Europa, 5 dias, orçamento moderado."}
]
for t in turns:
assistant = respond(t["text"], history, system_prompt)
history.append(("user", t["text"]))
history.append(("assistant", assistant))
print(assistant)
if __name__ == "__main__":
run()

Pros and cons

  • Prós
  • Permite colaboração orientada a metas entre humanos e IA ao longo de várias rodadas
  • Possibilita troca de informações seletiva entre as etapas, aumentando eficiência
  • Facilita memória e personalização, adaptando-se a preferências do usuário com o tempo
  • Suporta fluxos de trabalho colaborativos em áreas como codificação
  • Contras
  • Modelos podem divergir dos prompts do sistema ao longo das rodadas, levantando preocupações de segurança
  • Jailbreaking e alucinações podem aumentar quando prompts ficam desatualizados
  • Diálogos mais longos ainda enfrentam limitações, apesar de contextos maiores
  • Implementar tomada de turnos e memória requer engenharia cuidadosa

Alternatives (brief comparisons)

| Abordagem | Descrição | Pontos fortes | Limitações |---|---|---|---| | Execução de instruções de uma só vez | Prompt único orientando o modelo para uma tarefa | Simples, com baixa latência | Pode falhar em capturar objetivos em evolução; contexto limitado |Diálogo com propósito (multi-turn) | Trocas iterativas para atingir um objetivo | Melhor troca de informações; memória e personalização | Mais complexo; desafios de segurança e estabilidade |RLHF com sistemas interativos | Ajuste fino com feedback humano para tarefas interativas | Gera saídas mais alinhadas | Requisitos de dados; risco de overfitting a feedbacks |

Licensing or Pricing

Não especificado na fonte.

References

More resources