본 연구에서는 Gemma 3 12B 모델에 운행 행태 분석 데이터를 추가 학습시켜 교통 도메인에 특화된 응답 품질을 향상시키고자 하였습니다. 기존 모델 대비 파인튜닝 모델의 생성 품질을 코사인 유사도 기반으로 정량 비교하여 성능 개선 여부를 검증하였으며, 총 3,500건의 운행 행태 분석 데이터를 활용해 통합 파인튜닝을 수행했습니다. 모델은 운행거리, 과속, 급가속, 급감속, 공회전 등 다양한 운전 패턴 데이터를 입력받아 자동으로 안전 운전 분석 리포트를 생성하도록 구성했으며, UBI 기준 및 공단 기준 점수를 기반으로 위험 요소 평가와 개선 방안을 제시하는 과정을 학습했습니다. 또한 HTML, Markdown, JSON, Mobile, Text의 5가지 출력 형식을 동일한 구조와 스타일로 제공하도록 설계하여 일관된 리포트 생성 체계를 마련했습니다.
1.데이터 구성
1.1 데이터 소개
데이터 수
| 구분 | 개수 |
|---|---|
| 전체 샘플 수 | 3,500 |
| 학습(train) 데이터 | 2,400 |
| 검증(val) 데이터 | 600 |
| 테스트(test) 데이터 | 500 |
데이터 구성 항목
- 속도 및 RPM 센서값
- UBI 기준 과속, UBI 기준 급가속, UBI 기준 급감속, UBI 기준 운행점수, UBI 기준 최신 과거 운행점수
- 공단 기준 과속, 공단 기준 급출발, 공단 기준 급가속, 공단 기준 급감속, 공단 기준 급정지, 공단 기준 운행점수, 공단 기준 최신 과거 운행점수
1.2 학습데이터 구조
학습데이터 필드 구성
| 항목 | 내용 |
|---|---|
| instruction | 실행 지시문 |
| contents | 운행 또는 센서 분석 값 |
| context | 문단 구조, 평가 기준, 출력 가이드라인 |
| format | 모델 출력 형식 지정 |
| answer | 목표 출력 텍스트(정답) |
학습데이터 구성 예시
"instruction": "당신은 운행 데이터 분석 전문가입니다. 아래 내용들로 운행 분석 요약서를 작성해주세요.",
"contents": {
"운행거리": "약 307km",
"UBI 기준 과속": "31회",
"UBI 기준 급가속": "31회",
"UBI 기준 급감속": "11회",
"UBI 기준 운행점수": "76.27점",
"UBI 기준 최신 과거 운행점수": "정보없음",
"공단 기준 과속": "3회",
"공단 기준 급출발": "102회",
"공단 기준 급가속": "49회",
"공단 기준 급감속": "88회",
"공단 기준 급정지": "48회",
"공단 기준 운행점수": "79.41점",
"공단 기준 최신 과거 운행점수": "정보없음",
"운행 거리 대비 공회전 시간": "1.82분",
"평균 운행 거리 대비 공회전 시간": "5.03분"
},
"context": "첫 번째 문단: ...",
"format": "html",
"answer": ""
1.3 Context 템플릿
포맷별 요구사항에 맞게 문단 구성과 길이를 다르게 설계하여 모델이 형식별 적절한 생성 패턴을 학습하도록 구성했습니다. 모든 출력 포맷은 공통적으로 기본 운행 정보
, 위험 요소 및 운전 습관 평가
, 공회전 분석 및 개선 제안
의 세 가지 핵심 문단을 포함하며, HTML·Markdown과 같은 장문 포맷에서는 이에 더해 표 기반 종합 진단
, 개선 목표 제시
, 전체 요약
의 세 문단이 추가되고, 반대로 JSON·Mobile·Text처럼 화면 공간이 제한된 단문 포맷에서는 핵심 문단 세 개만 담아 간결하게 구성했습니다.
2. 토큰화 및 처리 기준
토크나이저는 Gemma 3 12B의 공식 tokenizer를 사용했습니다. 입력 길이는 최대 2,000 토큰으로 제한하고, truncate 옵션을 적용했으며 padding은 고정 방식으로 설정했습니다. 또한 instruction, contents, context, format 요소를 하나의 텍스트로 결합하여 모델 입력으로 구성했습니다.
3. 파인튜닝 구성
3.1 BASE 모델
| 항목 | 내용 |
|---|---|
| 모델명 | Gemma 3 12B Instruct |
| 유형 | Instruction LLM |
| 정밀도 | BF16 |
| 파라미터 | 12B |
3.2 LoRA 설정
| 파라미터 | 값 | 설명 |
|---|---|---|
| Rank(r) | 16 | 저랭크 구성 |
| Alpha | 32 | 스케일링 계수 |
| Dropout | 0.05 | 과적합 방지 |
| Target Modules | q/k/v/oProj 등 | Attention·MLP 적용 |
3.3 QLoRA 양자화
- 양자화 타입 : NF4(NormalFloat4)
- 연산 정밀도 : BF16
- 이중 양자화 : 활성화
3.4 학습 설정
| 항목 | 값 |
|---|---|
| Epoch | 3 |
| Batch size | 32 |
| LR | 1e-4 |
| Optimizer | AdamW(8-bit) |
| Scheduler | CosineAnnealing |
| Warmup | 50 |
4. 성능 평가
4.1 평가 방법론
지표 선정
`bge-m3-korean 임베딩 모델을 사용해 벡터화한 뒤 **코사인 유사도(Cosine Similarity)**를 활용하여 의미적 유사성을 정량적으로 평가했으며, 유사도 값을 네 개 구간으로 분류해 분포 변화를 분석했습니다. 각 구간별 분석 결과는 아래 표와 같습니다.
| 유사도 범위 | 평가 등급 | 해석 |
|---|---|---|
| 0.9 ~ 1.0 | 매우 우수 | 의미와 내용이 거의 일치 |
| 0.8 ~ 0.9 | 우수 | 핵심 내용 동일, 표현 차이 존재 |
| 0.7 ~ 0.8 | 양호 | 주요 내용은 유사하나 일부 차이 |
| 0.7 미만 | 미흡 | 내용 또는 구조 차이가 큼 |
임베딩 모델- bge-m3-korean
bge-m3-korean
은 BGE-M3 기반으로 한국어 데이터를 추가 학습한 모델로, 한국어 분석에 특화된 임베딩 성능을 제공합니다. 이에 따라, 본 연구에서는 생성된 텍스트와 정답 텍스트를 각각 768차원의 벡터로 변환해 코사인 유사도를 계산하였습니다.
| 항목 | 내용 |
|---|---|
| 모델명 | upskyy/bge-m3-korean |
| 베이스 모델 | BGE-M3 (BAAI) |
| 특징 | 한국어 특화 다국어 임베딩 모델 |
| 임베딩 차원 | 768 차원 |
평가프로세스
- 데이터 준비
전체 테스트 데이터셋은 두 가지 유형으로 구성되며, 운행 행태 분석은 5개 출력 형식에 대해 100개씩 총 500개의 샘플, 센서 이상 상태 진단은 동일하게 5개 출력 형식에 대해 60개씩 총 300개의 샘플로 구성됩니다. 각 테스트 샘플은 공통적으로 instruction, contents, context, format
을 모델 입력으로 사용하며, answer
에는 해당 조건을 반영한 최종 요약서가 포함되도록 구성되어 있습니다.
- 텍스트 생성
Base 모델인 Gemma-3-12B와 Fine-tuned 모델은 동일한 입력을 기반으로 각각 요약서를 생성하며, 이때 사용되는 생성 파라미터는 Temperature 0.8, Top-p 0.9, Max tokens 2,000으로 동일하게 설정되어 두 모델의 출력 차이를 정량적으로 비교할 수 있도록 구성되어 있습니다.
- 임베딩 변환 및 유사도 계산
모든 생성 텍스트와 정답 텍스트는 임베딩 모델을 사용해 벡터로 변환되며, 생성–정답 벡터 쌍마다 코사인 유사도를 계산한 뒤, 전체 테스트셋 단위로 평균, 표준편차, 최소값, 최대값 등 핵심 통계 지표를 산출하여 모델 성능을 정량적으로 평가합니다.
4.2 정량 평가 결과
학습 전후 비교
Fine-tuned 모델은 Base 모델 대비 평균 유사도 12.07% 향상되었으며, 표준편차는 44.22% 감소, 즉 모델 출력의 일관성이 크게 향상되었습니다. 중앙값이 0.8879 → 0.9772로 상승하며, 전체 샘플의 절반 이상이 0.97 이상의 높은 유사도를 가집니다. 낮은 품질의 샘플은 대부분 개선되었고, 고유사도 영역에서의 품질이 크게 향상었습니다.
| 모델 | 평균 유사도 | 표준편차 | 최소값 | 최대값 | 중앙값 |
|---|---|---|---|---|---|
| Gemma 3 12B (학습 전) | 0.8673 | 0.0602 | 0.3310 | 0.9394 | 0.8879 |
| Fine-tuned 모델 (학습 후) | 0.9719 | 0.0336 | 0.3532 | 0.9936 | 0.9772 |
| 개선율 | +12.07% | -44.22% | - | - | - |
구간별 성능 분포
Fine-tuned 모델은 0.9 이상 ‘매우 우수’ 비율을 42.4% → 99.2%로 끌어올렸습니다. ‘우수’, ‘양호’ 구간의 대부분 샘플이 상위 구간으로 이동하여, 거의 모든 테스트에서 정답과 의미적으로 매우 유사한 요약문을 생성함을 의미합니다.
| 유사도 구간 | 학습 전 | 학습 후 | 개선 |
|---|---|---|---|
| 0.9 ~ 1.0 (매우 우수) | 212개 (42.4%) | 496개 (99.2%) | +284개 (+56.8%p) |
| 0.8 ~ 0.9 (우수) | 206개 (41.2%) | 2개 (0.4%) | -204개 (-40.8%p) |
| 0.7 ~ 0.8 (양호) | 80개 (16.0%) | 1개 (0.2%) | -79개 (-15.8%p) |
| 0.7 미만 (미흡) | 2개 (0.4%) | 1개 (0.2%) | -1개 (-0.2%p) |
| 합계 | 500개 (100%) | 500개 (100%) | - |
출력 포맷별 성능 분석
모든 포맷에서 유의미한 성능 향상을 확인할 수 있었습니다. 특히 Text(+20.48%)와 Mobile(+17.77%) 포맷은 가장 큰 폭의 개선을 보였습니다. 학습 전 상대적으로 낮은 성능을 보였던 Text 포맷은 학습 후 거의 모든 샘플이 ‘매우 우수’ 등급(0.9 이상)을 기록하는 수준으로 향상되었습니다. 또한 HTML, Markdown, JSON 포맷 역시 학습 후 모든 샘플이 0.9 이상을 달성하며 포맷에 관계없이 안정적인 성능을 확보하게 되었음을 의미합니다.
| 포맷 | 학습 전 평균 유사도 | 학습 후 평균 유사도 | 개선율 | 학습 전 0.9 이상 비율 | 학습 후 0.9 이상 비율 |
|---|---|---|---|---|---|
| Text | 0.7921 | 0.9543 | +20.48% | 0% | 96% |
| Mobile | 0.8190 | 0.9646 | +17.77% | 0% | 100% |
| HTML | 0.8907 | 0.9785 | +9.86% | 25% | 100% |
| Markdown | 0.9169 | 0.9844 | +7.36% | 93% | 100% |
| JSON | 0.9177 | 0.9778 | +6.56% | 94% | 100% |
| 전체 평균 | 0.8673 | 0.9719 | +12.07% | 42.4% | 99.2% |
5. 결론 및 향후 계획
5.1 결론
Gemma-3-12B 모델에 운행 행태 분석 도메인을 학습한 결과, 전체 평균 코사인 유사도가 0.8673에서 0.9719(+12.07%)로 향상되며 의미적 일치도와 응답 일관성이 크게 개선되었고, 운행 행태 분석 테스트셋(500개)에서도 전반적으로 성능이 향상되었으며 특히 Mobile·Text 등 경량 포맷에서 17~20% 수준의 품질 개선이 확인되어 다양한 서비스 환경에서의 적용 가능성이 입증되었다. 또한 정성 평가 결과, Fine-tuned 모델은 HTML, Markdown, Mobile, JSON, Text 등 포맷별 출력 규칙을 정확히 준수하고 수치 비교, 위험 요소 평가, 개선 제안 등 도메인 특화 서술 패턴을 안정적으로 재현함으로써, 본 파인튜닝 모델이 운행 데이터 기반 안전 운전 분석 자동화 분야에서 실무 적용 가능한 수준의 품질과 안정성을 확보했음을 확인하였다.
5.2 향후 고도화 방향
운행 행태 분석을 기반으로 운전 습관 고도 평가, 운전자 맞춤 조언, 고위험 패턴 조기 경보 시스템 등 확장 기능을 단계적으로 학습하여 전문성을 강화하고, 기존 코사인 유사도 외에 BLEU, ROUGE, BERTScore 등 복합 정량 지표를 추가 적용해 평가의 신뢰도를 높이며, 자동 성능 로그 및 버전 관리 체계를 도입해 포맷별·도메인별 품질 변화를 지속적으로 추적하고 안정적 개선이 이루어지도록 관리할 예정이다.
