Tokens.
| Somir | Desfavor Explica | 4 comentários em Tokens.
Inteligências artificiais generativas, aquelas que criam coisas, usam um sistema parecido para conversar com seus usuários: tokens. Seja para fazer imagens ou para gerar textos no ChatGPT, transformar os pedidos do ser humano em algo coerente numa resposta exige que a máquina consiga entender a forma como a gente se comunica. Talvez entender mais sobre isso seja uma curiosidade, talvez seja o caminho para você se adaptar ao mercado de trabalho que se aproxima de nós… só o tempo dirá.
Token pode ser traduzido como símbolo em português, mas também como signo. Mas não o da astrologia: signo na teoria da comunicação é qualquer coisa que tem um significado. Um som pode ser um signo, por exemplo. Se ouvimos “oi”, sabemos que é uma forma de cumprimento. Mas pode ser uma imagem, um gesto, um… cheiro. Tudo o que conseguimos receber pelos nossos sentidos e transformar numa ideia dentro da nossa cabeça é um signo.
Cada uma das letras desta frase é um signo. Cada palavra que elas formam é um signo. Cada frase pode ser um signo. Um ícone de aplicativo é um signo: quando você vê aquelas três barrinhas hoje em dia, já sabe que é o símbolo que identifica um menu, e até que tem que tocar ou clicar nele para ver mais coisas. Se fosse um símbolo diferente, um emoji sorrindo, por exemplo, você não teria a mesma ideia.
Nossa comunicação, analógica ou digital, depende totalmente desses signos. E mais, dependem de consenso sobre o significado de cada coisa. Como dito no exemplo do ícone de menu, se cada aplicativo usasse um diferente, as pessoas ficariam bem confusas. Mas isso é bem mais básico, se a gente não concordasse em que sons significam o quê, jamais teríamos desenvolvido a fala humana. Nós dois temos que ter ideias muito parecidas sobre o que significa cada palavra para que possamos nos comunicar através deste texto.
E foi pensando nesse contexto que os sistemas de comunicação entre pessoas e inteligências artificiais foram criados. A máquina não tinha noção de nada que não fossem zeros e uns. Até mesmo as linguagens de programação não deixavam de ser apenas forma de guiar esses dígitos binários para gerar o resultado desejado.
Por mais que programadores usem várias palavras para escrever códigos, não é incomum que “falte vocabulário” para passar uma instrução para a máquina e precisem fazer gambiarras direto na “língua da máquina” para conseguir resolver alguns problemas. O computador não tem noção do que nada do que dizemos significa, e isso está na base de como ele funciona.
As primeiras linguagens de programação eram muito mais concretas no trabalho de passar bits (zeros e uns) de um lado para outro até chegar na conta certa, e com o passar dos anos criamos várias e várias camadas de abstração em cima disso: o programador escreve com palavras, um outro programa pega essas palavras e transforma em código de máquina, e mais um dentro do processador transforma em operações binárias que finalmente podem ser resolvidas pelos transistores abrindo e fechando correntes elétricas em altíssima velocidade.
As inteligências artificiais colocam mais uma camada de abstração em cima de tudo isso: o ser humano conversa com o computador, que por sua vez tenta entender aqueles tokens (signos), transformar em algo mais próximo de uma linguagem de programação e só aí processar tudo da forma como realmente entende.
Mas a forma como nós entendemos esses signos não funciona para a máquina. O grande avanço da IA nesses últimos anos foi a melhoria desse processo de entender palavras e frases. Em tese, a tecnologia para criar textos e imagens já existia, porque ela é essencialmente matemática: e fazer contas é algo que os processadores de computador sabem muito bem. O problema era fazer a porcaria do computador entender o que a gente queria que ele fizesse.
O sistema de tokens criou essa ponte, e é a partir dela que estamos chegando nessa nova era de IAs como o ChatGPT. A inspiração para tudo isso é muito humana: da mesma forma como nossos cérebros tentar criar padrões para tudo e conectar informações parecidas em grupos parecidos, a IA faz o mesmo com seus tokens.
Quando você escreve uma palavra para o ChatGPT, ele vai buscar no seu banco de dados uma sequência de números que corresponde a essa palavra. Esses números foram armazenados com relações a outros números, contas que ele pode fazer com cada um deles, tendências matemáticas que se repetiram durante seu aprendizado.
Porque a IA teve que treinar antes. O processo (longo e difícil) de treinar algo como o ChatGPT passa por “ler” bilhões de textos produzidos por humanos, transformar cada palavra em um número e começar a encontrar padrões entre esses números. Vou dar um exemplo que NÃO é real, mas que mostra a ideia genérica do processo:
A palavra “político” foi definida (aleatoriamente) como 876192 durante o treinamento. A palavra “corrupto” foi definida como 542889 logo depois. O computador não sabe o que essas palavras significam de verdade para a gente, mas percebeu que tem um monte de menções a 876192+542889! É tão comum o ser humano usar essa sequência que quando ele vê 876192 ele fica se coçando para colocar um 542889 depois. A máquina acha que todo político é corrupto? Não, ela não acha nada. Mas ela aprendeu a tendência desses números virem juntinhos.
E mais, tem um monte de outros números que vem depois de “político” também, menos populares, mas dependendo do contexto dos números que vieram antes, ela sabe que nem sempre “corrupto” é a melhor opção. Ela vai fazendo a análise da frase e transformando em novos números que sugerem qual é o mais eficiente para colocar depois. Ainda no exemplo maluco: a frase “não existe” ante de “político” gera um número que tende a continuar com o número (token) de “honesto”.
Mesmo que os textos que a IA entendeu digam que “político” não costuma vir antes de “honesto”, a matemática da frase “não existe” antes da palavra “político” sugere que nesse caso, “honesto” é a melhor continuação.
É parecido com a forma como a gente pensa, mas existe numa camada matemática ultra complexa que nenhum ser humano consegue processar no mesmo tempo de uma máquina. É por isso que dizemos que existe uma caixa preta na Inteligência Artificial: em tese sabemos o que ela faz, mas na hora do vamos ver são tantas contas tão complicadas que só entendemos o que entrou e o que saiu.
Se você escreve um texto para o ChatGPT e pede uma resposta, ele transforma o que você escreveu em matemática, faz as contas, consegue um resultado e transforma de volta em tokens (nesse caso, palavras e frases) para que você consiga ler. É por isso que pequenas alterações na forma como você escreve seus pedidos podem gerar resultados tão diferentes.
Continuando no exemplo ERRADO, mas didático: se a palavra “amor” traduz para o número 10 e a palavra “afeto” para o número 3, percebem como a conta que o computador vai fazer com esses números tende a sair totalmente diferente? Na prática, ele está calculando quais são as palavras mais comuns depois de amor e depois de afeto, o que para muitos de nós pode ser a mesma coisa, mas para a máquina é efetivamente um número diferente.
Nas inteligências artificiais de imagem, que usam um modelo parecido de tradução de tokens para números antes de fazer seu trabalho, eu já percebi que até mesmo a ordem das palavras pode gerar resultados muito diferentes. “Bola e quadrado” e “quadrado e bola” podem ser a mesma coisa para a gente, mas para a IA, a conta que ela faz mudou. Ela está calculando a diferença entre o que aprendeu das duas sequências em contextos diferentes. Quando eu escrevo de um jeito, sai uma bola muito grande vermelha e um quadrado verde pequeno, quando escrevo de outro, sai uma bola pequena azul e um quadrado grande amarelo. Pra mim não faz o menor sentido a variação, mas para a IA eu pedi coisas totalmente diferentes.
Por isso uma possível profissão do futuro é a de engenheiro de promtps (prompts são os pedidos feitos para a IA). Entender a diferença que pode acontecer entre dois ou mais pedidos aparentemente iguais para nós pode ajudar muito a conseguir resultados melhores do computador. Em tese nem muda tanto o paradigma: computadores são bichos literais, quem já sequer brincou de programar sabe disso. Se você escrever um código que vai travar o computador, ele roda esse código até travar o computador! Não era isso que o programador queria, mas o computador não tem como presumir intenção: o pedido foi para que ele travasse tudo. “Se o humano quer isso, vou fazer isso.”
Conversar com a IA é uma habilidade que pode ser treinada. Para o uso cotidiano, provavelmente você consegue alguma coisa com tentativa e erro, mas para explorar os limites da máquina, precisamos entender o que faz mais diferença para ela na hora de entender um pedido. Todo dia a tecnologia avança mais e não é certeza que o que você aprender agora vai funcionar para sempre, mas até segunda ordem, a ideia básica da tecnologia, que é transformar palavras em frases em tokens e fazer matemática com eles, vai continuar valendo.
A IA vai ter seus vícios e manias de acordo com o que usou para fazer o treinamento, e não é nem um pouco fácil ir lá no meio do caos de números e contas para editar as coisas do jeito que se quer. A caixa-preta parece ser um caminho sem volta, mais ou menos como ainda não temos capacidade de decifrar todos os sinais elétricos do cérebro humano, não temos poder de processamento ainda para explicar cada detalhe do funcionamento do modelo de compreensão e comunicação da IA. Vemos o que entra e vemos o que sai.
Importante: não estou dizendo que é mágica, o mecanismo de funcionamento foi programado por humanos, é só que quando um processador está fazendo contas com milhões de dígitos em frações de segundo, não é como se um observador humano conseguisse acompanhar. E pior, enquanto a máquina estiver soltando sequências de palavras coerentes (mesmo quando erra ou mente na cara dura), não é como se conseguíssemos ir ao número que deu errado e editar. Só mais treinamento (que também tem essa característica de complexidade extrema) pode ir guiando-a na direção desejada.
De uma certa forma, tudo o que nos resta é observar se o cachorro fez o truque certo e reagir com “feio” ou “bom garoto”. O que exatamente se passa na cabeça do bicho está além da nossa capacidade de intervenção. Transformar palavras e ideias em tokens foi genial, um avanço enorme na nossa tecnologia, mas não significa que o computador começou a pensar como um ser humano, apenas que está usando um mecanismo que simula isso para quem vê de fora.
Saber falar com a IA interfere muito no resultado. Ela tem suas preferências (não intencionais por enquanto), seus pontos fracos, e mais importante, ainda tem o mesmo problema básico de qualquer computador: ele faz o que você quer, mesmo que você peça para ele fazer algo idiota. Seja específico, lembre-se que ela aprendeu sobre o mundo lendo textos de outros humanos e tem basicamente todos os problemas que outros humanos têm, sem capacidade nenhuma de corrigi-los por conta própria.
Quem souber falar melhor essa “nova velha língua” tende a tirar mais resultados da IA.
Para dizer que eu sou um 7616289, para dizer que continuou não entendendo, ou mesmo para dizer que já está aprendendo a consertar encanamento: somir@desfavor.com
Apesar de ter “inteligência” no nome, as IAs ainda não pensam. Pelo menos por enquanto. E só fazem aquilo que foram previamente programadas (ou “treinadas”) para fazer. As possibilidades são infinitas, mas só quem realmente entender a forma de funcionar das IAs e souber “explicar” direitinho às máquinas o que quer (elaboração de prompts) é que vai obter os resultados desejados.
Quanto ao exemplo citado sobre pesquisar duas coisas diferentes em ordens diferentes, isso já acontece com buscadores acadêmicos, indexaores etc, mesmo que eles supostamente não usem a IA como ferramenta de pesquisa. Se eu pesquiso, por exemplo, os termos “educação” e “química”, vai aparecer uma série de resultados diferentes de se eu pesquisar “química” e “educação”.
“está aprendendo a consertar encanamento”
It’s a me, Mario!
Isso vai ser bem útil na medicina. Paciente chega na triagem com dor de cabeça, é hipertenso e tem um cotidiano estressante. Em exames básicos de funções vitais, dependendo dos signos identificados, a IA pode apontar com alguma clareza as possibilidades daquele paciente sofrer AVC nas próximas horas, dias ou semanas.
Dependendo também dos sintomas descritos através dos tokens, uma máquina pode apresentar ao médico todos os possíveis diagnósticos envolvendo os sintomas listados, de acordo com a frequência, intensidade, histórico do paciente, etc., o que pode economizar a equipe médica e o próprio paciente para receber tratamento.
A máquina só precisa dos dados para que possa prestar esse auxílio.
Digo que só serão “substituídos” aqueles que, além de não se adaptarem, ainda são incompetentes. Igual taxista que foi substituído por Uber.