No Subspace to Track: Non-Identifiability and Optimizer State in Low-Rank Training
이 논문은 GaLore와 같은 메모리 효율적인 옵티마이저에 의해 추적 가능하다고 가정된 저계수 그래디언트 부공간(low-rank gradient subspace)이 높은 추정치 노이즈로 인해 근본적으로 식별 불가능함을 입증하며, 성능 향상은 부공간의 안정성보다는 부공간 갱신 과정에서 옵티마이저 상태를 올바르게 전달하는 데서 기인한다는 것을 밝힌다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
핵심 아이디어: 유령을 쫓는 일
당신이 거대한 로봇(대규모 언어 모델)에게 말을 가르치려 한다고 상상해 보세요. 이를 효율적으로 하기 위해, 로봇은 GaLore라는 특별한 기술을 사용합니다.
이 기술의 원리는 이렇습니다. 몇 분마다 로봇은 방금 저지른 "실수"(그래디언트)를 살펴보고, 그 실수가 발생하는 상위 128개의 방향을 찾아냅니다. 그런 다음 나머지 부분은 모두 무시하고 오직 그 128개의 방향 안에서만 학습합니다. 여기서 전제는 이 128개의 방향이 천천히 움직이는 강물과 같아서, 조금씩 흐르더라도 대체로 일정한 형태를 유지하므로 로봇이 이를 "추적(track)"할 수 있다는 것입니다.
이 논문의 주요 발견은 충격적입니다: 그 강물은 천천히 흐르는 것이 아니었습니다. 그것은 강물조차 아니었습니다. 그것은 볼 때마다 형태가 완전히 바뀌어 버리는 폭포였습니다.
저자들은 약 39개의 아주 작은 핵심 방향을 제외하면, 로봇이 선택한 "상위 128개 방향"은 본질적으로 무작위적인 노이즈(noise)에 불과하다는 것을 증명했습니다. 만약 로봇이 지금 한 세트의 방향을 골랐다가 10초 후에 다른 세트를 고른다면, 두 세트는 거의 완전히 다를 것입니다 (마치 두 사람이 모자에서 128개의 무작위 숫자를 뽑았는데 서로 거의 일치하는 숫자가 없는 것과 같습니다).
그렇다면 GaLore는 왜 작동하는가?
당신은 이렇게 물을 수 있습니다: "방향이 계속 무작위로 바뀐다면, 로봇은 어떻게 여전히 학습할 수 있는 거죠?"
논문은 GaLore가 특정 경로를 추적하기 때문이 아니라, **에너지를 포착(catching energy)**하기 때문에 작동한다고 설명합니다.
- 비유: 당신이 양동이로 빗물을 받으려 한다고 상상해 보세요. 빗방울 하나하나가 정확히 어디로 떨어질지 알 필요는 없습니다. 그저 비가 내리는 일반적인 영역에 양동이를 들고 있으면 됩니다.
- 상위 128개의 방향이 매번 완전히 바뀌더라도, 이 방향들은 실수의 전체 "에너지"(유용한 정보)의 약 67~73%를 여전히 포착해 냅니다. 따라서 로봇은 지도를 끊임없이 바꾸면서도 계속해서 학습을 이어갈 수 있습니다.
평균을 내는 것이 도움이 되지 않는 이유
이 "변하는 지도" 문제를 해결하기 위한 자연스러운 아이디어는 다음과 같습니다: "지난 10,000개의 지도를 보고 평균을 내서 안정적인 지도를 만들자."
저자들은 이를 테스트했고, 효과가 없다는 것을 발견했습니다.
- 비유: 비가 단순히 무작위 노이즈가 아니라, 특정한 바람과 구름의 패턴(신호)이라고 가정해 봅시다. 만약 시간이 지남에 따라 비를 평균 내려고 시도한다면, 비가 어디에 있는지에 대한 명확한 그림을 얻는 대신, 그저 흐릿한 덩어리만을 얻게 될 것입니다.
- 로봇의 실수 속에 있는 "노이즈"는 단순한 정적 소음이 아닙니다. 그것은 평균을 내려고 할수록 매우 느리게 줄어드는 복잡한 신호입니다. 아무리 평균을 내더라도 안정적인 "상위 128개" 목록을 만들어낼 수는 없습니다. 왜냐하면 그 목록은 본질적으로 안정적인 형태로 존재하지 않기 때문입니다.
진짜 문제: 로봇의 기억력
진짜 문제는 지도가 아니라 로봇의 기억력입니다.
로봇은 Adam이라는 옵티마이저를 사용하는데, 이는 장기 기억(지난 1,000단계의 실수를 기억함)을 가지고 있습니다.
- 문제점: 로봇이 지도를 갱신할 때마다(매 160단계마다), 지도는 90도 회전합니다. 하지만 로봇의 기억은 여전히 이전의 지도에 머물러 있습니다. 이는 마치 자동차 운전대를 90도 돌렸는데, 당신의 손은 여전히 예전 위치의 핸들을 잡고 있는 것과 같습니다. 로봇은 더 이상 존재하지 않는 지도를 바탕으로 조종하려고 애쓰고 있는 것입니다.
논문에서 찾아낸 해결책들
저자들은 이 "운전대" 문제를 해결하기 위해 두 가지 방법을 테스트했습니다.
- 기억을 회전시키기 (Transport): 기억을 예전 위치에 그대로 두는 대신, 로봇이 새로운 지도에 맞춰 물리적으로 자신의 기억을 회전시켜야 합니다.
- 결과: 이 방법은 매우 잘 작동합니다. 이는 운전대가 돌아간 것을 깨닫고 즉시 손을 움직여 맞추는 것과 같습니다.
- 기억의 길이를 줄이기: 로봇의 기억이 너무 깁니다 (1,000단계 전까지 기억함). 지도가 160단계마다 바뀌는데, 1,000단계를 기억하는 것은 완전히 다른 세상에서 온 과거의 데이터이므로 무의미합니다.
- 결과: 로봇이 지난 1,000단계 대신 마지막 100단계만을 기억하도록 설정함으로써, 로봇이 오래된 지도를 바탕으로 조종하는 것을 방지했습니다. 이 방법 역시 잘 작동했습니다.
설계자를 위한 시사점
만약 당신이 이러한 저차원(low-rank) 기법을 사용하는 시스템을 구축하고 있다면, 이 논문이 주는 조언은 다음과 같습니다.
- 하위 공간(subspace)을 추적하려 하지 마세요. 그것은 유령입니다. 너무 빠르게 변해서 추적할 수 없습니다.
- 당신의 "재현 가능한 랭크(Reproducible Rank, )"를 확인하세요. 128이라는 랭크를 신뢰하기 전에, 실제로 유효한 방향이 몇 개인지 확인하십시오. 논문에 따르면 약 39개만이 실제이며, 나머지는 노이즈입니다.
- 만약 실제 숫자보다 높은 랭크를 사용한다면:
- 기억을 회전시키세요: 옵티마이저의 기억이 새로운 지도와 함께 움직이도록 만드세요.
- 기억의 길이를 줄이세요: 로봇이 너무 멀리까지 기억하게 두지 마세요.
- 평균 내기를 멈추세요: 지도를 안정적으로 만들기 위해 평균을 내는 데 시간을 낭비하지 마세요. 효과가 없을 것입니다.
요약하자면: "저차원 하위 공간(low-rank subspace)"은 따라갈 수 있는 안정적인 대상이 아닙니다. 그것은 빠르게 변화하는 구름입니다. 이러한 시스템을 제대로 작동시키는 비결은 구름을 더 잘 따라가는 것이 아니라, 끊임없이 변하는 상황에 맞춰 당신의 기억을 조정하는 것입니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.