Implementar uma solução de IA é mais complexo do que apenas decidir usar o ChatGPT. Para ter um resultado satisfatório, você precisa pensar em fatores como acurácia, latência, custo, conhecimento técnico e qualidade dos dados. Neste artigo eu trago apenas algumas das decisões que precisam ser tomadas neste processo. Talvez a decisão mais importante estou deixando para o final: a de desenvolver uma solução internamente ou contratar um serviço externo. Mas acho que as questões que eu discuto antes podem ajudar nesta decisão!
Eu preciso usar o último modelo lançado, com trilhões de parâmetros?
Quando um novo modelo é lançado no mercado, quase que invariavelmente sua acurácia é melhor do que quaisquer outros modelos disponíveis anteriormente. É tentador assumir que a melhor estratégia é sempre usar o modelo mais avançado. Mas a verdade é que uma parcela muito grande dos problemas de negócios pode ser resolvida com modelos muito mais simples, já disponíveis, como Random Forest ou XGBoost, por exemplo. Esses modelos custam pouquíssimo para treinar e para usar, são muito mais rápidos e, muitas vezes, dão resultados bastante satisfatórios. Como regra geral para tomada de decisão, você deve usar sempre o modelo mais simples ao seu alcance que resolva o seu problema de negócio.
Eu tenho que treinar meu próprio modelo?
Poucos anos atrás, para você conseguir implementar uma solução de IA, precisaria treinar seu próprio modelo ou, pelo menos, fazer o fine tuning de um modelo pré-treinado. A grande vantagem da IA generativa é que muita coisa pode ser resolvida com engenharia de prompts. Em 2023 a Bloomberg lançou o BloombergGPT, treinado especificamente em textos do mundo financeiro. O modelo tem 50 bilhões de parâmetros e custou alguns milhões de dólares para treinar. Quando foi lançado, ele mostrou um ganho significativo nas tarefas de perguntas e respostas relacionadas a finanças, mesmo em comparação com modelos muito maiores. Esta vantagem foi completamente ultrapassada com o lançamento do GPT-4 e o uso das técnicas de few-shot learning. Em resumo, o investimento que a Bloomberg fez trouxe uma vantagem por muito pouco tempo. O mesmo se aplica na grande maioria dos casos. Se a versão mais recente do GPT ou Gemini ainda não resolve o seu problema, é muito provável que a próxima já resolva. Treinar um modelo só faz sentido em casos muito específicos.
Eu deveria usar a API de um modelo comercial, ou deveria servir um modelo open source internamente?
Existem grandes vantagens de chamar a API do OpenAi ou do Gemini. Você vai ter acesso, quase sem esforço, ao modelo mais avançado disponível no mercado e a implantação vai ser quase que imediata. Por outro lado, um modelo open source permite que você controle o que é feito com os seus dados. Mas é importante lembrar que rodar um modelo grande no próprio servidor não é trivial. O Llama3, da Meta, por exemplo, precisa de um cluster de GPUs para poder rodar com uma latência aceitável, principalmente quando muitos usuários precisam acessar o sistema ao mesmo tempo. E esta não é a única dificuldade técnica de prover uma estrutura de servidor para um modelo grande.
Como lidar com alucinações?
Um desafio ao usar IA generativa é a tendência que as LLMs têm de falar bobagens com propriedade. Estes são modelos treinados para gerar texto, e não para buscar a resposta mais correta possível para uma pergunta. Existem muitas técnicas para reduzir as alucinações, incluindo guardrails, RAG e agentes de AI. Um exemplo relativamente simples é criar um prompt passando a pergunta, o contexto, e a resposta do prompt anterior, e perguntar se essa resposta faz sentido com base no contexto.
Se eu vou criar prompts, eu não preciso de dados, certo?
É verdade que para algumas tarefas, um prompt bem estruturado pode chegar bem longe. Mas como você vai medir a performance do seu prompt? E se a acurácia ficar aquém do desejado? Estes são os dois principais motivos para ter um bom dataset, anotado manualmente por especialistas. Com um conjunto de dados anotados, você pode validar a acurácia do seu prompt e ir ajustando os prompts até chegar no resultado desejado. Além disso, parte deste dataset pode ser passado no prompt para usar como exemplos e melhorar a qualidade das respostas. Essa última técnica é chamada de few-shot learning. O problema é que a construção do dataset muitas vezes é a fase que mais toma tempo no desenvolvimento de uma solução de IA.
O que eu deveria olhar ao contratar uma empresa de AI?
Se você optou por contratar ao invés de desenvolver, tem muitas coisas que você deveria levar em conta na hora de escolher um fornecedor, além das questões óbvias de custo, acurácia e latência. Como o fornecedor lida com segurança da informação? Os seus dados vão estar seguros na rede do vendor? A solução permite alguma customização para o seu problema específico? Existe alguma forma de validar as informações geradas pelo modelo de IA? Talvez alguma solução de human-in-the-loop pelo menos nos casos em que o modelo aponta uma confiança baixa na resposta? O vendor usa modelos comerciais ou desenvolveu seus próprios? Se são comerciais, você está confortável de ter seus dados passando por mais uma empresa?
Vale a pena desenvolver a solução dentro de casa?
Desenvolver uma solução de IA dentro de casa é mais difícil do que parece à primeira vista. Mesmo que seu sistema vá usar a API de um modelo comercial e vá ser totalmente baseado em prompts, têm muitas questões que você precisa levar em conta para garantir a melhor performance possível e minimizar alucinações. Se a sua solução vai lidar com informações altamente confidenciais e você tem os recursos (financeiros e humanos) para desenvolver um modelo próprio, faz sentido tentar criar dentro de casa. Mas acredito que na maioria dos casos faz mais sentido buscar uma solução pronta no mercado. As empresas que se especializaram em criar soluções de IA já gastaram muito tempo pensando sobre todos estes problemas e possivelmente vão entregar um resultado melhor do que algo desenvolvido internamente.
CONCLUSÃO
Infelizmente, a inteligência artificial não é uma solução mágica que vai resolver todos os seus problemas com zero de esforço. Eu coloquei acima apenas algumas das coisas que você precisa pensar para ter um sistema que funcione bem e resolva seus problemas. Dá muito trabalho! Mesmo com tudo isso, a tecnologia ainda está em evolução e pode não te dar o resultado que você espera. Qualquer solução precisa ser muito bem pensada e vai tomar tempo para criar, testar e chegar num ponto de realmente poder ser usada na sua empresa.
— Rogerio Bromfman, Co-Founder Beaver
Referências:
Comments