Pachi - Le Bottin des Jeux Linux

Pachi

Specifications

Title: Pachi Type: Tool
Genre: Puzzle Temporary:
Category: Puzzle ➤ Board Game ➤ Go Commercial:
Tags: Puzzle; Board game; Go Engine; Monte Carlo Tree Search Demo:
Released: Latest : 12.0 (Jowa) / Dev : 0e3db59 Stage of dev.:
Date: 2018-07-18 Package Name:
License: GPL v2 Repository:
View: Third person Package: ✓
Graphic: Text Binary: ✓
Mechanics: Real Time Source: ✓
Played: Single PDA:
Quality (record): 5 stars Quality (game): 5 stars
Contrib.: Goupil & Louis ID: 15434
Created: 2018-07-21 Updated: 2018-08-05

Summary

[fr]: Un moteur de jeu de Go (IA spécialisée dans le jeu de Go) libre et multi-plateforme destiné à être utilisé en conjonction avec une interface graphique externe (voir la doc de cette fiche). Ses points forts : il est libre, relativement simple à mettre en œuvre, fonctionne bien, et il est plus puissant que GNU Go, surtout si l'on active le DCNN (réseau neuronal pour ses mouvements, le faisant passer à 2 dan KGS en 19x19, voir à 4 dan, en fonction du matériel utilisé, sur une échelle max de 9d) ce qui le classe dans la catégorie des bons moteurs. Excellent ! [en]: A free/libre and cross-platform Go game engine (an IA specialized in the game of Go) intended to be used in conjunction with an external GUI (see this entry for more information). Its strengths: it is free, relatively simple to use, works well, and more powerful than GNU Go, especially if you activate the DCNN (neural network for its movements, boosting its strengh to 2-4 dan KGS in 19x19, depending on the hardware used, on a scale up to 9d) that ranks it in the category of good engines. Excellent!

Trailer & Reviews

Links

Website & videos
[Homepage] [Dev site 1 2] [Features/About] [Screenshots] [Videos t ts gd id r lp g g[fr] g[de] g[ru] g[pl] g[cz] g[sp] g[pt] g[it] g[tr] g g] [WIKI] [FAQ] [Changelog 1 2 3]

Commercial : (empty)

Resources
• Caffe (optional Deep Learning framework), BSD 2-Clause license : [Caffe] [Dev site]
• DCNN files (54% prediction on KGS 6d+ data), by Detlef Schmicker : [Computer-go (Information)] [Physik.de (dcnn files)]
Technical informations
[Open Hub] [PCGamingWiki] [MobyGames] [Senseis.xmp.net (Rank - worldwide comparison)] [KGS (Aide sur le classement) [fr]] [ICGA Tournaments (Pachi)]

Social
Devs (Pachi Team 1 2 3 [fr] [en]) : [Site 1 2] [twitter] [YouTube] [Interview 1 2]
Devs (Petr Baudis (pasky) [fr] [en]) : [Site 1 2] [twitter] [YouTube] [Interview 1 2]
Devs (Jean-loup Gailly [fr] [en]) : [Site 1 2] [twitter] [YouTube] [Interview 1 2]
Game : [Blog] [Forums] [twitter] [YouTube]

On other sites
[Wikipedia (Go) [fr] [en] [de]]]

Reviews
[metacritic]

News / Source of this Entry (SotE) / News (SotN)

Description [fr]

Un moteur de jeu de Go avec fichier de coups et DCNN, très accessible, par la Pachi Team, initié par Petr Baudis (pasky) & Jean-loup Gailly (aussi auteur de gzip).
En C.

Pachi est un moteur de jeu de Go (IA spécialisée dans le jeu de Go) libre et multi-plateforme destiné à être utilisé en conjonction avec une interface graphique externe (voir la doc de cette fiche). Ses points forts : il est libre, relativement simple à mettre en œuvre, fonctionne bien, et il est plus puissant que GNU Go, surtout si l'on active le DCNN (réseau neuronal pour ses mouvements, le faisant passer à 2 dan KGS en 19x19, voir à 4 dan, en fonction du matériel utilisé, sur une échelle max de 9d) ce qui le classe dans la catégorie des bons moteurs. Excellent !

Pour jouer avec ce moteur, il vous faudra installer une interface de jeu telle que :
ccGo, Cgoban, GlGo ,GoGui, JagoClient, qGo, Quarry, Sabaki (testé & validé),

Ressources et documentations disponibles : voir la fiche "Ressources - Jeu de Go".


Pachi peut se référer à : un framework modulaire simple pour les programmes jouant au jeu de Go / Weiqi (NdT : nom Chinois) / Baduk (NdT : nom Coréen), et un moteur raisonnablement fort construit dans ce framework.

Moteur

Le moteur par défaut joue selon les règles chinoises et devrait être d'environ 7d KGS (NdT : 7ème dan au classement KGS, ce qui est très bon, voir le lien Senseis dans la section "Docs" ci-dessus) en 9x9. Sur 19x19, il peut tenir un solide classement 2d KGS sur un matériel modeste (Raspberry Pi 3, DCNN) ou une machine plus rapide (par exemple Intel i7 à six voies) sans DCNN.

(NdT : DCNN pour Deep Convolutional Neural Network ou Réseau neuronal convolutif profond, un type de réseau utilisé en Intelligence Artificielle)

Lorsque vous utilisez un grand cluster (64 machines, 20 cœurs chacun), il se maintient de 3d à 4d KGS et a gagné par exemple un match de handicap de 7 pierres contre Zhou Junxun 9p.

Par défaut, Pachi utilise actuellement le moteur UCT qui combine l'approche Monte Carlo avec la recherche d'arborescence; La règle d'arborescence UCB1AMAF utilisant la méthode RAVE est utilisée pour la recherche arborescente, tandis que la stratégie de diffusion Moggy utilisant des modèles 3x3 et diverses vérifications tactiques est utilisée pour les lectures semi-aléatoires de Monte Carlo. Les modèles de tablier à grande échelle sont utilisés dans la recherche d'arborescence.

Description [en]

Pachi can refer to: a simple modular framework for programs playing the game of Go/Weiqi/Baduk, and a reasonably strong engine built within this framework.

Engine

The default engine plays by Chinese rules and should be about 7d KGS strength on 9x9. On 19x19 it can hold a solid KGS 2d rank on modest hardware (Raspberry Pi 3, dcnn) or faster machine (e.g. six-way Intel i7) without dcnn.

When using a large cluster (64 machines, 20 cores each), it maintains KGS 3d to 4d and has won e.g. a 7-stone handicap game against Zhou Junxun 9p.

By default, Pachi currently uses the UCT engine that combines Monte Carlo approach with tree search; UCB1AMAF tree policy using the RAVE method is used for tree search, while the Moggy playout policy using 3x3 patterns and various tactical checks is used for the semi-random Monte Carlo playouts. Large-scale board patterns are used in the tree search.

Installation [fr]

INSTALLATION :

➥ Installation à partir du binaire du jeu :

(nota : le paquet pachi des dépôts Debian est un jeu de plateforme, rien à voir avec ce moteur)

Un dépôt spécifique UBUNTU est disponible (voir le lien Dev site 2 ci-avant), il suffit de l'ajouter à votre liste de dépôts (non testé).

➥ Installation à partir du source du jeu :

Si vous souhaitez quelque-chose de récent (versions de développement) ou qu'il n'y a pas de binaire disponible pour votre architecture (32/64-bits), la compilation du source est souvent un passage obligé.

Installation :
• Téléchargez son source via la commande suivante : $ git clone https://github.com/pasky/pachi

✔ ➥ 1ere option (moteur de base, performances amoindries) ➜ compilation sans le support DCNN (Deep Learning) :
• Dans son répertoire racine lancez :
$ make
(ou "$ make -j8" si vous disposez d'un processeur 8 threads, pour accélérer la compilation)

✔ ➥ 2nde option (moteur boosté avec le support du Deep Learning) ➜ compilation avec le support DCNN :
• Installez au préalable les paquets suivants : # apt install libhdf5-dev liblmdb-dev libleveldb-dev libsnappy-dev libopencv-dev libatlas-base-dev python-pytest
• (optionnel, permet l'utilisation du GPU de votre carte) Installez au préalable CUDA (voyez sous votre gestionnaire de paquet)
(la doc de Pachi précise : "CPU only build is fine, no need for GPU, cuda or the other optional dependencies".)

• Téléchargez le source du framework Caffe via la commande suivante : $ git clone https://github.com/BVLC/caffe
• Dans le répertoire racine de Caffe lancez successivement :
$ cmake .
(n'oubliez pas le ".")
$ make
(ou "$ make -j8" si vous disposez d'un processeur 8 threads, pour accélérer la compilation)
(la compilation produit la bibliothèque dans le répertoire lib/ du source)

• Dans le répertoire racine de Pachi :
Editez le fichier Makefile, mettez l'option DCNN=1, et décommentez (enlevez le #) la ligne d'après et indiquez lui l'adresse du répertoire racine de la bibliothèque Caffe que vous venez de compiler
(exemple : CAFFE_PREFIX=/mnt/DDprc/Download/caffe/)
$ make
(ou "$ make -j8" si vous disposez d'un processeur 8 threads, pour accélérer la compilation)
Téléchargez un exemplaire de fichiers DCNN (ici : [Physik.de (dcnn files)]) et copiez son contenu (golast19.prototxt et golast.trained) dans le répertoire racine de Pachi.


LANCEMENT DU MOTEUR :

• Pour tester sa réponse en console (pas pour jouer, car il nécessite une interface externe), lancez : $ ./pachi

Liste des commandes : pour obtenir de l'aide vous pouvez aussi lancer en console la commande : $ ./pachi --help

• Pour une utilisation avec une interface de jeu de Go (telle que Sabaki par exemple) :

Entrer un titre : Pachi
Répertoire du moteur (à adapter à la localisation du binaire) : /mnt/DDprc/Download/pachi/pachi
No arguments

Reviews & comments [fr]

J'ai testé Pachi avec et sans support DCNN.

Test (12.0 (Jowa) sans support DCNN), par goupildb :
Si je lance Pachi sans le support DCNN (dans le Makefile j'ai pris l'option "DCNN=0") en console, il affiche :
$ ./pachi
Pachi version 12.00 (Jowa)
git 0e3db59 ()
nehalem !dcnn build, juil. 21 2018

Random seed: 1532190650
Loaded spatial dictionary of 20614 patterns.
Loaded 20692 gammas.
Checking gammas ... OK
Threads: 8

On remarque qu'il affiche "nehalem !dcnn build, juil. 21 2018" (est-ce pour signaler que l'option est à présent possible ?), et qu'il n'affiche pas "Loaded Detlef's 54% dcnn." comme ci-après (normal).

Sans le support DCNN, je le (les pierres blanches) fais affronter GNU Go (les noires) via l'interface Sabaki, avec et sans handicap.
Je note que les 8 coeurs de mon processeur tournent à 100% quasiment (1/2 seconde de pause après chaque coup des blancs) en permanence (sa température fluctue de 66°C à 72°C à chaque coup).

• 1ere partie (il y a quelques jours, avec un handicap de 4 pierres pour Pachi) : mon impression (car je ne connais absolument pas le jeu de Go :)) était qu'il s'était fait dominer par GNU Go.
(la difficulté est qu'en fin de partie il demande de sélectionner les territoires pris, et si l'on n'y connais rien, on peut inverser les scores en fonction des sélections retenues).
Je n'ai malheureusement pas noté le score proposé par l'interface par défaut (ce que j'ai fais ensuite ci-après).

• 2nde partie (sans handicap pour Pachi) : Pachi remporte la partie avec un score (W+7.5) de 187.5 points (vs 180 points pour GNU Go) en "Area" (région) et (W+6.5) 127.5 points (vs 121 points pour GNU Go) en Territory (territoire).

• 3ème partie (avec un handicap de 4 pierres pour Pachi) : pour lever le doute j'ai lancé une nouvelle partie avec un handicap identique à la 1ere partie (de 4 pierres pour Pachi) et toujours sans DCNN afin de comparer les scores, sans intervention de ma part sur la sélection finale des territoires acquis. Pachi remporte la partie avec un score (W+1.5) de 184.5 points (vs 183 points pour GNU Go) en "Area" (région) et (W+4.5) de 121.5 points (vs 117 points pour GNU Go) en Territory (territoire). Avantage Pachi, même avec un handicap de 4 pierres.

Test (12.0 (Jowa) avec support DCNN), par goupildb :
J'ai donc aussi testé Pachi avec le support DCNN.

Si je lance Pachi avec le support DCNN en console, il affiche :
$ ./pachi
Pachi version 12.00 (Jowa)
git 0e3db59 ()
nehalem dcnn build, juil. 21 2018

Random seed: 1532184820
Loaded spatial dictionary of 20614 patterns.
Loaded 20692 gammas.
Checking gammas ... OK
Loaded Detlef's 54% dcnn.
Threads: 8

Je lance un nouveau match GNU Go (les noirs) vs Pachi (les blancs) en 19x19 avec un handicap de 4 pierres pour Pachi.
Je note que les 8 coeurs de mon processeur tournent à 100% quasiment (1/2 seconde de pause après chaque coup des blancs) en permanence (sa température fluctue de 53°C à 72°C à chaque fois :)).
Je ne remarque pas de différence notable de rapidité de jeu pour Pachi avec ou sans DCNN : en début de partie il met environ 1 à 2 secondes pour jouer, en fin de partie le jeu s'accélère avec la diminution des coups possibles.

• En fin de partie, sans rien changer à la sélection proposée, et avec un handicap de 4 pierres pour Pachi, celui-ci remporte la partie avec (W+3.5) 185.5 points (vs 182 points pour GNU Go) en "Area" (région) et (W+6.5) 122.5 points (vs 116 pour GNU Go) en Territory (territoire).
Même si le score de Pachi en activant DCNN ne semble pas s'envoler à des sommets, la tendance du score est tout de même sensiblement à la hausse (et suffisant pour battre GNU Go systématiquement).

• Je lance une 2nde partie, avec les mêmes protagonistes et les mêmes couleurs, mais cette fois-ci sans handicap pour Pachi.
Là il remporte plus nettement la partie avec un score (W+17.5) de 192.5 points (vs 175 points pour GNU Go) en "Area" (région) et (W+17.5) 114.5 points (vs 97 points pour GNU Go) en Territory (territoire).

Conclusion : Même si les scores peuvent évoluer en fonction des parties, Pachi se révèle plus fort que GNU Go (à handicap identique), ce qui s'accentue sensiblement lorsque l'on active sa fonctionnalité DCNN.