À medida que a procura de IA conversacional continua a crescer, também cresce a necessidade de tecnologias avançadas de chatbot que possam fornecer interacções personalizadas e semelhantes às humanas. Nos últimos anos, os modelos generativos, como o GPT-4 e o ChatGPT, e as alternativas de código aberto, como o LLaMA 3 e o Mixtral 8x7b, surgiram como ferramentas promissoras para a criação de chatbots capazes de compreender e responder a entradas de linguagem natural com uma precisão e sofisticação sem precedentes.
Neste artigo, vamos explorar os conceitos básicos dos modelos generativos e como podem ser utilizados para criar chatbots.
O ChatGPT e o GPT-4 são dois modelos de linguagem avançados desenvolvidos pela OpenAI. O ChatGPT, abreviatura de "Chat Generative Pre-training Transformer", é um modelo de linguagem de grande dimensão que pode gerar texto semelhante ao humano com base nos seus dados de treino. Foi introduzido em novembro de 2022 e rapidamente ganhou atenção generalizada pela sua capacidade de interagir com os utilizadores de forma conversacional, respondendo a perguntas, fornecendo informações e participando em várias tarefas.
O GPT-4, ou "Generative Pre-training Transformer 4", é o sucessor do GPT-3 e foi anunciado pela OpenAI em março de 2023. Representa um salto significativo no domínio dos modelos linguísticos de IA, apresentando um tamanho ainda maior e capacidades melhoradas em comparação com os seus antecessores. O GPT-4 é capaz de gerar texto altamente detalhado e preciso numa vasta gama de domínios, incluindo processamento de linguagem natural, programação informática e escrita criativa.
Tanto o ChatGPT como o GPT-4 são treinados em grandes quantidades de dados utilizando aprendizagem não supervisionada, o que lhes permite compreender e gerar linguagem humana com uma precisão e fluência notáveis. Estes modelos abriram novas possibilidades para o desenvolvimento de IA de conversação, geração de conteúdos e várias outras aplicações em sectores como o serviço ao cliente, a educação e o entretenimento.
Pouco tempo depois, o LLaMA 3 foi lançado pela Meta e o Mixtral 8x7b foi lançado pela empresa francesa Mistral AI. Estes modelos generativos são alternativas de código aberto ao ChatGPT e ao GPT-4. São muito bons candidatos se quiser construir um chatbot avançado. Pode implementar o LLaMA 3 e o Mixtral nos seus próprios servidores ou utilizá-los facilmente através da API NLP Cloud.
No entanto, todos estes LLMs de IA generativa requerem alguma prática. Primeiro, porque estes modelos precisam de receber as instruções correctas para se comportarem como esperado. E também porque são "sem estado", o que significa que não mantêm um historial das suas conversas.
Se enviar ingenuamente pedidos a estes modelos sem um pouco de contexto e formatação, ficará desiludido com as respostas. Isto deve-se ao facto de estes modelos serem muito versáteis. Podem não só ajudar a criar chatbots, mas também muitas outras aplicações, como resposta a perguntas, resumo, paráfrase, classificação, extração de entidades, geração de descrições de produtos e muito mais. Assim, a primeira coisa que precisa de fazer é dizer ao modelo qual o "modo" que deve adotar.
Eis um exemplo de pedido que pode enviar:
This is a discussion between a [human] and an [ai].
The [ai] is very nice and empathetic.
[human]: I broke up with my girlfriend...
[robot]:
Neste exemplo, pode constatar duas coisas.
Primeiro, adicionámos uma formatação simples para que o modelo compreenda que está em modo de conversação: ([human], [ai], ...).
Em segundo lugar, acrescentámos algum contexto no topo para ajudar o modelo a compreender o que está a fazer e o tom que deve utilizar.:
Para tornar este processo mais simples, tanto a OpenAI como a NLP Cloud propõem pontos de extremidade dedicados da API do chatbot, que tratam desta formatação por si.
Por vezes, um contexto não é suficiente. Por exemplo, imagine que quer criar um chatbot com um tom e um carácter muito específicos. Nesse caso, é necessário afinar o seu próprio modelo generativo. Pode afinar o seu próprio chatbot com base na IA generativa no OpenAI e no NLP Cloud.
Outro cenário é quando se pretende criar um chatbot que responda a perguntas sobre conhecimentos de um domínio específico. Nesse caso, o ajuste fino não é a solução. Em vez disso, deve criar o seu próprio sistema de geração aumentada de recuperação (RAG) baseado na pesquisa semântica. Veja o nosso artigo dedicado sobre RAG e pesquisa semântica aqui.
Os modelos de IA generativa são modelos "sem estado", o que significa que cada pedido que faz é novo e que a IA não se vai lembrar de nada sobre os pedidos anteriores que fez.
Para muitos casos de utilização não é um problema (resumo, classificação, paráfrase...), mas no que diz respeito aos chatbots é definitivamente um problema porque queremos que o nosso chatbot memorize o histórico da discussão para dar respostas mais relevantes.
Por exemplo, se dissermos à IA que somos programadores, queremos que ela guarde esse facto na memória porque terá impacto nas respostas seguintes que dará.
A melhor forma de o conseguir é armazenar todas as respostas da IA numa base de dados local. Por exemplo, a base de dados PostgreSQL suporta o armazenamento de textos longos, com uma eficiência muito boa.
Depois, sempre que estiver a fazer um novo pedido ao chatbot, deve fazer o seguinte:
Trata-se de um sistema versátil e robusto que requer pouco esforço e aproveita perfeitamente o poder de modelos generativos como GPT-4, ChatGPT, LLaMA 3 e Mixtral.
É importante observar que cada modelo tem seu próprio tamanho de contexto que determinará a quantidade de texto que pode ser passada para o histórico. Por exemplo, o tamanho atual do contexto do GPT-4 é de 8k tokens (ou seja, mais ou menos 7k palavras) e o tamanho atual do contexto do Mixtral 8x7b é de 16k tokens no NLP Cloud (ou seja, mais ou menos 14k palavras). Assim, se o seu histórico de conversações for superior a este valor, pode querer truncar a parte mais antiga do histórico ou reter apenas as partes mais importantes das discussões.
A OpenAI implementou restrições de conteúdo no ChatGPT e no GPT-4 para garantir que o texto gerado pela IA cumpre as suas directrizes. Ao monitorizar e regular o conteúdo gerado pelos chatbots, a OpenAI pretende criar uma experiência de utilizador mais positiva e fiável. Isto inclui o bloqueio de pedidos de informação sobre determinados tópicos ou o fornecimento apenas de informações pré-vetadas e fiáveis.
No entanto, há quem prefira utilizar modelos generativos que não tenham tais restrições e considere a qualidade das respostas mais diversificada e exacta. O LLaMA 3 e o Mixtral 8x7b não têm essas restrições. Ao utilizar estes modelos de IA, é da responsabilidade do programador utilizar a IA de forma responsável. Se necessário, as limitações podem ser implementadas através da criação de um prompt correto para o chatbot, do aperfeiçoamento do seu próprio chatbot ou da filtragem dos pedidos dos utilizadores antes de chegarem ao modelo de IA.
Os modelos de IA generativa, como o GPT-4, ChatGPT, LLaMA 3 e Mixtral 8x7b, levaram realmente os chatbots e a IA de conversação para o nível seguinte. Estes modelos avançados são muito bons a compreender o seu contexto e a adaptar-se a ele. Na maioria dos casos, definir o contexto correto é suficiente, mas para casos de utilização avançada, a melhor solução é treinar/ajustar o seu próprio modelo de IA (o que é bastante fácil, uma vez que estes modelos requerem conjuntos de dados muito pequenos).
No NLP Cloud, pode facilmente experimentar o LLaMA 3 e o Mixtral 8x7b, entre outros modelos. Pode também afiná-los e implementar os seus próprios modelos privados de IA generativa com um só clique. Se ainda não o fez, experimente NLP Cloud gratuitamente.
Se tiver dúvidas sobre como implementar o seu próprio chatbot, não hesite em contactar-nos!
François