Files
Opus-Candid-8B-V3/V3-METHODOLOGY.md
ModelHub XC 65ffee774c 初始化项目,由ModelHub XC社区提供模型
Model: Verdugie/Opus-Candid-8B-V3
Source: Original Platform
2026-08-30 22:36:04 +08:00

11 KiB
Raw Permalink Blame History

Opus Candid V3 — Training Methodology

Background

Opus Candid is a series of conversational fine-tunes designed to produce AI that communicates like a thoughtful person — direct, opinionated when warranted, and calibrated to match response depth with question complexity. The models are distilled from Claude Opus 4.6 onto open-weight Qwen architectures.

V3 is the third generation, built from the ground up to address specific failure modes observed in V1 and V2.1.


Failure Analysis: Why V3 Was Necessary

V1 (8B)

Had personality but produced monotone output. The model would maintain a consistent tone regardless of context — the same analytical voice whether someone asked about cooking dinner or processing grief. The training data lacked register diversity.

V2.1 (27B Dense)

Significantly better personality transfer, but stress testing revealed three critical issues:

  1. Degenerate repetition loops. The model would restate the same point 24 times in different words within a single response. Root cause: a 22:1 verbose-to-brief training ratio. The model learned that longer responses were the default and had no examples of when to stop.

  2. Uniform response length. 88% of training conversations were medium length (610 turns). The model had almost no examples of tight 24 turn exchanges or extended 20+ turn deep dives. Every conversation converged to the same depth regardless of topic weight.

  3. Factual hallucination under pressure. In adversarial exchanges, the model would fabricate specifics (NATO treaty articles, geopolitical scenarios) rather than acknowledge uncertainty. The adversarial training data was too sparse and too combative — the model learned to fight rather than to hold a position honestly.


V3 Design: The 4D Training Tensor

V3 treats the training dataset as a 4-dimensional space. Every conversation sits at a specific coordinate across four axes, and the distribution across each axis follows real-world frequency patterns.

Dimension 1: Topic Distribution (Zipf-weighted, s ≈ 0.7)

25 topics distributed across 5 frequency tiers, weighted by how often these topics actually come up in human conversation.

Research basis:

  • Pew Research Center (2024): 69% of people discuss personal life regularly, 46% work, 44% pop culture, declining through politics and religion at 20%.
  • OpenAI/NBER study (2025): 80% of ChatGPT usage is practical guidance, information seeking, and writing assistance. Coding represents only 4.2%.
  • Academic conversation research: Hobbies rank #1 in casual conversation, followed by family and travel. 60% of conversations are self-referential.
  • Zipf's law: Confirmed at the pragmatic/utterance level in dialogue corpora, not just word frequency.

The Zipf exponent (s ≈ 0.7) was chosen to be slightly flatter than pure Zipf (s = 1.0) to ensure lower-frequency topics still have enough examples for the model to learn from, while maintaining the heavy-head distribution that matches reality.

Tier Topics Share Examples
1 (Daily) 5 topics 47.9% Personal life, work, food, entertainment, relationships
2 (Weekly) 5 topics 26.8% Family, health, money, tech help, home
3 (Regular) 5 topics 12.5% Hobbies, travel, shopping, pets, weather
4 (Less Common) 5 topics 7.5% Education, career, cars, mental health, current events
5 (Occasional) 5 topics 3.2% Legal, identity/culture, science, philosophy, creative writing

Dimension 2: Response Length

The target distribution deliberately overweights tight responses relative to what users might expect, because the V2.1 failure was caused by underweighting them.

Length Turns Target Actual
Tight 24 40% 42.0%
Medium 610 35% 33.4%
Deep 1218 20% 19.5%
Extended 20+ 5% 5.2%

The tight-to-medium ratio is the single most important number in the dataset. V2.1's 88% medium distribution taught the model that every question deserved 610 turns of exploration. V3's 42% tight teaches the model that most questions deserve a direct answer and maybe one follow-up.

Dimension 3: Psychological Register

Register Target Actual
Neutral/Analytical 40% 40.6%
Engaged/Conversational 30% 28.7%
Emotionally Loaded 25% 22.3%
Adversarial/Correction 5% 7.8%

The adversarial percentage was deliberately kept low. V2.1's edge cases at 1012% produced a model that was gratuitously combative. 58% teaches the model to hold positions firmly when warranted without making disagreement its default mode.

Dimension 4: Conversational Position

  • Opening exchanges: 15%
  • Mid-thread continuation: 50%
  • Follow-up/clarification: 20%
  • Wrap-up/conclusion: 15%

This ensures the model learns how to start, sustain, redirect, and conclude conversations — not just respond to isolated prompts.


Demographic Overlay

Layered on top of the topic distribution, not as a separate axis. Each conversation is written from the perspective of a specific demographic to ensure the model can adjust its communication style naturally.

Demographic Code Target Actual Purpose
Young Adults (1835) YA 40% 40.4% Tech-literate, casual tone, primary user base
Working Adults (3055) WA 15% 17.3% Professional context, practical needs
Parents P 20% 19.1% Child-related, time-constrained, practical
Elders (60+) E 10% 11.3% Treated with dignity, not condescension
Bilingual (EN/ES) B 10% 8.1% Code-switching, same analytical voice in both languages
Adversarial/Edge ADV 5% 3.7% Disagreements, corrections, pushback

The bilingual conversations specifically maintain the same personality in Spanish. Only the human side uses colloquial language, Spanglish, and code-switching. The model's Spanish responses keep the same analytical, direct voice as its English responses.


Anti-Sycophancy Enforcement

Applied at the data level during generation, not as a post-processing filter.

Banned patterns:

  • "Great question!" / "That's a great question"
  • "Absolutely!" as a conversation opener
  • "I'd be happy to help with that"
  • Any opening that validates the question before answering it

Replacement strategy: Sycophantic openers were replaced with natural conversational entries — "Yeah,", "Right,", "Makes sense.", "Look,", "So", "Honestly," — chosen to match the register of each conversation.

22 sycophancy instances were caught and replaced in the final audit pass.


Response Length Variance Injection

The audit pipeline flagged 252 conversations (20.7%) where assistant response lengths were suspiciously uniform within a conversation. The detector measured coefficient of variation in word counts across all assistant turns — conversations where every response was roughly the same length were flagged.

Fix: ~30% of mid-conversation assistant turns in flagged conversations were trimmed to 12 sentences. This teaches the model that not every turn in a conversation needs to be the same depth. A good conversationalist gives a long answer when the question warrants it and a short one when it doesn't, even within the same conversation.

Post-fix: uniform conversations dropped from 20.7% to 5.2%.


Generation Strategy

Hand-generated (free): 1,136 conversations

All tight (24 turn) and medium (610 turn) conversations were generated directly by Claude Opus 4.6 in large batches, organized by topic. 25 batches total, one per topic, generated in descending weight order.

Additionally, 219 deep (1218 turn) conversations were hand-generated for the top 10 topics (batches 110) to provide high-quality anchor examples.

API-generated: 153 conversations

Deep conversations for topics 1125 and all extended (20+) conversations were generated via the Anthropic API using Claude Opus 4.6 (claude-opus-4-6).

5 API keys running in parallel via ThreadPoolExecutor. Each conversation saved individually for crash safety. Total API spend: ~$10 of $50 budget.


Quality Audit

A 9-check automated audit pipeline scanned the full dataset:

  1. Sycophancy detection — scanned for "Great question", "Absolutely!", etc.
  2. Filler phrase detection — "In today's world", "It's worth noting", etc.
  3. Internal repetition — duplicate sentences within responses
  4. Response length uniformity — flagged conversations with low variance in response lengths
  5. Turn count validation — ensured conversations matched their length label
  6. Opener diversity — checked for over-represented first words/phrases
  7. Metadata integrity — valid topic, demographic, register codes
  8. Demographic authenticity — bilingual conversations must contain Spanish
  9. Bilingual quality — Spanish responses maintain analytical voice

Issues Found and Fixed

  • 22 sycophantic openers replaced
  • 14 mislabeled medium conversations (24 turns) relabeled to tight
  • 28 fake bilingual conversations (tagged B but no Spanish) relabeled to YA
  • 252 uniform response length conversations fixed via variance injection
  • "That's" opener at 8.2% frequency — diversified ~50% to alternatives

Final Dataset Statistics

Metric Value
Total conversations 1,508
Total turns 14,891
Average turns per conversation 9.9
Estimated tokens ~619,000
File size 3.9 MB
Format ShareGPT JSON (ChatML template)

Response Word Count Distribution

Metric Words
Mean 46
Median 41
P10 14
P90 83

Training Configuration

All three models use the same dataset and the same general approach, adapted for model size.

Parameter 8B 27B Dense MoE (30B-A3B)
Base Model Qwen/Qwen3-8B Qwen/Qwen3.5-27B Qwen/Qwen3-30B-A3B
Method LoRA + rsLoRA LoRA + rsLoRA LoRA + rsLoRA
Rank 64 32 32
Epochs 3 2 2
Batch Size 2 1 1
Grad Accumulation 8 16 16
Effective Batch 16 16 16
Learning Rate 2e-4 2e-4 1e-4
Warmup 5% 5% 8%
Precision bf16 bf16 bf16
Attention SDPA SDPA SDPA
Optimizer AdamW AdamW AdamW

MoE-specific: Gate, router, and shared expert gate modules are excluded from LoRA adaptation. The routing logic learned during pre-training is preserved; only the expert FFN and attention layers receive fine-tuning.

Why not DoRA: DoRA (Weight-Decomposed Low-Rank Adaptation) was the original plan and was used successfully in V2.1. However, newer versions of the PEFT library introduced a bug where DoRA's magnitude vector gets stuck on the meta device during training with gradient checkpointing. Standard LoRA with rsLoRA (rank-stabilized scaling) and higher rank compensates effectively.


Hardware

All training runs on NVIDIA A100 SXM 80GB via RunPod.


Opus Candid V3 — March 2026 Built by Verdugie