AlphaGo 아키텍처 스킬
의사 결정 포인트
단일 평가자 vs 계단식 평가자 사용 시기
문제 특성:
├── 탐색 공간이 다루기 쉬움 (b^d < 10^9)
│ └── 단일 최고 평가자 사용 → 표준 최적화
└── 탐색 공간이 다루기 어려움 (b^d > 10^12)
├── 균일한 평가 예산 사용 가능
│ └── 계단식 근사 사용:
│ 1. 빠른 가지치기 (정책 네트워크) → 좁은 빔
│ 2. 중간 평가 (가치 네트워크) → 품질 추정
│ 3. 저렴한 탐색 (롤아웃) → 범위 커버리지
└── 불균일한 평가 예산
└── 적응형 할당:
├── 중요 포지션 → 고비용 평가
└── 일상적인 포지션 → 저렴한 휴리스틱
정확도 vs 지연 시간 요구사항 의사 결정 트리
시스템 요구사항:
├── 지연 시간 중요 (<1ms 응답)
│ ├── 정확도 허용 범위 높음 (>10% 오류 허용 가능)
│ │ └── 빠른 롤아웃만 사용 (2µs/평가)
│ └── 정확도 허용 범위 낮음 (<5% 오류)
│ └── 캐시된 정책 네트워크 + 휴리스틱 폴백
├── 지연 시간 중간 (1-100ms 응답)
│ ├── 높은 정확도 필요
│ │ └── 가치 네트워크 (3ms) + 정책 네트워크 가이드
│ └── 균형 잡힌 정확도/속도
│ └── 혼합 평가: λ=0.5 가치 + 롤아웃
└── 지연 시간 허용 범위 높음 (>100ms)
└── 전체 계단식: 정책 → 가치 → 롤아웃 with MCTS
오류 모드 다양성 평가
여러 평가자 선택 시:
├── 모든 평가자가 유사한 실패 모드를 가짐
│ └── 단일 최고 평가자 사용 (다양성 이점 없음)
├── 평가자들이 상호 보완적인 오류를 가짐
│ ├── 빠름/잡음 + 느림/정확 페어링
│ │ └── λ=0.3-0.7로 혼합 (정확한 쪽으로 편향)
│ ├── 보수적 + 탐험적 페어링
│ │ └── λ=0.5로 혼합 (동일 가중치)
│ └── 학습된 + 수작업 페어링
│ └── 신뢰도 점수 기반 동적 혼합
└── 오류 상관 관계를 알 수 없음
└── 경험적 테스트: 홀드아웃 세트에서 성능 측정
실패 모드
스키마 블로트 (감지: 5개 이상의 근사 계층)
증상: 더 많은 근사 계층을 추가하지만 수익 체감이 발생함 근본 원인: 각 계층이 비례적인 정확도 향상 없이 오버헤드를 추가함 해결책: 계산 비용과 정확도 향상을 프로파일링하고, ROI가 낮은 계층을 제거함 감지 규칙: 계층 N을 추가했을 때 정확도 향상이 <5%이지만 지연 시간 증가가 >20%이면 스키마 블로트입니다
동기 결합 (감지: 빠른 구성 요소가 유휴 상태로 대기)
증상: GPU 평가를 기다리는 동안 CPU 사용률이 떨어짐 근본 원인: 빠른 검색과 느린 신경망 평가 간의 긴밀한 결합 해결책: 오래된 값 허용과 함께 비동기 큐잉 구현 감지 규칙: 빠른 구성 요소(검색, 롤아웃)의 유휴 시간이 >50%이면 동기 결합입니다
대리 지표 고착 (감지: 지표는 개선되지만 성능은 저하됨)
증상: 이동 예측 정확도는 향상되지만 승률은 감소함 근본 원인: 객관적인 성공이 아닌 인간 모방을 최적화함 해결책: 진정한 목표를 가진 강화 학습으로 전환 (지도 학습 대신) 감지 규칙: 대리 지표와 결과 지표가 10회 이상 평가에서 반대 방향으로 추세를 보이면 대리 고착입니다
단일 평가자 오류 (감지: "더 나쁜" 개별 구성 요소를 거부함)
증상: 가치 네트워크가 개별 정확도가 더 높다는 이유로 롤아웃을 폐기함 근본 원인: 최고의 개별 구성 요소가 최고의 시스템 구성 요소를 만든다고 가정함 해결책: 혼합 성능을 경험적으로 테스트함; 다양성은 종종 개별 품질을 능가함 감지 규칙: 조합을 테스트하지 않고 개별 성능으로 구성 요소를 선택하고 있다면 단일 평가자 오류입니다
균일 예산 할당 (감지: 모든 결정에 동일한 계산)
증상: 명백한 수와 중요한 포지션에 동일한 평가 시간을 소비함 근본 원인: 결정 중요도에 따라 계산 예산을 조정하지 않음 해결책: 포지션 불확실성과 결과 민감도에 기반한 적응형 할당 구현 감지 규칙: 포지션 간 평가 시간 변동이 평균의 <20%이면 균일 할당입니다
작업 예제
코드 리뷰를 위한 계단식 근사 구현
시나리오: 50-500줄이 변경된 풀 리퀘스트를 검토하고, <10초 응답 시간이 필요하며, 버그의 95%를 잡아야 하는 AI 시스템 설계
1단계: 계산 제약 조건 분석
- 정적 분석: 파일당 10ms
- ML 버그 탐지기: 파일당 2s
- 심층 의미 분석: 파일당 30s
- 사용 가능 예산: 총 10s
2단계: 계단식 의사 결정 트리 적용 철저한 분석이 예산을 초과하므로 "탐색 공간이 다루기 어려움" 경로를 따릅니다:
- 빠른 가지치기 계층 (정적 분석): 복잡성 변경이 없는 파일을 제거합니다
- 중간 평가 계층 (ML 탐지기): 나머지 파일의 버그 가능성을 점수화합니다
- 고비용 분석 계층 (의미 분석): 가장 높은 점수를 받은 파일만 심층 분석합니다
3단계: 예산 할당 전략
- 모든 나머지 파일의 ML 평가를 위해 2s를 예약합니다
- ML 점수에 따라 나머지 8s를 의미 분석에 할당합니다
- 점수 >0.8인 파일: 각각 4s (최대 2개 파일)
- 점수 0.5-0.8인 파일: 각각 2s
- 점수 <0.5인 파일: ML 점수만 사용
4단계: 혼합 평가 구현 "최고" 평가자(의미 분석)만 사용하는 대신 ML + 의미 분석 점수를 혼합합니다:
- ML 탐지기: 빠르고, 패턴 매칭에 능숙하며, 새로운 버그를 놓칩니다
- 의미 분석: 느리지만, 복잡한 논리 오류를 잡고, 높은 거짓 양성 비율을 가집니다
- λ=0.6으로 혼합:
최종_점수 = 0.6 * 의미_분석_점수 + 0.4 * ml_점수
초보자 접근 방식: 모든 항목에 대해 의미 분석 실행 → 처음 몇 개 파일 후 타임아웃 전문가 통찰력: 계단식 접근 방식을 통해 중요한 부분에 고비용 계산을 집중하고, 모든 파일이 최소한의 평가를 받도록 보장합니다
품질 게이트
[ ] N개 평가자 테스트됨: 서로 다른 속도/정확도 프로필을 가진 최소 3개의 평가자가 구현 및 벤치마킹됨 [ ] 오류 상관 관계 측정됨: 평가자 간 쌍별 상관 행렬이 테스트 세트에서 <0.7 상관 관계를 보임 [ ] 혼합 vs 단일 평가: 혼합이 최고 개별 구성 요소보다 >5% 더 나은 성능을 보임을 경험적으로 비교함 [ ] 지연 시간 요구사항 충족: 전체 계단식 적용 시 95번째 백분위수 응답 시간이 지정된 임계값 미만 [ ] 정확도 요구사항 충족: 홀드아웃 세트에서 오류율이 지정된 임계값을 충족함 (예: <5% 거짓 음성 비율) [ ] 예산 할당 프로파일링됨: 계산 비용 분석 결과 예산이 결정 중요도에 따라 분배됨을 보여줌 [ ] 실패 모드 테스트됨: 적대적 조건(분포 변화, 리소스 제약, 엣지 케이스)에서 시스템 테스트됨 [ ] 비동기 조정 확인됨: 느린 구성 요소가 포화 상태일 때도 빠른 구성 요소가 >80% 사용률 유지 [ ] 확장성 검증됨: 정격 용량의 10배 부하 증가 시 성능이 우아하게 저하됨 [ ] 모니터링 계측됨: 지표가 대리 vs 결과 정렬, 구성 요소 사용률 및 계단식 효과를 추적함
NOT-FOR 경계
이 스킬을 사용하지 말아야 할 경우:
- 탐색 공간이 다루기 쉬운 간단한 최적화 문제 → 표준-최적화 사용
- 단일 모델 훈련 또는 튜닝 → 딥러닝-훈련 사용
- <1ms 지연 시간이 필요한 실시간 시스템 → 저지연-시스템 사용
- 하나의 평가자가 명확히 우수하고 다른 평가자가 가치를 더하지 않는 문제 → 단일-모델-배포 사용
- 검색 트리 구조가 없는 순차적 의사 결정 프로세스 → 강화학습-기초 사용
다른 스킬로 위임해야 할 경우:
- 특정 신경망 아키텍처 구현 필요 → 딥러닝-아키텍처
- 분산 시스템 인프라 설계 → 분산-시스템-설계
- 개별 구성 요소 성능 최적화 → 성능-최적화
- 훈련 데이터 수집 및 레이블링 처리 → 데이터-엔지니어링
- 특정 검색 알고리즘 구현 → 검색-알고리즘
이 스킬은 다음에 특화되어 있습니다: 계산 제약 조건 하에서 여러 불완전한 평가자를 조정하기 위한 아키텍처 패턴에 초점을 맞추며, 개별 구성 요소의 구현 세부 사항은 다루지 않습니다.