Skip to content

Releases: vrona/FHE.Chess

Robust Chess App

20 Oct 20:08
Compare
Choose a tag to compare

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

11 Aug 21:24
Compare
Choose a tag to compare

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)
  • 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

10 Apr 08:56
Compare
Choose a tag to compare
Pre-release

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