Good results fine tuning a local LLM like Qwen 3:0.6B to categorize questions
개요
이 실험은 Qwen 3:0.6B과 같은 매우 작은 로컬 LLM을 가정 관련 질문을 분류하도록 파인튜닝했을 때 얼마나 신뢰할 수 있는 성능을 낼 수 있는지 검증한다.
주요 내용
* 목표: RAG 기반 챗봇에서 벡터 검색 공간을 좁히기 위해 질문을 메타데이터 카테고리로 분류하는 전처리 단계를 적용하고자 한다.
* 모델: Qwen 3:4B (일반 질문 답변용)와 Qwen 3:0.6B (질문 분류용) 두 가지 로컬 LLM을 사용한다.
* 파인튜닝 프레임워크: Unsloth와 QLoRA를 사용하여 Qwen 3:0.6B 모델을 파인튜닝했다.
* 데이터셋: 약 850개의 가구 관련 질문과 해당 카테고리로 구성된 데이터셋을 사용했으며, 70/15/15 비율로 훈련/평가/테스트 데이터로 분할했다.
* 베이스라인 성능: 파인튜닝 전, 프롬프트만 사용하여 Qwen 3:0.6B 모델의 질문 분류 정확도는 약 10%로 매우 낮았다. 모델은 광범위한 레이블을 남용하거나 제공된 카테고리 목록을 벗어나는 경향을 보였다.
* 1차 파인튜닝 결과: 약 850개의 데이터로 파인튜닝 후, 질문 분류 정확도가 약 79%로 크게 향상되었다. 그러나 일부 카테고리(예: hvac 대신 ac/air)의 부분적인 출력이나 유사한 의미를 가진 카테고리(예: fountain, water heater, pool) 간의 혼동이 관찰되었다.
* 2차 파인튜닝 (카테고리 ID 사용): 카테고리를 의미론적 중복이 없는 2자리 불투명 ID로 매핑하는 방식으로 프롬프트를 수정했다. 이 변경으로 정확도가 약 92%까지 상승했다.
* 최종 정확도: 수정된 프롬프트와 함께 파인튜닝된 Qwen 3:0.6B 모델은 약 92%의 정확도로 질문을 분류할 수 있어, 챗봇의 사용 가능한 예측기로 기능할 수 있다.
시사점
작은 크기의 로컬 LLM도 적절한 파인튜닝과 프롬프트 엔지니어링을 통해 질문 분류와 같은 특정 태스크에서 높은 정확도를 달성할 수 있으며, 이는 RAG 시스템의 효율성을 개선하는 데 기여할 수 있다.
댓글
GitHub Discussions