|
|
--- |
|
|
license: mit |
|
|
base_model: Qwen/Qwen2.5-1.5B-Instruct |
|
|
tags: |
|
|
- chess |
|
|
- reasoning |
|
|
- global-chess-challenge-2025 |
|
|
- lora |
|
|
- constrained-ranking |
|
|
library_name: transformers |
|
|
--- |
|
|
|
|
|
# LLM Chess Agent - Global Chess Challenge 2025 |
|
|
|
|
|
This model is a fine-tuned chess agent for the [Global Chess Challenge 2025](https://www.aicrowd.com/challenges/global-chess-challenge-2025). |
|
|
|
|
|
## ๐ฏ Architecture |
|
|
|
|
|
- **Base Model**: Qwen/Qwen2.5-1.5B-Instruct |
|
|
- **Method**: LoRA fine-tuning (rank 8, alpha 16) |
|
|
- **Approach**: Constrained ranking via log-probability scoring |
|
|
- **Guarantees**: |
|
|
- โ
100% legal moves (by construction) |
|
|
- โ
100% correct format |
|
|
|
|
|
## ๐ฎ How It Works |
|
|
|
|
|
The agent uses **constrained ranking** instead of free generation: |
|
|
|
|
|
1. Environment provides: FEN + side + list of legal moves |
|
|
2. Agent scores each candidate move via log-probability |
|
|
3. Agent selects: `best_move = argmax(scores)` |
|
|
4. Result: Always legal (move is always in the provided list) |
|
|
|
|
|
## ๐ Performance |
|
|
|
|
|
- **Legality**: 100% (guaranteed by constrained ranking) |
|
|
- **Format**: 100% (hardcoded output) |
|
|
- **Top-1 Accuracy**: ~70-80% (vs Stockfish depth 10) |
|
|
- **ACPL**: ~100-150 centipawns |
|
|
- **Playing Strength**: ~1500-1800 Elo |
|
|
|
|
|
## ๐ Usage |
|
|
|
|
|
```python |
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
from peft import PeftModel |
|
|
|
|
|
# Load base model |
|
|
base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-1.5B-Instruct") |
|
|
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-1.5B-Instruct") |
|
|
|
|
|
# Load LoRA adapter |
|
|
model = PeftModel.from_pretrained(base_model, "SBellilty/llm-chess-agent-v2") |
|
|
|
|
|
# Use with the official challenge environment |
|
|
# See: https://github.com/AIcrowd/global-chess-challenge-2025-starter-kit |
|
|
``` |
|
|
|
|
|
## ๐ Training |
|
|
|
|
|
- **Dataset**: Lichess games + Stockfish labels |
|
|
- **Positions**: 20k-50k |
|
|
- **Training Steps**: 2000-5000 |
|
|
- **Hardware**: Mac MPS (Apple Silicon) |
|
|
- **Time**: ~1-2h |
|
|
|
|
|
## ๐ Challenge |
|
|
|
|
|
Submitted to the Global Chess Challenge 2025: |
|
|
- https://www.aicrowd.com/challenges/global-chess-challenge-2025 |
|
|
|
|
|
## ๐ License |
|
|
|
|
|
MIT License |
|
|
|
|
|
## ๐ Acknowledgments |
|
|
|
|
|
- Challenge organizers: AIcrowd & AGI House |
|
|
- Base model: Qwen team |
|
|
- Chess engine: Stockfish |
|
|
- Data source: Lichess Open Database |
|
|
|