0%

Sobre a aleatoriedade

Transcrição

Agora, depois que o modelo é treinado, se ele meramente só sempre procurar a palavra mais ou token mais provável, né? Um depois do outro é por uma mesma pergunta. É natural que ele sempre saia com a mesma resposta, né? Se o funcionamento for esse. Mas não é tão simples assim para os modelos ficarem mais interessantes e criativo, eles injetam também. Em cada cálculo do próximo token. Um fator aleatório ali que vai determinar, né? Digamos que eu tenha 2 opções muito prováveis ou 2 opções muito prováveis para o próximo token, e uma terceira não tão provável. Assim, o modelo vai utilizar essa aleatoriedade para não pegar sempre a mais provável. Às vezes ele pode pegar a segunda mais provável, às vezes ele pode pegar até a terceira mais provável, mesmo que ela seja bem menos provável do que a primeira. E aí isso vai permitir que o modelo sempre saia com uma resposta diferente. Isso que se a gente entrar hoje no ChatGPT, na versão 5 ali, a que responde mais rápido, instantânea. Fizer uma pergunta para ele, ele vai responder de um jeito. E se a gente abrir outra conversa ali com ele, que está num contexto isolado, ele não sabe o que ele respondeu na outra pergunta. E fizer aquela mesma, exata pergunta com as mesmas palavras, a gente vai ter uma resposta que pode, no fundo, até ser a mesma. Vai estar, mas vai estar comunicada de uma forma um pouquinho diferente. E quantas vezes a gente fizer isso, a gente vai ter sempre respostas ali, pelo menos construídas de forma diferente. Ainda que a se for uma pergunta factual, por exemplo, qual que é a capital da França? Ele sempre vai dizer Paris, mas ele vai construir uma frase em volta disso cada vez diferente. E é por causa dessa aleatoriedade, né? Dessa semente aleatória, desse número aleatório, que é que é injetado intencionalmente pelo na hora que o modelo vai fazer esse cálculo. Pelo algoritmo. Para que a gente tenha, né? Respostas ali criativas, respostas diferentes. Não seja sempre a mesma coisa. Isso é muito útil para a gente poder utilizar esses modelos para uma série de funções, não é como gerar uma poesia ou escrever 111 copy de marketing, ou escrever um e-mail, né? E não ter aquela coisa repetitiva, sempre seguindo a mesma linha. Mas também gera um desafio, porque isso torna esses modelos não determinísticos. A gente nunca sabe é o que eles vão responder, né? Tem até uma forma de passar manualmente esse. É quando a gente faz uma integração com os sistemas entre sistemas para uma aplicação, fazer a chamada de modelo de linguagem e obter um resultado. Ela pode sim passar esse número fixo sempre, mas isso não é tão comum. Isso é necessário só em alguns casos. E essa falta do modelo não se determinístico, dificulta também um bocado os testes dele, né? Então, quando a gente quer dizer qual que é o melhor modelo, é a última versão do chat de PT ou do Google Gmail. A gente vai comparar isso normalmente com uma base de perguntas e respostas ou com alguns desafios para ver o quão bem aquele modelo se sai em responder aquelas perguntas, comparando com nosso gabarito, porém, cada vez que eu chamar esse modelo e fizer a pergunta para ele. Ele vai estar utilizando ali. Uma semente aleatória para fazer esse cálculo da resposta. Então cada vez que eu chamava vira uma resposta diferente. Mesmo se eu passar um número fixo, também fixar essa semente, eu tenho que escolher um número arbitrário para isso. Eu não estou testando toda a amplitude e possibilidade do modelo, capacidade do modelo. Então normalmente o que a gente faz para ter esse tipo de teste e comparação é rodar uma série de vezes a mesma pergunta e uma série de perguntas diferentes em cada modelo. E obter uma média ali da qualidade, mesmo assim torna muito desafiador fazer esse tipo de comparação.