What it suppresses
단순히 ~가 아닌 B — a manufactured contrast (English "not just X, but Y")
단순히 통제가 아닌 비전이다 → 비전을 제시하는 능력이다
Genuine factual distinctions like GPU 문제가 아니라 드라이버 문제다 are natural in Korean and are left untouched.
핵심은 ~에 있다 — a "lies in" calque · 반만 맞다 — an "only half true" calque
Training
Table | |
|---|
| Base | Qwen/Qwen3.6-27B (dense) |
| Adapter | LoRA, r=16, α=32, dropout=0.05, target q,k,v,o (language tower) |
| Objective | 1.0·localized-DPO + 0.3·clean-anchor-CE + 0.7·token-unlikelihood |
| Data | 428 preference pairs (nabb 311 / ultimately 85 / half_right 32) |
| Schedule | β=0.3, lr 2e-5, 2 epochs |
Trained in non-thinking format (empty <think></think> block) so the style transfers to normal answers. Localized DPO on the scaffold span, token-unlikelihood on scaffold tokens (factual rows exempt), CE anchor for fluency.
Self-evaluation
Protocol. 1,375 synthetic definition prompts; the 1,375→base-positive subset (base emitted not-A-but-B) evaluated. Base and adapter decoded through the same HF stack, enable_thinking=False (non-thinking, matching training). Truncated rows dropped → N = 1,068. Regex proxy, 95% Wilson CIs.
Table 1 — Conditional removal rate
Table with columns: Target pattern, n, Removed, 95% CI| Target pattern | n | Removed | 95% CI |
|---|
① 단순히/단순한 forced contrast | 994 | 94.9% | 93.3 – 96.1 |
② ~에 있다 lies-in calque | 4 | 100.0% | 51 – 100 |
| not-A-but-B (any form) | 1,068 | 89.8% | 87.8 – 91.5 |
Table 2 — Auxiliary measures (N = 1,068)
Table with columns: Measure, Base, Adapter| Measure | Base | Adapter |
|---|
결국 frequency (token count) | 54 | 14 |
| Degenerate outputs | — | 4 (0.4%) |
| Length ratio, adapter ÷ base (median) | — | 0.61 |
| New scaffold family introduced (base-positive) | — | 0 / 1,068 |
Note: on Qwen3.6-27B the adapter removes not-A-but-B in all forms most aggressively of the three siblings (89.8% vs 55.7% / 73.1%), and outputs are more concise (length 0.61).
Limitations
Surface-level (word/phrase) tool. English and Korean differ in paragraph/argument organization (point-first vs. point-last); a LoRA does not change that discourse structure. Evaluated in non-thinking mode; behavior inside <think> reasoning traces is out of scope.
Usage
from peft import PeftModel
from transformers import AutoModelForImageTextToText, AutoTokenizer
base = AutoModelForImageTextToText.from_pretrained(
"Qwen/Qwen3.6-27B", torch_dtype="bfloat16", device_map="auto")
tok = AutoTokenizer.from_pretrained("Qwen/Qwen3.6-27B")
model = PeftModel.from_pretrained(base, "sdgb-ai/ko-anti-cliche-qwen3.6-27b")
본 LoRA는 Qwen3.6가 한국어를 생성할 때 나타나는 "단순히 ~가 아니라", "핵심은 ~에 있다", "반만 맞다" 같은 LLM 특유의 번역투를 억제하고, 자연스러운 한국어로 교정한다. Gemma 형제들과 동일 레시피.
억제 대상
"단순히 ~가 아닌 B" — B를 강조하기 위해 깎아내릴 A를 인위적으로 만들어 내세우는 영어식 구문.
단순히 통제가 아닌 비전이다 → 비전을 제시하는 능력이다
다만 "GPU 문제가 아니라 드라이버 문제다"처럼 실제 사실을 구분하는 표현은 억제하지 않음.
"핵심은 ~에 있다" — 영어 "the key lies in"의 직역 · "반만 맞다" — "that's only half true"의 직역.
학습 방법
Table | |
|---|
| 베이스 | Qwen/Qwen3.6-27B (dense) |
| 어댑터 | LoRA, r=16, α=32, dropout=0.05, target q,k,v,o |
| 목적함수 | 1.0·localized-DPO + 0.3·clean-anchor-CE + 0.7·token-unlikelihood |
| 데이터 | 선호쌍 428개 (nabb 311 / ultimately 85 / half_right 32) |
| 스케줄 | β=0.3, lr 2e-5, 2 epoch |
thinking 모델이라 non-thinking 포맷(빈 <think></think>)으로 학습해 일반 답변에 스타일이 전이되게 함.
자체 평가
synthetic 정의형 프롬프트 중 base-positive를 base/adapter 동일 HF 스택 + enable_thinking=False 로 생성, truncated 제외 → N = 1,068. 정규식 proxy, 95% Wilson CI.
Table with columns: 표적 패턴, n, 제거, 95% CI| 표적 패턴 | n | 제거 | 95% CI |
|---|
① 단순히/단순한 강제대조 | 994 | 94.9% | 93.3 – 96.1 |
② ~에 있다 lies-in | 4 | 100.0% | 51 – 100 |
| not-A-but-B (전체) | 1,068 | 89.8% | 87.8 – 91.5 |
보조: 결국 54→14 · degenerate 4(0.4%) · 길이비 0.61 · 새 family 도입 0/1,068. 세 형제 중 not-A-but-B 전체 제거가 가장 강함.
한계
표면 어휘·구문 도구. 영어/한국어 담화 구조(두괄식 vs 미괄식) 차이까지는 못 바꿈. non-thinking 모드로 평가했으며 <think> 추론 트레이스 내부는 범위 밖.
LoRA r=16, q/k/v/o (language tower). base Qwen/Qwen3.6-27B (apache-2.0). 형제: ko-anti-cliche-gemma4-26b-a4b, ko-anti-cliche-gemma4-12b.