--- base_model: - schneewolflabs/B2-9B license: apache-2.0 library_name: transformers pipeline_tag: image-text-to-text datasets: - jondurbin/truthy-dpo-v0.1 - argilla/distilabel-math-preference-dpo - openbmb/UltraInteract_pair language: - en tags: - merge - lora - orpo - qwen3.5 --- # B2-Bophades-9B [Schneewolf Labs B2-9B](https://huggingface.co/schneewolflabs/B2-9B) with the **Bophades ORPO LoRA** merged in at full strength. The LoRA was trained on stock [Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B), not on B2. It ports over cleanly because B2 is a Qwen3.5-9B descendant with the same architecture. **What it does:** it is **more truthful** than B2 (TruthfulQA +2.3, significant) and roughly B2 everywhere else. ARC is down 2.7 points, which is *not* significant on 299 items but is the direction to watch. ## The Bophades LoRA ORPO, 1 epoch, on 9,399 preference pairs: | source | pairs | |---|---| | [jondurbin/truthy-dpo-v0.1](https://huggingface.co/datasets/jondurbin/truthy-dpo-v0.1) | 1,015 | | [argilla/distilabel-math-preference-dpo](https://huggingface.co/datasets/argilla/distilabel-math-preference-dpo) | 2,384 | | [openbmb/UltraInteract_pair](https://huggingface.co/datasets/openbmb/UltraInteract_pair) — Coding, Logic, Math_CoT, Math_PoT, 1,500 each, one pair per problem | 6,000 | Rendered with the Qwen3.5 chat template, thinking off. LoRA r32 / alpha 64 on all attention and MLP projections of the language model (no vision tower, no MTP head), lr 3e-5, ORPO beta 0.1, effective batch 16, max length 2048. Final loss 0.644. Trained with [Merlina](https://github.com/Schneewolf-Labs/Merlina) and baked in with [Kessel](https://github.com/Schneewolf-Labs/kessel) (`kessel_config.yaml`). ## Results Log-prob multiple choice (llama.cpp `--multiple-choice`, Q8_0). Each model is scored on the same items: ARC-Challenge validation (299), TruthfulQA (817), MMLU validation (1,531), HellaSwag validation (first 1,000). | model | ARC | TruthfulQA | MMLU | HellaSwag | |---|---|---|---|---| | Qwen3.5-9B | 50.5 | 33.7 | 39.8 | 75.7 | | Qwen3.5-9B + Bophades | 53.5 | 35.1 | 39.9 | 75.6 | | B2-9B | **60.5** | 36.5 | 41.2 | 77.6 | | **B2-Bophades-9B (this)** | 57.9 | **38.8** | **41.9** | 77.6 | Paired against B2 (items flipped right / wrong, exact binomial): | | gained | lost | p | |---|---|---|---| | ARC | 5 | 13 | 0.096 | | TruthfulQA | 32 | 13 | **0.007** | | MMLU | 26 | 15 | 0.117 | | HellaSwag | 10 | 10 | 1.0 | The adapter moves B2 in the same direction it moves the stock model: up on TruthfulQA. ### Merges that didn't make it The plan was a "DragonBophades" multi-model merge. Base models tested alongside B2 were Ornith-1.5, MiMo-V2.6-Distill, Qwen3.8-9B-Distill and Astrea-R8-Chat (best non-B2 donor: 56.2 / 35.0 / 40.8 / 78.2). - **model_stock (equal weight), with or without B2:** about 53.5 / 34.4 / 39.7 / 76.1. These merges land back near the base. With donors this different, model_stock's interpolation collapses toward the base. - **TIES, B2 0.55 / Astrea 0.35 / Bophades 0.3:** 59.9 / 36.6 / 41.5 / 77.5. This is B2 within noise on every benchmark. Beating the third-party donors isn't enough of a reason to ship a model that only ties B2. Applying the adapter directly to B2 was the only build that moved anything. ## Notes - **Identity:** it calls itself a model made by Schneewolf Labs, which it inherits from B2. If you need another identity, set one in the system prompt. - **Thinking:** trained with thinking off. Thinking-on behaviour comes from B2 and is not evaluated here. - **Not evaluated:** generation-based benchmarks and agentic / tool-use behaviour. B2 was built for the [egirl](https://github.com/Schneewolf-Labs/egirl) harness, and this tune has not been re-checked there. - Vision tower and MTP head are B2's, untouched.