jevonmao/poker-sft-mix-v1
HoldemMix-606k HoldemMix-606k is a 606,630-record supervised-fine-tuning corpus for heads-up no-limit Texas hold'em (HUNL 200BB). Each record is a chat-template exchange in which an expert assistant decides the next action at a fully specified poker decision node, optionally accompanied by an explicit chain-of-thought rationale. The corpus is the training data for jevonmao/llama31-8b-poker-mix-v1-step10k, known as PokerLlama-4, the 8B fine-tune that accompanies the PokerLlama-4… See the full description on the dataset page: https://huggingface.co/datasets/jevonmao/poker-sft-mix-v1.
HoldemMix-606k
HoldemMix-606k is a 606,630-record supervised-fine-tuning corpus for heads-up no-limit Texas hold'em (HUNL 200BB). Each record is a chat-template exchange in which an expert assistant decides the next action at a fully specified poker decision node, optionally accompanied by an explicit chain-of-thought rationale.
The corpus is the training data for `jevonmao/llama31-8b-poker-mix-v1-step10k`, known as PokerLlama-4, the 8B fine-tune that accompanies the *PokerLlama-4* CS 153 final project.
Composition
The corpus is a four-way mix of two source distributions and two inference modes:
A system-prompt mode marker discriminates the two inference modes at training time so a single model can be evaluated in either mode at inference.
Sources
Source A — GTO Wizard interaction (𝒟_GTOW)
Hands collected via the GTO Wizard research API against the live equilibrium agent, with per-decision action labels sampled from the solver's per-spot mixed strategy. Each record carries the natural-language hand narrative reconstructed from the API's action history at the decision point. Hand identifiers are partitioned to ensure no overlap with the held-out evaluation split.
Source B — CFR postflop solver (𝒟_solver)
Decision records from a CFR-based postflop solver, rewritten to match the GTO Wizard prompt distribution. Solver-side equity, expected-value, and range statistics that would otherwise leak through the prompt are stripped by a deterministic preprocessing pass; structural parity with the GTO Wizard prompt distribution is verified on a 150-record sample.
Audit
Chain-of-thought rationales in slice B_cot are generated by a frontier teacher model and contain hand-class assertions ("open-ended straight draw," "made flush," "pair," "high-card king"). For each rationale the actual made-hand class is computed from the hole cards and board and compared against the rationale's assertion. Records whose reasoning contradicts the cards are rejected.
- Rejection rate: 15,054 / 69,438 = 21.7%
- Top reject categories: claimed-flush-or-straight on a pair-only hand (≈ 7,000 records); claimed-pair on a high-card-only hand (≈ 2,900 records).
The slice published here is the post-audit, 54,384-record subset.
Slice A_cot lacks the per-spot ground-truth hand class needed to apply the same audit and is left unaudited; a residual but unmeasured teacher-error rate is assumed.
Record format
Each record is a JSONL object in a ShareGPT-style chat layout:
{
"system": "You are an expert No Limit Texas Hold'em poker assistant. ...",
"conversations": [
{"from": "human", "value": "<hand narrative>\n<legal actions>\n<bet range>"},
{"from": "gpt", "value": "<action>raise to 225</action>"}
],
"meta": {
"slice": "A_direct",
"hand_id": "...",
"spot_id": "...",
"street": "preflop",
"gold_action_type": "raise"
}
}For chain-of-thought slices the assistant message is prefixed with a reasoning trace before the <action> tag.
The action tag format is identical to PokerLlama-4's training-time format, so fine-tunes on this corpus parse cleanly through the same evaluation harness used in the accompanying report.
Splits
This release ships the train split only. The held-out evaluation split (31,105 decisions, partitioned by hand identifier) is reserved for the project's evaluation pipeline and is not published here to prevent contamination of downstream benchmarks; it can be regenerated from the source collection scripts in the project repository.
Intended use
- Supervised fine-tuning of small language models on heads-up no-limit poker action prediction with optional reasoning supervision.
- Tool-use research in a domain with a deterministic equilibrium reference — the corpus pairs naturally with the project's preflop GTO chart for function-call experiments.
- Studies of mixed-strategy distillation — the corpus encodes a Nash equilibrium policy via single-sample labels, enabling research on the trade-off between matching the equilibrium distribution offline and achieving expected value against deviating opponents (see the accompanying paper's §Diagnostics).
The corpus is not intended for gambling, real-money play, or any context in which a model's output is acted on without human oversight.
Limitations
- Game scope. Heads-up no-limit Texas hold'em at exactly 200 big blinds. Other stack depths, player counts, and poker variants are out of scope.
- Mixed-strategy labels. Each record carries a single sampled action from a mixed strategy. A model trained by maximum likelihood approaches the equilibrium distribution but greedy decoding of that distribution is not guaranteed to maximize expected value against a non-equilibrium opponent.
- Teacher rationales. The hand-class audit applies only to slice
B_cot; sliceA_cotretains residual teacher errors at an unmeasured rate. - Source agent attribution. The GTO Wizard agent's specific bet-size distribution shapes the corpus's continuous bet-size labels. Models trained on this corpus reflect those specific size conventions.
Licensing & terms
The corpus is released under CC BY-NC 4.0 for research use only. The Llama-3.1 community license applies to derivative model weights trained on this corpus. Use of the GTO Wizard research API for additional collection requires a separate agreement with GTO Wizard; this corpus does not re-distribute API access or solver source code.
Citation
@misc{mao2026pokerllama,
title = {PokerLlama-4: When Distilling a Nash Policy Beats the Benchmark but Loses the Game},
author = {Mao, Jevon},
year = {2026},
note = {Stanford CS 153 Final Project},
url = {https://jevonmao.github.io/cs153-project/}
}Acknowledgements
- GTO Wizard for the live solver-decision data interface.
- Stanford CS 153 course staff for the compute that enabled the audit and training runs.
