Qwen3.6-27B Korean Enterprise QLoRA Adapter

Qwen3.6-27B 베이슀 λͺ¨λΈ μœ„μ— ν•œκ΅­ μ‚¬νšŒΒ·λ¬Έν™” κ·œλ²”κ³Ό ν•œκ΅­ 기업문화·업무 도메인에 νŠΉν™”ν•˜μ—¬ ν•™μŠ΅ν•œ QLoRA(NF4 4-bit) μ–΄λŒ‘ν„°μž…λ‹ˆλ‹€. 베이슀 λͺ¨λΈκ³Ό μ–΄λŒ‘ν„°λ₯Ό λ¨Έμ§€ν•˜μ§€ μ•Šκ³  뢄리 λ°°ν¬ν•˜μ—¬, vLLM의 λ©€ν‹°-LoRA μ„œλΉ™ κΈ°λŠ₯으둜 단일 베이슀 λͺ¨λΈμ— μ—¬λŸ¬ 도메인 μ–΄λŒ‘ν„°λ₯Ό λ™μ‹œμ— μš΄μ˜ν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


πŸ“Œ λͺ¨λΈ κ°œμš” (TL;DR)

ν•­λͺ© λ‚΄μš©
Base Model Qwen/Qwen3.6-27B (μ„œλΉ™ μ‹œ FP8 λ³€ν˜• μ‚¬μš© κ°€λŠ₯)
Adapter Type LoRA (PEFT) β€” 뢄리 배포(Non-merged)
Quantization (Train) QLoRA, NF4 4-bit + Double Quantization (bitsandbytes)
LoRA Config rank=32, alpha=64, dropout=0.05, target=all-linear
Train Framework LLaMA-Factory
Train Data ν•œκ΅­ μ‚¬νšŒκ·œλ²”Β·κ°€μΉ˜κ΄€Β·λ¬Έν™” + ν•œκ΅­ κΈ°μ—…λ¬Έν™”Β·κ·œλ²”Β·μ—…λ¬΄ μ•½ 360,000건
Train Precision BF16 (μ–΄λŒ‘ν„° κ°€μ€‘μΉ˜)
Serving vLLM Multi-LoRA (베이슀 FP8 + LoRA BF16 동적 κ²°ν•©)
Eval 자체 평가셋 100λ¬Έν•­, GPT-as-Judge, 도메인별 베이슀 λŒ€λΉ„ +10 ~ +15%p

🎯 λͺ¨λΈ 개발 λ°°κ²½

ν•΄μ™Έμ—μ„œ 곡개된 μ˜€ν”ˆμ†ŒμŠ€ LLM은 ν•œκ΅­μ–΄ 일반 λŠ₯λ ₯은 μš°μˆ˜ν•˜λ‚˜, μ•„λž˜ μ˜μ—­μ—μ„œ ν•œκ΅­ κΈ°μ—… ν™˜κ²½μ— 직접 νˆ¬μž…ν•˜κΈ°μ—λŠ” ν•œκ³„κ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

  • ν•œκ΅­ μ‚¬νšŒ κ·œλ²” / κ°€μΉ˜κ΄€ / μƒν™œλ¬Έν™” 에 λŒ€ν•œ λ―Έμ„Έν•œ λ§₯락 이해
  • ν•œκ΅­ κΈ°μ—…λ¬Έν™” (μœ„κ³„, 보고체계, μ˜μ „, 회의 λ§€λ„ˆ λ“±) 의 κ΄€ν–‰ 반영
  • ν•œκ΅­μ‹ λ³΄κ³ μ„œ / ν’ˆμ˜μ„œ / 메일 / 회의둝 λ“± 싀무 λ¬Έμ„œ μž‘μ„± ν†€μ•€λ§€λ„ˆ
  • AI Agent μ›Œν¬ν”Œλ‘œμš° μ—μ„œ ν•œκ΅­μ  업무 λ§₯락을 κ³ λ €ν•œ 도ꡬ 호좜/νŒλ‹¨

λ³Έ μ–΄λŒ‘ν„°λŠ” 이 간극을 λ©”μš°κΈ° μœ„ν•΄, 베이슀 λͺ¨λΈμ˜ 일반 λŠ₯λ ₯은 μœ μ§€ν•œ 채 ν•œκ΅­ κΈ°μ—… 도메인 νŠΉν™” μ§€μ‹Β·λ¬Έμ²΄Β·νŒλ‹¨λ ₯λ§Œμ„ LoRA둜 μ£Όμž…ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•™μŠ΅λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


πŸ“š ν•™μŠ΅ 데이터

μΉ΄ν…Œκ³ λ¦¬ 비쀑(개랡) λ‚΄μš©
ν•œκ΅­ μ‚¬νšŒκ·œλ²”Β·κ°€μΉ˜κ΄€ ~30% 예의, 호칭, μ„ΈλŒ€ κ°„ μ†Œν†΅, κ³΅κ³΅μ§ˆμ„œ, ν•œκ΅­μ  μ˜μ‚¬κ²°μ • λ§₯락
ν•œκ΅­ λ¬Έν™”Β·μ—­μ‚¬Β·μ œλ„ ~20% λͺ…μ ˆ, κ΄€μŠ΅, 행정·법λ₯  μ œλ„, ꡐ윑·의료 μ‹œμŠ€ν…œ λ“±
ν•œκ΅­ κΈ°μ—…λ¬Έν™”Β·κ·œλ²” ~25% 보고체계, 직급/직책, νšŒμ‹Β·μ˜μ „, μ»΄ν”ŒλΌμ΄μ–ΈμŠ€ κΈ°λ³Έ
κΈ°μ—… 업무 싀무 ~20% ν’ˆμ˜μ„œ, κΈ°μ•ˆλ¬Έ, 회의둝, 보고메일, μ˜μ—…Β·κΈ°νš μ‚°μΆœλ¬Ό
AI Agent μˆ˜ν–‰ μ‹œλ‚˜λ¦¬μ˜€ ~5% ν•œκ΅­ 업무 λ§₯락을 κ°€μ§„ λ©€ν‹°-μŠ€ν… 도ꡬ 호좜 / νŒλ‹¨
  • 총 규λͺ¨: μ•½ 360,000 instances (instruction-response λ˜λŠ” multi-turn)
  • ν˜•μ‹: LLaMA-Factory qwen3_6 ν…œν”Œλ¦Ώμ— 맞좘 SFT 포맷
  • ν’ˆμ§ˆ 관리: 쀑볡 제거, PII λ§ˆμŠ€ν‚Ή, 길이 뢄포 μ •κ·œν™”, 평가셋과 λˆ„μˆ˜ 차단(쀑볡 κ²€μΆœ) μˆ˜ν–‰

⚠️ λ°μ΄ν„°λŠ” λΌμ΄μ„ μŠ€ 및 사내 λ³΄μ•ˆ 정책에 따라 원본을 κ³΅κ°œν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.


πŸ›  ν•™μŠ΅ 방법 (QLoRA + LLaMA-Factory)

VRAM 효율과 μ•ˆμ •μ„±μ„ λ™μ‹œμ— 작기 μœ„ν•΄ QLoRA(NF4 + Double Quant) μœ„μ— BF16 LoRA μ–΄λŒ‘ν„°λ₯Ό ν•™μŠ΅ν–ˆμŠ΅λ‹ˆλ‹€.

핡심 ν•˜μ΄νΌνŒŒλΌλ―Έν„°

### model
model_name_or_path: Qwen/Qwen3.6-27B
trust_remote_code: true

### method
stage: sft
finetuning_type: lora
lora_target: all          # λͺ¨λ“  linear에 LoRA β€” ν‘œν˜„λ ₯ / μ•ˆμ •μ„± κ· ν˜•
lora_rank: 32
lora_alpha: 64            # alpha = 2 Γ— rank (μŠ€μΌ€μΌ 1/2)
lora_dropout: 0.05        # μ•½ν•œ μ •κ·œν™”

### quantization (QLoRA)
quantization_bit: 4
quantization_method: bnb
double_quantization: true
quantization_type: nf4

### dataset
template: qwen3_6
cutoff_len: 2048
packing: false            # λ©€ν‹°ν„΄ 손싀 μ™œκ³‘ λ°©μ§€

### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 16   # effective batch = 1 Γ— 16 Γ— 2 GPU = 32
learning_rate: 5.0e-5
num_train_epochs: 2.0
lr_scheduler_type: cosine
warmup_ratio: 0.05
bf16: true                       # fp16 κΈˆμ§€ (ν•™μŠ΅ 진동 λ°©μ§€)
max_grad_norm: 1.0               # κ·Έλž˜λ””μ–ΈνŠΈ 클리핑
weight_decay: 0.01
optim: adamw_torch
adam_beta2: 0.95                 # 손싀 슀파이크 μ™„ν™”
gradient_checkpointing: true     # VRAM 절감

### eval
eval_strategy: steps
eval_steps: 500

### acceleration
flash_attn: sdpa
enable_liger_kernel: true        # VRAM 절감 + throughput ν–₯상

ν•™μŠ΅ 섀계 μ˜λ„ (Why these choices)

  • lora_target: all β€” Q/K/V/O 뿐 μ•„λ‹ˆλΌ MLP κ³„μ—΄κΉŒμ§€ 포함, 도메인 문체·지식 ν‘μˆ˜μ— 유리. μΆ”κ°€ VRAM λΉ„μš©μ€ NF4 + checkpointing으둜 흑수.
  • rank=32, alpha=64 β€” Ξ± = 2Β·r κ·œμΉ™μœΌλ‘œ LoRA μŠ€μΌ€μΌμ„ 0.5둜 두어 베이슀 일반 λŠ₯λ ₯ 훼손을 μ΅œμ†Œν™”. ν•œκ΅­ 도메인 지식 μ£Όμž…μ—λŠ” μΆ©λΆ„ν•œ capacity.
  • bf16 κ°•μ œ β€” FP16의 mantissa λΆ€μ‘±μœΌλ‘œ μΈν•œ 손싀 슀파이크 νšŒν”Ό. RTX 5090 / H100κΈ‰μ—μ„œ μ•ˆμ •μ .
  • adam_beta2=0.95 β€” κΈ°λ³Έ 0.999 λŒ€λΉ„ 단기 변동에 λΉ λ₯΄κ²Œ λ°˜μ‘ν•΄ ν•œκ΅­μ–΄ 도메인 손싀 진동 μ™„ν™”.
  • packing: false β€” λ©€ν‹°ν„΄ ν•œκ΅­μ–΄ λŒ€ν™”μ˜ 토큰 경계 μ™œκ³‘ λ°©μ§€. 손싀 계산 정확도 μš°μ„ .
  • gradient_accumulation=16 β€” 단일 GPU λ©”λͺ¨λ¦¬ ν•œκ³„ λ‚΄μ—μ„œ 큰 effective batch둜 도메인 뢄포 μ•ˆμ •ν™”.
  • NEFTune 미적용 β€” λ…Έμ΄μ¦ˆκ°€ ν•œκ΅­μ‹ μ •ν˜• λ¬Έμ„œ(λ³΄κ³ μ„œ/ν’ˆμ˜μ„œ) 톀을 흐릴 수 μžˆμ–΄ 보수적으둜 μ œμ™Έ.

ν•™μŠ΅ ν™˜κ²½

  • GPU: NVIDIA RTX 5090 Γ— 2 (BF16 + NF4 QLoRA)
  • Framework: LLaMA-Factory, PEFT, bitsandbytes, Liger-Kernel
  • Mixed Precision: BF16 (μ–΄λŒ‘ν„°) / NF4 (베이슀 κ°€μ€‘μΉ˜)

πŸ“Š 평가 (Evaluation)

자체 κ΅¬μΆ•ν•œ ν•œκ΅­ 도메인 평가셋(100λ¬Έν•­) 으둜 베이슀 λͺ¨λΈκ³Ό λ³Έ μ–΄λŒ‘ν„° 적용 λͺ¨λΈμ„ λΉ„κ΅ν–ˆμŠ΅λ‹ˆλ‹€.

평가셋 ꡬ성

도메인 λ¬Έν•­ 수(개랡) 평가 포인트
ν•œκ΅­ λ¬Έν™” Β· 역사 Β· μ œλ„ ~35 사싀 μ •ν™•μ„±, λ§₯락 이해, ν•œκ΅­μ  λ‰˜μ•™μŠ€
ν•œκ΅­ κΈ°μ—…λ¬Έν™” Β· 업무 Β· λ³΄κ³ μ„œ μž‘μ„± ~40 ν†€μ•€λ§€λ„ˆ, 양식 적합성, 싀무 μ μš©μ„±
AI Agent μˆ˜ν–‰λŠ₯λ ₯ ~25 λ©€ν‹°μŠ€ν… μΆ”λ‘ , 도ꡬ 호좜 μ μ ˆμ„±, ν•œκ΅­ 업무 λ§₯락

평가 방식

  • GPT-as-Judge (ChatGPT 기반): 동일 ν”„λ‘¬ν”„νŠΈμ— λŒ€ν•œ 두 λͺ¨λΈ 응닡을 λΈ”λΌμΈλ“œλ‘œ 채점 (μ •ν™•μ„± / ν•œκ΅­μ  적합성 / 싀무 ν™œμš©μ„± 가쀑 평균)
  • 동λ₯ /μš°μ—΄μ„ νŽ˜μ–΄μ™€μ΄μ¦ˆ + 5점 척도 μ–‘μͺ½μœΌλ‘œ ꡐ차 검증

κ²°κ³Ό μš”μ•½

도메인 Base (Qwen3.6-27B) + QLoRA Adapter (λ³Έ λͺ¨λΈ) Ξ”
ν•œκ΅­ λ¬Έν™”Β·μ—­μ‚¬Β·μ œλ„ κΈ°μ€€ +10 ~ +12%p πŸ”Ό
κΈ°μ—…λ¬Έν™”Β·μ—…λ¬΄Β·λ³΄κ³ μ„œ κΈ°μ€€ +13 ~ +15%p πŸ”ΌπŸ”Ό
AI Agent μˆ˜ν–‰ κΈ°μ€€ +10 ~ +12%p πŸ”Ό

특히 κΈ°μ—… λ³΄κ³ μ„œ/ν’ˆμ˜μ„œ ν†€μ•€λ§€λ„ˆμ™€ ν•œκ΅­μ‹ μ˜μ‚¬κ²°μ • λ§₯락 반영 ν•­λͺ©μ—μ„œ 베이슀 λŒ€λΉ„ κ°€μž₯ 큰 κ°œμ„ μ„ λ³΄μ˜€μŠ΅λ‹ˆλ‹€.

⚠️ 평가셋은 100λ¬Έν•­ 규λͺ¨λ‘œ μ ˆλŒ€μΉ˜λ³΄λ‹€λŠ” μƒλŒ€μ  κ°œμ„ ν­μ˜ μ§€ν‘œλ‘œ ν•΄μ„ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€. λŒ€κ·œλͺ¨ ν•œκ΅­μ–΄ 벀치(KoBEST, Ko-MT-Bench λ“±) κ²°κ³ΌλŠ” μΆ”ν›„ μ—…λ°μ΄νŠΈ μ˜ˆμ •μž…λ‹ˆλ‹€.


πŸš€ μ‚¬μš©λ²• β€” vLLM Multi-LoRA Serving

λ³Έ λͺ¨λΈμ€ μ–΄λŒ‘ν„°λ§Œ λ°°ν¬λ©λ‹ˆλ‹€. 베이슀 λͺ¨λΈμ€ λ³„λ„λ‘œ λ‘œλ“œν•˜κ³ , vLLM의 --enable-lora μ˜΅μ…˜μœΌλ‘œ μ–΄λŒ‘ν„°λ₯Ό κ²°ν•©ν•΄ μ„œλΉ™ν•©λ‹ˆλ‹€.

1) μ–΄λŒ‘ν„° λ‹€μš΄λ‘œλ“œ

huggingface-cli download <YOUR_HF_ID>/<THIS_REPO_NAME> \
  --local-dir ./adapters/qwen3-ft

λ˜λŠ” Python:

from huggingface_hub import snapshot_download

adapter_path = snapshot_download(
    repo_id="<YOUR_HF_ID>/<THIS_REPO_NAME>",
    local_dir="./adapters/qwen3-ft",
)
print(adapter_path)

2) vLLM μ„œλ²„ 기동 (FP8 베이슀 + BF16 LoRA)

#!/bin/bash
# Qwen3.6-27B-FP8 + Korean Enterprise QLoRA Adapter

ADAPTER_PATH="./adapters/qwen3-ft"
MODEL_NAME="Qwen/Qwen3.6-27B-FP8"      # FP8 베이슀: ~27GB, BF16 λŒ€λΉ„ 절반
LORA_MODULE_NAME="qwen3-ft"            # API 호좜 μ‹œ model= 에 μ‚¬μš©ν•  이름
PORT=8000
GPU_COUNT=2                            # RTX 5090 Γ— 2 (단일 GPU도 κ°€λŠ₯)

source "$(conda info --base)/etc/profile.d/conda.sh"
conda activate vllm

vllm serve "${MODEL_NAME}" \
    --enable-lora \
    --lora-modules "${LORA_MODULE_NAME}=${ADAPTER_PATH}" \
    --max-lora-rank 32 \
    --dtype auto \
    --kv-cache-dtype auto \
    --tensor-parallel-size ${GPU_COUNT} \
    --gpu-memory-utilization 0.90 \
    --max-model-len 8192 \
    --max-num-seqs 32 \
    --enable-auto-tool-choice \
    --tool-call-parser qwen3_xml \
    --host 0.0.0.0 \
    --port ${PORT} \
    --trust-remote-code

단일 GPU(예: RTX 5090 32GB) μ—μ„œλ„ FP8 27B(~27GB)둜 μΆ©λΆ„νžˆ ꡬ동 κ°€λŠ₯ν•©λ‹ˆλ‹€. --tensor-parallel-size 1, --max-model-len 4096, --max-num-seqs 16 ꢌμž₯.

3) Python ν΄λΌμ΄μ–ΈνŠΈ β€” OpenAI ν˜Έν™˜ API

vLLM이 OpenAI ν˜Έν™˜ μ—”λ“œν¬μΈνŠΈλ₯Ό μ œκ³΅ν•˜λ―€λ‘œ openai SDKλ₯Ό κ·ΈλŒ€λ‘œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 호좜 μ‹œ model νŒŒλΌλ―Έν„°μ— μ–΄λŒ‘ν„° 이름(qwen3-ft)을 λ„˜κΈ°λ©΄ μ–΄λŒ‘ν„°κ°€ 적용되고, 베이슀 λͺ¨λΈλͺ…을 λ„˜κΈ°λ©΄ 베이슀만 μΆ”λ‘ λ©λ‹ˆλ‹€.

# pip install openai
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="EMPTY",  # vLLM은 ν‚€ 검증을 ν•˜μ§€ μ•ŠμŒ
)

SYSTEM_PROMPT = (
    "당신은 ν•œκ΅­ κΈ°μ—… ν™˜κ²½μ— μ •ν†΅ν•œ 업무 μ–΄μ‹œμŠ€ν„΄νŠΈμž…λ‹ˆλ‹€. "
    "ν•œκ΅­μ‹ 보고체계, 직급 κ΄€ν–‰, μ •μ€‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 톀을 μœ μ§€ν•˜μ„Έμš”."
)

resp = client.chat.completions.create(
    model="qwen3-ft",   # ← μ–΄λŒ‘ν„° 적용. 베이슀만 μ“°λ €λ©΄ "Qwen/Qwen3.6-27B-FP8"
    messages=[
        {"role": "system", "content": SYSTEM_PROMPT},
        {"role": "user", "content":
            "μ‹ κ·œ SaaS λ„μž… ν’ˆμ˜μ„œλ₯Ό μž‘μ„±ν•΄ μ£Όμ„Έμš”. "
            "λ„μž… λ°°κ²½, κΈ°λŒ€νš¨κ³Ό, μ˜ˆμ‚°(μ—° 1.2μ–΅), 리슀크, κ²°μž¬μ„  포함."},
    ],
    temperature=0.3,
    top_p=0.9,
    max_tokens=1500,
)

print(resp.choices[0].message.content)

4) 베이슀 vs μ–΄λŒ‘ν„° A/B 비ꡐ (동일 μ„œλ²„, 두 λͺ¨λΈλͺ…)

from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")

prompt = "νŒ€μž₯μ—κ²Œ 일정 지연을 λ³΄κ³ ν•˜λŠ” μ •μ€‘ν•œ 메일을 μž‘μ„±ν•΄μ€˜. μ‚¬μœ λŠ” 외주사 μ‚°μΆœλ¬Ό μ§€μ—°."

for model_name in ["Qwen/Qwen3.6-27B-FP8", "qwen3-ft"]:
    out = client.chat.completions.create(
        model=model_name,
        messages=[{"role": "user", "content": prompt}],
        temperature=0.2, max_tokens=600,
    )
    print(f"\n===== {model_name} =====")
    print(out.choices[0].message.content)

5) (μ˜΅μ…˜) PEFT둜 둜컬 μΆ”λ‘  β€” λ¨Έμ§€ 없이 μ–΄λŒ‘ν„° λ‘œλ“œ

vLLM 없이 λ‘œμ»¬μ—μ„œ κ°„λ‹¨νžˆ ν™•μΈν•˜κ³  싢을 λ•Œ:

# pip install transformers peft accelerate bitsandbytes
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
from peft import PeftModel

BASE = "Qwen/Qwen3.6-27B"
ADAPTER = "<YOUR_HF_ID>/<THIS_REPO_NAME>"

bnb = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_use_double_quant=True,
    bnb_4bit_compute_dtype=torch.bfloat16,
)

tok = AutoTokenizer.from_pretrained(BASE, trust_remote_code=True)
base = AutoModelForCausalLM.from_pretrained(
    BASE, quantization_config=bnb, device_map="auto", trust_remote_code=True,
)
model = PeftModel.from_pretrained(base, ADAPTER)   # μ–΄λŒ‘ν„° κ²°ν•© (λ¨Έμ§€ X)
model.eval()

msgs = [
    {"role": "system", "content": "당신은 ν•œκ΅­ κΈ°μ—… ν™˜κ²½μ— μ •ν†΅ν•œ μ–΄μ‹œμŠ€ν„΄νŠΈμž…λ‹ˆλ‹€."},
    {"role": "user", "content": "μ£Όκ°„ 업무보고 양식을 ν•œκ΅­ λŒ€κΈ°μ—… μŠ€νƒ€μΌλ‘œ λ§Œλ“€μ–΄μ€˜."},
]
inputs = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(inputs, max_new_tokens=800, do_sample=True, temperature=0.3, top_p=0.9)
print(tok.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))

🧩 μ™œ "λ¨Έμ§€ 없이 뢄리 배포" 인가

λ³Έ λͺ¨λΈμ€ μ˜λ„μ μœΌλ‘œ 베이슀 βŠ• μ–΄λŒ‘ν„° 뢄리 배포 μ „λž΅μ„ νƒν–ˆμŠ΅λ‹ˆλ‹€.

  1. 베이슀 λͺ¨λΈ 단일 적재 + 닀쀑 도메인 μ–΄λŒ‘ν„° β€” vLLM --enable-lora둜 동일 베이슀 μœ„μ— μ—¬λŸ¬ μ–΄λŒ‘ν„°(예: κΈ°μ—…λ¬Έν™”μš© / λ²•λ¬΄μš© / CS용)λ₯Ό λ™μ‹œμ— ν•«μŠ€μ™‘.
  2. μ €μž₯곡간 / 배포 λΉ„μš© μ΅œμ†Œν™” β€” 27B ν’€λͺ¨λΈ 재배포 λŒ€λΉ„ μ–΄λŒ‘ν„°(수백 MB)만 κ°±μ‹ .
  3. 베이슀 μ—…κ·Έλ ˆμ΄λ“œ ν˜Έν™˜μ„± β€” 동일 μ•„ν‚€ν…μ²˜ 베이슀 κ°±μ‹  μ‹œ μ–΄λŒ‘ν„°λ§Œ μž¬ν•™μŠ΅/μž¬ν‰κ°€.
  4. FP8 베이슀 + BF16 LoRA κ²°ν•© β€” VRAM은 FP8둜 μ ˆμ•½, ν•™μŠ΅λœ ν‘œν˜„λ ₯은 BF16 LoRA둜 보쑴.

⚠️ ν•œκ³„ 및 μ£Όμ˜μ‚¬ν•­ (Limitations)

  • λ³Έ μ–΄λŒ‘ν„°λŠ” ν•œκ΅­ μ‚¬νšŒΒ·κΈ°μ—… 도메인 κ°•ν™”κ°€ λͺ©μ μ΄λ―€λ‘œ, λΉ„ν•œκ΅­Β·λΉ„μ—…λ¬΄ λ„λ©”μΈμ—μ„œλŠ” 베이슀 λŒ€λΉ„ 큰 차이가 없을 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 법λ₯  Β· 의료 Β· νšŒκ³„ λ“± κ³ μœ„ν—˜ μ˜μ—­μ˜ μ‚°μΆœλ¬Όμ€ λ°˜λ“œμ‹œ μ „λ¬Έκ°€ κ²€μˆ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€.
  • 평가셋이 100λ¬Έν•­μœΌλ‘œ μ†Œκ·œλͺ¨μ΄λ―€λ‘œ, μ ˆλŒ€ μ„±λŠ₯ μˆ˜μΉ˜λ³΄λ‹€λŠ” μƒλŒ€ κ°œμ„ ν­μœΌλ‘œ ν•΄μ„ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.
  • ν•™μŠ΅ 데이터에 PII λ§ˆμŠ€ν‚Ήμ„ μ μš©ν–ˆμœΌλ‚˜, 베이슀 λͺ¨λΈ 고유의 hallucination κ°€λŠ₯성은 μ—¬μ „νžˆ μ‘΄μž¬ν•©λ‹ˆλ‹€.
  • μ–΄λŒ‘ν„°λŠ” Qwen3.6-27B 계열 λ² μ΄μŠ€μ—μ„œλ§Œ 정상 λ™μž‘ν•©λ‹ˆλ‹€.

πŸ“œ λΌμ΄μ„ μŠ€ & 인용

  • License: Apache-2.0 (μ–΄λŒ‘ν„° κ°€μ€‘μΉ˜ κΈ°μ€€). 베이슀 λͺ¨λΈ λΌμ΄μ„ μŠ€(Qwen License)λŠ” 별도 μ€€μˆ˜ ν•„μš”.
  • λ³Έ μ–΄λŒ‘ν„°λ₯Ό μ‚¬μš©ν•œ μ‚°μΆœλ¬Όμ€ 베이슀 λͺ¨λΈ λΌμ΄μ„ μŠ€λ₯Ό ν•¨κ»˜ λ”°λ¦…λ‹ˆλ‹€.

Citation

@misc{qwen3_27b_korean_enterprise_qlora,
  title  = {Qwen3.6-27B Korean Enterprise QLoRA Adapter},
  author = {<YOUR NAME>},
  year   = {2026},
  howpublished = {\url{https://huggingface.co/<YOUR_HF_ID>/<THIS_REPO_NAME>}},
  note   = {QLoRA NF4 4-bit fine-tuning on ~360K Korean social/enterprise instances, served via vLLM Multi-LoRA}
}

Acknowledgements

  • Qwen Team β€” Qwen3.6-27B 베이슀 곡개
  • LLaMA-Factory β€” ν•™μŠ΅ νŒŒμ΄ν”„λΌμΈ
  • vLLM β€” Multi-LoRA μ„œλΉ™
  • bitsandbytes β€” NF4 QLoRA
  • PEFT β€” LoRA κ΅¬ν˜„

πŸ§‘β€πŸ’» μž‘μ„±μž λ…ΈνŠΈ (Engineering Highlights)

이 μ €μž₯μ†ŒλŠ” λ‹€μŒ μ—­λŸ‰μ„ μ‹€μ œ μ‚°μΆœλ¬Όλ‘œ 증λͺ…ν•˜κΈ° μœ„ν•΄ κ³΅κ°œν•©λ‹ˆλ‹€.

  1. λŒ€κ·œλͺ¨ ν•œκ΅­μ–΄ 데이터 νλ ˆμ΄μ…˜ β€” 36만 건 규λͺ¨μ˜ ν•œκ΅­ μ‚¬νšŒΒ·κΈ°μ—… 도메인 SFT 데이터 섀계 / μ •μ œ / ν’ˆμ§ˆ 관리 / 평가셋 λˆ„μˆ˜ 차단
  2. QLoRA μ–‘μžν™” ν•™μŠ΅ μˆ™λ ¨λ„ β€” NF4 + Double Quant + BF16 LoRA, lora_target: all, Ξ± = 2Β·r, adam_beta2=0.95 λ“± μ•ˆμ •μ  μˆ˜λ ΄μ„ μœ„ν•œ μ˜λ„λœ 선택
  3. μΆ”λ‘  μ΅œμ ν™” / 운영 섀계 β€” vLLM Multi-LoRA, FP8 베이슀 + BF16 μ–΄λŒ‘ν„° κ²°ν•©, tensor parallel, KV cache dtype, auto tool-choice ꡬ성
  4. 평가 섀계 β€” 자체 도메인 평가셋 + GPT-as-Judge, 베이슀 λŒ€λΉ„ 도메인별 +10~15%p μƒλŒ€ κ°œμ„  μž…μ¦
  5. 배포 μ „λž΅ β€” μ–΄λŒ‘ν„° 뢄리 배포둜 λ©€ν‹° 도메인 ν•«μŠ€μ™‘ / 운영 λΉ„μš© μ΅œμ†Œν™” / 베이슀 μ—…κ·Έλ ˆμ΄λ“œ ν˜Έν™˜μ„± 확보

ν•œκ΅­ κΈ°μ—… ν™˜κ²½μ— μ¦‰μ‹œ νˆ¬μž… κ°€λŠ₯ν•œ 도메인-νŠΉν™” LLM을, 데이터 β†’ ν•™μŠ΅ β†’ μ–‘μžν™” β†’ 평가 β†’ μ„œλΉ™μ˜ 전체 νŒŒμ΄ν”„λΌμΈμœΌλ‘œ μΌκ΄€λ˜κ²Œ κ΅¬μΆ•ν•œ μ‚¬λ‘€μž…λ‹ˆλ‹€.

Downloads last month
22
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for SEOKDONG/Qwen3.6-27B-QLoRA-Adaper

Base model

Qwen/Qwen3.6-27B
Adapter
(153)
this model