Deixe-me esclarecer primeiro que este artigo provavelmente estará obsoleto em meses, ou talvez dias! Considerando os enormes avanços de nossos amigos da OpenAI, da AWS, do Google etc., é possível que ele se torne obsoleto.
Na semana passada, na Sytex, realizamos uma Hackweek, na qual, normalmente, pegamos um tópico e trabalhamos juntos nele. A ideia é aprender o que uma tecnologia nos permite fazer e tentar adicioná-la ao nosso produto. Há algum tempo, estamos querendo ver o que pode ser feito com o ChatGPT/GPT3.5/4, então agendamos e começamos a trabalhar com grandes expectativas.
Tivemos a ideia de usar a IA para criar relatórios como "Qual é o site com menos problemas de manutenção" ou "Quantas instalações tenho que fazer em Manaus". Também pensamos que ela poderia ajudar a simplificar a busca de informações, recomendar atividades regulares e várias outras coisas.
Para nossa surpresa, rapidamente nos deparamos com complicações que, por enquanto, dificultam a implementação da IA em uma plataforma de gerenciamento de atividades como a Sytex. Esses problemas são:
- A GPT é (muito) cara.
- GPT é leeento.
- Não é possível fornecer contexto (de forma barata)
- O GPT não se lembra de nada.
Cada um desses pontos será analisado a seguir.
Mas primeiro!
Como funciona a API de IA aberta
O GPT é um LLM: Large Language Model, ou seja, sua inteligência está em adivinhar palavras para responder a uma pergunta. A adivinhação consiste em um jogo de probabilidade em que ele considera a pergunta, o contexto, seu treinamento etc., e apresenta o texto. Isso é fantástico e incrível, mas, no momento, não é uma inteligência que realmente interpreta ou entende a pergunta que você está fazendo.
O resultado final é que, se você pedir a ele que faça uma história sobre Messi escrita por Shakespeare, ele procurará palavras e estruturas que normalmente vê nos textos de Shakespeare e as misturará com textos que normalmente são uma história sobre o maior do mundo.
A primeira coisa a saber sobre a API é que ela é toda baseada em texto, assim como o ChatGPT. Você não envia parâmetros, envia um prompt (texto descritivo) com o que deseja que ele faça. O truque é juntar esse texto da melhor maneira possível para evitar comportamentos indesejados. Já sabemos disso pelo ChatGPT, mas a API também funciona da mesma maneira.
Por outro lado, é possível orientar o GPT com a ação específica que queremos que ele execute mediante solicitação do usuário. Para isso, é necessário definir um "prompt do sistema" que descreva o que o GPT deve fazer com o que o usuário solicita. Trata-se de outro Prompt, mas oculto para o usuário.
Por exemplo, um prompt do sistema seria: "O usuário indicará um conjunto de dados que deseja pesquisar e você terá de me dizer quais filtros Sytex usar. Os filtros possíveis são x, y, z...",
Em resposta à solicitação de um cliente por texto, por exemplo:
"Quero ver todas as tarefas concluídas na semana passada no projeto X".
O GPT responderá à API com: "O usuário deseja usar os seguintes filtros...".
É por isso que aprimorar o prompt do sistema é fundamental para que o GPT responda exatamente como queremos. Nesse caso, o prompt do sistema poderia ser: "O usuário enviará uma solicitação de informações que ele deseja pesquisar e você terá que me dizer quais filtros usar no Sytex, SEM EXPLICAÇÃO", para o qual ele responderá com "Data_de_conclusão = última semana; Projeto=X".
O primeiro alarme é o seguinte: o ChatGPT é excelente para reunir novos textos, mas não parece ser ideal para resultados ou pedidos precisos, que é o que normalmente esperamos em qualquer plataforma de trabalho.
Agora, com os problemas:
1- O GPT é (muito) caro
Cada chamada à API da OpenAI gera um custo que depende, entre outras coisas, de
- O modelo que você usa (gpt3,5, 4, etc.)
- A quantidade de informações que você envia
- O ajuste, ou sintonia fina, do modelo
Esse custo não é nada desprezível quando se tem muitos usuários. Portanto, pensamos que, se formos usá-lo, deve ser para uma funcionalidade incrível para nossos usuários, que realmente valha o custo.
Pedimos ao ChatGPT que explicasse a estrutura de custos, usando a chamada de API menor que fizemos atualmente, e ele a resumiu da seguinte forma:
Primeiro, vamos calcular o custo de cada tipo de token em dólares americanos:
Prompts do ChatGPT-4: 360 tokens * (US$ 0,03 / 1000 tokens) = US$ 0,0108
Conclusões: 168 tokens * (US$ 0,06 / 1.000 tokens) = US$ 0,01008
Text-embedding-ada-002-v2: 22 tokens * ($0,0004 / 1000 tokens) = $0,0000088
Agora, vamos somar os custos dos três tipos de tokens:
$0.0108 + $0.01008 + $0.0000088 = $0.0208888
O custo total em dólares americanos é de aproximadamente US$ 0,0209.
Portanto, a consulta da API do ChatGPT-4 que consumiu 550 tokens com os custos especificados representa aproximadamente US$ 0,0209 em dólares americanos.
2- GPT é leeeeeeente
Cada chamada à API do GPT4 levou entre 7 e 15 segundos. Com o GPT3.5, os tempos melhoraram substancialmente, mas os resultados são menos precisos.
Se precisar da IA para otimizar processos ou realizar alguma tarefa crítica, você pode estar disposto a esperar esse tempo, mas se for apenas uma funcionalidade acessória, como a ativação de filtros de pesquisa, você pode optar por fazer isso sozinho.
3- Não é possível dar contexto (de forma barata).
Esse foi, para mim, o ponto que mais me decepcionou. Você esperava que o modelo aprendesse com seus próprios dados ou processos para propor atividades ou informações de forma precisa e integral, mas não. Ou você envia um prompt de sistema muito longo, o que é muito caro, ou faz o que chamamos de "ajuste fino" do modelo. Ou você envia a ele um prompt de sistema muito longo, que é muito caro, ou faz o que chamamos de "ajuste fino" do modelo.
O Fine Tunning é ensinar ao modelo as respostas que você espera receber quando faz uma pergunta a ele. Assim, o modelo aprende e responde com mais do "seu" contexto.
O problema é que, para fazer um bom ajuste fino, você precisa enviar muitos dados, e isso, além de ter seu custo, torna cada consulta mais cara!
Ou seja, para usar seu próprio modelo "ajustado", a GPT cobra mais.
Portanto, a ideia de "Queremos que os usuários perguntem qual equipe tem a maior carga de trabalho" não é possível, pois teríamos que enviar a eles tantas informações que isso seria inviável em termos de custos. É melhor programar relatórios configuráveis em que você possa filtrar e criar o que precisa, sem IA.
É aqui que haverá mais novidades nos próximos dias/semanas/meses. O GPT-4 suporta 30 mil tokens, o que é bastante para os contextos que estávamos testando. O problema é que esses tokens de contexto têm um preço alto e bom. Mas também esperamos que o preço caia à medida que ele ganhe escala e que sejam encontradas técnicas de geração mais eficientes.
4-GPT não se lembra de nada
À la Memento, cada nova interação com o GPT é um novo começo. Ele não se lembra do que foi feito para o usuário, nem de outras coisas que o mesmo modelo já fez para você.
Cada nova solicitação é uma nova aventura, e ela perde valor se o usuário tiver que começar do zero a cada uso. Uma opção, é claro, seria enviar em cada nova consulta todas as idas e vindas que o usuário teve com a API, o que é possível, funcionaria, mas já vimos que seria muito caro!
Algumas conclusões
O GPT é uma ferramenta incrível e mágica que nos ajuda a pensar, a gerar textos (escrevi este por conta própria!), a desenvolver ideias e muito, muito mais.
Talvez essa abordagem de LLM não seja a solução para a necessidade de resultados consistentes, específicos ao contexto, ao setor ou à empresa. Ou talvez o ecossistema continue a resolver esses problemas e os próximos modelos sejam mais rápidos, mais eficientes e mais precisos.
Para começarmos a ver a AI colaborando com nossas próprias informações, acho que ainda vai demorar um pouco. Quanto tempo? anos? meses? dias? não sabemos. O que sabemos é que a IA está aqui para mudar o mundo e, juntos, veremos como podemos fazer com que ela nos capacite e melhore nossas vidas.
Agora que já temos alguma experiência de uso e entendemos melhor os recursos e as limitações da ferramenta, vamos procurar os casos de uso em que ela poderia ser um recurso útil da Sytex para nossos usuários.