Instructions to use Maxlegrec/ChessLC0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Maxlegrec/ChessLC0 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("feature-extraction", model="Maxlegrec/ChessLC0", trust_remote_code=True)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("Maxlegrec/ChessLC0", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
| license: mit | |
| tags: | |
| - chess | |
| - game-ai | |
| - pytorch | |
| - safetensors | |
| library_name: transformers | |
| # ChessLC0 Chess Model | |
| This is BT4, the model behind LeelaChessZero Engine, one of the best Neural Network based engine available. This model is way worse than stockfish but constitute one of the best 0 search heuristics out there. | |
| For stronger play, reducing temperature T (lower is stronger) is suggested. | |
| ## Model Description | |
| The ChessLC0 model is a transformer-based architecture designed for chess gameplay. It can: | |
| - Predict the next best move given a move history (requires 7 prior boards) | |
| - Evaluate chess positions | |
| - Generate move probabilities | |
| **Important**: This model requires move history (7 prior boards) to work properly. You must provide a list of UCI moves representing the game history. | |
| ## Please Like if this model is useful to you :) | |
| A like goes a long way ! | |
| ## Usage | |
| ```python | |
| import torch | |
| from transformers import AutoModel | |
| model = AutoModel.from_pretrained("Maxlegrec/ChessLC0", trust_remote_code=True) | |
| device = "cuda" if torch.cuda.is_available() else "cpu" | |
| model = model.to(device) | |
| # Example usage with move history (model requires 7 prior boards) | |
| # This sequence provides enough history for the model | |
| move_history = [ | |
| "e2e4", "e7e5", "g1f3", "b8c6", "f1b5", "a7a6", "b5a4", | |
| "g8f6", "e1g1", "f8e7", "f1e1", "b7b5", "a4b3", "d7d6" | |
| ] | |
| # Sample move from policy | |
| move = model.get_move_from_history(move_history, T=0.1, device=device) | |
| print(f"Policy-based move: {move}") | |
| # Get the best move using value analysis | |
| value_move, value = model.get_best_move_value(move_history, T=0, device=device) | |
| print(f"Value-based move: {value_move}") | |
| print(f"Position value [black_win, draw, white_win]: {value}") | |
| # Get position evaluation | |
| position_value = model.get_position_value(move_history, device=device) | |
| print(f"Position value [current_side_win, draw, opposite_side_win]: {position_value}") | |
| # Get move probabilities | |
| probs = model.get_move_from_history(move_history, T=1, device=device, return_probs=True) | |
| top_moves = sorted(probs.items(), key=lambda x: x[1], reverse=True)[:5] | |
| print("Top 5 moves:") | |
| for move, prob in top_moves: | |
| print(f" {move}: {prob:.4f}") | |
| ``` | |
| ## Requirements | |
| python-version >=3.13 | |
| cuda-version < 13.0 | |
| - torch>=2.0.0 | |
| - transformers>=4.48.1 | |
| - bulletchess>=0.4.0 | |
| - numpy>=1.21.0 | |
| ## Model Architecture | |
| - **Transformer layers**: 15 | |
| - **Hidden size**: 1024 | |
| - **Feed-forward size**: 1536 | |
| - **Attention heads**: 32 | |
| - **Vocabulary size**: 1858 (chess moves) | |