arjhinety/onebee-gf-dpo-v1-scale
onebee-gf-dpo-v1-scale
Proper-scale LoRA DPO checkpoint on top of sft-v1 (2049 preference pairs) — pre-distillation, strongest preference-optimization signal in this project.

Model Overview
Proper-scale DPO checkpoint on top of sft-v1 — 2049 preference pairs (~10x dpo-v0's scale), 1 epoch. Strongest and cleanest preference-optimization signal observed across every run in this project (24.7pp pairwise win-rate gap). Superseded by `onebee-gf-distill-v1` (adds on-policy distillation on top of this checkpoint) as the current best overall, but this remains the pre-distillation baseline used in that comparison, and the checkpoint the published GGUF quantizations are built from.
GGUF quantizations available: this checkpoint is also published as quantizations (F16 reference plus 12 quant levels)\ ((F16 reference plus 12 quant levels down to Q2_K, plus vision projector)) for llama.cpp-based on-device inference.Model Details
Intended Use
Intended Use
As a base for distillation or quantization; as a strong standalone companion checkpoint if distillation-specific behavior is not desired.
Out-of-Scope Use
Not evaluated or intended for: safety-critical decisions, medical/legal/financial advice, or any deployment where a wrong or overconfident answer causes real harm. This is a research artifact from an open-source project studying post-training and memory architecture on small models — see the project README for the full research framing before using it in any production context.
Capabilities
- Companion-persona conversational responses with strong preference alignment
- Preference alignment: 45.7% vs 21.0% pairwise win-rate over SFT-only (24.7pp gap, 105 probes)
No full-PMBpra_lenient/UAR measurement exists for this checkpoint — it is evaluated pairwise only. The 70.0% UAR figure that appeared here in earlier revisions belongs to the SFT-v1+memory system, not to DPO. Seereports/ERRATA.md.
Quick Start
Installation
pip install transformers torchUsage
from transformers import AutoModelForCausalLM, AutoProcessor
model = AutoModelForCausalLM.from_pretrained("arjhinety/onebee-gf-dpo-v1-scale")
processor = AutoProcessor.from_pretrained("arjhinety/onebee-gf-dpo-v1-scale")
messages = [
{"role": "system", "content": "You are a warm AI companion who remembers this user."},
{"role": "user", "content": "What conference did I say I was attending?"},
]
inputs = processor.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
output = model.generate(**inputs, max_new_tokens=128)
print(processor.decode(output[0], skip_special_tokens=True))Evaluation
Scored against PMB (Personalized Memory Benchmark), 688 adversarial probes across 8 categories, with an LLM judge under dual-order (position-bias-controlled) scoring plus a rule-based abstention detector.
Full methodology, all numbers, and honest limitations: `docs/proper_scale_results.md`.
Limitations
Single seed/run at this data scale. See onebee-gf-distill-v1 for the further-improved current-best checkpoint.
This project reports negative/inconclusive results as honestly as positive ones — read the linked docs before assuming any number here is a clean win.
Other Checkpoints From This Project
Citation
@software{small_mind_companion,
title = {small-mind-companion: Post-training and cognitive architecture for a small multimodal companion LLM},
author = {arjhinety},
year = {2026},
url = {https://github.com/arjhinety/small-mind-companion}
}License
Apache-2.0, inherited from the base model (google/gemma-4-E2B-it).
