Releases: Avo-k/colver
v0.7.0 — Bid V6 IS-DD (match-trained champion)
Bid V6 IS-DD is the new default bid model.
Trained 75M steps (45M + 30M resume) on 5M ISDD-scored deals with:
- score-aware v3 obs (117-dim: scores cumulés + 4 belote bits en main)
- belote-aware reward (Q+K of trump same hand → +20 pts)
- match simulation (cumulative scores + dealer rotation 0→1→2→3 + reset @ 2000)
Arena results (vs V5 IS-DD, post-2026-04-20 dealer-rotation fix)
| Eval set | v6 vs v5 |
|---|---|
| DMC play (round-robin) | 58.7% / +140 |
| IS-DD play (h2h, 1000 matches) | 57.3% / +181 |
With belief net vs nn_v2_isdd |
63.5% / +187 |
V6 wins arena matches by 13.5pp vs the previous best-overall champion (nn_v2_isdd).
Notes
- Belief net (
belief_v3.bin) contributes ~0pp on top of v6 — it added ~13pp on bid_v2. Likely distribution shift since belief was trained on bid_v2 auctions, or v6's score-aware obs already encodes the relevant signal. - Match-trained models cannot be ranked by deal-level audit metrics — at single-deal probes v6 scores -22 pts/deal vs v5 (audit measures avg deal-EV, not match outcome). Always use match arena for match-trained models.
Assets
bid_v6_isdd.bin— production bid model (2.4 MB, hidden=512, layers=3, obs_dim=117)
PyPI wheels follow on tag push.
v0.6.0 — Bid V5 IS-DD (score-aware champion)
Default bid model → Bid V5 IS-DD
The default bidder is now Bid V5 IS-DD (25M training steps, score-aware v2 observations, IS-DD-only reward pool).
Key improvements vs v3 Max
| Metric | v3 Max | v5 IS-DD |
|---|---|---|
| DMC play arena vs v2 champion | −1.5% | +11.0% |
| IS-DD play arena | +5.9% | +14.6% |
| Opening XGB-baseline accuracy (h0 probe) | — | 99% |
What's new
- Score-aware features (5 extra dims: my/opp normalized, win_prob, leader_dist, diff) — obs_dim = 113
- Reward clipping + Polyak EMA (τ = 0.005) + cosine LR decay for training stability
- IS-DD-only reward pool (instead of
max(DMC, IS-DD)) — makes the bidder a true IS-DD synergy multiplier
Breaking change
obs_dim changed from 108 → 113. The colver-py bridge now dispatches on net.obs_dim() to build the right observation; old 108-dim models (v2, v3, v4) still work via the same entry point. Web frontend auto-loads v5 by default (match-neutral score context for single-deal play).
Assets
bid_v5_isdd.bin— Bid V5 IS-DD weights (2.3 MB, 512 hidden × 3 layers, dueling)
Companion docs
- Human-usable strategy guide (88-94% agreement with NN)
- Hidden-layer probe analysis — 2 features discovered that close the XGBoost gap from 77% to 97% on defense
/annoncerweb page — visual strategy reference
v0.5.0 — Bid V3 Max
Default bid model → Bid V3 Max
The default bidder is now Bid V3 Max (20M training steps), replacing Bid V2 (Bid à Dédé).
Trained on max(DMC, IS-DD) real points instead of pure DD values — the only bid model that doesn't lose to v2 in either DMC or IS-DD evaluation. Best synergy with IS-DD play (+5.9%).
Changes
- Model files now use explicit names (
bid_v3_max.bin) instead of genericbid_nn_final.bin - Same architecture as v2 (512 hidden, 3 layers) — drop-in replacement
Assets
bid_v3_max.bin— Bid V3 Max weights (2.3 MB)
v0.4.0 — Bid à Dédé + DouDou50
New default models
Bid à Dédé — New bidding NN (108→512³→43), trained on 1M DD-solved deals with 24× suit augmentation. 64.5% win rate vs predecessor "Bid à Doudou".
DouDou50 — New play NN (411→1024³→32 ResNet), trained 50M steps with canonical suit encoding. Matches IS-DD solver strength with instant inference (~1ms).
Model files
bid_nn_final.bin— Bid à Dédé (2.4MB)dmc_50.bin— DouDou50 (9.8MB)belief_v3.bin— Belief net v3 (1.8MB, unchanged)
Highlights
- BidNet auto-detects hidden size (backward compatible with old models)
- PyO3 supports both legacy (415-dim) and canonical (411-dim) observation formats
- Arena framework for systematic bot evaluation
- Triforge training pipeline for iterative bid+play improvement
v0.3.3 – Belief V3 (3-class)
What's new
- Belief V3: 3-class belief network (left/partner/right) — removes wasted observer class, +count regularization (0.1)
- Trained 213 epochs on 500K games, val_loss=0.8662, val_acc=54.95%
- Auto-detection: loads both V3 (3-class) and legacy (4-class) models transparently
- Model download URLs updated for web frontend
Model assets
dmc_27.bin— DouDou27 card play model (9.8 MB)bid_nn_final.bin— Le Bide à Dédé NN bidder (421 KB)belief_v3.bin— Belief V3 card location predictor, 3-class (1.8 MB)
🤖 Generated with Claude Code
Training assets (belief net)
Pre-built training binary + replay data for cloud GPU training
v0.3.1 – DouDou27 (27.5M checkpoint) + Annonces bid eval
What's new
- DouDou27: new DMC card play agent trained for 27.5M steps with better bidding system, see below (replaces DouDou35)
- Annonces tab: bid evaluation now works (NN bid model bundled as release asset)
- Annonces tab hand preview: selected cards shown at full game size below the palette
- Fix bid model discovery to also check
./models/relative to working directory
Model assets
dmc_27.bin— DouDou27 card play model (9.8 MB)bid_nn_final.bin— Le Bide à Dédé NN bidder (421 KB)
v0.3.0 – DouDou35 (35M checkpoint)
DouDou35 – DMC 35M-step checkpoint
Best checkpoint from tournament evaluation. Replaces the previous dmc_final.bin.
Changes
- Model weights:
dmc_35.bin(35M training steps, dueling DQN) - UI display name: DouDou → DouDou35
- Download URL updated in
_model.pyand Docker entrypoint
Deployment
Docker containers with COLVER_UPDATE_MODEL=1 will auto-download the new weights on restart.
v0.2.0
Colver v0.2.0
First PyPI-ready release.
Package changes
- Proper Python package structure (
pip install colver,pip install colver[web]) - Removed training infra (VecEnv, PrioritizedReplayBuffer) from public API
colver.download_model()fetches weights from this releasepython -m colver.webstarts the web UI- Type stubs (
_colver.pyi) for IDE support - WTFPL license
Model weights
- dmc_final.bin — DMC Q-network (33M training steps, dueling DQN)
- Architecture: 415→1024→1024→1024→32 MLP with LayerNorm (~2.6M params)
- Pure Rust inference (~1ms/decision, no PyTorch needed)
- Bidding: ImprovedV2 heuristic
Usage
import colver
colver.download_model() # fetches dmc_final.bin to ~/.cache/colver/models/