Last updated on August 7, 2024
Os avanços recentes em grandes modelos de linguagem (LLMs), como o GPT-3 e o ChatGPT, criaram muito buzz na indústria de tecnologia. Esses modelos são incrivelmente poderosos para geração de conteúdo, mas também têm algumas desvantagens, como bias e alucinações. Uma área em que esses LLMs podem ser particularmente úteis é o desenvolvimento de chatbots.
Os chatbots tradicionais são geralmente baseados em intenções, o que significa que são projetados para responder a intenções específicas do usuário. Cada intenção é composta por um conjunto de perguntas de amostra e uma resposta associada. Por exemplo, a intenção "Tempo" pode incluir perguntas de amostra como "Como está o tempo hoje?" ou "Vai chover hoje?" e uma resposta como "Hoje vai ser ensolarado". Quando um usuário faz uma pergunta, o chatbot compara a pergunta com a intenção e com as perguntas de amostra mais semelhantes, retornando a resposta associada.
Como um chatbox tradicional funciona. Imagem produzida pela tradutora (adaptação do autor).
No entanto, os chatbots baseados em intenção têm seu próprio conjunto de problemas. Um problema é que eles exigem um grande número de intenções específicas para fornecer respostas específicas. Por exemplo, as expressões do usuário como "Não consigo fazer login", "Esqueci minha senha" ou "Erro de login" podem precisar de três respostas diferentes e, portanto, três intenções diferentes, embora sejam todas bastante semelhantes.
Aqui é onde o GPT-3 pode ser especialmente útil. Em vez de ter muitas intenções muito específicas, cada intenção pode ser mais ampla e aproveitar um documento de sua Base de Conhecimento. Uma Base de Conhecimento (BC) é informação armazenada como dados estruturados e não estruturados, prontos para serem usados para análise ou inferência. Sua BC pode ser composta por uma série de documentos explicando como usar seus produtos.
Dessa forma, cada intenção está associada a um documento em vez de uma lista de perguntas e uma resposta específica, por exemplo, uma intenção para "problemas de login", uma intenção para "como se inscrever", etc. Quando um usuário faz uma pergunta sobre login, podemos passar o documento "problemas de login" para o GPT-3 como informações de contexto e gerar uma resposta específica para a pergunta do usuário.
Chatbox com Banco do Conhecimento + GPT-3. Imagem produzida pela tradutora (adaptação do autor).
Esta abordagem reduz o número de intenções que precisam ser gerenciadas e permite respostas que são melhor adaptadas a cada pergunta. Além disso, se o documento associado à intenção descrever processos diferentes (por exemplo, um processo para "fazer login no site" e outro para "fazer login no aplicativo móvel"), o GPT-3 pode automaticamente solicitar esclarecimentos ao usuário antes de fornecer a resposta final.
Hoje, LLMs como o GPT-3 têm um tamanho máximo de prompt de cerca de 4.000 tokens (para o modelo text-davinci-003
), o que é muito, mas não o suficiente para alimentar toda a base de conhecimento em um único prompt. Os LLMs têm um tamanho máximo de prompt por razões computacionais, já que a geração de texto com eles envolve uma série de cálculos que aumentam rapidamente à medida que o tamanho do prompt aumenta.
LLMs futuros podem não ter essa limitação, mantendo as capacidades de geração de texto. No entanto, por enquanto, precisamos projetar uma solução em torno disso.
A sequência do chatbot pode ser composta por duas etapas:
1.Primeiro, precisamos selecionar a intenção apropriada para a pergunta do usuário, ou seja, precisamos recuperar o documento correto de nossa base de conhecimento. 2. Em seguida, uma vez que temos o documento correto, podemos aproveitar o GPT-3 para gerar uma resposta apropriada para o usuário. Ao fazê-lo, precisamos criar um prompt adequado.
A primeira etapa é essencialmente resolvida por uma busca semântica. Podemos usar modelos pré-treinados da biblioteca sentence-transformers e atribuir facilmente uma pontuação para cada documento. O documento com a pontuação mais alta é aquele que será usado para gerar a resposta do chatbot.
Como um chatbot que usa o GPT-3 poderia funcionar. O GPT-3 poderia ser usado para gerar uma resposta apropriada aproveitando as informações dos documentos da base de conhecimento. Imagem produzida pela tradutora (adaptação do autor).
Uma vez que temos o documento certo, precisamos criar um prompt adequado para ser usado com o GPT-3 na geração da resposta. Nos experimentos seguintes, sempre usaremos o modelo text-davinci-003
com uma temperatura de 0.7
.
Para criar o prompt, vamos experimentar usando:
Informação usada para criar o prompt para o GPT-3. Imagem produzida pela tradutora (adaptação do autor)
Vamos começar nosso prompt usando a técnica
role-prompting.
Considere que você é um chatbot avançado chamado SKIPPY, e seu objetivo
principal é ajudar usuários da melhor maneira possível.
Em seguida, suponha que a etapa de busca semântica extrai o seguinte documento da nossa base de conhecimento. Todos os documentos descrevem como o produto VideoGram funciona, que é um produto imaginário semelhante ao Instagram, mas apenas para vídeos.
A document explaining how login to VideoGram works. Image by the author.
Nós podemos adicionar
o seu conteúdo dentro do prompt da seguinte forma:
Considere que você é um chatbot avançado chamado SKIPPY, e seu objetivo principal é ajudar usuários da melhor maneira possível
INÍCIO DO CONTEXTO
Login no VideoGram pelo website:
- Abra o seu navegador e vá para o site do VideoGram.
- Clique no botão "Login" localizado no canto superior direito da página.
- Na página de login, digite seu nome de usuário e senha do VideoGram.
- Depois de inserir suas credenciais, clique no botão "Login".
- Você agora deverá estar conectado à sua conta do VideoGram.
- Login no VideoGram pelo aplicativo móvel:
- Abra o aplicativo VideoGram em seu dispositivo móvel.
- Na página principal, toque no botão "Login" localizado no canto inferior direito.
- Na página de login, digite seu nome de usuário e senha do VideoGram.
- Depois de inserir suas credenciais, toque no botão "Login".
- Você agora deverá estar conectado à sua conta do VideoGram.
FIM DO CONTEXTO
Por último, precisamos incluir
a conversa e a pergunta do usuário no fim do prompt, como fizemos no último exemplo.
Considere que você é um chatbot avançado chamado SKIPPY, e seu objetivo principal é ajudar usuários da melhor maneira possível
INÍCIO DO CONTEXTO
Login no VideoGram pelo website:
- Abra o seu navegador e vá para o site do VideoGram.
- Clique no botão "Login" localizado no canto superior direito da página.
- Na página de login, digite seu nome de usuário e senha do VideoGram.
- Depois de inserir suas credenciais, clique no botão "Login".
- Você agora deverá estar conectado à sua conta do VideoGram.
- Login no VideoGram pelo aplicativo móvel:
- Abra o aplicativo VideoGram em seu dispositivo móvel.
- Na página principal, toque no botão "Login" localizado no canto inferior direito.
- Na página de login, digite seu nome de usuário e senha do VideoGram.
- Depois de inserir suas credenciais, toque no botão "Login".
- Você agora deverá estar conectado à sua conta do VideoGram.
FIM DO CONTEXTO
SKIPPY: Oi, eu sou o Skippy. Como posso te ajudar?
USER: Eu não consigo encontrar o botão de login.
SKIPPY:
Passando esse prompt para o GPT-3, eu recebi a resposta a seguir:
Olá, entendo que você não consegue encontrar o botão de login. Está tentando
acessar o VideoGram a partir de um navegador ou de um aplicativo móvel?
Note que a informação gerada vem da base de conhecimento.
Vamos tentar uma pergunta mais vaga, por exemplo
“não dá para fazer login”. Abaixo o prompt completo:
Considere que você é um chatbot avançado chamado SKIPPY, e seu objetivo principal é ajudar usuários da melhor maneira possível
INÍCIO DO CONTEXTO
Login no VideoGram pelo website:
- Abra o seu navegador e vá para o site do VideoGram.
- Clique no botão "Login" localizado no canto superior direito da página.
- Na página de login, digite seu nome de usuário e senha do VideoGram.
- Depois de inserir suas credenciais, clique no botão "Login".
- Você agora deverá estar conectado à sua conta do VideoGram.
- Login no VideoGram pelo aplicativo móvel:
- Abra o aplicativo VideoGram em seu dispositivo móvel.
- Na página principal, toque no botão "Login" localizado no canto inferior direito.
- Na página de login, digite seu nome de usuário e senha do VideoGram.
- Depois de inserir suas credenciais, toque no botão "Login".
- Você agora deverá estar conectado à sua conta do VideoGram.
FIM DO CONTEXTO
SKIPPY: Oi, eu sou o Skippy. Como posso te ajudar?
USER: Não dá pra fazer login.
SKIPPY:
A primeira resposta que recebi foi a seguinte:
Desculpe por ouvir isso. Você está tentando fazer login no VideoGram? Se
sim, aqui estão algumas instruções para ajudá-lo a fazer login. 1. Abra o
seu navegador e vá para o site do VideoGram. 2. Clique no botão "Login"
localizado no canto superior direito da página. 3. Na página de login,
digite seu nome de usuário e senha do VideoGram. 4. Depois de inserir suas
credenciais, clique no botão "Login". 5. Você agora deverá estar conectado à
sua conta do VideoGram. ou 1. Abra o aplicativo VideoGram em seu dispositivo
móvel. 2. Na página principal, toque no botão "Login" localizado no canto
inferior direito. 3. Na página de login, digite seu nome de usuário e senha
do VideoGram. 4. Depois de inserir suas credenciais, toque no botão "Login".
5. Você agora deverá estar conectado à sua conta do VideoGram. Espero que
isso te ajude. Se você ainda tiver alguma dúvida, por favor, volte a me
perguntar.
Mas podemos continuar com a conversa. O prompt completo foi removido no próximo exemplo a fim de melhorar a visibilidade dessa página.
USER: Não dá pra fazer login no celular.
SKIPPY: Desculpe por ouvir isso. Você está tentando fazer login no VideoGram no celular? Se sim, aqui está o procedimento para ajudá-lo a fazer login: 1. Abra o aplicativo VideoGram em seu dispositivo móvel. 2. Na página principal, toque no botão "Login" localizado no canto inferior direito. 3. Na página de login, digite seu nome de usuário e senha do VideoGram. 4. Depois de inserir suas credenciais, toque no botão "Login". 5. Você agora deverá estar conectado à sua conta do VideoGram. Espero que isso te ajude. Se você ainda tiver alguma dúvida, por favor, volte a me perguntar.
GPT-3 pode gerenciar a desambiguação, desde que tenha as informações contextuais corretas.
Os exemplos anteriores funcionaram bem. No entanto, há várias maneiras pelas quais esse chatbot pode falhar.
Se perguntarmos "O aplicativo móvel é gratuito?" para o GPT-3, passando o documento de login como contexto, muitas vezes obteremos uma resposta como "Sim, o aplicativo móvel VideoGram é gratuito para baixar e usar", mesmo que essa informação não esteja contida nas informações de contexto. Gerar informações falsas é muito ruim para chatbots de atendimento ao cliente!
GPT-3 raramente gera informações falsas quando a resposta à pergunta do usuário pode ser encontrada no contexto. Como as perguntas do usuário são frequentemente textos curtos e ambíguos, não podemos confiar na etapa de busca semântica para sempre recuperar um documento correto, e portanto, sempre estamos vulneráveis à geração de informações falsas.
GPT-3 é muito útil para criar chatbots conversacionais e é capaz de responder a uma série de perguntas específicas com base nas informações contextuais inseridas no prompt. No entanto, é difícil fazer o modelo produzir respostas aproveitando apenas as informações do contexto, já que o modelo tende a alucinar (ou seja, gerar novas informações, potencialmente falsas). Gerar informações falsas é um problema de gravidade diferente dependendo do caso de uso.
Escrito por Fabio Chiusano. Traduzido por Gabi Fonseca.
Nadeem, M., Bethke, A., & Reddy, S. (2021). StereoSet: Measuring stereotypical bias in pretrained language models. Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing (Volume 1: Long Papers), 5356–5371. https://doi.org/10.18653/v1/2021.acl-long.416 ↩
Ji, Z., Lee, N., Frieske, R., Yu, T., Su, D., Xu, Y., Ishii, E., Bang, Y., Madotto, A., & Fung, P. (2022). Survey of Hallucination in Natural Language Generation. ACM Computing Surveys. https://doi.org/10.1145/3571730 ↩