id: dabd8cf8cef44961b49aaa0e3b32eb4f
parent_id: d4c6a4e614d84802a4dc103afff359fb
item_type: 1
item_id: 47031623e2c6451fb36730ffe93380ea
item_updated_time: 1785522205792
title_diff: "[]"
body_diff: "[{\"diffs\":[[0,\"31 (rev \"],[-1,\"6)\"],[1,\"7). Gen 5 declared production. Gen 6 roadmap added\"],[0,\".\\\n\\\n---\\\n\\\n\"]],\"start1\":29,\"start2\":29,\"length1\":18,\"length2\":66},{\"diffs\":[[0,\"tats\\\n\\\n**\"],[-1,\"Current\"],[1,\"G48\"],[0,\" product\"]],\"start1\":689,\"start2\":689,\"length1\":23,\"length2\":19},{\"diffs\":[[0,\"t bot: G\"],[-1,\"49\"],[1,\"en 5\"],[0,\" (G48 fo\"]],\"start1\":1015,\"start2\":1015,\"length1\":18,\"length2\":20},{\"diffs\":[[0,\"RangeNet\"],[1,\" pure NN\"],[0,\")\\\n- Prof\"]],\"start1\":1043,\"start2\":1043,\"length1\":16,\"length2\":24},{\"diffs\":[[0,\"ange\"],[-1,\" Prediction NN ✅ DEFINED\"],[1,\"Net ✅ DECLARED (2026-07-31)\"],[0,\"\\\n\\\n**\"]],\"start1\":1137,\"start2\":1137,\"length1\":32,\"length2\":35},{\"diffs\":[[0,\"et (\"],[-1,\"neural opponent range prediction)**\\\n\\\nOne NN per generation:\\\n- Gen 5\"],[1,\"pure NN, alpha=1.0)**\\\n\\\nArchitecture\"],[0,\": Ra\"]],\"start1\":1200,\"start2\":1200,\"length1\":75,\"length2\":43},{\"diffs\":[[0,\"eNet\"],[-1,\" (1 NN) —\"],[0,\" pre\"]],\"start1\":1245,\"start2\":1245,\"length1\":17,\"length2\":8},{\"diffs\":[[0,\"max)\"],[-1,\"\\\n- Gen 6 (future): Gen 5 + additional NN\\\n\\\n### Dropped Approaches\\\n- **Direct-action Gen5** (imitation/Q-reg on 290-dim features): 71.5% accuracy, catastrophic mistakes. Action selection without opponent\"],[1,\" from 81 observable features. Pure NN — no heuristic blending in the G49 path. Heuristic range builder retained for Gen 3/4 only.\\\n\\\n### Key Decisions\\\n- **Pure NN (alpha=1.0)**: Sweep showed pure NN (+138 BB/100 seed 42) beats blend (+80.5) beats heuristic (-0.5). NN is strictly better including cold start — at 0 hands observed, the NN predicts\"],[0,\" range\"],[-1,\" i\"],[0,\"s f\"],[-1,\"undamentally blind.\\\n- **Equity NN** (`model_infer_equity`): Works in 6-max (+121 BB/100) but fails in 9-max (-148 BB/100). Redundant with G48's MC.\\\n- **Combined inference** (`model_infer_combined`): Single-street EV too aggressive (-157 to -2140 BB/100)\"],[1,\"rom default stats + game context, which is richer than heuristic VPIP/PFR defaults.\\\n- **Combo-count fix** (critical): `probs_to_hand_range()` was inflating offsuit combos 3× vs suited. Fixed with 2-pass division. Turned blend from -16.4 → +15.1 BB/100.\\\n- **Heuristic blending dropped**: alpha configurable via TOML (`range_alpha_min`, `range_alpha_max`), currently both 1.0\"],[0,\".\\\n\\\n#\"]],\"start1\":1299,\"start2\":1299,\"length1\":473,\"length2\":734},{\"diffs\":[[0,\"| Dims |\"],[1,\" Samples |\"],[0,\" Top-1 |\"]],\"start1\":2389,\"start2\":2389,\"length1\":16,\"length2\":26},{\"diffs\":[[0,\"----|-------\"],[1,\"--|-------\"],[0,\"|--------|--\"]],\"start1\":2446,\"start2\":2446,\"length1\":24,\"length2\":34},{\"diffs\":[[0,\"3 | 57 |\"],[1,\" 2-4M |\"],[0,\" ~3% | ~\"]],\"start1\":2495,\"start2\":2495,\"length1\":16,\"length2\":23},{\"diffs\":[[0,\" v14\"],[-1,\" (target) | 81 | TBD | 30%+ target | Rich 32-dim action history |\\\n\\\n### Current Pipeline\\\n1. Collect range data with 81-dim features (`equity_v3/`, 8 tables running)\\\n2. Merge range samples →\"],[1,\"_b1 | 81 | 1M | 2.86% | 19.0% | Accuracy unchanged, but combo-count fix improved downstream equity |\\\n\\\n### Accuracy Ceiling\\\n~19% top-10 across all model versions and feature dimensions. Bottleneck is inherent poker unpredictability (opponent hands are hard to predict from betting patterns), not features or data quantity.\\\n\\\n### Current Status\\\n- **Model**: `range_v14_b1.safetensors` (81-dim, 1M samples)\\\n- **Collection**: `equity_v3/` running (~1.7M/4M samples, 8 tables)\\\n- **Rolling training**: Auto-trains at each 1M milestone (b2 at 2M, b3 at 3M, etc.)\\\n- **Harrington**: 17/18 pass (Harr 4-5: raises turn with 99, book says check — judgment call)\\\n- **Sanity check**: Gen2 ✓ +0.5, Gen3 ✗ -0.1 (marginal), G48/TAG/Nit running\\\n\\\n### Gen 5 Tuning (ongoing)\\\n1. Let collection complete (~4M),\"],[0,\" train \"],[1,\"final \"],[0,\"rang\"]],\"start1\":2572,\"start2\":2572,\"length1\":203,\"length2\":808},{\"diffs\":[[0,\"_v14\"],[-1,\"\\\n3. Update G49 config with range_v14\\\n4. Alpha sweep (NN vs heuristic blend ratio)\\\n5. Sanity check before live promotion\"],[1,\" model\\\n2. Faster NN inference (current sim bottleneck)\\\n3. Better range training data quality\\\n4. Possible formula parameter tuning with NN ranges\\\n\\\n### Dropped Approaches\\\n- **Direct-action Gen5** (imitation/Q-reg on 290-dim features): 71.5% accuracy, catastrophic mistakes. Action selection without opponent range is fundamentally blind.\\\n- **Equity NN** (`model_infer_equity`): Works in 6-max (+121 BB/100) but fails in 9-max (-148 BB/100). Redundant with G48's MC.\\\n- **Combined inference** (`model_infer_combined`): Single-street EV too aggressive (-157 to -2140 BB/100).\\\n- **FoldEquityNet**: Overfit, insufficient data.\\\n- **Heuristic range blending** (alpha 0.3-0.7): Superseded by pure NN.\\\n\\\n---\\\n\\\n## Phase 5: Gen 6 — RL Self-Play Improvement (future)\\\n\\\n**Gen 6 = Gen 5 + RL for continuous improvement through self-play**\\\n\\\nGoal: Use reinforcement learning to continuously improve the strategy beyond what the formula + range prediction can achieve alone. The formula provides a strong teacher; RL fine-tunes against self-play data to find exploitative adjustments.\\\n\\\nPotential approaches:\\\n- Policy gradient on self-play transitions (formula as initial policy)\\\n- Q-regression on self-play outcomes (formula-guided exploration)\\\n- Opponent modelling + counter-exploitation loops\\\n\\\nThis is research-phase — no implementation yet. Gen 5 must first prove stable in live play.\"],[0,\"\\\n\\\n--\"]],\"start1\":3381,\"start2\":3381,\"length1\":127,\"length2\":1373},{\"diffs\":[[0,\"eNet\"],[-1,\"** (Gen 5\"],[1,\" pure NN** (alpha=1.0\"],[0,\") |\\\n\"]],\"start1\":4967,\"start2\":4967,\"length1\":17,\"length2\":29},{\"diffs\":[[0,\" | 1\"],[-1,\"8/18 pass\"],[1,\"7/18 pass (pure NN), 18/18 pass (heuristic ranges)\"],[0,\" |\\\n|\"]],\"start1\":5085,\"start2\":5085,\"length1\":17,\"length2\":58},{\"diffs\":[[0,\"en2 \"],[-1,\"-0.1\"],[1,\"✓ +0.5\"],[0,\", Gen3 \"],[-1,\"+\"],[1,\"✗ -\"],[0,\"0.1,\"]],\"start1\":5160,\"start2\":5160,\"length1\":20,\"length2\":24},{\"diffs\":[[0,\"G48 \"],[-1,\"+1.2 BB/100\"],[1,\"running\"],[0,\" (TA\"]],\"start1\":5185,\"start2\":5185,\"length1\":19,\"length2\":15},{\"diffs\":[[0,\"tory) |\\\n\"],[1,\"| Range model | range_v14_b1 (81-dim, 1M samples, 19.0% top-10) |\\\n\"],[0,\"| Action\"]],\"start1\":5268,\"start2\":5268,\"length1\":16,\"length2\":82}]"
metadata_diff: {"new":{},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2026-07-31T18:29:42.211Z
created_time: 2026-07-31T18:29:42.211Z
is_locked: 0
type_: 13