락인 문제
계속 이기는 밴디트
바닐라 UCB1은 매 단계마다 점수를 재계산합니다. 하나의 팔을 선택. 당김. n_k & mean_reward(k)를 업데이트. 반복. 많은 소스가 있는 긴 훈련 실행에서, 단일 팔이 높은 보상의 연속을 모아 평균을 높이고, 이기기 거의 불가능해집니다. 다른 팔들은 낮은 n_k에서 정체되고 오래된 평균을 가집니다. 락인.
락인은 ANDREA에게 두 가지 방식으로 해를 끼칩니다:
1. 다양성 붕괴. 한 소스에서 90%의 단계를 훈련하는 모델은 그 소스의 스타일적 특징을 학습합니다. 생성 샘플은 지배적인 소스와 일치하는 반복적인 패턴으로 표류합니다.
2. 陳腐한 탐색.陳腐한 평균을 가진 팔은 회복할 수 없습니다. 초기에 평균이 떨어진 팔은 모델이 이제 그 팔에서 보상을 추출할 만큼 충분한 용량을 갖추었더라도 그 평균에 갇혀 있습니다.
단계가 시간을 사는 이유
해결책: 재평가 전에 단계(여러 단계) 동안 고정된 초점 팔 세트를 유지합니다. 14단계의 단계는 14개의 순전파가 동일한 초점 팔에 도달합니다. 평균 보상이 안정화됩니다. 확률적 노이즈가 평균화됩니다. 그런 다음 bandit가 다시 롤링합니다.
가변 단계 길이
ANDREA는 각 단계 경계에서 {7, 14, 21, 28, 42} 중에서 무작위로 단계 길이를 선택합니다. 다섯 개 값, 균등 무작위. 짧은 단계(7)는 나쁜 선택에 빠르게 반응; 긴 단계(42)는 안정된 초점 세트가 완전히 활용되도록 합니다. 상한은 피해를 제한: 최악의 초점 구성에 최대 42단계만 소모된 후 강제 재선택.
단계 길이 통계
1d3 (2-eye) & 1d4 (3-eye)
주사위 표기법
테이블탑 표기법: NdM은 각 M면이 있는 N개의 주사위를 굴리는 것을 의미합니다. 1d3은 하나의 3면 주사위를 굴려 {1, 2, 3} 값을 반환합니다. 1d4는 하나의 4면 주사위를 굴려 {1, 2, 3, 4}를 반환합니다. ANDREA는 관례적으로 결과 0도 허용합니다: 0 굴림은 완전 무작위 단계 (UCB 집중 팔 없음)를 의미합니다.
2-Eye vs 3-Eye 구성
ANDREA의 훈련 구성은 두 가지 주사위 모드 중 하나를 선택합니다:
2-eye config (1d3). 가능한 포커스 암 수: {0, 1, 2, 3}. 결과 0은 랜덤 페이즈를 위해 예약됨.
3-eye config (1d4). 가능한 포커스 암 수: {0, 1, 2, 3, 4}. 더 큰 풀은 더 집중된 페이즈를 허용함.
먼저 랜덤, 그 다음 UCB
주사위 결과가 무엇이든, ANDREA는 두 번의 패스로 포커스 슬롯을 채움:
1. 먼저 랜덤 암. 모든 사용 가능한 암에서 균등하게 무작위로 포커스 슬롯의 일부를 선택. 이는 UCB 순위와 관계없이 모든 페이즈에서 조합적 다양성을 강제함.
2. UCB가 나머지 슬롯을 채웁니다. 이미 선택된 암 외의 암에 대해 UCB1 점수를 계산합니다. 포커스 슬롯 수가 채워질 때까지 상위 랭킹의 나머지 암을 선택합니다.
Random-first가 중요합니다. UCB가 먼저 선택되었다면, 연승 리더가 항상 슬롯을 차지할 것입니다. Random-first를 사용하면, 최고의 UCB 암조차도 한 페이즈를 쉬게 될 수 있습니다. 다양성이 보장됩니다.
순수 랜덤 페이즈
주사위가 0이 나오면, 전체 포커스 세트가 랜덤 선택에서 나옵니다. UCB는 아무 기여도 하지 않습니다. 약 25%의 페이즈 (1d4) 또는 33%의 페이즈 (1d3)가 여기에 해당합니다. 순수 랜덤 페이즈는 밴디트가 적게 선택된 암의 샘플을 새로 고치도록 강제하여, 전체 암 풀에 걸쳐 mean_reward 추정값을 정직하게 유지합니다.
주사위 결과 확률
피해 상한 설정
나쁜 단계는 최대 42단계를 소모합니다
UCB 순위가 관측 평균보다 훨씬 낮은 진짜 평균을 가진 초점 팔을 선택한다고 가정합니다. 단계가 그 팔을 고정합니다. 보상이 전체 단계 동안 낮게 유지됩니다. 밴디트가 수정하기까지 얼마나 걸릴까요?
최대 단계 길이: 42 단계. 42단계 후에 단계가 종료되고, 주사위가 다시 굴려지며, 초점 팔이 재배치됩니다. 나쁜 선택은 42개의 순방향 패스보다 오래 지속될 수 없습니다.
왜 42 (& 100이 아닌, & 1000이 아닌)
긴 단계는 mean_reward 추정값이 안정화되도록 합니다. 통계 이론: n개의 샘플 평균의 분산은 1/n에 따라 줄어듭니다. 7개의 샘플에서 42개의 샘플로 가면 6배 더 많은 샘플이 되고, sqrt(6)은 약 2.45배 더 좁은 표준 오차를 줍니다. 42개의 샘플 후에 mean_reward는 대략적으로 실제 값의 +/-15% 이내에 위치합니다 (보상 분산에 따라 다름).
42개의 샘플을 넘어서면 이득이 줄어듭니다: 100개의 샘플 vs 42개의 샘플 = 2.4배 더 많음, sqrt(2.4)은 약 1.55배 더 좁은 표준 오차. 나쁜 고정의 비용이 증가함에 따라 한계 이익이 떨어집니다. 42 단계는 둘 사이의 균형을 맞춥니다.
다양성 vs 수렴
짧은 단계(7단계): 보상 추정치는 여전히 노이즈가 많지만, 잘못된 선택의 비용은 적음. 긴 단계(42단계): 추정치가 정확하지만, 잘못된 선택의 비용이 더 큼. ANDREA는 단계 길이를 균등하게 섞어 모든 훈련 실행에서 두 체제가 모두 나타나게 함.
Btok 재구축 비용
각 단계 경계는 포커스 암에 대한 btok 파일 재구축을 유발함. Btok 재구축은 백그라운드 스레드에서 실행됨; CUDA는 mtime 변경 시 핫-리로드됨. 재구축에는 몇 초가 걸림; 단계는 재구축 오버헤드가 작게 유지될 만큼 충분히 길어야 함. ANDREA-120M 훈련 속도에서 42단계는 재구축 시간을 충분히 초과함.
천장(Ceiling)에 대한 추론
다음으로 올 내용
당신이 가진 것
단계 기반 주사위 제어는 UCB1을 세 가지 보호 규칙으로 감쌉니다: 가변 단계 길이 (7-42), 무작위 팔 우선, 주사위 기반 무작위 단계 (25-33% 순수 무작위). 42단계 상한은 피해를 제한; 무작위 단계는 고착을 방지; 가변 길이는 반응 속도와 추정 안정성을 혼합.
남은 것
UCB에 공급되는 보상 신호는 실제로 어디서 오는가? Activity 78 (reward attribution)은 CUDA가 매 단계마다 소스별 손실을 보고하는 방법, 소스별 EMA가 보상을 추적하는 방법, & ANDREA가 UCB1에 공급하기 전에 원시 보상을 1000배 스케일링하는 이유를 보여줍니다.
바닥(floors) & 에포크 페널티(epoch penalties)(활동 79)는 밴디트(bandit)의 출력 위에 추가 보호 규칙을 더해, 작은 소스들이 굶주리지 않도록 하고 큰 소스들이 반복 memorization되지 않도록 보장합니다.
참고 자료
ANDREA whitepaper, 섹션 3.2.