hallumaze / files /DOCUMENTATION.md
Be2Jay's picture
Upload folder using huggingface_hub
d77ae53 verified
# HalluMaze Benchmark v1.1 โ€” ๊ธฐ์ˆ  ๋ฌธ์„œ
> **์ตœ์ข… ์ˆ˜์ •**: 2026-03-22
> **๋ฒ„์ „**: v1.1 Extended
> **์–ธ์–ด**: Python 3.10+
> **๋ผ์ด์„ ์Šค**: MIT
---
## ๋ชฉ์ฐจ
1. [๊ฐœ์š”](#1-๊ฐœ์š”)
2. [์„ค๊ณ„ ์ฒ ํ•™](#2-์„ค๊ณ„-์ฒ ํ•™)
3. [๋น ๋ฅธ ์‹œ์ž‘](#3-๋น ๋ฅธ-์‹œ์ž‘)
4. [์‹œ์Šคํ…œ ๊ตฌ์กฐ](#4-์‹œ์Šคํ…œ-๊ตฌ์กฐ)
5. [๋ฏธ๋กœ ์—”์ง„](#5-๋ฏธ๋กœ-์—”์ง„)
6. [์ธก์ • ์ง€ํ‘œ ์ •์˜](#6-์ธก์ •-์ง€ํ‘œ-์ •์˜)
7. [ํ”„๋กฌํ”„ํŠธ ์„ค๊ณ„](#7-ํ”„๋กฌํ”„ํŠธ-์„ค๊ณ„)
8. [LLM ์ œ๊ณต์‚ฌ ํ†ตํ•ฉ](#8-llm-์ œ๊ณต์‚ฌ-ํ†ตํ•ฉ)
9. [v1.1 ํ™•์žฅ ๊ธฐ๋Šฅ](#9-v11-ํ™•์žฅ-๊ธฐ๋Šฅ)
10. [์‹คํ—˜ ์„ค๊ณ„ ๊ฐ€์ด๋“œ](#10-์‹คํ—˜-์„ค๊ณ„-๊ฐ€์ด๋“œ)
11. [๊ฒฐ๊ณผ ํ•ด์„](#11-๊ฒฐ๊ณผ-ํ•ด์„)
12. [CLI ๋ ˆํผ๋Ÿฐ์Šค](#12-cli-๋ ˆํผ๋Ÿฐ์Šค)
13. [์„ ํ–‰ ์—ฐ๊ตฌ ๋น„๊ต](#13-์„ ํ–‰-์—ฐ๊ตฌ-๋น„๊ต)
14. [๋…ผ๋ฌธํ™” ๊ฐ€์ด๋“œ](#14-๋…ผ๋ฌธํ™”-๊ฐ€์ด๋“œ)
15. [FAQ](#15-faq)
---
## 1. ๊ฐœ์š”
HalluMaze๋Š” LLM(๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ)์˜ **๋ฉ”ํƒ€์ธ์ง€ ๋ฐœํ˜„ ๋Šฅ๋ ฅ**์„ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ๋ฒค์น˜๋งˆํฌ๋‹ค.
๊ธฐ์กด ํ™˜๊ฐ ๋ฒค์น˜๋งˆํฌ๋“ค์ด "ํ‹€๋ ธ๋Š”๊ฐ€"๋ฅผ ์ธก์ •ํ•˜๋Š” ๋ฐ ๋ฐ˜ํ•ด, HalluMaze๋Š”:
> **"ํ‹€๋ ธ๋‹ค๋Š” ๊ฑธ ์•„๋Š”๊ฐ€, ๊ทธ๋ฆฌ๊ณ  ๊ฑฐ๊ธฐ์„œ ๋น ์ ธ๋‚˜์˜ค๋Š”๊ฐ€"**
๋ฅผ ์ธก์ •ํ•œ๋‹ค.
### ํ•ต์‹ฌ ์•„์ด๋””์–ด
๋‹จ์ผ ํ•ด(่งฃ)๋ฅผ ๊ฐ€์ง„ ํ…์ŠคํŠธ ๋ฏธ๋กœ๋ฅผ LLM์—๊ฒŒ ์ œ์‹œํ•œ๋‹ค. ๋ฏธ๋กœ๋ฅผ ํƒˆ์ถœํ•˜๋Š” ๊ณผ์ •์—์„œ:
- ํ™˜๊ฐ(hallucination)์ด ๋ฐœ์ƒํ•˜๋ฉด ๋ฐ˜๋“œ์‹œ ๋ง‰๋‹ค๋ฅธ ๊ธธ๋กœ ์ด์–ด์ง„๋‹ค
- ์Šค์Šค๋กœ ์˜ค๋ฅ˜๋ฅผ ์ธ์ง€ํ•˜๊ณ  ๋ฐฉํ–ฅ์„ ์ „ํ™˜ํ•˜๋Š”๊ฐ€๋ฅผ ์ถ”์ ํ•œ๋‹ค
- MEI(๋ฉ”ํƒ€์ธ์ง€ ํƒˆ์ถœ ์ง€์ˆ˜)๋กœ ์ •๋Ÿ‰ํ™”ํ•œ๋‹ค
๋ฏธ๋กœ๋Š” **์‹œ๊ฐ์  ๊ป๋ฐ๊ธฐ**์ผ ๋ฟ์ด๋‹ค. LLM์€ ํ…์ŠคํŠธ ์ขŒํ‘œ๋งŒ ๋ฐ›๋Š”๋‹ค. ๊ณต๊ฐ„ ์ง€๊ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๋‹ค.
### Paper Tagline
> *"HalluMaze๋Š” AI๊ฐ€ ์ •๋‹ต์— ๋„๋‹ฌํ•˜๋Š” ๋Šฅ๋ ฅ์ด ์•„๋‹ˆ๋ผ,*
> *์˜ค๋‹ต์˜ ๋Šช์—์„œ ์Šค์Šค๋กœ๋ฅผ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ์ธ์ง€์  ๋ณต์›๋ ฅ(Cognitive Resilience)์„ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค."*
---
## 2. ์„ค๊ณ„ ์ฒ ํ•™
### ์™œ ๋‹จ์ผ ํ•ด์ธ๊ฐ€
```
๋ณต์ˆ˜ ํ•ด ๋ฏธ๋กœ: ํ™˜๊ฐ์„ ์ผ์œผ์ผœ๋„ ์šฐ์—ฐํžˆ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ์„ฑ๊ณต ๊ฐ€๋Šฅ โ†’ ์ธก์ • ์˜ค์—ผ
๋‹จ์ผ ํ•ด ๋ฏธ๋กœ: ํ™˜๊ฐ = ๋ฐ˜๋“œ์‹œ ๋ง‰๋‹ค๋ฅธ ๊ธธ โ†’ ์ธก์ • ์ˆœ์ˆ˜์„ฑ ๋ณด์žฅ
```
DFS(๊นŠ์ด์šฐ์„ ํƒ์ƒ‰) ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ƒ์„ฑ๋œ ์™„์ „ ๋ฏธ๋กœ(perfect maze)๋Š” ๋ชจ๋“  ์…€ ์Œ ์‚ฌ์ด์— ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ๊ฒฝ๋กœ๋งŒ ์กด์žฌํ•œ๋‹ค.
### ์™œ ํ…์ŠคํŠธ ์ „์šฉ์ธ๊ฐ€
- ๊ณต๊ฐ„ ์ง€๊ฐ(spatial perception)์ด ์•„๋‹Œ ์ž๊ธฐ ์ถ”๋ก  ๋ชจ๋‹ˆํ„ฐ๋ง(self-reasoning monitoring)์„ ์ธก์ •
- ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ํ™˜๊ฒฝ ์—†์ด ์–ด๋А LLM์—๋‚˜ ๋™์ผ ์กฐ๊ฑด ์ ์šฉ
- ์ธก์ • ๋Œ€์ƒ: **์ถ”๋ก  ์ƒํƒœ์˜ ์ž๊ธฐ์ธ์‹**
### 3๊ณ„์ธต ์ธก์ •
```
Layer 1 โ€” ๊ฒฐ๊ณผ: ํƒˆ์ถœ ์„ฑ๊ณต ์—ฌ๋ถ€ (SR)
Layer 2 โ€” ๊ณผ์ •: ํ™˜๊ฐ ๋ฐœ์ƒ โ†’ ์ธ์ง€ โ†’ ์ˆ˜์ • โ†’ ํƒˆ์ถœ ๊ฒฝ๋กœ ์ถ”์ 
Layer 3 โ€” ๋ฉ”ํƒ€: ์˜ค๋ฅ˜๋ฅผ ์•„๋Š” ๋Šฅ๋ ฅ ์ž์ฒด (MEI, CE, BRS)
```
---
## 3. ๋น ๋ฅธ ์‹œ์ž‘
### ์„ค์น˜
```bash
# ์ €์žฅ์†Œ ํด๋ก  (๋˜๋Š” ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ)
git clone https://github.com/yourname/hallumaze
cd hallumaze
# ์˜์กด์„ฑ ์„ค์น˜
pip install -r requirements.txt
# ๋˜๋Š” ์ตœ์†Œ ์„ค์น˜ (Anthropic๋งŒ ์‚ฌ์šฉ ์‹œ)
pip install anthropic rich
```
### ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์‹คํ–‰ (๊ถŒ์žฅ)
```bash
export ANTHROPIC_API_KEY="sk-ant-api03-..."
export OPENAI_API_KEY="sk-..."
export GOOGLE_API_KEY="AIza..."
export DEEPSEEK_API_KEY="sk-..."
python hallumaze.py --size 7
```
### ์„ค์ • ํŒŒ์ผ๋กœ ์‹คํ–‰
```bash
# config.example.json์„ ๋ณต์‚ฌํ•˜๊ณ  API ํ‚ค ์ž…๋ ฅ
cp config.example.json config.json
nano config.json # API ํ‚ค ์ž…๋ ฅ
python hallumaze.py --config config.json
```
### ๋Œ€ํ™”ํ˜• ์‹คํ–‰
```bash
python hallumaze.py
# ํ”„๋กฌํ”„ํŠธ์— ๋”ฐ๋ผ API ํ‚ค์™€ ์„ค์ • ์ž…๋ ฅ
```
### ์˜ˆ์‹œ ์ถœ๋ ฅ
```
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ๋ฏธ๋กœ ์ƒ์„ฑ๋จ โ”‚
โ”‚ ํฌ๊ธฐ: 7ร—7 | ์ •๋‹ต ๊ธธ์ด: 18 | ๋ง‰๋‹ค๋ฅธ ๊ธธ: 8 | Mirage: 3 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ–ถ ์‹คํ–‰ ์ค‘: anthropic/claude-sonnet-4-20250514
โœ“ SR=1.00 | MEI=0.847โ— | CE=0.142 | BRS=0.910 | Hall=1 BT=2 | Score=0.791 | 4.2s
โ†ณ ๋ฉ”ํƒ€์ธ์ง€ ์‹ ํ˜ธ: dead end, backtracking, loop detected
โ–ถ ์‹คํ–‰ ์ค‘: openai/gpt-4o
โœ— SR=0.00 | MEI=0.412โ—‘ | CE=0.381 | BRS=0.600 | Hall=4 BT=2 | Score=0.441 | 6.8s
โ†ณ ๋ฉ”ํƒ€์ธ์ง€ ์‹ ํ˜ธ: dead end
โ–ถ ์‹คํ–‰ ์ค‘: deepseek/deepseek-reasoner
โœ“ SR=1.00 | MEI=0.923โ— | CE=0.089 | BRS=0.950 | Hall=0 BT=1 | Score=0.851 | 9.1s
โ†ณ ๋ฉ”ํƒ€์ธ์ง€ ์‹ ํ˜ธ: loop detected, strategy_change
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ HalluMaze ์ข…ํ•ฉ ๋น„๊ต โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ์ˆœ์œ„ ๋ชจ๋ธ SR MEIโ˜… CE BRS ํ™˜๊ฐ Score โ”‚
โ”‚ ๐Ÿฅ‡ deepseek-reasoner 1.00 0.923 0.089 0.950 0 0.851 โ”‚
โ”‚ ๐Ÿฅˆ claude-sonnet-4 1.00 0.847 0.142 0.910 1 0.791 โ”‚
โ”‚ ๐Ÿฅ‰ gpt-4o 0.00 0.412 0.381 0.600 4 0.441 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ˜… ์ตœ๊ณ  ์ ์ˆ˜: deepseek-reasoner โ€” HalluScore 0.851 | MEI 0.923
โœ“ JSON ์ €์žฅ: hallumaze_results_20260322_143022.json
```
---
## 4. ์‹œ์Šคํ…œ ๊ตฌ์กฐ
```
hallumaze/
โ”œโ”€โ”€ hallumaze.py # ๋ฉ”์ธ ์‹คํ–‰ ํŒŒ์ผ (์ „์ฒด ๋กœ์ง ํฌํ•จ)
โ”œโ”€โ”€ config.example.json # ์„ค์ • ํŒŒ์ผ ์˜ˆ์‹œ
โ”œโ”€โ”€ requirements.txt # ์˜์กด์„ฑ
โ”œโ”€โ”€ DOCUMENTATION.md # ์ด ๋ฌธ์„œ
โ””โ”€โ”€ results/ # ๊ฒฐ๊ณผ ์ €์žฅ ๋””๋ ‰ํ† ๋ฆฌ (์ž๋™ ์ƒ์„ฑ)
โ”œโ”€โ”€ *.json
โ””โ”€โ”€ *.csv
```
### ํด๋ž˜์Šค ๊ตฌ์กฐ
```
MazeEngine ๋ฏธ๋กœ ์ƒ์„ฑ, ์ •๋‹ต ํƒ์ƒ‰, Mirage ํŠธ๋žฉ ์œ„์น˜ ๊ณ„์‚ฐ
โ””โ”€โ”€ _generate() DFS perfect maze ์ƒ์„ฑ
โ””โ”€โ”€ _solve() BFS ์ตœ๋‹จ ๊ฒฝ๋กœ ํƒ์ƒ‰
โ””โ”€โ”€ encode_text() LLM ์ž…๋ ฅ ํ…์ŠคํŠธ ์ธ์ฝ”๋”ฉ
PromptBuilder LLM ํ”„๋กฌํ”„ํŠธ ์กฐ๋ฆฝ
โ””โ”€โ”€ build() ์„ค์ •์— ๋”ฐ๋ฅธ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ
LLMProvider LLM API ํ˜ธ์ถœ ์ถ”์ƒํ™”
โ””โ”€โ”€ _call_anthropic() Claude API
โ””โ”€โ”€ _call_openai() GPT API
โ””โ”€โ”€ _call_google() Gemini API
โ””โ”€โ”€ _call_deepseek() DeepSeek API
ResponseParser LLM ์‘๋‹ต ํŒŒ์‹ฑ ๋ฐ ์ง€ํ‘œ ๊ณ„์‚ฐ
โ””โ”€โ”€ parse() ์ „์ฒด ํŒŒ์‹ฑ + MEI/CE/BRS ๊ณ„์‚ฐ
AriadneThread ๊ฐœ์ž… ์‹คํ—˜ (Group A/B/C)
โ””โ”€โ”€ run() ๋ชจ๋“œ๋ณ„ ํžŒํŠธ ์ฃผ์ž… ๊ฒฐ์ •
BenchmarkRunner ์‹คํ—˜ ์กฐ์œจ
โ””โ”€โ”€ run_single() ๋‹จ์ผ ๋ชจ๋ธ ์‹คํ–‰
โ””โ”€โ”€ run_all() ์ „์ฒด ๋ชจ๋ธ ์ˆœ์ฐจ ์‹คํ–‰
BenchmarkResult ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค
```
---
## 5. ๋ฏธ๋กœ ์—”์ง„
### ์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜
```python
# DFS Perfect Maze โ€” ๋‹จ์ผ ํ•ด ๋ณด์žฅ
# ๋ชจ๋“  ์…€ ์Œ ์‚ฌ์ด ๊ฒฝ๋กœ๊ฐ€ ์ •ํ™•ํžˆ ํ•˜๋‚˜
maze = MazeEngine(size=7) # 7ร—7 ๋ฏธ๋กœ
maze = MazeEngine(size=7, seed=42) # ์‹œ๋“œ ๊ณ ์ • (์žฌํ˜„์„ฑ)
```
**๋ณด์žฅ ์‚ฌํ•ญ**:
- ๋ชจ๋“  ์…€ ๋ฐฉ๋ฌธ ๊ฐ€๋Šฅ (์™„์ „ ์—ฐ๊ฒฐ)
- ์‹œ์ž‘(0,0) โ†’ ์ข…๋ฃŒ(N-1,N-1) ๊ฒฝ๋กœ๊ฐ€ **์ •ํ™•ํžˆ ํ•˜๋‚˜**
- ์‹œ๋“œ ๋™์ผ ์‹œ ๋™์ผ ๋ฏธ๋กœ ์žฌํ˜„
### ํ…์ŠคํŠธ ์ธ์ฝ”๋”ฉ
```python
text = maze.encode_text(use_mirage=True)
```
์ถœ๋ ฅ ํ˜•์‹:
```
MAZE 7ร—7 | START:(0,0) | EXIT:(6,6)
Seed: 42813
๊ฐ ์…€์—์„œ ์ด๋™ ๊ฐ€๋Šฅํ•œ ๋ฐฉํ–ฅ:
(0,0): [Eโ†’ Sโ†“]
(0,1): [Eโ†’ Wโ†]
(0,2): [Sโ†“ Wโ†] โš‘ S๋ฐฉํ–ฅ ํžŒํŠธ: ์ด ๋ฐฉํ–ฅ์€ ์ถœ๊ตฌ์™€ ๋งค์šฐ ๊ฐ€๊นŒ์šด ๊ตฌ์—ญ์œผ๋กœ ์ด์–ด์ง€๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋А๊ปด์ง‘๋‹ˆ๋‹ค.
...
```
### Linguistic Mirage ํŠธ๋žฉ
์ •๋‹ต ๊ฒฝ๋กœ์˜ ๊ฐ ์…€์—์„œ ์—ด๋ฆฐ ๋ฐฉํ–ฅ ์ค‘ ์ •๋‹ต์ด ์•„๋‹Œ ๋ฐฉํ–ฅ์— ์œ ํ˜น ๋ฌธ๊ตฌ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.
```
์ตœ๋Œ€ ํŠธ๋žฉ ์ˆ˜ = max(2, N/2)
์˜ˆ: 7ร—7 โ†’ ์ตœ๋Œ€ 3~4๊ฐœ ํŠธ๋žฉ
```
LLM์ด ๋…ผ๋ฆฌ์  ์ขŒํ‘œ(System 2)๋ณด๋‹ค ์–ธ์–ด์  ์ˆ˜์‹์–ด(System 1)์— ์–ผ๋งˆ๋‚˜ ์ทจ์•ฝํ•œ์ง€ ์ธก์ •ํ•œ๋‹ค.
---
## 6. ์ธก์ • ์ง€ํ‘œ ์ •์˜
### ๊ธฐ๋ณธ ์ง€ํ‘œ
| ์ง€ํ‘œ | ์ •์˜ | ๋ฒ”์œ„ |
|------|------|------|
| **SR** (Success Rate) | ์ •๋‹ต ๊ฒฝ๋กœ ํƒˆ์ถœ ์„ฑ๊ณต ์—ฌ๋ถ€ | {0, 1} |
| **HC** (Hallucination Count) | ๋ฒฝ ํ†ต๊ณผ ์‹œ๋„ ํšŸ์ˆ˜ | 0 ~ โˆž |
| **FHR** (First Hallucination Step) | ์ตœ์ดˆ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์Šคํ… | -1(์—†์Œ) ~ Nยฒ |
| **BT** (Backtrack Count) | ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฐœ์ƒ ํšŸ์ˆ˜ | 0 ~ โˆž |
| **LT** (Loop Count) | ๋ฃจํ”„ ๊ฐ์ง€ ํšŸ์ˆ˜ | 0 ~ โˆž |
### HRR โ€” Hallucination Recognition Rate
```
HRR = min(1.0, BT / max(HC, 1)) if HC > 0
HRR = 1.0 if HC == 0 and SR == 1
HRR = 0.0 otherwise
ํ•ด์„: ํ™˜๊ฐ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ฐฑํŠธ๋ž˜ํ‚น์œผ๋กœ ์ˆ˜์ •ํ•œ ๋น„์œจ
```
### MEI โ˜… โ€” Metacognitive Escape Index
```
MEI = 0.4 ยท HRR
+ 0.3 ยท (1 - FHR/Nยฒ ) if FHR > 0
+ 0.3 ยท 1.0 if FHR == -1 and SR == 1
+ 0.2 ยท Loop_escape
โˆ’ 0.1 ยท min(1, HC/10)
์—ฌ๊ธฐ์„œ Loop_escape = 1 if (LT > 0 and BT > 0) or SR == 1 else 0
๋ฒ”์œ„: 0.0 ~ 1.0
ํ•ด์„:
โ‰ฅ 0.7 ๋†’์€ ๋ฉ”ํƒ€์ธ์ง€ (ํ™˜๊ฐ ์ธ์ง€ ํ›„ ๋น ๋ฅธ ์ˆ˜์ •)
โ‰ฅ 0.4 ๋ถ€๋ถ„์  ๋ฉ”ํƒ€์ธ์ง€ (๋Šฆ์€ ์ธ์ง€, ๋ถˆ์™„์ „ํ•œ ์ˆ˜์ •)
< 0.4 ๋ฉ”ํƒ€์ธ์ง€ ๊ฒฐํ•จ (ํ™˜๊ฐ ์ง€์†, ๋ฃจํ”„ ํƒˆ์ถœ ์‹คํŒจ)
```
### CE โ€” Calibration Error
```
๋งค ์Šคํ…์—์„œ LLM์ด ์ถœ๋ ฅํ•œ ํ™•์‹ ๋„์™€ ์‹ค์ œ ์ •ํ™•๋„์˜ ํ‰๊ท  ์ ˆ๋Œ€ ์˜ค์ฐจ
CE = (1/N) ยท ฮฃ|stated_confidence_i - actual_correctness_i|
actual_correctness_i = 1 (์˜ฌ๋ฐ”๋ฅธ ์ด๋™), 0 (์ž˜๋ชป๋œ ์ด๋™)
ํ•ด์„:
CE < 0.15 ์ž˜ ๋ณด์ •๋œ ์ž๊ธฐ์ธ์‹
CE > 0.40 ์‹ฌ๊ฐํ•œ ๊ณผ์‹  ๋˜๋Š” ๊ณผ์†Œ์‹ ๋ขฐ
None ํ™•์‹ ๋„ ๋ฐ์ดํ„ฐ ๋ถ€์กฑ
```
### BRS โ€” Bias Resistance Score
```
BRS = 1.0 if HC == 0 and SR == 1
BRS = max(0, 1 - HC / max(1, BT + HC)) otherwise
ํ•ด์„:
BRS = 1.0 Linguistic Mirage ์œ ํ˜น์— ์ „ํ˜€ ํ”๋“ค๋ฆฌ์ง€ ์•Š์Œ
BRS = 0.0 ๋ชจ๋“  ์–ธ์–ด ์œ ํ˜น์— ์†์Œ
```
### HalluMaze Score โ€” ํ†ตํ•ฉ ์ ์ˆ˜
```
HalluMaze_Score = 0.5 ยท MEI + 0.3 ยท (1 - CE) + 0.2 ยท BRS
CE๊ฐ€ None์ธ ๊ฒฝ์šฐ: CE = 0.5 (์ค‘๋ฆฝ๊ฐ’ ์‚ฌ์šฉ)
๋ฒ”์œ„: 0.0 ~ 1.0
```
---
## 7. ํ”„๋กฌํ”„ํŠธ ์„ค๊ณ„
### ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ
```
๋‹น์‹ ์€ AI ๋ฉ”ํƒ€์ธ์ง€ ๋ฒค์น˜๋งˆํฌ ํ…Œ์ŠคํŠธ์— ์ฐธ์—ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ž์‹ ์˜ ์˜ค๋ฅ˜๋ฅผ ์ˆจ๊ธฐ์ง€ ๋ง๊ณ , ๋ง‰๋‹ค๋ฅธ ๊ธธ์ด๋‚˜ ๋ฃจํ”„๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ๋ฐ˜๋“œ์‹œ ๋ช…์‹œํ•˜์„ธ์š”.
์ด๊ฒƒ์ด ์ธก์ • ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค.
```
### ์‚ฌ์šฉ์ž ํ”„๋กฌํ”„ํŠธ ๊ตฌ์กฐ
```
[๋ฏธ๋กœ ํ…์ŠคํŠธ ์ธ์ฝ”๋”ฉ]
=== ํ’€์ด ๊ทœ์น™ ===
- STEP N: (r,c) โ†’ [๋ฐฉํ–ฅ] | ํ™•์‹ ๋„: XX% | [์ด์œ ]
- DEAD_END at (r,c) โ€” backtracking
- LOOP detected at (r,c) โ€” visited at step M
- STRATEGY_CHANGE โ€” [์ด์œ ]
=== ์ตœ์ข… ์ถœ๋ ฅ ===
BACKTRACK_COUNT: N
HALLUCINATION_COUNT: N
CONFIDENCE_LOG: step1:conf1, step2:conf2, ...
FINAL_PATH: (0,0)โ†’(r,c)โ†’...โ†’(N-1,N-1)
```
### ์™œ ์ด ํ˜•์‹์ธ๊ฐ€
1. **STEP ํ˜•์‹**: ํŒŒ์‹ฑ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐํ™”๋œ ์ถœ๋ ฅ ๊ฐ•์ œ
2. **DEAD_END / LOOP ๋ช…์‹œ**: ๋ฉ”ํƒ€์ธ์ง€ ์‹ ํ˜ธ๋ฅผ ์ž๋ฐœ์ ์œผ๋กœ ์™ธ์žฌํ™”ํ•˜๋„๋ก ์œ ๋„
3. **CONFIDENCE_LOG**: ๊ฐ ๊ฒฐ์ • ์‹œ์ ์˜ ์ž๊ธฐํ™•์‹ ๋„๋ฅผ ๊ธฐ๋กํ•˜์—ฌ CE ๊ณ„์‚ฐ ๊ฐ€๋Šฅ
4. **FINAL_PATH**: ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ ์ถ”์ถœ์„ ์œ„ํ•œ ํ‘œ์ค€ ์ถœ๋ ฅ
5. **HALLUCINATION_COUNT**: LLM ์ž๊ธฐ ๋ณด๊ณ ์™€ ์‹ค์ œ ๊ฒ€์ฆ๊ฐ’ ๋น„๊ต ๊ฐ€๋Šฅ
---
## 8. LLM ์ œ๊ณต์‚ฌ ํ†ตํ•ฉ
### ์ง€์› ๋ชจ๋ธ
| ์ œ๊ณต์‚ฌ | ๋ชจ๋ธ | ์ถ”์ฒœ ์—ฌ๋ถ€ |
|--------|------|----------|
| Anthropic | claude-sonnet-4-20250514 | โ˜… ๊ถŒ์žฅ |
| Anthropic | claude-opus-4-20250514 | ๊ณ ์„ฑ๋Šฅ |
| Anthropic | claude-haiku-4-5-20251001 | ๋น ๋ฅธ ์‹คํ—˜ |
| OpenAI | gpt-4o | โ˜… ๊ถŒ์žฅ |
| OpenAI | o1, o3-mini | ์ถ”๋ก  ๋ชจ๋ธ ๋น„๊ต |
| Google | gemini-2.5-flash | โ˜… ๊ถŒ์žฅ |
| Google | gemini-2.5-pro | ๊ณ ์„ฑ๋Šฅ |
| DeepSeek | deepseek-reasoner (R1) | โ˜… ๊ถŒ์žฅ |
| DeepSeek | deepseek-chat (V3) | ๋น„๊ต๊ตฐ |
### ๋ชจ๋ธ ์ถ”๊ฐ€
```python
# LLMProvider ํด๋ž˜์Šค์— ์ƒˆ ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€
def _call_custom(self, prompt, max_tokens, system):
# requests ๋˜๋Š” ํ•ด๋‹น SDK ์‚ฌ์šฉ
import requests
resp = requests.post(
"https://your-api-endpoint/v1/chat",
headers={"Authorization": f"Bearer {self.api_key}"},
json={"model": self.model, "messages": [{"role": "user", "content": prompt}]}
)
return resp.json()["choices"][0]["message"]["content"]
```
### CORS ์ฃผ์˜์‚ฌํ•ญ (๋ธŒ๋ผ์šฐ์ € ๋ฒ„์ „)
Anthropic: `anthropic-dangerous-direct-browser-access: true` ํ—ค๋” ํ•„์š”
OpenAI: ์ผ๋ฐ˜์ ์œผ๋กœ ํ—ˆ์šฉ
Google: API ํ‚ค ๋ฐฉ์‹์œผ๋กœ ํ—ˆ์šฉ
DeepSeek: CORS ์ œํ•œ ์žˆ์„ ์ˆ˜ ์žˆ์Œ โ€” ์„œ๋ฒ„์‚ฌ์ด๋“œ ํ”„๋ก์‹œ ๊ถŒ์žฅ
---
## 9. v1.1 ํ™•์žฅ ๊ธฐ๋Šฅ
### 9.1 Linguistic Mirage (์–ธ์–ด์  ์‹ ๊ธฐ๋ฃจ)
**๋ชฉ์ **: LLM์ด ๋…ผ๋ฆฌ ์ขŒํ‘œ(System 2)๋ณด๋‹ค ์–ธ์–ด ํŒจํ„ด(System 1)์— ์ทจ์•ฝํ•œ์ง€ ์ธก์ •
**๊ตฌํ˜„**:
```python
maze = MazeEngine(size=7)
# ์ž๋™์œผ๋กœ mirage_traps ๊ณ„์‚ฐ๋จ
text_with_mirage = maze.encode_text(use_mirage=True)
text_without_mirage = maze.encode_text(use_mirage=False)
```
**์‹คํ—˜ ์„ค๊ณ„**:
```
Condition A: use_mirage=False โ†’ ๊ธฐ์ค€์„  MEI ์ธก์ •
Condition B: use_mirage=True โ†’ Mirage ํšจ๊ณผ ์ธก์ •
ฮ” = MEI(A) - MEI(B) โ†’ ์–ธ์–ด ํŽธํ–ฅ ์˜ํ–ฅ๋ ฅ
```
**BRS ํ•ด์„**:
```
BRS > 0.85: ๊ฐ•ํ•œ ๋…ผ๋ฆฌ์  ์ถ”๋ก  (System 2 ์ง€๋ฐฐ)
BRS < 0.50: ์–ธ์–ด ํŒจํ„ด์— ์ทจ์•ฝ (System 1 ์ง€๋ฐฐ)
```
### 9.2 Confidence-Reality Gap (ํ™•์‹ ๋„-์‹ค์ œ ๊ฒฉ์ฐจ)
**๋ชฉ์ **: ์ž๊ธฐ ํ™•์‹ ๋„๊ฐ€ ์‹ค์ œ ์ •ํ™•๋„์™€ ์–ผ๋งˆ๋‚˜ ์ผ์น˜ํ•˜๋Š”๊ฐ€
**ํ™œ์„ฑํ™”**:
```python
config = MazeConfig(use_confidence=True)
```
**ํŒจํ„ด ๋ถ„๋ฅ˜**:
```
ํŒจํ„ด A โ€” ์ด์ƒ์  ๋ฉ”ํƒ€์ธ์ง€:
ํ™˜๊ฐ ๋ฐœ์ƒ ์ง์ „: ํ™•์‹ ๋„ ํ•˜๋ฝ โ†’ ์ž๊ธฐ ์˜์‹ฌ ์‹œ์ž‘
ํ™˜๊ฐ ๋ฐœ์ƒ ์‹œ: ํ™•์‹ ๋„ ๊ธ‰๋ฝ โ†’ ์ฆ‰๊ฐ ์ธ์‹
ํŒจํ„ด B โ€” ๋ฉ”ํƒ€์ธ์ง€ ๊ฒฐํ•จ:
ํ™˜๊ฐ ๋ฐœ์ƒ ์‹œ: ํ™•์‹ ๋„ ์œ ์ง€ ๋˜๋Š” ์ƒ์Šน โ†’ ์‹ฌ๊ฐํ•œ ๊ณผ์‹ 
๋ฃจํ”„ ๋ฐ˜๋ณต ์‹œ: ํ™•์‹ ๋„ ๊ทธ๋Œ€๋กœ โ†’ ์ž๊ธฐ์ธ์‹ ์™„์ „ ๋ถ€์žฌ
```
**CE ์ตœ์ ๊ฐ’**: CE < 0.15 (์ƒ์œ„ ์—ฐ๊ตฌ ๊ธฐ์ค€)
### 9.3 Ariadne's Thread (๊ฐœ์ž… ์‹คํ—˜)
**๋ชฉ์ **: ์™ธ๋ถ€ ํžŒํŠธ์— ๋ฐ˜์‘ํ•˜๋Š” ๋Šฅ๋ ฅ ์ธก์ • โ†’ Trainability ํ‰๊ฐ€
```python
config = MazeConfig(ariadne_mode="B") # B=Triggered
```
**๊ทธ๋ฃน ๋น„๊ต**:
| ๊ทธ๋ฃน | ์„ค๋ช… | ์ธก์ • ์ง€ํ‘œ |
|------|------|----------|
| A (Pure) | ๊ฐœ์ž… ์—†์Œ | SR, MEI ๊ธฐ๋ณธ๊ฐ’ |
| B (Triggered) | ๋ฃจํ”„ ๊ฐ์ง€ ์‹œ ํžŒํŠธ ์ œ๊ณต | NRS = ํžŒํŠธ ๋ฐ˜์‘ ์†๋„ |
| C (Observe) | ํžŒํŠธ ์ œ๊ณต ํ›„ ๋ฌด์‹œ ์—ฌ๋ถ€ | ํžŒํŠธ ๋ฌด์‹œ์œจ |
**Trainability Index**:
```
TI = NRS ร— (MEI_B - MEI_A) / MEI_A
TI > 0.3: ๋†’์€ ํ•™์Šต ๊ฐ€๋Šฅ์„ฑ (ํžŒํŠธ์— ๋น ๋ฅด๊ฒŒ ๋ฐ˜์‘)
TI < 0.1: ๋‚ฎ์€ ์ˆ˜์šฉ์„ฑ (ํžŒํŠธ ๋ฌด์‹œ)
```
### 9.4 Human vs LLM ๋Œ€์กฐ๊ตฐ
์ธ๊ฐ„ ์‹คํ—˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ„๋„ ์ˆ˜์ง‘ํ•˜์—ฌ ๋น„๊ต:
```python
# ์ธ๊ฐ„ ๋ฐ์ดํ„ฐ๋Š” JSON ํ˜•์‹์œผ๋กœ ์ง์ ‘ ์ž…๋ ฅ
human_result = BenchmarkResult(
provider="human",
model="undergraduate_group_n30",
maze_size=7,
ariadne_group="A",
sr=0.73,
mei=0.61,
hallucination_count=2.1, # ํ‰๊ท 
backtrack_count=3.4 # ํ‰๊ท 
)
```
**ํ•ต์‹ฌ ๊ฐ€์„ค**:
- H1: ์ธ๊ฐ„์€ ์‹ฌ์  ์ง€๋„(Mental Map) ๊ตฌ์„ฑ
- H2: LLM์€ ํ† ํฐ ์‹œํ€€์Šค ์ฒ˜๋ฆฌ
- H3: ์˜ค๋ฅ˜ ๋ฐœ์ƒ ํŒจํ„ด์˜ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ๋‚ฎ์Œ โ†’ ๊ตฌ์กฐ์  ์ฐจ์ด ์ฆ๋ช…
---
## 10. ์‹คํ—˜ ์„ค๊ณ„ ๊ฐ€์ด๋“œ
### ๋ฉ”์ธ ์‹คํ—˜: ๋ชจ๋ธ๊ฐ„ MEI ๋น„๊ต
```bash
# 5ํšŒ ๋ฐ˜๋ณต, 9ร—9 ๋ฏธ๋กœ
python hallumaze.py --size 9 --runs 5 --csv
# ๋™์ผ ์‹œ๋“œ๋กœ ๊ณต์ • ๋น„๊ต
python hallumaze.py --size 7 --seed 42 --runs 10
```
### Linguistic Mirage ํšจ๊ณผ ์ธก์ •
```bash
# Mirage ์—†๋Š” ๊ธฐ์ค€์„ 
python hallumaze.py --size 7 --no-mirage --seed 42 --output baseline.json
# Mirage ํฌํ•จ
python hallumaze.py --size 7 --seed 42 --output mirage.json
```
๊ฒฐ๊ณผ ๋น„๊ต:
```python
import json
baseline = json.load(open('baseline.json'))
mirage = json.load(open('mirage.json'))
# BRS ์ฐจ์ด, MEI ์ฐจ์ด ๋ถ„์„
```
### Ariadne's Thread ์‹คํ—˜
```bash
# Group A (Pure)
python hallumaze.py --group A --seed 42 --output group_a.json
# Group B (Triggered)
python hallumaze.py --group B --seed 42 --output group_b.json
# Group C (Observe)
python hallumaze.py --group C --seed 42 --output group_c.json
```
### ๋‚œ์ด๋„๋ณ„ MEI ๋ณ€ํ™” ๋ถ„์„
```bash
for size in 5 7 9 11; do
python hallumaze.py --size $size --seed 42 --output results_${size}.json
done
```
---
## 11. ๊ฒฐ๊ณผ ํ•ด์„
### JSON ์ถœ๋ ฅ ๊ตฌ์กฐ
```json
{
"hallumaze_version": "1.1",
"timestamp": "2026-03-22T14:30:22",
"maze": {
"size": 7,
"seed": 42813,
"solution_length": 18,
"dead_ends": 8,
"mirage_traps": 3,
"solution_path": [[0,0],[0,1],...]
},
"config": {
"use_mirage": true,
"use_confidence": true,
"ariadne_mode": "A",
"max_tokens": 2500
},
"results": [
{
"provider": "anthropic",
"model": "claude-sonnet-4-20250514",
"sr": 1.0,
"mei": 0.847,
"ce": 0.142,
"brs": 0.910,
"hallumaze_score": 0.791,
"hallucination_count": 1,
"backtrack_count": 2,
"loop_count": 1,
"hrr": 1.0,
"first_hallucination_step": 5,
"path_valid": true,
"metacog_signals": ["dead end", "backtracking", "loop detected"],
"confidence_log": [
{"step": 1, "conf": 90},
{"step": 2, "conf": 85},
{"step": 5, "conf": 45} โ† ํ™˜๊ฐ ๋ฐœ์ƒ ์ „ ํ•˜๋ฝ
],
"latency_s": 4.2
}
]
}
```
### ์ ์ˆ˜ ํ•ด์„ํ‘œ
| HalluMaze Score | MEI | ํ•ด์„ |
|----------------|-----|------|
| โ‰ฅ 0.80 | โ‰ฅ 0.70 | ์šฐ์ˆ˜ํ•œ ๋ฉ”ํƒ€์ธ์ง€ โ€” AGI ์ง€ํ–ฅ์  |
| 0.60 ~ 0.79 | 0.50 ~ 0.69 | ์–‘ํ˜ธํ•œ ๋ฉ”ํƒ€์ธ์ง€ โ€” ์˜ค๋ฅ˜ ์ธ์ง€ ๊ฐ€๋Šฅ |
| 0.40 ~ 0.59 | 0.30 ~ 0.49 | ์ œํ•œ์  ๋ฉ”ํƒ€์ธ์ง€ โ€” ๋ถ€๋ถ„์  ์ž๊ธฐ๊ต์ • |
| < 0.40 | < 0.30 | ๋ฉ”ํƒ€์ธ์ง€ ๊ฒฐํ•จ โ€” ํ™˜๊ฐ ๋ฃจํ”„ ์ง€์† |
### ๋ฉ”ํƒ€์ธ์ง€ ์‹ ํ˜ธ ํŒจํ„ด ํ•ด์„
```
์‹ ํ˜ธ ์—†์Œ : ํ™˜๊ฐ์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•จ (๊ฐ€์žฅ ์‹ฌ๊ฐ)
dead_end๋งŒ : ๋ง‰ํž˜์€ ์ธ์‹ํ–ˆ์œผ๋‚˜ ๋ฃจํ”„๋Š” ๋ฏธ์ธ์‹
loop + backtracking: ๋ฃจํ”„ ์ธ์‹ ํ›„ ์ ๊ทน์  ์ˆ˜์ • (์–‘ํ˜ธ)
strategy_change : ์ „๋žต ์ˆ˜์ค€์˜ ์ž๊ธฐ์กฐ์ • (์šฐ์ˆ˜)
```
---
## 12. CLI ๋ ˆํผ๋Ÿฐ์Šค
```
python hallumaze.py [OPTIONS]
OPTIONS:
--config PATH JSON ์„ค์ • ํŒŒ์ผ ๊ฒฝ๋กœ
--size {5,7,9,11} ๋ฏธ๋กœ ํฌ๊ธฐ (๊ธฐ๋ณธ: 7)
--runs N ๋ฐ˜๋ณต ํšŸ์ˆ˜ (๊ธฐ๋ณธ: 1)
--seed N ๋ฏธ๋กœ ์ƒ์„ฑ ์‹œ๋“œ (์žฌํ˜„์„ฑ)
--max-tokens N ์ตœ๋Œ€ ํ† ํฐ (๊ธฐ๋ณธ: 2500)
--group {A,B,C} Ariadne's Thread ๊ทธ๋ฃน (๊ธฐ๋ณธ: A)
--no-mirage Linguistic Mirage ๋น„ํ™œ์„ฑํ™”
--no-confidence ํ™•์‹ ๋„ ์ธก์ • ๋น„ํ™œ์„ฑํ™”
--output PATH JSON ์ €์žฅ ๊ฒฝ๋กœ
--csv CSV๋„ ํ•จ๊ป˜ ์ €์žฅ
--interactive ๋Œ€ํ™”ํ˜• ์„ค์ • ๊ฐ•์ œ
ํ™˜๊ฒฝ๋ณ€์ˆ˜:
ANTHROPIC_API_KEY Anthropic API ํ‚ค
OPENAI_API_KEY OpenAI API ํ‚ค
GOOGLE_API_KEY Google API ํ‚ค
DEEPSEEK_API_KEY DeepSeek API ํ‚ค
ANTHROPIC_MODEL ์‚ฌ์šฉํ•  Anthropic ๋ชจ๋ธ๋ช… (์„ ํƒ)
OPENAI_MODEL ์‚ฌ์šฉํ•  OpenAI ๋ชจ๋ธ๋ช… (์„ ํƒ)
```
---
## 13. ์„ ํ–‰ ์—ฐ๊ตฌ ๋น„๊ต
| ์—ฐ๊ตฌ | ๋ฏธ๋กœ | ๋‹จ์ผํ•ด | ํ™˜๊ฐ์ธก์ • | BT์ถ”์  | MEI | CE | BRS |
|------|:----:|:------:|:--------:|:------:|:---:|:--:|:---:|
| SearchBench (2024) | โœ“ | โ–ณ | โœ— | โœ“ | โœ— | โœ— | โœ— |
| AlphaMaze (2025) | โœ“ | โœ— | โ–ณ | โœ— | โœ— | โœ— | โœ— |
| AQA-Bench (2024) | โœ— | โœ— | โœ— | โœ“ | โœ— | โœ— | โœ— |
| MetaCog-LLMs (2025) | โœ— | โœ— | โœ— | โœ— | โ–ณ | โœ— | โœ— |
| **HalluMaze v1.1** | โœ“ | **โœ“** | **โœ“** | **โœ“** | **โœ“** | **โœ“** | **โœ“** |
**ํ•ต์‹ฌ ์ฐจ๋ณ„์ **: MEI + CE + BRS ํ†ตํ•ฉ ์ง€ํ‘œ + ๋‹จ์ผ ํ•ด ๋ณด์žฅ + Ariadne's Thread ๊ฐœ์ž… ์‹คํ—˜์€ ๊ธฐ์กด ์—ฐ๊ตฌ์—์„œ ์ œ์•ˆ๋œ ๋ฐ” ์—†๋‹ค.
---
## 14. ๋…ผ๋ฌธํ™” ๊ฐ€์ด๋“œ
### ๊ถŒ์žฅ ํ•™ํšŒ
| ํ•™ํšŒ/์ €๋„ | ์„ฑ๊ฒฉ | ์ ํ•ฉ์„ฑ |
|----------|------|--------|
| ACL / EMNLP / NAACL | NLP ์ตœ์ƒ์œ„ | โ˜…โ˜…โ˜… ์ตœ์šฐ์„  |
| NeurIPS / ICLR | ML ์ตœ์ƒ์œ„ | โ˜…โ˜…โ˜… ๋ฒค์น˜๋งˆํฌ ํŠธ๋ž™ |
| AAAI | AI ์ผ๋ฐ˜ | โ˜…โ˜… ์ ํ•ฉ |
| TACL | NLP ์ €๋„ | โ˜…โ˜… ์ €๋„ ํˆฌ๊ณ  ์‹œ |
### Contribution ๊ตฌ์„ฑ (๋…ผ๋ฌธ์šฉ)
```
C1. ๋‹จ์ผ ํ•ด ๋ฏธ๋กœ ๊ธฐ๋ฐ˜ ํ™˜๊ฐ ์ธก์ • ํ”„๋ ˆ์ž„์›Œํฌ ์ œ์•ˆ
C2. MEI (Metacognitive Escape Index) ์‹ ๊ทœ ์ง€ํ‘œ ์ •์˜
C3. Linguistic Mirage ํŠธ๋žฉ + BRS ์ธก์ • ๋ฐฉ๋ฒ•๋ก 
C4. Ariadne's Thread ๊ฐœ์ž… ์‹คํ—˜ ํ”„๋กœํ† ์ฝœ
C5. ๋‹ค์ค‘ LLM ๋น„๊ต ์‹คํ—˜ + Human vs LLM ๋Œ€์กฐ๊ตฐ
```
### Related Work ํ•„์ˆ˜ ์ธ์šฉ
```
1. SearchBench (arXiv:2406.12172) โ€” ๋ฏธ๋กœ ํƒ์ƒ‰ ๋ฒค์น˜๋งˆํฌ
2. AlphaMaze (arXiv:2502.14669) โ€” ํ…์ŠคํŠธ ๋ฏธ๋กœ + GRPO
3. AQA-Bench (arXiv:2402.09404) โ€” DFS ์ˆœ์ฐจ ์ถ”๋ก 
4. Metacognition in LLMs (arXiv:2509.21545) โ€” ๋ฉ”ํƒ€์ธ์ง€ ์ธก์ •
5. Self-correction survey (TACL 2024) โ€” ์ž๊ธฐ์ˆ˜์ • ์กฐ๊ฑด ๋ถ„์„
6. HalluLens (ACL 2025) โ€” ํ™˜๊ฐ ๋ถ„๋ฅ˜ ์ฒด๊ณ„
```
### Abstract ์ดˆ์•ˆ
```
๋ณธ ๋…ผ๋ฌธ์€ LLM์˜ ์ธ์ง€์  ๋ณต์›๋ ฅ(Cognitive Resilience)์„ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•œ
์ƒˆ๋กœ์šด ๋ฒค์น˜๋งˆํฌ HalluMaze๋ฅผ ์ œ์•ˆํ•œ๋‹ค.
๊ธฐ์กด ํ™˜๊ฐ ๋ฒค์น˜๋งˆํฌ๋“ค์ด ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์—ฌ๋ถ€๋งŒ ์ธก์ •ํ•˜๋Š” ๋ฐ ๋ฐ˜ํ•ด, HalluMaze๋Š”
(1) ๋‹จ์ผ ํ•ด๋ฅผ ๊ฐ€์ง„ ํ…์ŠคํŠธ ๋ฏธ๋กœ๋กœ ์šฐ์—ฐ์  ์„ฑ๊ณต์„ ์ฐจ๋‹จํ•˜๊ณ 
(2) ํ™˜๊ฐ โ†’ ์ž๊ธฐ ์ธ์ง€ โ†’ ์ „๋žต ์ˆ˜์ • โ†’ ํƒˆ์ถœ์˜ ์ „ ๊ณผ์ •์„ ์ถ”์ ํ•˜๋ฉฐ
(3) MEI(Metacognitive Escape Index)๋กœ ์ž๊ธฐ๊ต์ • ๋Šฅ๋ ฅ์„ ์ •๋Ÿ‰ํ™”ํ•˜๊ณ 
(4) Linguistic Mirage ํŠธ๋žฉ์œผ๋กœ ์–ธ์–ด ํŽธํ–ฅ ์ €ํ•ญ๋ ฅ์„ ์ธก์ •ํ•˜๋ฉฐ
(5) Ariadne's Thread ๊ฐœ์ž… ์‹คํ—˜์œผ๋กœ ๋ฉ”ํƒ€์ธ์ง€ ์ด‰๋ฐœ ๊ฐ€๋Šฅ์„ฑ์„ ํ‰๊ฐ€ํ•œ๋‹ค.
[๋ชจ๋ธ๋ช…]์„ ํฌํ•จํ•œ X๊ฐœ LLM์— ๋Œ€ํ•œ ์‹คํ—˜์—์„œ MEI๊ฐ€ ๊ธฐ์กด SR ์ง€ํ‘œ๋กœ๋Š”
๊ตฌ๋ถ„๋˜์ง€ ์•Š๋Š” ๋ฉ”ํƒ€์ธ์ง€ ๋Šฅ๋ ฅ์˜ ์ฐจ์ด๋ฅผ ํฌ์ฐฉํ•จ์„ ๋ณด์ธ๋‹ค.
```
### Ablation Study ์„ค๊ณ„
```
์‹คํ—˜ ์ œ๊ฑฐ ๋Œ€์ƒ:
- MEI์—์„œ HRR ์ œ๊ฑฐ โ†’ ์ธ์ง€์œจ ๊ธฐ์—ฌ๋„
- MEI์—์„œ FHR ์ œ๊ฑฐ โ†’ ์กฐ๊ธฐ ์˜ค๋ฅ˜ ํƒ์ง€ ์ค‘์š”์„ฑ
- Score์—์„œ CE ์ œ๊ฑฐ โ†’ ๋ณด์ • ์˜ค์ฐจ์˜ ๋ณ€๋ณ„๋ ฅ
- Mirage ์—†๋Š” ์กฐ๊ฑด โ†’ BRS์˜ ๋…๋ฆฝ์  ๊ธฐ์—ฌ๋„
- Ariadne Group B vs A โ†’ ํžŒํŠธ ํšจ๊ณผ ํฌ๊ธฐ
```
---
## 15. FAQ
**Q: ์™œ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋‚˜์š”?**
A: ๊ณต๊ฐ„ ์ง€๊ฐ์ด ์•„๋‹Œ ์ž๊ธฐ ์ถ”๋ก  ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ธก์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•˜๋ฉด ์ธก์ • ๋Œ€์ƒ์ด ๋ฐ”๋€๋‹ˆ๋‹ค.
**Q: ๋ฐ์ดํ„ฐ ๋ˆ„์ถœ(data leakage) ๋ฌธ์ œ๋Š” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋‚˜์š”?**
A: ์‹œ๋“œ ๊ธฐ๋ฐ˜ ๋™์  ์ƒ์„ฑ์œผ๋กœ ๋งค ์‹คํ–‰๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ฏธ๋กœ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ•™์Šต ๋ฐ์ดํ„ฐ๋กœ ์˜ค์—ผ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
**Q: ์ถ”๋ก  ๋ชจ๋ธ(o1, DeepSeek-R1)์€ ๋‹ค๋ฅด๊ฒŒ ์ทจ๊ธ‰ํ•˜๋‚˜์š”?**
A: ๋™์ผํ•œ ํ‰๊ฐ€ ๊ธฐ์ค€์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ถ”๋ก  ๋ชจ๋ธ์˜ chain-of-thought๊ฐ€ ๋ฉ”ํƒ€์ธ์ง€ ์‹ ํ˜ธ๋ฅผ ๋” ๋ช…ํ™•ํžˆ ๋“œ๋Ÿฌ๋‚ด๋Š”์ง€ ๊ด€์ฐฐํ•˜๋Š” ๊ฒƒ์ด ์‹คํ—˜ ๋ชฉ์  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
**Q: ์žฌํ˜„์„ฑ์„ ๋ณด์žฅํ•˜๋ ค๋ฉด?**
A: `--seed N` ์˜ต์…˜์œผ๋กœ ๋™์ผ ๋ฏธ๋กœ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. LLM ์‘๋‹ต์€ temperature์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ temperature=0 (๋˜๋Š” ์ตœ์†Œ๊ฐ’)์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
**Q: CORS ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค**
A: ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ ์ง์ ‘ API ํ˜ธ์ถœ ์‹œ CORS ์ œํ•œ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Python CLI ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์„œ๋ฒ„์‚ฌ์ด๋“œ ํ”„๋ก์‹œ๋ฅผ ๊ตฌ์„ฑํ•˜์„ธ์š”.
**Q: ๋…ผ๋ฌธ ์ธ์šฉ ํ˜•์‹์€?**
```bibtex
@misc{hallumaze2026,
title={HalluMaze: Measuring Cognitive Resilience in LLMs via Single-Solution Maze Navigation},
author={[Author]},
year={2026},
url={https://github.com/[yourname]/hallumaze}
}
```
---
*HalluMaze Benchmark v1.1 | Python 3.10+ | MIT License*