![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Por que a IA não consegue contar o número de "R" na palavra "morango"?
Grandes modelos de linguagem, especialmente o ChatGPT da OpenAI, revolucionaram a forma como interagimos com máquinas que entendiam e podiam gerar texto semelhante ao humano. Mas, por si só, esses modelos vinham com seus próprios caracteres cheios de estranheza. A estranheza mais irritante que circulou em todas as mídias sociais recentemente é a falha desse grande modelo de linguagem em contar corretamente o número de uma determinada letra em uma palavra. Um exemplo muito popular é a palavra "strawberry", na qual a IA muitas vezes falha em contar corretamente quantas vezes "r" apareceu. Mas por que ela faz isso? A resposta está bem no âmago de como esses modelos processam e geram linguagem.
Uma das principais razões pelas quais a IA tropeça em questões como contagem de letras é por causa da maneira como ela realmente processa palavras. Modelos de linguagem, como GPT-3 e GPT-4, não tratam palavras como uma sequência de letras individuais. Em vez disso, eles quebram o texto em unidades menores chamadas "tokens". Os tokens podem ser tão curtos quanto um caractere ou tão longos quanto uma palavra inteira, dependendo do design do modelo em questão e da palavra específica envolvida.
Por exemplo, a palavra "strawberry" provavelmente seria dividida em dois tokens, representações de fragmentos parciais de palavras que o modelo conhece do treinamento. O problema é que eles geralmente não correspondem às letras da palavra. Isso ocorre porque, em exemplos como "strawberry", a IA pode ver não a divisão da palavra em letras únicas e completas, mas dois tokens; como os IDs de token 496 e 675. Quando, mais tarde, for solicitado a contar letras específicas, esse modelo não encontrará uma maneira fácil de mapear os tokens de volta ao número de ocorrências de uma letra específica.
Basicamente, modelos de linguagem preveem qual será a próxima palavra ou token em uma sequência, com base no contexto dado pelas palavras ou tokens anteriores. Isso funciona especialmente para gerar texto que não é apenas coerente, mas também ciente de seu contexto. No entanto, não é realmente adequado para propósitos para os quais você precisa contar algo precisamente ou raciocinar sobre caracteres individuais.
Se você pedisse à IA para contar o número de ocorrências da letra "r" na palavra "strawberry", ela não teria uma representação tão fina da palavra da qual o número e a posição de cada instância dessa letra poderiam ser derivados. Em vez disso, ela responde no molde do que aprendeu sobre a formação de previsões a partir da estrutura da solicitação. Claro, isso pode ser impreciso, porque os dados dos quais ela aprendeu não são sobre contagem de letras e podem nem mesmo incluir o tipo de material que seria necessário para rastrear o "r" em nossa palavra de exemplo.
Outro ponto importante é que os modelos de linguagem por si só, usados na maioria dos chatbots, são inapropriados para contagem ou aritmética explícita. De outra forma, os modelos de linguagem pura são pouco mais do que dicionários avançados ou algoritmos de texto preditivo que realizam tarefas ponderadas com probabilidade com base nos padrões que aprendem, mas lutam com tarefas que exigem raciocínio lógico estrito, como contagem. Se for solicitado à IA que soletre uma palavra ou a divida em letras individuais, ela pode acertar com mais frequência, pois isso está mais alinhado com a tarefa para a qual foi treinada: geração de texto.
Apesar dessas limitações, melhorias no desempenho da IA em tais tarefas são possíveis. Elas podem ser melhoradas pedindo à IA para empregar todos os tipos de linguagens de programação, como Python, para fazer a contagem. Por exemplo, você pode tentar dar à IA uma instrução para escrever uma função Python que conte o número de "r"s em "morango", e ela provavelmente acertaria. Usamos essa abordagem porque ela alavanca a capacidade da IA de entender e gerar código, que pode ser executado para executar a tarefa corretamente.
Além disso, gerações mais recentes de modelos de linguagem são combinadas com outras ferramentas e algoritmos que tornam esses modelos mais poderosos para tarefas mais estruturadas, que também incluem contagem e aritmética.
Incorporar o raciocínio simbólico ou combinar os LLMs com mecanismos de raciocínio externos tornaria um sistema de IA capaz de superar essas deficiências.
O problema da contagem de letras em palavras, como "morango", aponta para uma questão muito maior e mais geral a esse respeito: a "estupidez coletiva" desses modelos treinados. Esses modelos, mesmo tendo sido treinados em conjuntos de dados muito grandes e podendo, portanto, executar a geração de texto em níveis muito sofisticados, ainda assim, às vezes, cometerão erros muito estúpidos que uma criança pequena evitaria facilmente. Isso acontece porque o "conhecimento" do modelo deve ser composto de reconhecimento de padrões e associações estatísticas, em vez de sua compreensão do mundo real ou inferência lógica.
Mesmo quando instruído em detalhes ou mesmo configurado em uma situação em que vários modelos verificam uns aos outros, a IA ainda pode teimosamente se ater a respostas erradas. Esse comportamento mostra em grande detalhe o quão importante é não superestimar os sistemas de IA para capacidades além de seus pontos fortes, mas apreciar completamente o que eles podem e não podem fazer.
A incapacidade da IA de contar o número de "r" em um "morango" é tudo menos uma mera falha trivial; em vez disso, é um reflexo da arquitetura subjacente e da filosofia de design dos modelos de linguagem. Esses modelos são muito poderosos para gerar texto semelhante ao humano, entender contexto e emular conversa, mas não são feitos diretamente para tarefas que exigem especificamente atenção aos detalhes no nível do personagem.
Com a IA melhorando continuamente, os modelos futuros provavelmente serão mais capazes de tais tarefas por meio de processos aprimorados de tokenização, integrando ferramentas extras de raciocínio ou até mesmo maneiras totalmente diferentes de entender e manipular a linguagem. Até lá, ela deve ser abordada com uma compreensão de suas limitações, usando soluções alternativas apropriadas e reconhecendo que, embora possa simular o entendimento, ela ainda não "entende" verdadeiramente da maneira como os humanos o fazem.