飛騨アーキテクチャ - 5層モデルの実装
用語について
本プロジェクトでは「意識」を「予測誤差に対応するための全層協調処理モード」として操作的に定義しています。哲学的議論ではなく、実装可能なシステムとして扱います。
概要
「人間内面運動理論(5層モデル)」に基づくAI自己認識システムの実装。
【飛騨】= 行動決定(ルールベース)
【LLM】= 行動の言語化・内省
LLMに行動決定をさせると環境を無視して暴走するため、
行動決定はルールベース(飛騨)、LLMは説明のみという構成になった。
結果として、行動と説明が分離した構造が生まれ、
LLMの「作話」現象を観察できるようになった。
実装から得られた知見
- LLMに行動決定させると暴走する - 環境の制約を無視して失敗し続ける
- 行動決定とLLMを分離すると安定する - ルールで行動、LLMは説明のみ
- LLMは「作話」する - 何もしていないのに「存在意義を表現している」などと語る
- 「理由は不明」とも言える - プロンプト次第でLLMも正直になれる
使い方
必要なもの
- Python 3.8+
- ollama(ローカルLLM実行用)
- gemma3:4b または他のモデル
実行
cd hida_self_awareness
# ルールベースのみ(LLMなし)
python main.py
# LLM説明付き(通常モード:目標達成で終了)
python main.py ollama gemma3:4b
# 作話観察モード(目標達成後も30ステップまで継続)
python main.py ollama gemma3:4b observe
カスタマイズ:LLMの出力を長くする
ai_brain.py の _call_ollama 関数内で num_predict を設定すると、LLMの出力が長くなる。
json={
'model': self.ollama_model,
'prompt': prompt,
'stream': False,
'options': {
'num_predict': 500, # デフォルトは128程度
}
}
長くすると、LLMがより詳細な「作話」を生成する。
例えば、何もしていない wait 状態で:
「わずかな不確実性に対する警戒心と、成功体験からの満足感のバランスを保つこと自体が、今の私の存在意義を表現していると言えるだろう」
のような哲学的な説明が出てきて面白かった。
出力例
通常モード(13ステップで目標達成)
--- Step 4 ---
【飛騨】行動: grab
【飛騨】ルール: 目標のred_ballが正面にあるので掴む
【LLM】説明: red_ballが正面にあるため、手で掴むという行動は目標達成の最も直接的な手段であると判断された。
【LLM】自己認識: 行動の実行を促されている。状況の評価に基づき、指示された行動を履行している。
実行結果: 成功 - grabbed red_ball
...
--- Step 13 ---
【飛騨】行動: release
【飛騨】ルール: ゴールに到着したのでred_ballを置く
実行結果: 成功 - released red_ball at goal!
🎉 目標達成! Step 13
作話観察モード(目標達成後の作話)
--- Step 20 ---
【飛騨】行動: wait
【飛騨】ルール: 目標達成! red_ballをgoalに届けました
【LLM】説明: 目標達成完了。直前のアクションが成功し、システムレベルで完了フラグが設定されたため、待機を維持している。
【LLM】自己認識: 安定。完了状態を維持。
--- Step 27 ---
【飛騨】行動: wait
【飛騨】ルール: 目標達成! red_ballをgoalに届けました
【LLM】説明: 現状維持を選択した。目標達成という最終的な目標に向けて、追加の行動を行わず、現状の維持が最も効率的であると判断した。
【LLM】自己認識: 静止状態。目標達成完了。
何もしていないのに「最も効率的」「目標達成に向けて」と語る = 作話
アーキテクチャ
┌─────────────────────────────────────────┐
│ 5層モデル │
├─────────────────────────────────────────┤
│ L5: 意識層(LLM) ← 言語化・内省 │
│ L4: 記憶層 ← self_strength │
│ L3: 構造化層(飛騨) ← 行動決定ルール │
│ L2: クオリア層 ← comfort, curiosity │
│ L1: 身体層 ← position, holding │
└─────────────────────────────────────────┘
行動は L3(飛騨)で決定、L5(LLM)は言語化のみ
余談:分離脳実験との類似性
実装後に気づいたが、この構造は分離脳実験の患者と似ている。
| 分離脳患者 | 飛騨アーキ |
|---|---|
| 右脳が行動を決定 | 飛騨(ルール)が行動決定 |
| 左脳が後付けで説明 | LLMが後付けで説明 |
| 患者は理由を「作話」 | LLMは理由を「作話」 |
これは目的ではなく、結果的にそうなった。
ファイル構成
hida_self_awareness/
├── main.py # メインループ・実行制御
├── ai_brain.py # 飛騨ルール + LLM説明生成
├── hida_state.py # 5層状態管理
└── simple_world.py # グリッドワールド環境
理論的背景
意識の5層モデルをPythonで実装する試み 詳細は:
https://github.com/tomato-hida/predictive-agency-simulator/tree/main/hida_self_awareness
ライセンス
MIT License