Qwen3-Persona-Trainer
Persona LLM fine-tuning with an operations-first evaluation — the highest-scoring config is rarely the right deployment.
운영을 먼저 보는 평가 기준의 Persona LLM 파인튜닝 — 점수가 가장 높은 설정이 곧 최적 배포는 아니다
Role · ML engineer — fine-tuning pipeline, QLoRA/GGUF quantization, 4-axis deployment evaluation.
Key Metrics
Why it matters
LLM-only baseline: 65% QA / 3.2s / 7.2GB. After QLoRA + conditional hybrid RAG on Jetson: 83% QA / 1.4s / 4.1GB. The +18%p accuracy came from architecture, not a bigger model.
LLM 단독: QA 65% / 3.2s / 7.2GB. QLoRA + 조건부 하이브리드 RAG 적용 후(Jetson): QA 83% / 1.4s / 4.1GB. 정확도 +18%p는 더 큰 모델이 아니라 아키텍처 설계에서 왔습니다.
Problem
In production, generation quality alone doesn't guarantee service quality. Three configs measured: LLM-only (65% QA, 3.2s, 7.2GB) vs Jetson hybrid RAG (83% QA, 1.4s, 4.1GB) vs Server RAG (91% QA, 0.9s, server-side). The highest-scoring config is not the one that ships to a Jetson. I reframed model selection as 'which config is reliable to operate' and built the 4-axis evaluation (accuracy · latency · memory · persona consistency) to answer that — so the deployment decision is explainable, not a guess.
운영 환경에서는 생성 품질만으로 서비스 품질이 보장되지 않습니다. 3가지 설정을 측정: LLM 단독(QA 65%, 3.2s, 7.2GB) vs Jetson 하이브리드 RAG(QA 83%, 1.4s, 4.1GB) vs 서버 RAG(QA 91%, 0.9s). 가장 높은 설정이 Jetson에 배포되는 설정이 아닙니다. 4축 평가(정확도·지연·메모리·페르소나 일관성)를 설계해 배포 결정을 설명 가능하게 만들었습니다.
What I built
Fine-tuning pipeline: Persona dataset (situation→input→response, stateful flow) → Full FT vs LoRA vs QLoRA comparison → GGUF Q4_K conversion + deployment
파인튜닝 파이프라인: 페르소나 데이터셋(상황→입력→응답, 상태형) → Full FT/LoRA/QLoRA 비교 → GGUF Q4_K 변환
4-axis evaluation: QA accuracy · inference latency · memory footprint · persona consistency — measured across 3 configs
4축 평가: QA 정확도·추론 지연·메모리·페르소나 일관성 — 3개 설정에서 측정
Config results: LLM-only (65%/3.2s/7.2GB) → Jetson hybrid RAG (83%/1.4s/4.1GB) → Server RAG (91%/0.9s/server-side)
설정별 결과: LLM단독(65%/3.2s/7.2GB) → Jetson 하이브리드 RAG(83%/1.4s/4.1GB) → 서버 RAG(91%/0.9s)
Conditional hybrid RAG: FAISS + BM25 score-merged → length/semantic/redundancy filter → summarized injection (each extra doc ≈ +120–180 tokens)
조건부 하이브리드 RAG: FAISS+BM25 점수 병합 → 필터 → 요약 주입(추가 문서 1개당 약 +120–180 토큰)
Jetson-specific: embedding cache (no re-embedding at runtime), FAISS top-k=3/BM25 top-k=5 merged to 2–3, conditional activation (skip casual/emotional turns)
Jetson 특화: 임베딩 캐시, top-k 튜닝(FAISS=3/BM25=5 → 2–3개 병합), 캐주얼/감정 대화 RAG 스킵
Key Decisions (trade-offs)
QLoRA over full fine-tuning
Full fine-tuning needs GPUs I didn't have. QLoRA trains on constrained hardware and keeps memory/latency deployable — accepting a small adapter-bound capacity ceiling for a shippable model.
QLoRA로 제한된 하드웨어에서 학습, 메모리·지연을 배포 가능한 수준으로 유지. 어댑터 기반 용량 상한을 받아들이는 대가로 실제 배포 가능한 모델을 얻었습니다.
GGUF Q4_K — 40% memory cut, persona intact
4-bit quantization risks persona drift. Verified empirically: ~40% memory saving with no measured loss in persona consistency across repeated dialogue scenarios. Quantization was a free win, not a quality gamble.
4비트 양자화는 페르소나 드리프트 위험이 있습니다. 반복 대화 시나리오에서 실증 검증: 약 40% 메모리 절감, 페르소나 일관성 손실 없음.
Evaluate on four axes, not one
Accuracy alone hides operational cost. Scoring accuracy + latency + memory + persona-consistency across three configs (LLM-only / Jetson RAG / Server RAG) turns model selection into a defensible operations decision. Jetson hybrid RAG won: +18%p accuracy, 2.3× faster, 43% less memory vs LLM-only.
3개 설정(LLM 단독/Jetson RAG/서버 RAG)을 4축으로 채점. Jetson 하이브리드 RAG 최종 선택: 정확도 +18%p, 속도 2.3배, 메모리 −43% vs LLM 단독.