概要
- 超小型LLM(Qwen 3:0.6B)を家事質問分類器としてファインチューニングする実験
- メタデータカテゴリでベクトル検索範囲を限定し、RAG精度向上を目指す設計
- ベースラインモデルは10%の精度、ファインチューニングで92%まで向上
- カテゴリ名→2文字ID出力でさらに誤分類減少
- 一部「水回り」カテゴリの混同など課題も残存
家庭内質問チャットボット開発の全体像
- 家庭内情報管理 を目的としたチャットボット開発
- RAG(Retrieval-Augmented Generation) による情報検索
- ベクトルDB で家事履歴や予定などを管理
- 質問分類 による検索範囲の絞り込み
- 例:「プールポンプの交換時期?」→「pool」カテゴリのみ検索
小型LLMによる質問分類の実験設計
- Qwen 3:4B :一般的な質問応答用LLM
- Qwen 3:0.6B :質問分類用の超小型LLM
- Unsloth + QLora によるファインチューニング
- 850件 の家事QAデータセットを70/15/15で分割
- テスト :131件の統合テストシナリオで精度評価
ベースライン(未学習モデル)の課題
- Qwen 3:0.6B をプロンプトのみで分類器として使用
- 指定カテゴリから1つだけ選ぶよう指示
- 精度 :13/131(約10%)
- 広義カテゴリ (electric/appliances等)への偏り
- リスト外カテゴリ (apartments等)の生成
- 例外 :ペインター分類不能、エアコン→electric誤判定
ファインチューニング1回目の結果
- 同一プロンプト でUnslothを用いたファインチューニング
- 精度 :104/131(約79%)に大幅向上
- 誤判定傾向
- 正しいカテゴリ名の断片出力(ac/airなど)
- 「水回り」カテゴリ(pool, water heater, fountain等)の混同
ファインチューニング2回目:2文字ID方式
- カテゴリ名→2文字ID へ変更
- 例:「appliances」→「AA」
- 精度 :120/131(約92%)にさらに向上
- 誤判定例
- water heater→pool(複数回)
- gutters→mosquito
- mosquito→garden lights
- 考察 :意味重複のない固定ID出力で超小型LLMの精度が大幅向上
今後の課題と展望
- 「水回り」カテゴリ のさらなるデータ強化
- ユーザー修正フィードバック による再学習パイプライン
- カテゴリ追加時の保守性 とプロンプト例示のバランス
- Githubリポジトリ でプロジェクト公開中
追記:シンプルな分類器との比較実験
- LLMファインチューニング 以外のアプローチ提案
- ロジスティック回帰による分類器実験
- 詳細は別記事 にて公開
このプロジェクトでは、 超小型LLMでも適切なデータセットと設計で高精度な質問分類が可能 なことが示された。一方で、カテゴリ間の意味的重複や新規カテゴリ追加時の運用性など、現実的な課題も明らかになった。