{"id":21636,"date":"2023-06-07T13:42:14","date_gmt":"2023-06-07T16:42:14","guid":{"rendered":"https:\/\/www.desfavor.com\/blog\/?p=21636"},"modified":"2023-06-07T13:42:14","modified_gmt":"2023-06-07T16:42:14","slug":"tokens","status":"publish","type":"post","link":"https:\/\/www.desfavor.com\/blog\/2023\/06\/tokens\/","title":{"rendered":"Tokens."},"content":{"rendered":"<p>Intelig\u00eancias artificiais generativas, aquelas que criam coisas, usam um sistema parecido para conversar com seus usu\u00e1rios: 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\u00e1quina consiga entender a forma como a gente se comunica. Talvez entender mais sobre isso seja uma curiosidade, talvez seja o caminho para voc\u00ea se adaptar ao mercado de trabalho que se aproxima de n\u00f3s&#8230; s\u00f3 o tempo dir\u00e1.<!--more--><\/p>\n<p>Token pode ser traduzido como s\u00edmbolo em portugu\u00eas, mas tamb\u00e9m como signo. Mas n\u00e3o o da astrologia: signo na teoria da comunica\u00e7\u00e3o \u00e9 qualquer coisa que tem um significado. Um som pode ser um signo, por exemplo. Se ouvimos \u201coi\u201d, sabemos que \u00e9 uma forma de cumprimento. Mas pode ser uma imagem, um gesto, um&#8230; cheiro. Tudo o que conseguimos receber pelos nossos sentidos e transformar numa ideia dentro da nossa cabe\u00e7a \u00e9 um signo.<\/p>\n<p>Cada uma das letras desta frase \u00e9 um signo. Cada palavra que elas formam \u00e9 um signo. Cada frase pode ser um signo. Um \u00edcone de aplicativo \u00e9 um signo: quando voc\u00ea v\u00ea aquelas tr\u00eas barrinhas hoje em dia, j\u00e1 sabe que \u00e9 o s\u00edmbolo que identifica um menu, e at\u00e9 que tem que tocar ou clicar nele para ver mais coisas. Se fosse um s\u00edmbolo diferente, um emoji sorrindo, por exemplo, voc\u00ea n\u00e3o teria a mesma ideia.<\/p>\n<p>Nossa comunica\u00e7\u00e3o, anal\u00f3gica ou digital, depende totalmente desses signos. E mais, dependem de consenso sobre o significado de cada coisa. Como dito no exemplo do \u00edcone de menu, se cada aplicativo usasse um diferente, as pessoas ficariam bem confusas. Mas isso \u00e9 bem mais b\u00e1sico, se a gente n\u00e3o concordasse em que sons significam o qu\u00ea, jamais ter\u00edamos desenvolvido a fala humana. N\u00f3s dois temos que ter ideias muito parecidas sobre o que significa cada palavra para que possamos nos comunicar atrav\u00e9s deste texto.<\/p>\n<p>E foi pensando nesse contexto que os sistemas de comunica\u00e7\u00e3o entre pessoas e intelig\u00eancias artificiais foram criados. A m\u00e1quina n\u00e3o tinha no\u00e7\u00e3o de nada que n\u00e3o fossem zeros e uns. At\u00e9 mesmo as linguagens de programa\u00e7\u00e3o n\u00e3o deixavam de ser apenas forma de guiar esses d\u00edgitos bin\u00e1rios para gerar o resultado desejado.<\/p>\n<p>Por mais que programadores usem v\u00e1rias palavras para escrever c\u00f3digos, n\u00e3o \u00e9 incomum que \u201cfalte vocabul\u00e1rio\u201d para passar uma instru\u00e7\u00e3o para a m\u00e1quina e precisem fazer gambiarras direto na \u201cl\u00edngua da m\u00e1quina\u201d para conseguir resolver alguns problemas. O computador n\u00e3o tem no\u00e7\u00e3o do que nada do que dizemos significa, e isso est\u00e1 na base de como ele funciona.<\/p>\n<p>As primeiras linguagens de programa\u00e7\u00e3o eram muito mais concretas no trabalho de passar bits (zeros e uns) de um lado para outro at\u00e9 chegar na conta certa, e com o passar dos anos criamos v\u00e1rias e v\u00e1rias camadas de abstra\u00e7\u00e3o em cima disso: o programador escreve com palavras, um outro programa pega essas palavras e transforma em c\u00f3digo de m\u00e1quina, e mais um dentro do processador transforma em opera\u00e7\u00f5es bin\u00e1rias que finalmente podem ser resolvidas pelos transistores abrindo e fechando correntes el\u00e9tricas em alt\u00edssima velocidade.<\/p>\n<p>As intelig\u00eancias artificiais colocam mais uma camada de abstra\u00e7\u00e3o 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\u00f3ximo de uma linguagem de programa\u00e7\u00e3o e s\u00f3 a\u00ed processar tudo da forma como realmente entende.<\/p>\n<p>Mas a forma como n\u00f3s entendemos esses signos n\u00e3o funciona para a m\u00e1quina. O grande avan\u00e7o da IA nesses \u00faltimos anos foi a melhoria desse processo de entender palavras e frases. Em tese, a tecnologia para criar textos e imagens j\u00e1 existia, porque ela \u00e9 essencialmente matem\u00e1tica: e fazer contas \u00e9 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.<\/p>\n<p>O sistema de tokens criou essa ponte, e \u00e9 a partir dela que estamos chegando nessa nova era de IAs como o ChatGPT. A inspira\u00e7\u00e3o para tudo isso \u00e9 muito humana: da mesma forma como nossos c\u00e9rebros tentar criar padr\u00f5es para tudo e conectar informa\u00e7\u00f5es parecidas em grupos parecidos, a IA faz o mesmo com seus tokens.<\/p>\n<p>Quando voc\u00ea escreve uma palavra para o ChatGPT, ele vai buscar no seu banco de dados uma sequ\u00eancia de n\u00fameros que corresponde a essa palavra. Esses n\u00fameros foram armazenados com rela\u00e7\u00f5es a outros n\u00fameros, contas que ele pode fazer com cada um deles, tend\u00eancias matem\u00e1ticas que se repetiram durante seu aprendizado.<\/p>\n<p>Porque a IA teve que treinar antes. O processo (longo e dif\u00edcil) de treinar algo como o ChatGPT passa por \u201cler\u201d bilh\u00f5es de textos produzidos por humanos, transformar cada palavra em um n\u00famero e come\u00e7ar a encontrar padr\u00f5es entre esses n\u00fameros. Vou dar um exemplo que N\u00c3O \u00e9 real, mas que mostra a ideia gen\u00e9rica do processo:<\/p>\n<p>A palavra \u201cpol\u00edtico\u201d foi definida (aleatoriamente) como 876192 durante o treinamento. A palavra \u201ccorrupto\u201d foi definida como 542889 logo depois. O computador n\u00e3o sabe o que essas palavras significam de verdade para a gente, mas percebeu que tem um monte de men\u00e7\u00f5es a 876192+542889! \u00c9 t\u00e3o comum o ser humano usar essa sequ\u00eancia que quando ele v\u00ea 876192 ele fica se co\u00e7ando para colocar um 542889 depois. A m\u00e1quina acha que todo pol\u00edtico \u00e9 corrupto? N\u00e3o, ela n\u00e3o acha nada. Mas ela aprendeu a tend\u00eancia desses n\u00fameros virem juntinhos.<\/p>\n<p>E mais, tem um monte de outros n\u00fameros que vem depois de \u201cpol\u00edtico\u201d tamb\u00e9m, menos populares, mas dependendo do contexto dos n\u00fameros que vieram antes, ela sabe que nem sempre \u201ccorrupto\u201d \u00e9 a melhor op\u00e7\u00e3o. Ela vai fazendo a an\u00e1lise da frase e transformando em novos n\u00fameros que sugerem qual \u00e9 o mais eficiente para colocar depois. Ainda no exemplo maluco: a frase \u201cn\u00e3o existe\u201d ante de \u201cpol\u00edtico\u201d gera um n\u00famero que tende a continuar com o n\u00famero (token) de \u201chonesto\u201d.<\/p>\n<p>Mesmo que os textos que a IA entendeu digam que \u201cpol\u00edtico\u201d n\u00e3o costuma vir antes de \u201chonesto\u201d, a matem\u00e1tica da frase \u201cn\u00e3o existe\u201d antes da palavra \u201cpol\u00edtico\u201d sugere que nesse caso, \u201chonesto\u201d \u00e9 a melhor continua\u00e7\u00e3o.<\/p>\n<p>\u00c9 parecido com a forma como a gente pensa, mas existe numa camada matem\u00e1tica ultra complexa que nenhum ser humano consegue processar no mesmo tempo de uma m\u00e1quina. \u00c9 por isso que dizemos que existe uma caixa preta na Intelig\u00eancia Artificial: em tese sabemos o que ela faz, mas na hora do vamos ver s\u00e3o tantas contas t\u00e3o complicadas que s\u00f3 entendemos o que entrou e o que saiu.<\/p>\n<p>Se voc\u00ea escreve um texto para o ChatGPT e pede uma resposta, ele transforma o que voc\u00ea escreveu em matem\u00e1tica, faz as contas, consegue um resultado e transforma de volta em tokens (nesse caso, palavras e frases) para que voc\u00ea consiga ler. \u00c9 por isso que pequenas altera\u00e7\u00f5es na forma como voc\u00ea escreve seus pedidos podem gerar resultados t\u00e3o diferentes.<\/p>\n<p>Continuando no exemplo ERRADO, mas did\u00e1tico: se a palavra \u201camor\u201d traduz para o n\u00famero 10 e a palavra \u201cafeto\u201d para o n\u00famero 3, percebem como a conta que o computador vai fazer com esses n\u00fameros tende a sair totalmente diferente? Na pr\u00e1tica, ele est\u00e1 calculando quais s\u00e3o as palavras mais comuns depois de amor e depois de afeto, o que para muitos de n\u00f3s pode ser a mesma coisa, mas para a m\u00e1quina \u00e9 efetivamente um n\u00famero diferente.<\/p>\n<p>Nas intelig\u00eancias artificiais de imagem, que usam um modelo parecido de tradu\u00e7\u00e3o de tokens para n\u00fameros antes de fazer seu trabalho, eu j\u00e1 percebi que at\u00e9 mesmo a ordem das palavras pode gerar resultados muito diferentes. \u201cBola e quadrado\u201d e \u201cquadrado e bola\u201d podem ser a mesma coisa para a gente, mas para a IA, a conta que ela faz mudou. Ela est\u00e1 calculando a diferen\u00e7a entre o que aprendeu das duas sequ\u00eancias 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\u00e3o faz o menor sentido a varia\u00e7\u00e3o, mas para a IA eu pedi coisas totalmente diferentes.<\/p>\n<p>Por isso uma poss\u00edvel profiss\u00e3o do futuro \u00e9 a de engenheiro de promtps (prompts s\u00e3o os pedidos feitos para a IA). Entender a diferen\u00e7a que pode acontecer entre dois ou mais pedidos aparentemente iguais para n\u00f3s pode ajudar muito a conseguir resultados melhores do computador. Em tese nem muda tanto o paradigma: computadores s\u00e3o bichos literais, quem j\u00e1 sequer brincou de programar sabe disso. Se voc\u00ea escrever um c\u00f3digo que vai travar o computador, ele roda esse c\u00f3digo at\u00e9 travar o computador! N\u00e3o era isso que o programador queria, mas o computador n\u00e3o tem como presumir inten\u00e7\u00e3o: o pedido foi para que ele travasse tudo. \u201cSe o humano quer isso, vou fazer isso.\u201d<\/p>\n<p>Conversar com a IA \u00e9 uma habilidade que pode ser treinada. Para o uso cotidiano, provavelmente voc\u00ea consegue alguma coisa com tentativa e erro, mas para explorar os limites da m\u00e1quina, precisamos entender o que faz mais diferen\u00e7a para ela na hora de entender um pedido. Todo dia a tecnologia avan\u00e7a mais e n\u00e3o \u00e9 certeza que o que voc\u00ea aprender agora vai funcionar para sempre, mas at\u00e9 segunda ordem, a ideia b\u00e1sica da tecnologia, que \u00e9 transformar palavras em frases em tokens e fazer matem\u00e1tica com eles, vai continuar valendo.<\/p>\n<p>A IA vai ter seus v\u00edcios e manias de acordo com o que usou para fazer o treinamento, e n\u00e3o \u00e9 nem um pouco f\u00e1cil ir l\u00e1 no meio do caos de n\u00fameros 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\u00e3o temos capacidade de decifrar todos os sinais el\u00e9tricos do c\u00e9rebro humano, n\u00e3o temos poder de processamento ainda para explicar cada detalhe do funcionamento do modelo de compreens\u00e3o e comunica\u00e7\u00e3o da IA. Vemos o que entra e vemos o que sai.<\/p>\n<p>Importante: n\u00e3o estou dizendo que \u00e9 m\u00e1gica, o mecanismo de funcionamento foi programado por humanos, \u00e9 s\u00f3 que quando um processador est\u00e1 fazendo contas com milh\u00f5es de d\u00edgitos em fra\u00e7\u00f5es de segundo, n\u00e3o \u00e9 como se um observador humano conseguisse acompanhar. E pior, enquanto a m\u00e1quina estiver soltando sequ\u00eancias de palavras coerentes (mesmo quando erra ou mente na cara dura), n\u00e3o \u00e9 como se consegu\u00edssemos ir ao n\u00famero que deu errado e editar. S\u00f3 mais treinamento (que tamb\u00e9m tem essa caracter\u00edstica de complexidade extrema) pode ir guiando-a na dire\u00e7\u00e3o desejada.<\/p>\n<p>De uma certa forma, tudo o que nos resta \u00e9 observar se o cachorro fez o truque certo e reagir com \u201cfeio\u201d ou \u201cbom garoto\u201d. O que exatamente se passa na cabe\u00e7a do bicho est\u00e1 al\u00e9m da nossa capacidade de interven\u00e7\u00e3o. Transformar palavras e ideias em tokens foi genial, um avan\u00e7o enorme na nossa tecnologia, mas n\u00e3o significa que o computador come\u00e7ou a pensar como um ser humano, apenas que est\u00e1 usando um mecanismo que simula isso para quem v\u00ea de fora.<\/p>\n<p>Saber falar com a IA interfere muito no resultado. Ela tem suas prefer\u00eancias (n\u00e3o intencionais por enquanto), seus pontos fracos, e mais importante, ainda tem o mesmo problema b\u00e1sico de qualquer computador: ele faz o que voc\u00ea quer, mesmo que voc\u00ea pe\u00e7a para ele fazer algo idiota. Seja espec\u00edfico, lembre-se que ela aprendeu sobre o mundo lendo textos de outros humanos e tem basicamente todos os problemas que outros humanos t\u00eam, sem capacidade nenhuma de corrigi-los por conta pr\u00f3pria.<\/p>\n<p>Quem souber falar melhor essa \u201cnova velha l\u00edngua\u201d tende a tirar mais resultados da IA.<\/p>\n<p class=\"uk-background-muted uk-padding\">Para dizer que eu sou um 7616289, para dizer que continuou n\u00e3o entendendo, ou mesmo para dizer que j\u00e1 est\u00e1 aprendendo a consertar encanamento: <a href=\"mailto:somir@desfavor.com\">somir@desfavor.com<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Intelig\u00eancias artificiais generativas, aquelas que criam coisas, usam um sistema parecido para conversar com seus usu\u00e1rios: 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\u00e1quina consiga entender a forma como a gente se comunica. Talvez entender mais sobre [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":21637,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[],"class_list":["post-21636","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desfavor-explica"],"_links":{"self":[{"href":"https:\/\/www.desfavor.com\/blog\/wp-json\/wp\/v2\/posts\/21636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.desfavor.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.desfavor.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.desfavor.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.desfavor.com\/blog\/wp-json\/wp\/v2\/comments?post=21636"}],"version-history":[{"count":0,"href":"https:\/\/www.desfavor.com\/blog\/wp-json\/wp\/v2\/posts\/21636\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.desfavor.com\/blog\/wp-json\/wp\/v2\/media\/21637"}],"wp:attachment":[{"href":"https:\/\/www.desfavor.com\/blog\/wp-json\/wp\/v2\/media?parent=21636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.desfavor.com\/blog\/wp-json\/wp\/v2\/categories?post=21636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.desfavor.com\/blog\/wp-json\/wp\/v2\/tags?post=21636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}