neureps/warmly-qwen35-2b-enko-distill
0
warmly-qwen35-2b-enko-distill — 한국어 자연성 증류 LoRA (버전별 폴더)
Warmly(온기) 배포 모델의 한국어 댓글 자연성을 같은 모델 크기에서 끌어올리는 증류 트랙(D안 Track 2)의 산출물 리포입니다. 프루닝 마스터 neureps/Qwen3.5-2B-enko에 8B급 한국어 교사의 댓글을 QLoRA로 증류한 어댑터를 버전 폴더(`v1/`, `v2/`, …) 로 관리합니다. 배포 게이트를 통과한 버전은 병합·재양자화된 GGUF로 warmly-qwen35-2b-enko-gguf에 반영됩니다.
버전 이력
v1 — 무엇이 좋아졌나
60댓글 하니스(5장×4페르소나×3반복, temp 0.45, 루브릭 채점) 기준:
예시 (pet 사진, 같은 캡션):
- 기준선: "너무 신난 김지라네!" (깨진 단어) → v1: "고양이 너무 귀엽다 😻 나도 같이 졸리고 ㅋㅋㅋ"
- 기준선: "정적 같은 것 같아요" → v1: "고요히 잠든 고양이 모습이 참 평온해 보여요"
v1 — 어떻게 만들었나 (전 과정)
- 측정 해상도 확보: 기존 20댓글 하니스는 후처리 통과 20/20으로 포화 — 60댓글 루브릭 하니스(어색/오역·환각/구체성/페르소나 부합)를 새로 만들어 기준선의 숨은 어색 30%를 드러냄.
- 교사 선발전: 같은 60댓글을 Qwen3-8B-AWQ와 Kanana-1.5-8B(카카오, Apache-2.0)로 생성·비교. Qwen3-8B는 중국어 누출 4/60 + "텍스처" 차용어 5/60으로 탈락, Kanana는 누출 0·차용어 0·구체성 최상으로 채택.
- 증류 데이터 합성: 캡션 뱅크 928개(dedup) × 4페르소나 × 2반복을 Kanana(bnb 4bit)로 생성 → 필터(금칙어·외국문자·거부/퇴화·소유 착각("우리 딸") 정규식) → 2B 추론 프롬프트로 래핑 → train 6,483 / valid 300 (페르소나 균형). 무작위 50건 육안 검수 통과.
- QLoRA 학습: r=16, α=32, target q/k/v/o+gate/up/down (학습 파라미터 10.9M, 0.54%), 3 epoch, completion-only 마스킹(댓글 토큰만 학습), bnb 4bit + gradient checkpointing, RTX 3080 Laptop 16GB. loss 1.93→0.53, eval loss 1.055→0.886. 에폭별 생성 스모크로 붕괴 감시 — 3에폭 전부 붕괴 없음 (과거 LoRA 기각 원인이던 "val loss 수렴해도 생성 붕괴"를 명시적으로 회피).
- 검증: LoRA 병합 후 60댓글 재생성 → 기준선과 나란히 채점(위 표).
아키텍처 주의 (v1의 최대 발견): Qwen3.5-2B는 신규 하이브리드 아키텍처(model_type: qwen3_5 — mamba SSM+선형어텐션+MTP+비전) — 릴리스 transformers(≤5.13)로는 로드 불가, git-main(5.14.0.dev)부터 지원. QLoRA 학습·병합 모두 git-main 필요.
파일 (v1/)
사용법
# transformers git-main 필수 (qwen3_5 아키텍처)
from transformers import AutoModelForImageTextToText, AutoTokenizer
from peft import PeftModel
base = AutoModelForImageTextToText.from_pretrained("neureps/Qwen3.5-2B-enko", torch_dtype="bfloat16")
model = PeftModel.from_pretrained(base, "neureps/warmly-qwen35-2b-enko-distill", subfolder="v1")
# 생성 시: enable_thinking=False 필수, eos(<|im_end|>)+stop_strings 지정
# (few-shot 패턴 모방으로 다음 턴을 이어 생성하는 것 방지)v1 배포 검증 결과 (2026-07-15, 전부 통과)
- GGUF 변환 무결성 PASS: 병합본 →
--no-mtp+ qwen35 chkhsh 변환 후 greedy 대조 — 3/4 페르소나 완전 일치, 1건 동의어 차이(창문↔창가)만, 깨진 단어·의미 변형 0. (주의: peft CAUSAL_LM 병합은 MTP 가중치를 드롭 —--no-mtp배포와 정합) - 도메인 imatrix 재산출 후 IQ4_XS 재양자화: 1022MB. imatrix는 모델 종속이라 base 것 재사용 불가
- 공식 게이트: 블라인드 승률 ~70%(기준 ≥60%), 자기비하 동조 0/4, 후처리 1차 55/60 + 재생성 포함 템플릿 폴백 0
- 잔존 특성(v2 개선 후보): 복잡·희귀 캡션에서 영어 누출(후처리+재생성이 전부 흡수), interior "안개 낀" 환각(기준선에서 계승)
관련 리포
- 베이스(프루닝 마스터): neureps/Qwen3.5-2B-enko
- 프로덕션 GGUF: neureps/warmly-qwen35-2b-enko-gguf
백업 추가 폴더 (2026-07-23)
v3d/restraint 실험(기각) 어댑터. 데이터·매핑 =neureps/warmly-distill-data·ondeviceMODEL-REGISTRY.md.
