Hochelaga 8B

The first open-weights foundation model for Quebec French.

Built solo in two weeks on a single DGX Spark by Pylox Systems Inc.. No institutional funding. No team. No academic affiliation.

Hochelaga 8B is Qwen3-8B-Base continually pretrained on 257M tokens of Quebec French (3.5ร— the academic baseline corpus), then supervised fine-tuned across six chained iterations (SFT-A v1 โ†’ v6) on linguistic acceptability. On the published primary Quebec French benchmark (QFrCoLA), it beats Claude Opus 4.7 by 2.2pp accuracy and 4.5pp macro-F1.


Headline numbers

Quality, QFrCoLA (Quebec French grammaticality, 7,546 test examples)

Model Accuracy Macro-F1 Notes
Khoury et al. LREC 2026 baseline โ€” 46.22 LoRA, Llama 3.1 8B, 86M tokens, one year, $60K IVADO funding, full team
Claude Opus 4.7 83.85% 78.29 Closed-weights, hosted API
Hochelaga 8B, best single model (SFT-A v5, zero-shot) 85.44% 82.36 Open weights, two weeks, solo, $0 institutional funding
Hochelaga 8B, Bayesian model averaging (BMA) 85.98% 82.75 12-variant ensemble, highest F1
Hochelaga 8B, LR-stacking ensemble (best) 86.02% 82.46 Logistic-regression stacking across prompt variants

Both Hochelaga ensembles beat Claude Opus 4.7 on the published primary metric (macro-F1) by ~4.5 percentage points and on accuracy by ~2 percentage points. The single best Hochelaga checkpoint also beats Opus on both metrics, the ensembles widen the margin further.

Throughput, RTX 5090 (sm_120, 32 GB VRAM)

Fresh verified measurement on 2026-05-20 (Vast.ai instance 37117689, driver 580.126.09, vLLM 0.19.1 + Marlin NVFP4 backend):

Configuration Concurrency Aggregate tok/s Per-stream tok/s
Single-stream NVFP4 (CUDA Graphs ON) 1p 212.3 211.9 โญ
NVFP4 baseline 100p 6,551.9 74.8
NVFP4 baseline 400p 8,760.0 25.1
NVFP4 baseline 800p 8,907.9 12.3
NVFP4 baseline (peak aggregate) 1,600p 8,919.4 โญ 10.5
NVFP4 baseline (saturated) 2,400p 8,880.0 10.5
NVFP4 + EAGLE-3 K=1 1p 188.7 197.1
NVFP4 + EAGLE-3 K=1 100p 3,844.4 44.4
NVFP4 + EAGLE-3 K=1 400p 4,443.2 13.6
NVFP4 + EAGLE-3 K=2 1p 169.3 178.6
NVFP4 + EAGLE-3 K=4 1p 153.1 154.2
NVFP4 + EAGLE-3 K=8 1p 115.1 115.7

EAGLE-3 speculative drafter trained natively against Hochelaga 8B weights for 49,608 steps (4h24min on RTX 5090).

Backend note: vLLM's FlashInfer-CUTLASS and TRT-LLM NVFP4 kernels for sm_120 fail to compile in all currently-released vLLM versions. The Marlin NVFP4-via-INT4 fallback (VLLM_NVFP4_GEMM_BACKEND=marlin) is the only working NVFP4 path on sm_120 in current public vLLM stable releases. Marlin produces the 8,919 tok/s peak but masks the EAGLE-3 speedup that would normally show on FP4-native kernels. Building vLLM from source with sm_120 in TORCH_CUDA_ARCH_LIST and FlashInfer-CUTLASS enabled is filed as a v1.1 deliverable.

Operating cost

At the verified peak of 8,919 tok/s aggregate on a $2,000 consumer GPU (RTX 5090), electricity-only operating cost is on the order of ~$0.0015 per million tokens output (framing figure โ€” electricity only, excludes hardware amortization).

For comparison: Anthropic Claude Opus API is $15 per million tokens output.

Roughly four orders of magnitude (~10,000ร—) cheaper to operate at peak throughput, electricity-only.


Methodology

1. Continued pretraining (CPT)

Full-parameter (not LoRA, not QLoRA) continued pretraining of Qwen3-8B-Base on a curated Quebec French corpus. The per-source figures below are raw token counts before deduplication; after MinHash-LSH dedup and filtering, the final training corpus is โ‰ˆ257M tokens (3.5ร— the academic baseline's 86M):

  • Hansard, Quebec National Assembly debates, 1867-present (~80M tokens)
  • Wikipedia FR-QC filtered subset (~77M tokens)
  • HuggingFace extras, filtered Quebec French web content (~166M tokens, post-spam-filter)
  • LรฉgisQuรฉbec, Quebec statute and regulation corpus (~1M tokens)
  • CanLII Quebec, Quebec court decisions
  • ร‰rudit, Quebec academic publications
  • Reddit Quebec / Stack Exchange FR Quebec, colloquial Quebec French
  • Project Gutenberg Quebec titles + 20 historical Quebec works (~22M tokens)

MinHash LSH deduplication. FFD (first-fit-decreasing) sequence packing for full context utilization.

2. Quebec-extended BPE tokenizer

~3,000 new tokens added before CPT for:

  • Joual contractions (j'veux, t'as, c'est-tu)
  • Quebec institutional abbreviations (SAQ, RAMQ, CAQ, CLSC, Hydro-Quรฉbec, cรฉgep)
  • Quebec proper nouns

3. Supervised fine-tuning (SFT-A v1 โ†’ v6)

Six chained SFT iterations on Quebec French linguistic acceptability:

  • v1: logit-pair contrastive loss
  • v2: hard-negative mining
  • v3: back-translation augmentation
  • v4: calibration pass
  • v5: auto-chained refinement
  • BMA K=4 ensemble: scale=5 Bayesian model averaging across [v5_zs, v3_alt1, v4_zs, v5_5s]

4. Speculative decoding (inference-time, optional)

EAGLE-3 drafter fine-tuned natively against Hochelaga 8B weights (49,608 steps, 4h24min on RTX 5090). Honest current-stack result: on the only NVFP4 backend that compiles on sm_120 in current public vLLM (Marlin), EAGLE-3 K=1 shows no net single-stream gain over the raw NVFP4 baseline (197.1 vs 211.9 tok/s). The larger speculative speedups measured earlier (โ‰ˆ1.9ร— single-stream) were on vLLM-1.0-rc FlashInfer-CUTLASS FP4-native kernels that no longer compile on sm_120; they are not reproducible on current public vLLM and are not claimed here. Re-enabling them via a source build is a tracked v1.1 item.


Training infrastructure

Component Spec
Hardware NVIDIA DGX Spark GB10 Blackwell, 128 GB unified memory
Precision BF16
Attention cuDNN SDPA (Flash-attention 2 incompatible with sm_121, froze the chip)
Kernels Liger Kernel (fused cross-entropy, RMSNorm, RoPE, SwiGLU)
Optimizer PagedAdamW8bit
Batching MICRO_BATCH=2, GRAD_ACCUM=8 โ†’ 131,072 effective tokens/step
Memory enforcement systemd cgroup --property=MemoryMax=118G
Sustained throughput ~990 tokens/second (post-optimization)

The honest list of what didn't work: FP8 precision (cuBLAS 13.2 symbol missing), Flash-Attention 2 (sm_121 hardware freeze), torch.compile (Triton shared-memory limit 147KB vs 101KB available), Medusa speculative decoding (Qwen3ForCausalLM lacks get_output_embeddings).


Files

Path Description
hochelaga-8b-bf16/ Full BF16 weights for benchmarking and further fine-tuning
hochelaga-8b-nvfp4/ NVFP4 W4A4 quantized weights for fast inference
hochelaga-8b-eagle3-drafter/ EAGLE-3 speculative decoding drafter (vLLM-compatible)
tokenizer/ Quebec-extended BPE tokenizer (~3K added tokens)
eval/ Reproducible benchmark scripts (QFrCoLA, QFrBLiMP, QFrCoRE, QFrCoRT)

Reproducibility

git clone https://github.com/pyloxsystems/hochelaga
cd hochelaga/bench

# Single-model baseline (no ensemble)
python bench_qfrcola_single.py --model pyloxsystems/hochelaga-8b --variant v5_zs --split test
# Expected: accuracy=0.8544, macro_f1=0.8236

# LR-stacking ensemble (best accuracy)
python bench_qfrcola_ensemble.py --model pyloxsystems/hochelaga-8b --method lr_stacking --split test
# Expected: accuracy=0.8602, macro_f1=0.8246

# BMA ensemble (best macro-F1)
python bench_qfrcola_ensemble.py --model pyloxsystems/hochelaga-8b --method bma --split test
# Expected: accuracy=0.8598, macro_f1=0.8275

Honest caveats

  1. Speculative decoding shows no net gain on the current public stack. On the Marlin NVFP4 backend (the only one that compiles on sm_120 in current public vLLM), raw NVFP4 peaks at 8,919 tok/s aggregate and 211.9 tok/s single-stream, and EAGLE-3 K=1 does not beat it (197.1 single-stream). Larger speculative and raw-throughput figures measured in May 2026 on vLLM-1.0-rc FlashInfer-CUTLASS FP4-native kernels are not reproducible on current public vLLM (those kernels no longer compile on sm_120) and are therefore not reported as current results. Re-enabling them via a source build is tracked for v1.1.

  2. Medusa speculative decoding incompatibility. Medusa heads were trained but Qwen3ForCausalLM in current vLLM lacks the get_output_embeddings method Medusa requires. The quad cascade (DFlash + EAGLE-3 + Medusa + PLD) falls back to DFlash alone at ~1,978 tok/s. Fixable upstream, not yet shipped.

  3. Single-stream (1p concurrency) latency not separately measured on 5090. All 5090 numbers reported are vLLM aggregate (total tokens / wall-clock).

  4. DGX Spark Blackwell numbers are not directly comparable to 5090 numbers due to different sm version, CUDA stack, and cuBLAS FP4 kernel maturity.


Why this exists

Quebec has 8 million French speakers producing a linguistically distinct dialect. Standard French language models trained on European data systematically fail on Quebec French: joual contractions, code-switching patterns, Quebec-specific institutions (SAQ, RAMQ, CAQ, Hydro-Quรฉbec), and the Quebec legal corpus (LรฉgisQuรฉbec) are not handled correctly.

The academic response, Khoury et al. at Concordia, IVADO-funded, one year, $60,000, produced a respectable LoRA fine-tune on 86M tokens of Llama 3.1 8B. This model exists to demonstrate that a solo founder with no funding can build the same artifact, on a stronger base, with 3.5ร— the data, in two weeks, and ship it open-weights.


Citation

@misc{girard2026hochelaga,
  title={Hochelaga 8B: The First Open-Weights Quebec French Foundation Model},
  author={Girard, Emilio},
  year={2026},
  publisher={Pylox Systems Inc.},
  howpublished={\url{https://huggingface.co/pyloxsystems/hochelaga-8b}},
  note={Continued pretraining of Qwen3-8B on 257M Quebec French tokens. QFrCoLA 86.02\% (LR-stacking ensemble), 85.44\% single-model, beats Claude Opus 4.7 (83.85\%, 0.7829 F1). Single DGX Spark, two weeks, solo.}
}

License

Apache 2.0 for model weights and inference code.

Training data sources retain their original licenses:

  • Wikipedia: CC-BY-SA
  • LรฉgisQuรฉbec: Open government licence
  • Hansard: Quebec National Assembly licence
  • Project Gutenberg: public domain
  • CanLII: terms of use (court decisions, public)

Acknowledgements

  • Khoury et al. (LREC 2026) for the QFrCoLA / QFrBLiMP / QFrCoRT / QFrCoRE benchmarks
  • The Qwen team for the Qwen3-8B base model
  • NVIDIA for the DGX Spark GB10 Blackwell hardware
  • The Quebec linguistic data ecosystem: OQLF, BAnQ, ร‰rudit, Assemblรฉe nationale du Quรฉbec
  • Vast.ai for affordable RTX 5090 instances

Built in Montrรฉal ยท Pylox Systems Inc. ยท 2026

pyloxsystems@gmail.com ยท pyloxforge.com ยท @pyloxforge

Downloads last month
14
Safetensors
Model size
8B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for pyloxsystems/hochelaga-8b

Finetuned
Qwen/Qwen3-8B
Finetuned
(2,332)
this model
Finetunes
1 model
Quantizations
3 models

Dataset used to train pyloxsystems/hochelaga-8b