Supremacia da IA: Leela Chess. Ou sobre como uma rede neural totalmente aberta ganhou

imagem

Honestamente, estou muito decepcionado com Habr. Por que ninguém destacou algo como ganhar uma abordagem de rede neural com um código totalmente aberto , não é? E dados de rede neural completamente abertos? De fato, bem, a DeepMind Technologies descreveu como eles ensinavam uma IA de xadrez jogando sozinha ... Só que agora o código está fechado lá, e o treinamento ocorreu nos clusters do Google, e não distribuídos na Nvidia Turing com núcleos de tensor , como neste caso. Por que eu tenho que editar a Wikipedia em inglês para chamar a atenção para isso?

Ok, algo que eu fui longe demais com emoções, eu acho. (Ainda existe um link nos comentários que mencionam leela.) Este artigo é um experimento: uma maneira de me mostrar como meu outro artigo , que é muito popular, na minha opinião, afetará isso.

A história começou quando atualizei minha antiga Nvidia Geforce GTX 770 para a RTX 2080 Ti. Bem, considerando o custo, eu queria maximizá-lo. No começo, brinquei com o Ray Tracing , li sobre como ele funciona com o CUDA via NVIDIA OptiX . Eu li sobre como uma pessoa conseguiu usar núcleos RT para outros fins. Repetiu. Mas o número de comentários de que uma jaqueta de couro se divorciava era tão grande que eu estava cansada de ler sobre isso. Especialmente considerando que sei que o rastreamento de caminho é o algoritmo mais importante da indústria de filmes e jogos, e essa não é a descoberta da Nvidia. Nem um pouco. Mesmo hardware.

Então eu decidi olhar para NVENC . Eu sou geralmente um amante de brindes. Como se viu, havia muito disso neste codificador de hardware. Primeiro, o artigo mais popular no Habr sobre o NVENC fala sobre como o YourChief , armado com um depurador, conseguiu quebrar o limite do número de fluxos de codificação simultâneos para ele (e meu cartão, como se viu, pode ser incrível ). Além disso, o patch, como geralmente acontece, muda apenas alguns bytes .

Acontece que a tecnologia NvFBC (captura ultra-rápida de um quadro completo) também pode ser ativada na placa geforce, se você usar um patch mágico na parte superior da estrutura do espelho, antes de ativar essa tecnologia (o patch pode ser visto aqui ).

Então eu queria uma cor de 30 bits no Photoshop. Repetindo o sucesso de outras pessoas, encontrei um byte que limitava o suporte ao OpenGL no modo de janela (como no DirectX nos modos de janela e de tela cheia e no OpenGL no modo de tela cheia, as cores de 30 bits funcionavam dessa maneira). E a Nvidia escreveu sobre isso, prometendo revelar o patch. Talvez isso seja uma coincidência, mas eles removeram essa restrição na Gamescom 2019. Mas ainda suporte não oficial ao HDR10 + (metadados dinâmicos do HDR).

Então, agora chegou a hora do acelerador de matriz, acelerador neural, núcleos tensores, chame como quiser. Foi um pouco mais complicado. Direi imediatamente que adormeci uma palestra sobre a rede neural na universidade, então tive que descobrir. Mas depois de assistir a alguns vídeos em que um homem gera milhares de pássaros para atravessar o Flappy Bird, e depois de algumas gerações esses pássaros passam por obstáculos como um relógio, fiquei inspirado na idéia. A questão era o que lançar. E então me lembrei de que o Google recentemente se vangloriou de que eles venceram seu melhor jogador no Go com sua IA, o que era considerado impossível antes do uso de algoritmos "normais". Honestamente, ele adora o versionamento complexo do Google DeepMind. Bem, isto é, quem o inventou: AlphaGo Lee → AlphaGo Master → AlphaGo Zero → AlphaZero (o último já pode estar no xadrez, no shogov e no ir, e em geral, desde que eles implementaram um longo mecanismo para explicar as regras do jogo, poker pode ser adaptado). Estou ciente do pôquer, se é que não escrevo sobre ele, caso contrário, conheço você.

Minha pesquisa no Google "código fonte alphazero" não rendeu nada. Bem, isto é, eles não pensaram em abrir o código! Mas não pude acreditar. Bem, isto é, Elon Musk também defende o OpenAI (supostamente para que, quando a IA se desenvolver, ela seja mais estudada, ou algo assim, e mais livre de direitos autorais dos autores). E aqui no reddit me deparei com um link . No entanto, algumas pessoas compassivas do DeepMind ainda decidiram fornecer parte do código-fonte, no entanto, imprimindo-o diretamente em um arquivo pdf. / facepalm

Bem, aqui eu baixei imediatamente e a rede neural daqui . E depois de brincar com ela, percebi que, por algum motivo, não joga xadrez. Levei cerca de 20 minutos para entender que ele joga, não xadrez, e outros 40 minutos para encontrar uma versão para o xadrez. E aqui eu fiquei surpreso. Primeiro, eles já conseguiram implementar o back-end cuda com suporte para núcleos tensores da Nvidia, tanto para o jogo quanto para o treinamento ( voluntário e distribuído , além disso). Em segundo lugar, naquele momento eles tiveram um duelo com o Stockfish pelo 1º lugar no ranking do xadrez por computador! Não dormi meia noite, assistindo a super final do TCEC e a rede neural venceu! Corri imediatamente para editar a Wikipedia, que naquela época tinha pouca informação, e no dia seguinte todo mundo escreveu sobre ela! Como se viu, durante o jogo leela usou apenas um monte de 2080 Ti e 2080, ou seja, meu cartão foi suficiente. Depois de baixar a rede neural a partir daqui , lancei-a com bastante calma no meu computador! Bem, é claro, a rede neural me quebrou. Veja como configurá-lo.

Pessoalmente, eu realmente usei o shell explorer HIARCS Chess. Além disso, também dei às pessoas no Android para testar leela no DroidFish. O Android usa uma rede destilada, mais simples e menor, mas ainda não fraca.

Em princípio, eu posso pintar as instruções de instalação com mais detalhes, adicionar links, escrever: =))
By the way, tal pergunta, alguém já ouviu falar sobre o uso não-padrão de NVENC e NVDEC? Parece que pode ser adaptado para acelerar operações matemáticas. Eu li sobre isso em algum lugar, mas não havia detalhes.

Source: https://habr.com/ru/post/pt468775/


All Articles