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. ๊ฐœ์š”
  2. ์„ค๊ณ„ ์ฒ ํ•™
  3. ๋น ๋ฅธ ์‹œ์ž‘
  4. ์‹œ์Šคํ…œ ๊ตฌ์กฐ
  5. ๋ฏธ๋กœ ์—”์ง„
  6. ์ธก์ • ์ง€ํ‘œ ์ •์˜
  7. ํ”„๋กฌํ”„ํŠธ ์„ค๊ณ„
  8. LLM ์ œ๊ณต์‚ฌ ํ†ตํ•ฉ
  9. v1.1 ํ™•์žฅ ๊ธฐ๋Šฅ
  10. ์‹คํ—˜ ์„ค๊ณ„ ๊ฐ€์ด๋“œ
  11. ๊ฒฐ๊ณผ ํ•ด์„
  12. CLI ๋ ˆํผ๋Ÿฐ์Šค
  13. ์„ ํ–‰ ์—ฐ๊ตฌ ๋น„๊ต
  14. ๋…ผ๋ฌธํ™” ๊ฐ€์ด๋“œ
  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. ๋น ๋ฅธ ์‹œ์ž‘

์„ค์น˜

# ์ €์žฅ์†Œ ํด๋ก  (๋˜๋Š” ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ)
git clone https://github.com/yourname/hallumaze
cd hallumaze

# ์˜์กด์„ฑ ์„ค์น˜
pip install -r requirements.txt

# ๋˜๋Š” ์ตœ์†Œ ์„ค์น˜ (Anthropic๋งŒ ์‚ฌ์šฉ ์‹œ)
pip install anthropic rich

ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์‹คํ–‰ (๊ถŒ์žฅ)

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

์„ค์ • ํŒŒ์ผ๋กœ ์‹คํ–‰

# config.example.json์„ ๋ณต์‚ฌํ•˜๊ณ  API ํ‚ค ์ž…๋ ฅ
cp config.example.json config.json
nano config.json  # API ํ‚ค ์ž…๋ ฅ

python hallumaze.py --config config.json

๋Œ€ํ™”ํ˜• ์‹คํ–‰

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. ๋ฏธ๋กœ ์—”์ง„

์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜

# DFS Perfect Maze โ€” ๋‹จ์ผ ํ•ด ๋ณด์žฅ
# ๋ชจ๋“  ์…€ ์Œ ์‚ฌ์ด ๊ฒฝ๋กœ๊ฐ€ ์ •ํ™•ํžˆ ํ•˜๋‚˜

maze = MazeEngine(size=7)          # 7ร—7 ๋ฏธ๋กœ
maze = MazeEngine(size=7, seed=42) # ์‹œ๋“œ ๊ณ ์ • (์žฌํ˜„์„ฑ)

๋ณด์žฅ ์‚ฌํ•ญ:

  • ๋ชจ๋“  ์…€ ๋ฐฉ๋ฌธ ๊ฐ€๋Šฅ (์™„์ „ ์—ฐ๊ฒฐ)
  • ์‹œ์ž‘(0,0) โ†’ ์ข…๋ฃŒ(N-1,N-1) ๊ฒฝ๋กœ๊ฐ€ ์ •ํ™•ํžˆ ํ•˜๋‚˜
  • ์‹œ๋“œ ๋™์ผ ์‹œ ๋™์ผ ๋ฏธ๋กœ ์žฌํ˜„

ํ…์ŠคํŠธ ์ธ์ฝ”๋”ฉ

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) ๋น„๊ต๊ตฐ

๋ชจ๋ธ ์ถ”๊ฐ€

# 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)์— ์ทจ์•ฝํ•œ์ง€ ์ธก์ •

๊ตฌํ˜„:

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 (ํ™•์‹ ๋„-์‹ค์ œ ๊ฒฉ์ฐจ)

๋ชฉ์ : ์ž๊ธฐ ํ™•์‹ ๋„๊ฐ€ ์‹ค์ œ ์ •ํ™•๋„์™€ ์–ผ๋งˆ๋‚˜ ์ผ์น˜ํ•˜๋Š”๊ฐ€

ํ™œ์„ฑํ™”:

config = MazeConfig(use_confidence=True)

ํŒจํ„ด ๋ถ„๋ฅ˜:

ํŒจํ„ด A โ€” ์ด์ƒ์  ๋ฉ”ํƒ€์ธ์ง€:
  ํ™˜๊ฐ ๋ฐœ์ƒ ์ง์ „: ํ™•์‹ ๋„ ํ•˜๋ฝ โ†’ ์ž๊ธฐ ์˜์‹ฌ ์‹œ์ž‘
  ํ™˜๊ฐ ๋ฐœ์ƒ ์‹œ:   ํ™•์‹ ๋„ ๊ธ‰๋ฝ โ†’ ์ฆ‰๊ฐ ์ธ์‹

ํŒจํ„ด B โ€” ๋ฉ”ํƒ€์ธ์ง€ ๊ฒฐํ•จ:
  ํ™˜๊ฐ ๋ฐœ์ƒ ์‹œ:   ํ™•์‹ ๋„ ์œ ์ง€ ๋˜๋Š” ์ƒ์Šน โ†’ ์‹ฌ๊ฐํ•œ ๊ณผ์‹ 
  ๋ฃจํ”„ ๋ฐ˜๋ณต ์‹œ:   ํ™•์‹ ๋„ ๊ทธ๋Œ€๋กœ โ†’ ์ž๊ธฐ์ธ์‹ ์™„์ „ ๋ถ€์žฌ

CE ์ตœ์ ๊ฐ’: CE < 0.15 (์ƒ์œ„ ์—ฐ๊ตฌ ๊ธฐ์ค€)

9.3 Ariadne's Thread (๊ฐœ์ž… ์‹คํ—˜)

๋ชฉ์ : ์™ธ๋ถ€ ํžŒํŠธ์— ๋ฐ˜์‘ํ•˜๋Š” ๋Šฅ๋ ฅ ์ธก์ • โ†’ Trainability ํ‰๊ฐ€

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 ๋Œ€์กฐ๊ตฐ

์ธ๊ฐ„ ์‹คํ—˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ„๋„ ์ˆ˜์ง‘ํ•˜์—ฌ ๋น„๊ต:

# ์ธ๊ฐ„ ๋ฐ์ดํ„ฐ๋Š” 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 ๋น„๊ต

# 5ํšŒ ๋ฐ˜๋ณต, 9ร—9 ๋ฏธ๋กœ
python hallumaze.py --size 9 --runs 5 --csv

# ๋™์ผ ์‹œ๋“œ๋กœ ๊ณต์ • ๋น„๊ต
python hallumaze.py --size 7 --seed 42 --runs 10

Linguistic Mirage ํšจ๊ณผ ์ธก์ •

# Mirage ์—†๋Š” ๊ธฐ์ค€์„ 
python hallumaze.py --size 7 --no-mirage --seed 42 --output baseline.json

# Mirage ํฌํ•จ
python hallumaze.py --size 7 --seed 42 --output mirage.json

๊ฒฐ๊ณผ ๋น„๊ต:

import json
baseline = json.load(open('baseline.json'))
mirage   = json.load(open('mirage.json'))
# BRS ์ฐจ์ด, MEI ์ฐจ์ด ๋ถ„์„

Ariadne's Thread ์‹คํ—˜

# 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 ๋ณ€ํ™” ๋ถ„์„

for size in 5 7 9 11; do
    python hallumaze.py --size $size --seed 42 --output results_${size}.json
done

11. ๊ฒฐ๊ณผ ํ•ด์„

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: ๋…ผ๋ฌธ ์ธ์šฉ ํ˜•์‹์€?

@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