Generative AI: Desmistificando 5 Meses de Experiência com Modelos de Linguagem de Grande Porte (LLMs)

Desde novembro de 2022, o ChatGPT foi lançado e muitas pessoas ao redor do mundo começaram a usar a GenerativeAI.

 

Mas este ano, quando o modelo llama vazou e chegou ao GitHub, foi o start de uma verdadeira corrida tecnológica das comunidades de desenvolvimento de software para fazer uso de LLMs (Large Language Models) opensource. E de lá para cá, dezenas foram treinados e disponibilizados ao público em geral.

 

Agora nós, usuários comuns, podemos fazer download e utilizar modelos robustos e especializados em determinadas ações, tais como Multimodal, Computer Vision, Natural Language Processing, Audio, Tabular, Reinforcement Learning etc.

 

Os LLMs podem ser baixados e utilizados em ambiente privado, protegidos por firewall, sem riscos de vazamento de dados sensíveis. Além disso, a maioria dos LLMs é gratuita para desenvolvimento e distribuição.

 

Mas será que é apenas isso? Fazer download de um modelo, instanciá-lo, começar a utilizar e criar aplicações de IA poderosas e totalmente assertivas a partir daí?

 

Não é bem assim! Separamos 6 tópicos para entender melhor essa questão.

 

1) Deploy – Fazer o deploy de uma aplicação em um ambiente de nuvem apresenta diversos desafios que podem ser divididos em três fases distintas: planejamento e configuração, implantação e gestão contínua. Cada fase envolve diferentes preocupações e aspectos a serem considerados.

 

1.1)    Planejamento e Configuração – É feita a seleção da infraestrutura de nuvem e da arquitetura da aplicação. Além disso, são definidas estratégias para gerenciar contêineres e preparar a base para o crescimento.

 

1.2)    Implantação – A etapa de implantação envolve a automação do processo de entrega, foco na segurança da aplicação e garantia de desempenho e escalabilidade através do monitoramento contínuo.

 

1.3)    Gestão Contínua – A fase final requer monitoramento constante, otimização de custos, manutenção regular e preparação para contingências, assegurando a eficiência e confiabilidade contínuas da aplicação na nuvem.

 

Ou seja, um LLM nada mais é do que uma aplicação. Então tudo citado acima precisa ser realizado também.

 

Um ponto importante é a configuração de um LLM. Isso é essencial para os usuários controlarem o estilo, a qualidade e a quantidade de saída gerada.

 

2) Parametrização – Ajustar os parâmetros certos da inteligência artificial generativa pode impactar significativamente o resultado das respostas fornecidas pelo modelo. Alguns parâmetros comuns incluem alguns tópicos, como:

 

2.1)    Temperature (Temperatura): Controla a aleatoriedade da geração de texto. Valores mais altos, como 0.8 ou 1.0, resultam em respostas mais criativas e divergentes, mas também podem ser menos coerentes. Valores mais baixos, como 0.2, produzem respostas mais determinísticas e previsíveis. Ajustar a temperatura permite sintonizar o equilíbrio entre criatividade e coesão.

 

2.2)    Max New Tokens (Máximo de Novos Tokens): Este parâmetro limita o comprimento das respostas geradas pelo modelo. É útil para evitar que o modelo produza respostas muito longas e fora de controle. Definir um valor apropriado para esse parâmetro ajuda a garantir que as respostas sejam sucintas e relevantes.

 

2.3)    Top-p (Nucleus Sampling): Técnica de amostragem que controla a probabilidade acumulada das palavras mais prováveis durante a geração. Definir um valor de corte, como 0.8, limitará as opções de palavras, tornando a resposta mais focada e coerente.

 

2.4)    Frequency Penalties (Penalizações de Frequência): É possível aplicar penalizações para desencorajar o modelo a repetir palavras ou frases muito frequentemente. Isso ajuda a diversificar a saída e evita respostas excessivamente repetitivas.

 

2.5)  Load In-8bit Mode (Carregamento em Modo de 8 bits): Permite carregar o modelo em uma configuração de precisão de 8 bits, o que reduz os requisitos de memória e acelera a geração de texto. Isso pode ser útil quando há restrições de recursos.

 

2.6)    Max Tokens: Similar ao “Max New Tokens”, esse parâmetro define o limite máximo de tokens permitidos na resposta gerada. Ele pode ser útil para controlar o tamanho total das respostas, incluindo respostas geradas por múltiplas interações.

 

2.7)    Repetition Penalty (Penalização de Repetição): Penaliza o modelo por repetir palavras ou frases que já apareceram na resposta. Isso ajuda a evitar respostas monótonas e excessivamente repetitivas.

 

2.8)    Timeout: Define um limite de tempo para a geração da resposta. É útil para evitar respostas demoradas que possam impactar negativamente a experiência do usuário.

 

A escolha dos parâmetros certos depende do contexto da interação e dos resultados desejados. Experimentar com diferentes combinações de parâmetros e avaliar as respostas geradas é essencial para encontrar o equilíbrio ideal entre criatividade, coerência e relevância.

 

3) Engenharia de Prompts – É uma abordagem crucial para obter resultados específicos de grandes modelos de linguagem como os LLMs.  Ao conversar com LLMs específicos, os desafios incluem:

 

3.1)    Direcionamento Preciso: Projetar prompts de maneira que sejam claros e específicos sobre o que você deseja do modelo, evitando ambiguidades que possam levar a respostas indesejadas.

 

3.2)    Contextualização Adequada: Fornecer contexto suficiente nos prompts para que o modelo compreenda a situação e forneça respostas coerentes e relevantes.

 

3.3)    Evitar Respostas Genéricas: Evitar que o modelo forneça respostas genéricas ou clichês, exigindo que ele ofereça informações específicas e úteis para a conversa.

 

3.4)    Mitigação de Biases: Implementar estratégias para minimizar viés e respostas ofensivas que o modelo possa gerar involuntariamente.

 

3.5)    Controle da Saída: Garantir que o modelo não saia do tópico ou contexto desejado, controlando a geração de texto de maneira coerente.

 

3.6)    Aproveitamento das Capacidades: Explorar as capacidades específicas do modelo, como realizar cálculos, traduzir idiomas ou gerar código, formulando prompts que aproveitem essas habilidades.

 

3.7)    Respostas Longas e Coesas: Desafiar o modelo a fornecer respostas mais longas e coesas, evitando respostas curtas demais ou fragmentadas.

 

3.8)    Avaliação Iterativa: Iterar sobre os prompts e ajustar conforme necessário, com base nas respostas do modelo, para melhorar a qualidade das interações.

 

3.9)    Equilíbrio entre Contexto e Instrução: Encontrar o equilíbrio certo entre fornecer contexto suficiente e instruções claras para que o modelo produza respostas relevantes.

 

3.10)  Exploração de Formatos de Resposta: Testar diferentes formatos de perguntas para obter respostas variadas.

 

Depois dessas conversas, chegamos à alucinação em modelos de linguagem, que é quando esses modelos criam informações falsas de forma convincente.

 

Ou seja, o modelo cria respostas que parecem plausíveis e coerentes, mas que não têm base em fatos ou informações verdadeiras.

 

4) Alucinação – ocorre quando o modelo preenche as lacunas de conhecimento com informações inventadas ou exageradas, sem verificar a validade das informações. Isso pode ser particularmente problemático em contextos em que a precisão e a veracidade são essenciais, como na prestação de informações médicas, legais, científicas ou históricas.

 

Algumas razões pelas quais os LLMs podem alucinar:

 

4.1)    Extrapolação de Padrões: Durante o treinamento, os modelos aprendem padrões nos dados de treinamento e podem tentar extrapolar esses padrões para gerar informações novas, mas não necessariamente precisas.

 

4.2)    Ausência de Verificação: Os LLMs geralmente não possuem mecanismos de verificação de fatos embutidos. Eles geram respostas com base na probabilidade e na coerência, sem a capacidade de avaliar a verdade das afirmações.

 

4.3)    Distorção de Informações: Se os dados de treinamento contiverem informações imprecisas ou distorcidas, o modelo pode aprender a reproduzir essas informações ao responder perguntas ou gerar texto.

 

4.4)    Compreensão Superficial: O modelo pode compreender superficialmente o contexto, mas não possui o conhecimento substancial necessário para gerar informações precisas.

 

4.5)    Vieses do Treinamento: Se os dados de treinamento contiverem viés ou informações incorretas, o modelo pode alucinar respostas que refletem esses mesmos problemas.

 

Lidar com a alucinação em LLMs é um desafio complexo. É importante que os usuários estejam cientes das limitações desses modelos e verifiquem a precisão das informações por meio de fontes confiáveis.

 

5) Gestão e controle de acessos aos LLMs – O tópico é de grande importância devido às implicações em termos de segurança, privacidade e uso responsável. Essa gestão assegura que sejam usados de maneira responsável e benéfica para indivíduos e sociedade como um todo.

 

Algumas razões pelas quais são cruciais:

 

5.1)    Segurança de Dados Sensíveis: Controlar o acesso ajuda a evitar a exposição inadvertida de informações que não devem ser compartilhadas publicamente.

 

5.2)    Prevenção de Abusos e Manipulação: Sem controle adequado, os LLMs podem ser explorados para disseminar informações falsas, gerar conteúdo enganoso ou até mesmo para manipulação social. A gestão de acesso ajuda a minimizar o potencial de abusos desse tipo.

 

5.3)    Proteção contra Viés e Discriminação: Ao controlar o acesso, é possível limitar a disseminação de respostas potencialmente preconceituosas ou discriminatórias.

 

5.4)    Garantia de Qualidade e Reputação: Controlar quem tem acesso aos LLMs permite às organizações manterem um padrão de qualidade nas interações e prevenir situações em que respostas incorretas ou inadequadas possam prejudicar a reputação.

 

5.5)    Conformidade com Regulamentos: Em muitos setores e regiões, existem regulamentos rigorosos relacionados à proteção de dados e privacidade. Controlar o acesso ajuda as organizações a cumprirem esses requisitos legais.

 

5.6)    Uso Responsável e Ético: A gestão de acesso contribui para o uso responsável de LLMs, evitando que sejam usados para fins maliciosos, difamatórios ou antiéticos.

 

5.7)    Uso Eficiente de Recursos: Limitar o acesso aos LLMs pode ajudar a gerenciar a carga computacional e os recursos necessários para suportar a demanda, garantindo um desempenho consistente e estável.

 

5.8)    Customização e Foco: Controlar quem tem acesso aos LLMs permite às organizações personalizarem o modelo para se adequar às necessidades específicas e focar em responder a perguntas relevantes.

 

5.9)    Minimização de Riscos de Segurança: Acesso não controlado ao LLMs pode causar vazamento de informações, exploração de vulnerabilidades e outros riscos.

 

5.10)  Aprendizado de Máquina Ativo: Limitar o acesso permite coletar feedback e dados de treinamento mais confiáveis, melhorando a qualidade das próximas versões do modelo.

 

6) Custo – A utilização de LLMs em ambiente de nuvem envolve custos significativos, especialmente quando se trata de alocação de recursos de hardware de alto desempenho, como GPUs (Unidades de Processamento Gráfico) e memória RAM.

 

Eles exigem GPUs poderosas para acelerar os cálculos necessários para o treinamento e inferência. Isso é ainda mais verdadeiro quando se trata de tarefas complexas, como geração de texto ou tradução de idiomas, onde a capacidade de processamento paralelo das GPUs é fundamental.

 

Além disso, LLMs tendem a consumir grandes quantidades de memória RAM, especialmente à medida que o tamanho do modelo aumenta. Isso pode exigir máquinas virtuais ou servidores físicos com muita memória, o que aumenta os custos operacionais.

 

Avaliar cuidadosamente as necessidades de hardware, a carga de trabalho esperada e a eficiência na alocação de recursos pode ajudar a otimizar custos e garantir um equilíbrio entre desempenho e orçamento.

 

O que podemos dizer após 5 meses de trabalho com GenerativeAI? 

 

Criar produtos e oferecer serviços de qualidade e precisão não é fácil. Isso não se resume apenas a escolher o melhor 

LLM disponível para o objetivo específico.

 

Muito esforço precisa ser investido sobre os dados utilizados, infraestrutura, gerenciamento de acesso etc.

 

Outro desafio é a rápida evolução. Já foram testados dezenas destes modelos e para cada um é preciso fazer deploy, parametrização, controlar alucinações, gerir controles de acesso e custos.

 

Ao analisarmos os resultados do trabalho com GenerativeAI, percebemos que o esforço e dedicação foram recompensados. Fizemos descobertas valiosas e adquirimos um entendimento profundo de como gerir um LLM.

 

E estamos falando de apenas alguns meses de trabalho. Imagine o que conseguiremos em 1 ano, 5 anos ou 10 anos?

 

Saiba como a IA generativa da Inmetrics pode melhorar a produtividade dos seus times em, no mínimo, até 4 vezes. 

Conheça o LIEV.

 

Escrito por:

Cleber Marques

Head de Dados e IA da Inmetrics