Coloquei o CHATGPT para jogar XADREZ contra o GEMINI

447.36k views3894 WordsCopy TextShare
Asimov Academy
Código-fonte disponível aqui: https://hub.asimov.academy/materiais/?q=xadrez Conheça a Asimov Acade...
Video Transcript:
eu coloquei o chat GPT para jogar xadrez contra o geminii a inteligência artificial do Google e sério o resultado dessas partidas aqui me impressionou muito porque foi um massacre ao todo eu fiz elas jogarem 20 partidas com diferentes aberturas só que antes de te contar o resultado final do match eu vou te explicar como que eu fiz isso e como você pode ter acesso ao código fonte desse script para fazer os próprios testes a Como ter acesso ao histórico de todas as partidas que foram comentadas pelas próprias inteligências oficiais do Por que elas fizeram cada
jogada em determinado momento e a gente vai analisar junto algumas partidas para poder entender um pouco como esses modelos pensam e fica muito explícito também quais são os pontos fortes e muitos pontos fracos que elas têm aqui só que antes de começar eu queria discutir um pouquinho do por xadrez para modelos de linguagem porque Claro a gente tá acostumado a utilizar xat GPT gemina e esses tipos de modelos para buscar informações mas o que que o xadrez tem a ver com isso e na verdade Xadrez é um exemplo muito útil pra gente poder comparar performance
de modelos de linguagem porque sempre que um novo modelo sai no mercado é muito difícil a gente saber se ele é melhor ou superior ou quão melhor ou quão superior ele é em relação a modelos anteriores porque na prática quando a gente roda um modelo a gente tem acesso a um conjunto gigantesco de parâmetros e a gente não tem como saber de fato a qualidade daquilo se aquilo é bom se aquilo é ruim então por exemplo eu diante do chat GPT aqui eu posso fazer algumas poucas perguntas para ele e tentar ir analisando essa resposta
Mas isso não é útil quando a gente vai analisar um modelo contra um outro modelo o chat GPT 3.5 por exemplo é estimado que ele tenha mais de 150 bilhões de parâmetros então para isso os pesquisadores começaram a desenvolver uma série de testes diferentes essa tabela aqui por exemplo foi publicado pela meta quando lançaram o modelo liama 3 e comummente outros modelos de linguagem costumam lançar tabelas semelhantes comparando modelos aqui nas colunas com diferentes tipos de testes mml u por exemplo é um conjunto de dados que a gente passa para um modelo de linguagem avalia
a qualidade das respostas que ele nos dá e eu posso comparar modelos diferentes eles chamam de multitask language understanding seria Qual que é o entendimento geral dos modelos de linguagem para diferentes tipos de tarefas existe um conjunto de dados aqui para avaliar só performance dos modelos de linguagem pra parte de matemática existem outros conjuntos de dados que tentam avaliar performance no modelo para código Será que elas conseguem de fato a me ajudar a escrever bons códigos e que modelos são melhores que outro ou seja responder a pergunta que modelo é melhor que outro não é
uma tarefa simples a gente precisa primeiro reformatar a pergunta para algo como que modelo é melhor que outro para esta tarefa específica e nesta linguagem específica nesse idioma específico porque também é sabido que os modelos tê performances diferentes em idiomas diferentes e um aspecto que é sabido que os modelos têm dificuldade é na parte de lógica existem alguns estudos que tentam montar testes de lógicas para que a gente possa colocar como um teste Extra aqui e o xadrez curiosamente ele engloba muitas das áreas que a gente tenta usar para avaliar o modelo de linguagem eu
jogo xadrez desde os meus se anos de idade vocês devem ter reparado que eu tenho aqui um um tabuleiro aqui no fundo de xadrez com até algum alguns livros de problemas aberturas estratégias do jogo é um hobby que eu tenho mesmo mas eu prometo que eu vou tentar me abster de fazer análises muito Profundas aqui do jogo shadz tem um aspecto curioso que por mais que o jogo ele seja um tabuleiro ele seja um jogo físico que a gente tem que jogar de maneira analógica as partidas de xadrez podem ser representadas por texto ou seja
criou-se uma notação na verdade existem muitas notações Isso aqui é uma das mais comuns que a gente tem que é chamada PGN se eu não me engano é portable game notation e aqui a gente coloca os dados estruturados de uma certa forma indicando que movimentos foram feitos o resultado de uma partida específica aonde que eles jogaram a data e é assim que a gente tem acesso a partidas que foram jogadas há quase 500 anos atrás uma partida muito interessante vocês podem encontrar na internet é do Napoleão Bonaparte existem outras do Einstein jogando contra o oppenheimer
Caso vocês não saibam existe uma modalidade do xadrez chamado xadrez por correspondência que por muitos anos e eu falo de mais de 100 anos atrás pessoas jog jogavam xadrez trocando cartas com outros é sério partida chega a valorar anos 2 3 anos de uma pessoa simplesmente colocando um tabuleiro em casa mandava uma carta para alguém com um lance que ela fez e a outra pessoa recebia pensava e devolvia uma carta com lance e essas partidas se prolongavam por anos inclusive eram na época as partidas melhores jogadas até a entrada dos computadores porque os jogadores tinham
muito tempo para processar E por que que eu tô dizendo tudo isso porque modelos de linguagem aqui como chat GPT consomem texto partidas de xadrez e históricos como esse que eu mostrei para vocês existem de maneira absurdamente abundante na internet esse aqui por exemplo é o open Database do lxz que é um site onde as pessoas costumam jogar xadrez e só no mês de abril ele possui aqui 94 milhões de partidas que foram jogar um conjunto de dados de 30 GB e a gente sabe que os modelos de linguagem são treinados com dados da internet
inclusive dados como esse e o xadrez ele tem uma característica muito interessante que dependendo do estágio da partida onde a gente se encontra os jogadores costumam acessar partes diferentes do seu cérebro por exemplo pro primeiro lance a gente não tem muitas opções a gente deve ter aí 20 30 lances possíveis de serem feitos por exemplo A3 A4 B3 G4 e a maioria dos lances em geral começam aqui com E4 D4 pro segundo lance também a gente vai ter aí 20 lances de resposta então os melhores lances até o lance 5 6 7 eles já estão
meio bem documentados as pessoas já decoraram isso já fizeram muitas vezes isso essa aqui por exemplo quando o branco começa com E4 e as pretas respondem com o C5 é chamado defesa siciliana eu tenho até um livro aqui que aborda só defesa siciliana Então esses primeiros lances todos aqui a gente costuma dizer que eles são teóricos já existe um certo conhecimento sobre quem estuda xadrez sobre Quais são os melhores lances a serem feitos aqui sem que o jogador precise calcular ele pode decorar de certa forma forma e a medida que o jogo avança inevitavelmente em
algum momento a gente vai chegar numa posição que nunca foi jogada até então e a partir desse momento que a gente tem que calcular e quando eu coloco chat GPT para disputar xadrez com Gemini eu vou est testando Qual que é a capacidade desses modelos encontrarem partidas que já foram jogad na base histórica e uma vez que eles passaram essa memorização eles vão começar a utilizar a parte lógica e a gente vai poder visualizar tudo isso mas antes de analisar as partidas com vocês e contar o resultado desse entre chat GPT e gemina eu quero
analisar um pouquinho só em alto nível o script para Vocês entenderam como eu fiz isso para quem já assina as imó a gente colocou um tutorial passo a passo de como esse projeto todo aqui foi construído o porquê de cada biblioteca em cada momento para que vocês entendam não só como adaptar e otimizar esse projeto mas pegar esses conceitos e aplicar para projetos completamente diferentes que são ligados às tuas necessidades Então galera do YouTube Não fiquem brabas comigo porque é um tutorial relativamente extenso mas eu coloquei não só as partidas como todo esse código fonte
aqui para quem quer explorar meio que freestyle nesse repositório aqui do github de maneira totalmente gratuita é o llm ches arena no repositório das imóvei Academy basta clicar aqui no link da descrição Então vamos lá em Alto Nível como é que eu fiz algumas coisas quem já começou a estudar aplicações com inteligência artificial com a gente lá já sabe que modelos de linguagem eles diferem um pouco da programação tradicional via algoritmos pela questão da precisão tradicionalmente a gente costuma construir software dando uma sequência de passos que o computador tem que seguir para atingir certo resultado
Essa é a lógica de um algoritmo ele vai seguir aquela estrutura e vai ter sempre o mesmo resultado o problema dessa estrutura é que a gente só consegue resolver problemas que a gente conheça precisamente qual a sequência de Passos programação por modelo de linguagem ela é um pouco diferente porque modelos de linguagem eles são estocásticos eles são aleatórios Às vezes a gente dá um input para ele ele vem com respostas completamente diferentes isso é bom e ruim é bom no sentido de que o modelo de linguagem consegue fazer coisas que a gente não saberia nem
como dizer pro computador mas o ponto negativo é que ele vem a um custo de precisão eles costumam errar bastante e a gente até fala um pouco sobre isso na na parte de construção de Agents com ai e os projetos são muito incríveis eu acredito que é o futuro da programação mas a gente tem que saber lidar com as imprecisões que os modelos podem causar então no caso do xadrez eu tive que utilizar uma biblioteca do próprio Python chamada chess para poder gerenciar as regras por por mim essa parte aqui ela fica determinística e eu
tô utilizando aqui as principais classes que a gente costuma utilizar do L Change geração de prompt os modelos específicos aqui do chat chpt do Google e algumas bibliotecas do Python adicionais aqui que que eu fiz pro modelo do chat GPT eu tô utilizando chat GPT 4 O que é a última versão nesse momento com uma temperatura de 0.1 Às vezes acontece dele ficar um pouco travado Em algumas situações não saber muito bem como sair de um certo looping esse esse 0.1 aqui permite que ele seja um pouquinho mais criativo e o mesmo Vale pro gemina
e aqui embaixo as duas vão receber o mesmo prompt eu disse para elas você é um grande jogador de xadrez no momento Estamos jogando uma partida e você joga com a cor cor a variável cor que eu vou passar para cada uma delas eu vou te dar o último lance que eu fiz um histórico da partida e a posição do Tabuleiro atual você deve analisar essa posição e encontrar o melhor lance eu não disse nada sobre como tá tudo no prompt eu não quero que ela use nenhum caractere especial na resposta e eu quero que
a resposta venha da seguinte forma primeiro lugar ela vai me devolver uma resposta utilizando anotação notação S que é a anotação algébrica do xadrez em inglês e uma explicação em português para que a gente consiga ver aqui de Por que ela fez o lance Não mais do que três sentenças para ficar uma coisa relativamente mais fácil de se analisar então aqui vem a parte interessante porque eu vou utilizar a classe do Python de xadrez que é o p chess e ele possui uma função chamado board push MOV ele vai passo uma string de texto jogo
para ele e faz Algum lance e eu pedi PR os modelos de linguagem me darem anotação no formato Sam só que como eu comentei que os modelos mesmo a gente instruindo eles nem sempre a gente vem com a mesma resposta eu precisei criar um modelo juiz que ele vai estar conectado com o Pie chess e ele vai receber essas jogadas dos jogadores e garantir que elas estejam formatadas no formato que o pai chess precisa Então são dois modelos de linguagem jogando com um juiz aqui no meio garantindo apenas que a que a jogada específica esteja
na posição certa e eu sempre passo para elas esse template aqui Aqui está o histórico da partida passo o histórico que seria basicamente um PGN da partida isso aqui é o histórico vai entrar aqui eu reforço Qual último lance foi jogado e eu digo para ela fazer o melhor lance se ela devolver um lance que naquela situação é um lance inválido por exemplo ela pede para mover a torre para B2 e essa Jogada é impossível o juiz ele vai comparar essa situação e dizer para ela assim cara olha só Este é o board atual ele
vai dar uma foto do Tabuleiro para isso ele vai utilizar o p chess Aqui tá o histórico Esse foi o último lance jogado e nessa posição só pode jogar esses lances aqui essa lista de lances válidos que ele também puxa do P chess E por quê Porque ele dá um prompt maior aqui partindo do princípio que o modelo não soube avaliar com esse prompt pequeno quais eram os lances válidos você vamos ver que isso acontece bastante e diz assim cara Escolhe um desses aqui você deve escolher um dos lances válidos e basicamente é isso eu
fiz uma iteração para que elas jogassem aqui várias partidas diferentes Às vezes o gemina de brancas Às vezes o gemina de pretas quando eu rodo esse script aqui a gente começa com a partida então ele já começa com o lance começa com E4 aqui eu coloquei nesta rodada aqui o chat chpt de brancas O gemina de pretas e eles responde para mim cara devolvo com C5 aqui quem jogou no caso foi o geminii a jogada C5 é uma resposta Popular a sólida abertura do peão Rei controlando o centro tá certo preparando o desenvolvimento das peças
pretas essa jogada leva um jogo dinâmico com chance para ambos os lados correto ela pegou esse jog um livro Liv de xadrez devolveu um C5 e esse New movie aqui foi o juiz interpretando esta resposta aqui e extraindo exatamente o que o p chs precisava que o PS só consome informações assim C5 tá então ele viu que tinha um C5 aqui tirou todo esse lixo aqui Colocou o C5 e passou essa descrição para a partida na parte de documentação então é agora que vem a parte legal que a gente analisar uma partida dos dois e
vendo as explicações Bora lá então eu escolhi aqui uma pérola que eu achei gemin jogando de brancas chat chpt jogando de pretas o resultado final já vou dar um spoiler aqui já tá aqui chat chpt venceu agora vamos ver como legal tá no como primeiro lance chat chpt me diz que escolheu o D5 porque é uma resposta clássica o lance das brancas vocês vão ver que no começo eles não costumam errar muito até voltando na partida vocês vão ver que daqui a pouco eles já começam a alucinar então o gemina devolveu com E4 cara no
xadrez lance é bem é bem in comum el abertura da rainha eu para mim abertura da rainha peão dama seria que B4 é uma resposta sólida ao lance D5 não é sólido nada cara ninguém joga isso é bem raro controlando o centro do Tabuleiro na verdade Tu dá um peão é um gambito isso aqui essa jogada abre linhas pro desenvolvimento das peças e prepara pro avanço do peão Rei para E4 ou seja o gemina diz que ele jogou E4 para preparar E4 faz muito sentido é beleza chat PT capturou tá gemina agora desenvolveu o cavalo
para F3 ele deu o cavalo aqui cavalo F3 é uma resposta mais natural para D4 cara a jogada menos natural possível controlando o centro preparando pro desenvolvimento normal das peças as brancas geralmente continuam com cavalo C3 as brancas Tipo ele vai dar os lances das brancas então ele diz que as brancas jogariam cavalo C3 Bispo D3 Roque aqui e pum caiu o cavalo das das brancas já entregou as brancas então ele tomou ele até explicou aqui que ele tomou e toma em F3 escolhi essa jogada porque captura o cavalo branco ganhando material Além disso abre
coluna e pra torre Preta tá sai aqui pode ser apesar de não ter nenhuma torre ainda falta muito pra torre poder chegar aqui usar essa coluna mas pode ser explicação aumentando o controle do centro do Tabuleiro não é bem isso mas ok valeu fez a jogada boa capturou a Dama beleza recuperou de dama Tá certo e agora vem a parte legal cavalo C6 chat PT jogou certinho agora o gemina me diz dama toma F7 Cheque Mate a Dama branca ele disse aqui ó cheque mate ele colocou um sinal aqui de cheque matate a Dama Branca
está na diagonal da casa F7 não há nenhuma peça defendendo as pretas não podem bloquear o cheque então de alguma forma Ele acha que isso aqui é cheque mate pá caiu a Dama beleza cavalo C3 seguiu desenvolvendo agora o preto tomou mais um peão que tava de graça ali o branco desenvolveu cavalo B5 toma o cavalo toma o Bispo a ataca o Bispo com C6 E aí o lá vai o o o o gemina de novo e pum toma Esse peão então vocês estão vendo que o gemina tá jogando tudo errado tá explicando tudo errado
e as explicações não fazem sentido Essa é a parte interessante e o chat PT fica muito claro Quando vocês forem analisar o histórico de partidas que ele alucina mas ele demora mais para alucinar o o o gemina ele já começa a dar lances Absurdos aqui ele tá falando coisas absurdas como joguei E4 para desenvolver por E4 ou seja aqui ele já errou porque esse lance aqui ele é bem comum ele é bem comum é mais comum aqui é normalmente jogar um C4 o lance mais comum disparado nessa posição E4 É muito raro e ele explica
errado também então ele ele parece Isso aqui é uma clara Alucinação parece que está fazendo coisas certas ele fala com convicção ele dá explicações Claras então por exemplo ó o jogo biso F4 com um rei Preto desprotegido F4 cria uma ameaça imediata de checkmate cara da onde que ele tá tirando isso da onde é que ele tirou isso parece que faz sentido isso é uma Alucinação mas é absurdo tá tudo errado as pretas não tem como parar o cheque matate e defender o rei ao mesmo tempo talvez foi isso que ele pensou lá atrás quando
ele jogou dama toma F7 cheque aí o rei teve que se mover provavelmente ele alucinou aqui também e aqui o o chat chpt cara achei surpreendente ele encontra uma sequência bem legal assim de de jogadas claro que a gente teria uma defesa mais óbvia aqui como F3 mas o Gemini Quando Ele comete esse erro aqui aqui se eu não me engano já tem checkmate forçado em poucos lances e o chat chpt ele encontra ele bem certinho eu acho que Ele comete uma imprecisão Deão Em algum momento se eu não me engano tinha um checkmat mais
rápido mas ele faz uma sequência bonita que ele devolve aqui check avança E aí check Mat então ele fez uma manobra aqui para tirar a Dama daqui e depois poder posicionar ela aqui e aí devolveu com checkmat escolhi esse lance porque fosso Rei Branco a se mover mantendo a minha pressão e até o chat PT não viu que era cheque matate ele colocou como cheque mas era cheque matate Então esse aqui foi 1 a 0 do chat APT curiosamente existe uma partida que o Gemini ganhou eu vou analisar rapidamente aqui com vocês ele começa aqui
com E5 gemina de brancas e aqui ele faz jogadas mais mais normais essa essa abertura aqui ela é conhecida ela é tradicional ela ela é Ela é bastante jogada diferente daquela outra que ele se perdeu muito rápido e aqu ele ele até explica e se vocês analisarem essa partida depois vocês vão ver que as explicações são corretas Então até aqui tudo bem O jogo tá bem normal bem normal mesmo aqui foi um erro gemina já errou chat PT também errou devia ter tomado de bispo e a partida e o chpt vai cometer alguns erros mas
agora o gemen de brancas está jogando melhor até aqui desenvolveu para cá aqui fez bobagem shpt de ter capturado ele fugiu fez bobagem de novo na verdade então aqui o o gemin já tá perdido então Retiro tudo que eu disse Mas a partida vai avançar e aqui ele encontra o chat PT comete um erro de tomar espião aqui e toma checkmat no fundo então foi mais erro do chat chpt do que mérito e beleza pessoal Qual que é a conclusão final desse desse projeto que nesses modelos que eu utilizei chat PT 4 o contra Gemini
pro com esses prompts específicos e se vocês brincarem com esse dado vocês vão perceber que mudando prompt o resultado muda completamente mudando os modelos muda completamente mudando qualquer coisinha que o jogo o chat GPT passa a jogar muito pior ou o Gemini passa a jogar muito melhor o resultado que eu encontrei quando o chat GPT jogou de pretas ele venceu nove partidas e perdeu uma e quando o chat GPT jogou de brancas ele venceu oito perdeu uma e empatou uma então o resultado final foi 17,3 pro chat GPT a 2,5 pro geminii nos meus testes
espero que vocês tenham gostado da brincadeira tanto quanto eu gostei de fazer ela possam baixar o estudo aqui brincar um pouco e se não entenderam nada do que eu falei mas mesmo assim querem aprender a programar com modelos de linguagem e aplicar PR as coisas do dia a dia de vocês para desenvolver projetos pra sua empresa ou pra vida pessoal fica de novo o meu convite para que vocês conheçam a nossa essa trilha aplicações EA com python das imov Academy on gente vai do zero do zero absoluto em programação para quem nunca programou mesmo nem
sabe o que que é essa tela que eu tô rodando aqui não entendeu nada do vídeo mesmo assim eu garanto que a gente vai pegar vocês lá do zero da programação ensinar todos os principais conceitos até que vocês consigam ser capazes de desenvolver coisas como essa as imóvel é uma escola a gente tem diversos cursos diversos projetos diversas Trilhas e vocês têm acesso a todo o nosso conteúdo com apenas uma assinatura então espero que ten tenam gostado do conteúdo que eu trouxe para vocês aqui e até o próximo vídeo
Copyright © 2024. Made with ♥ in London by YTScribe.com