[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -2,91 +2,158 @@
|
||||
id: wiki-2026-0508-automation-paradox
|
||||
title: Automation Paradox
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-AUTO-AUPA-001]
|
||||
aliases: [Paradox of Automation, Bainbridge's Ironies, Lights-Out Fallacy]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.94
|
||||
tags: [auto-reinforced, automation-paradox, safety-critical, human-factors, skill-degradation]
|
||||
confidence_score: 0.92
|
||||
verification_status: applied
|
||||
tags: [human-factors, automation, ai-safety, ergonomics, system-design]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: unspecified
|
||||
framework: unspecified
|
||||
language: n/a
|
||||
framework: human-factors / HRO
|
||||
---
|
||||
|
||||
# [[Automation-Paradox|Automation-Paradox]]
|
||||
# Automation Paradox
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "더 안전할수록 더 위험해지는 모순: 시스템이 자동화될수록 인간의 숙련도는 떨어지고 주의력은 느슨해져서, 정작 기계가 감당하지 못하는 1%의 비상 상황이 발생했을 때 인간이 대처하지 못해 대형 사고로 이어지는 현상."
|
||||
## 매 한 줄
|
||||
> **"매 자동화 의 better 일수록, human operator 의 role 의 critical 의 increase — skill atrophy 와 vigilance decrement 의 통한 catastrophic edge-case 의 amplification"**. Lisanne Bainbridge (1983) "Ironies of Automation" 의 origin, 2026 의 LLM agent + autonomous vehicle + algorithmic trading 의 era 의 acute relevance.
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
자동화의 역설(Automation-Paradox)은 인간의 개입을 줄이기 위한 기술이 오히려 결정적인 순간에 인간의 더 높은 역량을 요구하게 만드는 아이러니한 현상입니다.
|
||||
## 매 핵심
|
||||
|
||||
1. **역설이 발생하는 메커니즘**:
|
||||
* **Skill Degradation**: 평소에 기계가 다 해주니 인간이 기술을 연습할 기회가 사라짐 (예: 자율주행 시대의 운전 미숙).
|
||||
* **Complacency (자만심)**: "기계가 알아서 하겠지"라는 비판적 사고의 정지.
|
||||
* **Ironies of Automation**: 가장 완벽한 자동화일수록, 인간은 가장 단련되지 않은 상태에서 가장 어려운 문제를 해결해야 함.
|
||||
2. **적용 사례**:
|
||||
* 자율주행차의 통제권 전환(Takeover) 지연 사고, 자동 항법 장치에 의존하던 항공기 추락 사고.
|
||||
### 매 4 ironies (Bainbridge)
|
||||
- **Designer 의 error**: automation 의 design 의 bug 의 operator 의 inherit
|
||||
- **Skill atrophy**: routine-task 의 takeover 의 인해 human skill 의 decay → emergency 의 unable
|
||||
- **Monitoring task**: vigilance 의 인해 의 unsuited 의 task 의 human 의 assign
|
||||
- **Trust calibration**: under-trust (rejection) 또는 over-trust (complacency) 의 binary failure
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌**: 과거에는 100% 자동화만이 답이라는 낙관적 정책이 지배적이었으나, 현대의 안전 공학 정책은 '인간의 숙련도를 유지하면서 기계가 돕는' 적정 자동화 정책(Human-centric automation)으로 회귀함(RL Update).
|
||||
- **정책 변화(RL Update)**: 자율주행 및 원격 의료 정책 수립 시, 사용자가 기계의 작동 원리를 잊지 않도록 정기적으로 개입을 강제하거나 '주의력 모니터링'을 의무화하는 정책이 설계 표준이 됨.
|
||||
### 매 mechanisms
|
||||
- **Out-of-the-loop unfamiliarity (OOTLUF)** — automation handover 의 시 의 operator 의 context 의 lack
|
||||
- **Mode confusion** — automation 의 current state 의 mismatch (Air France 447, Tesla autopilot)
|
||||
- **Skill decay curve** — manual skill 의 disuse 의 인해 의 exponential degradation (~6 months)
|
||||
- **Calibration drift** — automation 의 reliability 의 over-extrapolation
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- Foundational Models, [[Ps-Reinforce|Ps-Reinforce]], [[Safety & Reliability|Safety & Reliability]], [[Availability-and-Persistence|Availability-and-Persistence]], [[Agent Architecture|Agent Architecture]]
|
||||
- **Modern Tech/Tools**: Driver Monitoring[[_system|system]]s (DMS), Simulator-based training for crisis [[Management|Management]].
|
||||
---
|
||||
### 매 응용
|
||||
1. Autonomous vehicle handover — Level 2/3 의 6-second take-over budget 의 unrealistic.
|
||||
2. LLM coding agent — generated code 의 review 의 automation bias 의 인해 의 bug 의 miss.
|
||||
3. Algorithmic trading kill-switch — flash-crash 의 인간 의 intervention 의 too late.
|
||||
4. Aviation glass cockpit — Air France 447 (2009) 의 stall 의 mode confusion.
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
## 💻 패턴
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
### Trust calibration metric (TLX-derived)
|
||||
```python
|
||||
from dataclasses import dataclass
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
@dataclass
|
||||
class TrustCalibration:
|
||||
perceived_reliability: float # 0-1, operator estimate
|
||||
actual_reliability: float # 0-1, measured
|
||||
|
||||
@property
|
||||
def miscalibration(self) -> float:
|
||||
"""Positive => over-trust, negative => under-trust."""
|
||||
return self.perceived_reliability - self.actual_reliability
|
||||
|
||||
def risk_class(self) -> str:
|
||||
gap = self.miscalibration
|
||||
if gap > 0.15: return "OVER_TRUST_DANGER"
|
||||
if gap < -0.15: return "REJECTION_DANGER"
|
||||
return "CALIBRATED"
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
### Vigilance decrement model
|
||||
```python
|
||||
import numpy as np
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
def vigilance_curve(t_minutes: np.ndarray, base_hit_rate: float = 0.95) -> np.ndarray:
|
||||
"""Mackworth clock — 30-min decrement of ~0.2 in detection."""
|
||||
decay = 0.2 * (1 - np.exp(-t_minutes / 15))
|
||||
return np.clip(base_hit_rate - decay, 0, 1)
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
# Recommendation: rotate operators every 20 min on monitoring tasks
|
||||
```
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
### Handover protocol (autonomous vehicle)
|
||||
```python
|
||||
class L3HandoverManager:
|
||||
def __init__(self, min_takeover_seconds: float = 12.0):
|
||||
self.budget = min_takeover_seconds
|
||||
|
||||
def request_handover(self, driver_state: dict) -> dict:
|
||||
# 2026 SAE J3016 update: budget grew from 6s to 10-15s
|
||||
if not driver_state["eyes_on_road"]:
|
||||
return {"action": "MRM_pull_over", "reason": "OOTLUF"}
|
||||
if driver_state["secondary_task"] == "phone":
|
||||
return {"action": "MRM_pull_over", "reason": "high_OOTLUF_risk"}
|
||||
return {"action": "alert_takeover", "budget_s": self.budget}
|
||||
```
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
### LLM agent guardrail (skill-atrophy aware)
|
||||
```python
|
||||
class CodeReviewWithAutomationParadox:
|
||||
"""Force human active review on high-stakes diff to prevent atrophy."""
|
||||
|
||||
def __init__(self, llm_client):
|
||||
self.llm = llm_client
|
||||
|
||||
def review(self, diff: str, stakes: str) -> str:
|
||||
ai_review = self.llm.review(diff)
|
||||
if stakes == "high":
|
||||
# require human to manually annotate before showing AI review
|
||||
human = prompt_for_independent_review(diff)
|
||||
return reconcile(human, ai_review)
|
||||
return ai_review
|
||||
```
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
### Skill maintenance schedule
|
||||
```python
|
||||
def manual_practice_schedule(automation_uptime_pct: float) -> dict:
|
||||
"""Recommend periodic manual mode to combat skill decay."""
|
||||
if automation_uptime_pct > 0.9:
|
||||
return {"frequency": "weekly", "duration_min": 30}
|
||||
if automation_uptime_pct > 0.7:
|
||||
return {"frequency": "biweekly", "duration_min": 20}
|
||||
return {"frequency": "monthly", "duration_min": 15}
|
||||
```
|
||||
|
||||
## 매 결정 기준
|
||||
| 상황 | Approach |
|
||||
|---|---|
|
||||
| High-stakes + rare edge case | Keep human in loop, force periodic manual mode |
|
||||
| Routine + low risk | Full automation OK |
|
||||
| L2/L3 autonomy | Long handover budget (12s+), DMS (driver monitoring) |
|
||||
| LLM agent | Active review on critical paths, not passive accept |
|
||||
| HRO (high-reliability) | Multiple redundant operators, rotation |
|
||||
|
||||
**기본값**: high-stakes automation 의 default — human-in-the-loop + periodic manual practice + miscalibration monitoring.
|
||||
|
||||
## 🔗 Graph
|
||||
- 부모: [[Neuroergonomics]] · [[Complex Systems]]
|
||||
- 변형: [[Neuromuscular-Control]]
|
||||
- 응용: [[AI Safety]] · [[Multi-agent-System]]
|
||||
- Adjacent: [[Burnout]] · [[Continuous Obsolescence]]
|
||||
|
||||
## 🤖 LLM 활용
|
||||
**언제**: AI agent system design, code review automation, autonomous system handover protocol.
|
||||
**언제 X**: stateless automation 의 인간 의 involvement 의 unnecessary 인 case.
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **"Lights-out" fallacy**: full automation 의 human 의 unnecessary 의 assume.
|
||||
- **6-second handover budget**: empirically insufficient — 12-15s baseline.
|
||||
- **Automation bias**: AI suggestion 의 default-accept — independent verification 의 missing.
|
||||
- **Skill decay 의 ignore**: emergency-only manual training 의 too late.
|
||||
|
||||
## 🧪 검증 / 중복
|
||||
- Verified (Bainbridge 1983 *Ironies of Automation*; Parasuraman & Manzey 2010 *Complacency and Bias*).
|
||||
- 신뢰도 A.
|
||||
|
||||
## 🕓 Changelog
|
||||
| 날짜 | 변경 |
|
||||
|---|---|
|
||||
| 2026-05-08 | Phase 1 |
|
||||
| 2026-05-10 | Manual cleanup — Bainbridge ironies, trust calibration, L3 handover, LLM agent guardrail |
|
||||
|
||||
Reference in New Issue
Block a user