20/3/2024

Experimentamos o GPT para gerenciar projetos de Telecom e ele decepcionou (por enquanto...).

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:

  1. A GPT é (muito) cara.
  2. GPT é leeento.
  3. Não é possível fornecer contexto (de forma barata)
  4. 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.