ADHD: Parallel Divergent Ideation for Coding Agents
ADHD: Parallel Divergent Ideation for Coding Agents (Paper + Local Implementation)
출처: adhdstack.github.io | GitHub (692 stars, MIT) 작성자: Udit Akhouri Raj | 릴리스: 2026-05-25 (v0.1) | 언어: TypeScript (Node.js) 저장일: 2026-06-02
---
한 줄 요약
LLM이 창의적/개방형 문제에서 "첫 번째 가능성 있는 답에 멈춰버림(Premature Convergence)" 문제를 해결하기 위한 병렬 발산 아이디어 생성 방법론. N개의 독립적 브랜치를 서로 다른 "인지 프레임"에서 실행 → 별도 평가자가 점수 매기기/클러스터링/상위 K개 심화. 로컬 듀얼 RTX 3090 환경에서 Qwen + Gemma 이질적 앙상블로 구현 가능.
---
1. 논문 분석
문제 정의: "Premature Convergence"
LLM이 "X를 몇 가지 방법으로 해봐"라고 요청하면 거의 항상 시니어 실무자가 할 것 같은 세 가지 답만 내놓음. 이는 토큰 수준의 버그가 아니라, 작업 수준의 실패:
- 모델이 생성하면서 동시에 평가 → 초기 토큰이 후기 토큰을 고정 → 훈련 분포의 중심점이 "추천"으로 위장됨.
- 특히 아키텍처 결정, API/SDK 설계, 디버깅, 리팩토링 계획, 네이밍 등 "정답이 아닌 옵션 세트"가 결과물인 작업에서 치명적.
핵심 내용: ADHD의 세 가지 구조적 혁신
| 축 | 기존 방법 (CoT/ToT) | ADHD |
|---|---|---|
| 브랜치 격리 | 하나의 컨텍스트 공유 → 앵커링 발생 | N개의 별도 LLM 호출 → 컨텍스트 공유 없음 |
| 브랜치 드라이버 | "다음 단계 변형" (x vs y 시도) | "전체 관점 재정의" (예: "면역계처럼 생각해") |
| Generator/Critic 분리 | 같은 모델 호출 내 간헐적 실행 | 별도 호출 + 반대 system prompt → 기계적 분리 |
인지 프레임 라이브러리 (15개):
regulator,biology,speedrunner,10-year-old,$0 budgethardware engineer,logistics,game design,markets,inversion,ant colony,3am on-call- 핵심: 프레임은 "전문성"이 아닌 "구조적 왜곡"을 위해 선택. "10살" 프레임은 "정확함"이 아닌 "관습 무시"를 요구.
두 단계 루프:
- Phase 1 — Diverge (평가 금지): N개의 프레임 × 각기 별도 LLM 호출. Generator-only system prompt (평가/순위 금지). JSON-only 출력.
- Phase 2 — Focus (평가 활성화): Score (novelty/viability/fit) + Cluster (3-6개) + Deepen (상위 K개 확장).
평가 결과 (6개 문제, LLM-as-judge)
| 차원 | ADHD | Baseline | 델타 |
|---|---|---|---|
| Breadth | 9.00 | 4.83 | +4.17 |
| Novelty | 7.83 | 2.67 | +5.17 |
| Trap Detection | 9.50 | 1.83 | +7.67 |
| Actionability | 9.50 | 6.50 | +3.00 |
| Builder Usefulness | 7.67 | 6.83 | +0.83 |
결과: ADHD 5승 1패 0무. 가장 큰 델타는 Trap Detection (+7.67). Baseline은 "좋아 보이지만 잘못된 아이디어"를 거의 지적하지 않음.
제한사항
- 같은 모델의 judge: LLM-as-judge가 같은 모델 계열을 사용 → "익숙함 편향" 가능성.
- 작은 문제 세트: 6개 문제는 방향성은 보이지만 정량적 주장에는 부족.
- 수작업 프레임: 15개 프레임이 저자의 판단에 의존.
- 엔지니어링 편향: 제품 전략/과학적 브레인스토밍으로의 일반화 미증명.
---
2. 로컬 구현 가이드 (듀얼 RTX 3090 환경)
하드웨어 제약 및 해결책
- 문제: Qwen3.6-27B (Q4)는 VRAM ~16-18GB 사용. 단일 3090(24GB)에 1개만 탑재 가능 → 병렬 실행 (Concurrency)이 제한됨.
- 해결: 듀얼 3090 환경에서 Concurrency=2 설정. N=5가 아닌 N=4로 낮추면 GPU 2개에 완벽하게 맞춰져 실행 효율이 최대화됨.
예상 실행 시간 (N=4, Concurrency=2 기준)
- Diverge (N=4): 20초 (2+2 배치)
- Score + Cluster: 5초
- Deepen (K=3): 24초
- 총계: 약 49초. "50k 가치의 결정"을 내리는 데 충분히 실용적.
구현 방법 (이질적 앙상블 전략)
동일한 모델 2개(Qwen x2)보다 서로 다른 모델(Qwen + Gemma)을 사용하는 것이 ADHD의 목적(발산 극대화)에 더 부합합니다.
구축 구성:
- GPU 0 (Qwen3.6-27B): 논리적, 구조적 강점. Critic (평가자) 및 논리적 발산 (
regulator,hardware engineer프레임) 담당. - GPU 1 (Gemma 3 27B): 창의적, 유연함. 창의적 발산 (
biology,10-year-old,speedrunner프레임) 담당.
장점:
- 다양성 극대화: 서로 다른 모델은 훈련 데이터와 아키텍처 편향이 달라, 구조적으로 다른 아이디어를 생성할 확률이 높음.
- 장단점 보완: Qwen은 평가(Scoring)와 JSON 형식 준수에 강점이 있어 Critic 단계에서 안정성 확보. Gemma는 창의적 프레임에서 비약적 사고 제공.
주의사항:
- JSON 형식 준수: Gemma는 Qwen보다 JSON 형식 준수가 약할 수 있으므로, 프롬프트에
"Output MUST be valid JSON. No markdown."같은 엄격한 지시 추가 필요. - 속도 차이: Qwen(MTP)이 더 빠를 수 있으므로, 전체 실행 시간은 Gemma의 속도에 의해 결정됨.
---
3. 통찰 및 미래 영향
새로운 시각
- "ADHD"라는 명명법의 전략적 메시지: 지적 장애를 메타포로 사용하여 "집중 ≠ 효율"을 강조. 창의적 작업에서 주의 분산이 강점이라는 역설.
- "Trap Detection"의 실제 가치: LLM이 "좋아 보이지만 잘못된 아이디어"를 지적하지 않는다는 점은 실무에서 치명적. ADHD는 이를 자동화하여 리뷰 에이전트 역할을 대체 가능.
- "비용은 $0.30, 결정은 $50k" 프레임: "빠른 답"보다 "넓은 답"이 더 비쌈. AI 사용의 ROI 재정의.
- "브랜치 격리" = "집단사고 방지": ToT의 브랜치는 같은 컨텍스트를 공유하므로 집단사고 발생. ADHD는 브랜치 간 컨텍스트 공유를 기계적으로 차단하여 집단사고를 아키텍처 레벨에서 방지.
자녀/미래 영향
- "창의성 = 구조화된 발산" 교육: 아이들이 AI를 사용할 때 "더 똑똑하게 물어봐"가 아닌 "더 다양한 각도에서 물어봐"가 중요해짐. ADHD의 프레임 라이브러리는 창의적 사고의 템플릿 역할.
- "Trap Detection" = 비판적 사고 자동화: 아이디어 평가 시 "좋아 보이지만 ~"이라는 질문을 자동으로 던지는 습관. 이는 과학적 사고와 직접 연결: 가설을 세우기 전에 "이 가설이 왜 틀릴 수 있는가"를 먼저 생각함.
- 의료 연구에의 적용: 의료 연구에서도 "Premature Convergence" 발생. ADHD의 프레임 접근을 연구 설계에 적용: "규제자처럼 생각해"(FDA 승인 데이터?), "생물학자처럼 생각해"(세포 수준 메커니즘?)는 학제간 연구의 촉진제.
---
4. 결론
ADHD는 LLM의 창의적 사고를 구조적으로 넓히는 방법론. "빠른 답"보다 "넓은 답"을 원할 때, "정답이 아닌 옵션 세트"가 필요할 때, "좋아 보이지만 잘못된 아이디어"를 발견할 때 유용.
로컬 구현 전략: 듀얼 RTX 3090 환경에서 Qwen (논리/평가) + Gemma (창의/발산) 이질적 앙상블로 구현 시, 클라우드 버전과 거의 동일한 품질을 무료로, 프라이버시 보호하면서 사용할 수 있음. 실행 시간 약 50초로 "Decision Point" 용도로 충분히 실용적.