Alucinações
Agora que você entende como os modelos de IA funcionam, vamos falar sobre algo que confunde muitos desenvolvedores quando começam a usar ferramentas de IA: a alucinação.
Alucinação é quando um modelo de IA gera, com confiança, informações que parecem plausíveis, mas na verdade são incorretas. É como quando alguém tenta blefar em uma conversa sobre um assunto que não conhece de verdade.
Por que os modelos alucinam?
Lembra que dissemos que os modelos de IA preveem o próximo token com base nos padrões que aprenderam? Às vezes, esses padrões os levam a conclusões erradas.
Pense nesses modelos como um preenchimento automático de texto extremamente poderoso. Se você digitar "O tempo hoje está...", seu celular poderá sugerir "ensolarado" ou "nublado" com base em padrões comuns. Os modelos de IA fazem o mesmo, mas com conceitos inteiros e blocos de código.
Quando um modelo de IA não sabe algo, ele nem sempre diz "Não sei". Em vez disso, gera o que parece mais provável com base nos padrões que viu. Na programação, isso pode significar:
- Inventar métodos de API com nomes plausíveis que não existem de fato
- Confundir sintaxes de diferentes bibliotecas ou frameworks de programação
- Criar opções de configuração que parecem razoáveis, mas não existem
Os provedores de modelos de IA usam enormes volumes de texto da internet (e outros dados proprietários) para treinar modelos até uma determinada data, chamada de “limite de conhecimento”. Essa data representa o conhecimento mais recente disponível aos modelos. Os modelos de IA podem sugerir soluções incorretas se você perguntar sobre bibliotecas criadas após essa data.
Qual é a melhor resposta imediata a um método de API que provavelmente foi alucinado?
Alucinações na prática
Vou mostrar alguns exemplos reais de alucinações que desenvolvedores encontram.
O primeiro é uma importação aparentemente correta, mas inexistente, de um pacote.
// A IA sugere:import { debounce } from "react";// Na prática, o React não exporta debounce!// Você precisa do lodash ou implementar a sua própria funçãoO segundo é um método falso em uma classe, mas com aparência convincente:
# A IA sugere:df.remove_outliers(threshold=3)# Na realidade, os DataFrames do pandas não têm esse método# Você precisa implementar a remoção de valores atípicos por conta própriaE, por fim, um arquivo de configuração quase certo:
// A IA sugere para o package.json:{ "type": "module", "exports": "./index.js", "browser": true // <- Isso não é válido!}À medida que você trabalhar mais com modelos de IA, aprenderá a identificar alucinações.
É importante ter ceticismo em relação aos resultados gerados pelo modelo e verificar de forma independente as sugestões que ele faz. Uma forma de facilitar isso é configurar seu Editor ou ambiente da aplicação para fornecer feedback.
Por exemplo, no Cherri Code, uma instrução import incorreta deve exibir um erro informando que a importação não existe, que pode então ser enviado de volta ao modelo de IA como feedback.
Outras limitações dos modelos
Os modelos também podem sugerir com confiança a resposta errada.
Você pode receber uma resposta dizendo “Você está absolutamente certo!” quando, na verdade, você não estava certo. Além disso, alguns modelos têm dificuldade com tarefas em que softwares determinísticos são excelentes, como gerar números realmente aleatórios ou contar quantas vezes um caractere aparece em uma palavra.
Mas, mesmo com alucinações e limitações, os modelos de IA ainda são incrivelmente úteis.
A chave para trabalhar bem com IA é desenvolver uma mentalidade de verificação. Toda sugestão é um ponto de partida, não uma resposta final. Isso pode parecer trabalho extra, mas, na verdade, faz de você um desenvolvedor melhor, pois obriga você a entender o que o código faz em vez de apenas copiá-lo.
Ao longo deste curso, vamos sugerir abordagens para melhorar a qualidade do código gerado e trabalhar adequadamente com modelos de IA.
Antes de falarmos sobre como interagir com os modelos, precisamos entender melhor como eles pensam e como são precificados. Vamos nos aprofundar nesse assunto na próxima lição.