LLMを使わずに「人格のある対話AI」を作ろうとして考えたこと
LLMを使わずに「人格のある対話AI」を作ろうとして考えたこと
— 個人開発における非LLM対話AIとLLM方式の比較 —
はじめに:なぜLLMを使わない対話AIを考えたのか
個人開発で対話AIを作るなら、今はLLMを使うのが最短ルートです。
実際、APIを呼べばそれらしい会話はすぐに成立します。
それでも私は、あえてLLMを使わない構成を検討しました。
理由は単純で、
- 人格や口調が安定しない
- なぜその発言になったのか説明できない
- 「それっぽいが信用できない」挙動が気になった
といった違和感を、実装を進めるほど強く感じたからです。
この記事では、
LLMを使わない対話AIを個人で構築する場合に何が可能で、何が難しいのかを、
設計視点で整理します。
理想とする「人間らしい対話AI」とは何か
私が理想とした対話AIは、単なるQ&Aマシンではありません。
- 自分自身を一つの存在として認識している
- 感情や状態を内部に持ち、会話に反映される
- 会話の流れを理解し、能動的に振る舞える
心理学で言われる基本感情(喜び・悲しみ・怒り・恐れなど)を
内部状態としてモデル化し、
それが発話の文体や態度に影響する──
そんな「人格の一貫したAI」を理想像としました。
現実的に作れる最小構成(非LLM)
理想像をそのまま実装するのは非現実的です。
そこで、個人のPC環境でも構築可能な最小構成を考えました。
自然言語理解(NLU)
- 形態素解析やキーワード判定
- 正規表現やルールによる意図分類
- 必要に応じて簡易的な感情判定
知識ベースと人格プロファイル
- AI自身の設定(名前・性格・立場)
- 雑談用の話題・定型知識
- 明示的に管理できる構造
感情・状態モデル
- 数値やフラグによる感情状態
- 会話モード(聞き役・軽口など)
- 状態によって応答トーンを切り替える
対話管理(Dialog Manager)
- if-thenベースの明示的な制御
- 発話内容・タイミングの管理
- ランダム性を加えた応答選択
自然言語生成(NLG)
- テンプレートベース
- 言い換え辞書や文型パターン
- 必要最小限の多様性確保
LLM方式と比較して見えた非LLM方式の強み
人格と口調の一貫性
非LLM方式では、
人格が設計通りにブレないという大きな利点があります。
LLMは柔軟である一方、
文脈や指示によって人格が簡単に変化してしまいます。
自律性と能動性
対話管理を自前で持つことで、
- 話題を振る
- 沈黙を埋める
- 会話をリードする
といった挙動を明示的に設計できます。
制御性と安全性
- 何を言うかが完全に把握できる
- 不適切な話題を確実に排除できる
- 誤情報を出さない構造を作れる
ブラックボックスにならない点は、個人開発では特に重要です。
リソース効率
- GPU不要
- オフライン動作可能
- 組み込みやローカル実行が容易
それでも非LLM方式が抱える限界
正直に言うと、欠点も明確です。
表現力と自然さ
テンプレート中心の生成では、
LLMのような自然さ・創造性には及びません。
知識量の限界
知識ベースは手作業で増やす必要があり、
網羅性ではLLMに勝てません。
学習・適応の弱さ
- 自動で賢くなることはほぼない
- 改善は開発者の手作業頼み
想定外入力への弱さ
オープンドメイン雑談では破綻しやすく、
ロバスト性確保が難しいのも事実です。
結論:どちらを選ぶべきか
両者を比較した結果、私は次のように考えています。
- 人格・制御・安全性重視 → 非LLM方式
- 自然さ・知識量・汎用性重視 → LLM方式
個人開発では、
「何をAIに任せ、何を設計者が管理するか」を
意識的に選ぶことが重要です。
万能AIを目指すより、
目的を絞った対話エージェントの方が、
結果的に満足度の高いものになります。
おわりに
LLMは非常に強力ですが、
すべてを任せると「理解できない存在」になりがちです。
非LLM方式は不器用ですが、
挙動を理解でき、説明できるAIを作れるという魅力があります。
この記事が、
「LLM以外の選択肢」を考えるきっかけになれば幸いです。
Discussion