로컬 스마트홈 AI, 복합 명령 처리 위해 분류기 대신 플래너로 바꿔야 할까
한 개발자가 완전히 로컬에서 동작하는 스마트홈 AI 비서를 만들고 있다. Qwen 4B 모델(GGUF 양자화 버전)을 사용하고, 로 구조화된 JSON을 생성하며, ·MQTT·로 시스템을 구성했다. 현재 구조는 사용자 문장을 먼저 파이썬으로 분리한 뒤, 의도 분류기가 동작(Action)·설정 저장(Preference)·상태 확인(Status)·장면(Scene)·삭제(Delete) 중 하나로 분류하고, 그에 맞는 파서가 JSON을 만들어 MQTT나 로 보낸다.
"거실 불 켜줘"처럼 단순한 한 가지 명령은 잘 처리된다. 문제는 "R&D룸 불 켜고 내가 들어오면 자동으로 켜지게 저장해줘. 소프트웨어룸 조명 3개도 켜줘"처럼 한 문장에 여러 의도(즉시 실행 + 자동화 규칙 저장 등)가 섞일 때다.
현재 분류기는 문장 하나당 의도 하나만 가정하기 때문에, 명령이 복잡해질수록 4B 크기의 로컬 모델이 속성을 서로 뒤섞거나 전혀 다른 파서로 잘못 보낸다. 이를 해결하기 위해 분류기 대신 문장을 여러 개의 개별 작업(tasks) 목록으로 쪼개주는 작은 "플래너" 모델 도입을 검토하고 있다.
핵심 포인트
- Qwen 4B(GGUF) 로컬 모델 + (구조화 JSON 생성) + + MQTT + 로 스마트홈 비서 구축
- 현재 구조: 문장 분리 → 의도 분류기(Action/Preference/Status/Scene/Delete) → 전용 파서 → JSON → MQTT/DB
- 단순 명령(1문장 1의도)은 잘 작동하지만, 복합 명령(즉시 실행 + 자동화 규칙 등)에서 의도가 섞이거나 잘못 라우팅됨
- 대안으로 문장을 여러 작업(tasks) 배열로 분해하는 소형 "플래너" 모델 도입을 고려 중
- 분류기 vs 플래너 vs 파인튜닝 중 어떤 아키텍처가 로컬 소형 모델에 적합한지가 핵심 질문