Releases: vrona/FHE.Chess
Robust Chess App
contribution to ZAMA.ai
FHE.Chess (Fully Homomorphic Encryption Chess app)
v1.1.0 (robust chess mechanism)
This release is focused on Chess_app only (not AI)
New chess mechanism: pieces movements are based on Python-Chess module: "legal_move" (avoid putting King in check). Drastic cuts into handmade pieces movements.
New features: "New Game", "Black AI" and "AI vs AI" buttons.
2 modes:
- Game: choices between "White AI", "Black AI" as default (--devmode False),
- Devmode: choices between "Human vs Human", "White AI", "Black AI", "AI vs AI".
New displays:
- when there is an outcome (White or Black win or Draw) + the reason called "Termination".
- when AI inferes wrong movement, "None" movement and when a source square is empty.
New checking if the given IP_Address is valid + if remote server is running.
To Do:
- in chess app: add Null movement (aka "pass") for Human and AI,
- in FHE server: creates a monolithic FHE server with no data manipulation in clear post FHE inferences.
FHE.Chess ready
contribution to ZAMA.ai
FHE.Chess (Fully Homomorphic Encryption Chess app)
v1.0.0 (FHE ready)
- Chess_app
- Client-Server architecture :
- client: local machine with Chess_app + network
- Server: remote machine with training data and scripts, deployed models in proper client-server FHE architecture, weights, …
- Dataset: White and Black of rating 2000 ELO
- Normal and Quantized AI (2 models: SOURCE and TARGET)
- 2 main modes:
- WhiteAI (AI as white vs Human as black)
- 3 contextual modes: clear, simfhe, deepfhe
- White H (Human as white vs Human as black)
- WhiteAI (AI as white vs Human as black)
- All documentation
Detailed of the 3 contextual modes:
- clear: non-encryption context. Fast inferences,
- simfhe: encrypted context thanks to simulation of FHE computations. Fast inferences,
- deepfhe: encrypted context thanks to FHE. Very slow inferences (because model complexity + hardware),
AI mainly starts its moves the same way, after several white & black moves its moves are relevant.
-
Reported bugs:
- false positive authorized en-passant moves,
- false positive authorized move of kings even if the targeted (aka destination) square conducts to check,
- because of the dual chess developments: one from scratch, one from python-chess, the latter crashes the Chess app when a move is not "legal".
-
To Do:
- migrate current architecture to future architecture (client(local): chess_app + client FHE (private keys) | server(remote): models + server FHE (public keys)),
- resolve false positive authorized moves.
-
Job done:
- Quantized AI (2nd model TARGET) trained on data
- Simulation VL + FHE
- Adding training & test metrics within documentation
- Fixed Chess App. bugs + add outcome
- Wrap the client-server into Docker containers (done but not necessary then deleted)
- Detailed documentation + add quantized, sim. VL and FHE explanation
- re-implement final FHE AI (aka OFHE_ZV bot) to fit with Lichess API for ranking (out of scope)
Initial release of FHE.Chess alpha
contribution to ZAMA.ai
Fully Homomorphic Encryption Chess app
v0.1.0 (none FHE yet)
- Chess app (buggy)
- Client-Server architecture
- Clear AI (2 models: SOURCEand TARGET) trained exclusively on White and Black of 2000 ELO.
- Quantized AI (1st model) trained on data (no convergence)
- Docker file based on Zama Concrete-ML image to use concrete-ml lib within Dev Container (remote) Visual Code Studio
- Some documentation (WARNING: Swimm.io app is used, accessibility may be restricted)
To Do:
- Quantized AI (1 model SOURCE) training and test, not fixed
- Quantized AI (2nd model TARGET) trained on data
- Simulation VL + FHE
- Adding training & test metrics within documentation
- Fixed Chess App. bugs + add outcome
- Wrap the client-server into Docker containers
- Detailed documentation + add quantized, sim. VL and FHE explanation
- re-implement final FHE AI (aka OFHE_ZV bot) to fit with Lichess API for ranking