PZ PRO

philipp-zettl

AI & ML interests

NLP/CV/Multimodal learning

Organizations

Posts 2

view post
Post
264
Version 0.2a of ChessPT is currently training.

I decided to wait with the actual v1.0 until I have a better understanding where I want to go and successfully trained the first fine tune.

I'm playing around with a loss that is highly influenced by the idea of reinforcement.

Basically I'm punishing the model for generating invalid PGN strings.
The current approach sets on simplicity

-2: wrong characters in output
-1: invalid PGN string, but valid charset
0: valid PGN string, incl. valid moves


GPT-4o helped me with the implementation. I'm expecting some errors in the implementation.

The training should finish in somewhat 14h, I will upload the new weights then.
But I still need to run extensive tests on this loss before I can happily call it v0.2 ✌️

BTW, I'm also building a space for the model which will be published tonight after adding descriptions and a nice interface. ♟️

philipp-zettl/chessPT
philipp-zettl/ChessPT
view post
Post
977
This is my first post, so I need to start with a bang!

The people over at https://huggingface.co/Lichess published some amazing data sets over the past weeks, including a collection of >1M standard chess games ( Lichess/standard-chess-games).

Finally it's time to revive my chess buddy project from back in 2021 🎉

So without any further ado... I'm currently training my first character level LLM, and to be quite frank, I'm pretty astonished with the quality of my testing samples.

I'm using e4 g6, the Modern Defense (https://en.wikipedia.org/wiki/Modern_Defense) as a validation sample.
My model currently predicts mostly d4 Bg7 which are the strongest next moves for white and black.

Now in between I see some results that take lower ranked moves, which makes me very excited.

Once the pre-training is done for the base model, I want to run some fine tuning on more specific data sets, which are
Lichess/chess-openings
Lichess/chess-puzzles

Here are some intermediate examples

Step 6000: 
1. e4 g6 13. Rb1 d5 14. Bd3 Nxf3 15. Nxf3 Nxe3+ 16. Rxd3 Rxd3 17. Rxd6 Rhe8 18. Nd6 Rxd4 19. Rxd7+ Kxd7 20. Re7 Rxe7 21. Qxe7 1-0

Step 12000:
1. e4 g6 22. Be2 Re8 23. Kg2 1-0
1. d4 d5 2. c4 c6 3. Nf3 e6 4. dxe6 Qe7 5. Bb5+ Be8 6. Bxb7# 1-0
1. d4 d5 2. dxe5 Bd6 3. Nc3 h6 4. e4 Bf5 5. exf5 Nd7 6. exd5 Nxd5 7. Bxc4 Bxe2 8. f4 d4 9. Ng3 Bb4+ 10. Bxd4 Qxd4 11. Nfxe2 O-O-O 12. Ne6 Qf5 13. fxg4 Nxe5

Step 30000:
1. e4 g6 2. d4 Bg7 3. Nf3 d6 4. b3 e6 5. Bb2 f5 6. e5 c5 7. dxc5 dxc5 8. Nbd2 Nf6 9. Nce2 O-O 10. Qe2 c4 11. Na4 Bd6 12. f3 Ng4 13. fxg4 1-0
1. c4 c5 2. a3 Nc6 3. cxd5 Nxd5 4. Bf4 g6 5. Be2 Bg7 6. Nf3 Bg4 7. b4 Nf6 8. h3 Bxf3 9. Bxf3 a6 10. Nc3 O-O 11. Qc2 e

(each line starting with 1. is a set of moves)

You can find a first pre trained version here:
philipp-zettl/chessPT