Gemini 리포트와 추측
Gemini
https://x.com/JeffDean/status/1733580264859926941
제프 딘이 언급하로는 제미니라는 이름에는 브레인과 딥마인드 팀의 결합이라는 의미에 나사의 제미니 계획를 시사하는 의도가 있는 것으로 보인다. 제미니 계획은 소련의 유인 우주 비행 성공 후 미국이 소련에 앞서 사람을 달로 보내기 위한 아폴로 계획으로 나아가기 위한 계획이었다. 즉 현재 GPT-4 같은 모델에 선수는 빼앗겼지만 달 착륙, 즉 AGI에는 먼저 도달하겠다는 (혹은 유일하게 도달하겠다는) 의미일 수 있겠다.
다들 제미나이라고 발음하는 것 같지만 일단 제미니라는 발음도 영어에서 인정되는 것 같고 한국에서는 제미니 쪽이 좀 더 일반적이지 않나 싶어 제미니라고 쓰기로 한다.
https://storage.googleapis.com/deepmind-media/gemini/gemini_1_report.pdf
제미니 리포트에 대해 좀 더 분석해보고 추측할 수 있는 부분들에 대해 정리해보기로 했다. 요즘 나오는 소위 테크니컬 리포트들에 비해 그나마 정보가 좀 더 기재되어 있는 편이라 건질만한 것들이 있을 듯 싶었다. 제공된 사실 요약 위주로 적어볼까 싶기도 했지만 그보다 모두가 다들 암시된 형태로 숨겨진 정보에 관심이 있을 듯 싶어 그 부분에 대한 추정을 중심으로 다뤄보려 한다.
모델 구조
당연하게도 트랜스포머 디코더이고 TPU에서의 추론을 고려한 형태라고 밝히고 있다. MQA를 사용한 것은 분명한 듯 하지만 더 나아가 추론을 위한 어떤 구조적인 개선이 있는지는 알 수 없다. MoE 모델일 것이라고 추측되는데 TPU에서 효율적인 MoE 같은 형태는 가능할 듯 하다. (Parallel Layers 같은 경우는 MoE와는 잘 맞지 않을 테니 배제할 수 있을 것으로 보인다.) (https://arxiv.org/abs/2202.08906, https://arxiv.org/abs/2211.05102)
그동안 트랜스포머 모델의 개선에 대한 결과를 발표하긴 했는데 이를 채택했을 가능성은 높지 않을 것이다. (https://arxiv.org/abs/2301.13310, https://arxiv.org/abs/2306.00008)
울트라, 프로, 나노로 나눠지는데 울트라는 Chinchilla Scaling을 통해 학습된 것으로 보인다. (https://arxiv.org/abs/2203.15556) 추론 시 효율성보다는 학습 효율성을 최대로 끌어올려 단기간에 가장 고성능 모델을 만드는 것이 목표였을 것 같다. 그 이하 모델은 Chinchilla Optimal 보다 오래 학습된 것으로 보인다. 프로의 경우 PaLM 2 Large와 비슷해보이는 점이 많은데 PaLM 2가 (일단 이 자체만으로는 Chinchilla Optimal은 아닌 것으로 보이는) 340B, 3.6T 모델이라는 주장에 근거하면 180B에 6T 이상 학습한 모델을 생각해볼 수 있을 것 같다. MoE를 적용했다면 실질적으로는 그보다 더 작을 수도 있다.
울트라는 어떨까? 학습 FLOPS로 얼마를 사용했는지 알 수 없지만 하드웨어 조건이나 GPT-4와 대략 비슷해보이는 성능적 특징을 고려했을 때 GPT-4의 1 ~ 3배 내에 있지 않을까 생각한다. Chinchilla를 그대로 참조하면 520B, 11T 세팅을 생각해볼 수 있고 수치 자체는 그럴싸하다. 그렇지만 MoE, Multilingual, Multimodal을 고려하면 이 수치를 그대로 채택하기는 어렵다. (https://arxiv.org/abs/2202.01169, https://arxiv.org/abs/2301.03728) 추측하기로는 GPT-4와 비슷하거나 좀 더 큰 규모의 MoE에 텍스트 토큰을 10T 이상 쓰는 세팅이었다고 본다. (GPT-4의 경우 Top-2 16 Expert MoE에 1.8T, 13T 토큰 학습으로 알려져 있다.)
이미지, 비디오, 오디오에 대한 입력이 가능하다고 하고 있고 이미지 입력에 대해서는 Flamingo, CoCa, PaLI에 영감을 얻었다고 한다. (https://arxiv.org/abs/2204.14198, https://arxiv.org/abs/2205.01917, https://arxiv.org/abs/2209.06794, https://arxiv.org/abs/2305.18565) Flamingo, CoCa, PaLI 같은 경우 ViT 등의 Feature를 사용한 인코더-디코더 구조이다. 그러나 Cross attention 기반이라고 하면 이산(Discrete) 이미지 토큰 기반 생성과는 맞지 않는 느낌이 있다. 시퀀스 내 일부 이미지는 생성하고 특정 이미지에 대해서는 Cross attention을 한다거나 할 수도 있겠지만 그런 형태의 구조는 가능성이 낮을 듯 하다. 비디오를 큰 Context window를 사용해 프레임들의 시퀀스로 처리한다고 하는 것을 봤을 때 Feature를 토큰으로 사용하는 최근의 접근과 통하는 구조일 듯 하고 그림에서도 각 모달 입력을 입력 토큰으로 처리하는 듯한 형태로 나타나 있다.
토큰 기반이라면 연속적인 Feature를 입력으로 사용할까 이산 토큰을 사용할까? 이산 토큰에 의한 손실을 우려해 생성만 이산 토큰 기반으로 하도록 연속적인 Feature를 사용하는 케이스와 이산 토큰을 사용하는 케이스를 나누는 것은 가능할 것 같다. 모두 이산 토큰을 사용하고 Autoregressive 학습을 하는 쪽이 깔끔한데 이는 이산 토큰화의 퀄리티가 결정될 문제이다.
구글은 이산 토큰으로 Autoregressive 생성을 하는 Parti를 만들었었고 (https://arxiv.org/abs/2206.10789) 이산 토큰화 자체 혹은 이산 토큰화를 극복하는 방법 대한 결과도 종종 발표하고 있다. (https://arxiv.org/abs/2309.15505, https://arxiv.org/abs/2312.02116) 또한 구글은 Masked Generation에 대한 연구도 많이 내놓고 있지만 (https://arxiv.org/abs/2202.04200, https://arxiv.org/abs/2301.00704) 이를 채택하지는 않지 않았을까 추측한다. (만약 적용한다면 적당하게 마스킹된 이미지 토큰을 입력하는 방법을 쓸 수는 있을 듯 하다.)
PaLM 2의 경우 UL2를 사용했다고 밝히고 있는데 제미니의 경우 특별히 다른 Objective를 사용했을지는 알 수 없다. 다만 이 규모의 실험에서 새로운 Objective 사용 등에 대해서는 조심스러웠을 것이라고 생각한다. (https://arxiv.org/abs/2305.10403, https://arxiv.org/abs/2205.05131, https://arxiv.org/abs/2210.11399)
필요에 따라 이미지 입력 크기를 조절할 수 있다고 하고 이는 자연스러운 선택인 것 같다. Fuyu-8B나 OtterHD (https://www.adept.ai/blog/fuyu-8b, https://arxiv.org/abs/2311.04219) 같은 세팅과 유사할 수 있다고 보인다.
시작부터 멀티모달이라는 언급이 있는데 이는 Flamingo, 그리고 Flamingo 이후 많은 모델처럼 얼린 이미지와 텍스트 모델을 연결하는 것도 혹은 붙여서 추가 튜닝하는 접근도 아닌 Scratch 학습한 멀티 모달 모델이라는 의미로 보인다. GPT-4에서 OpenAI도 이러한 방식으로 Scratch 학습을 하고 싶었지만 포기했다고 알려져 있다. 다만 오디오에 대해서 Universal Speech Model의 Feature를 입력으로 받는다는 언급이 있어 애매한 점이 있다. (https://arxiv.org/abs/2303.01037) 오디오 결합과 관련해서 발표한 결과들을 참고할 수 있을 것 같다. (https://arxiv.org/abs/2301.11325, https://arxiv.org/abs/2306.12925, https://arxiv.org/abs/2310.00230, )
구글은 비디오와 관련된 Autorgressive 모델링 결과를 발표하기도 했는데 (https://arxiv.org/abs/2311.05698) 이 저자들은 Contributor 목록에 포함되어 있지 않다. (구글이 발표한 논문들의 저자들이 Contributor 목록에 발견되지 않는 경우가 꽤 많다.)
학습 인프라
TPUv5p가 아닌 v4로 학습되었다. 한 데이터 센터가 아닌 여러 데이터 센터에 걸쳐 학습되었다고 하는데 동기화 학습을 충분히 할 수 있다는 뉘앙스로 봤을 때 DiLoCo 같은 방법이 쓰인 것 같지는 않고 (https://arxiv.org/abs/2311.08105, DiLoCo 저자들은 Contributor로 포함되어 있지 않다.) 단순히 구글의 데이터 센터간 대역폭이 모델 학습에 쓸 수 있을 만큼 엄청나다는 의미로 보인다. 비동기적 학습을 고려하다가 나온 시도가 DiLoCo일 것으로 보인다.
Jax (Pathways) 기반 Model/Data Parallel이고 이는 PaLM과 비슷하게 Tensor Parallel/FSDP에 잠재적으로 Expert Parallel의 가능성을 의미하는 것으로 생각한다. (https://arxiv.org/abs/2204.02311) 체크포인트는 디스크에 저장하지 않고 메모리에 보관했으며 문제가 발생할 시 이 메모리에 있는 레플리카로부터 복원했다. GPT-4의 학습 과정에서는 체크포인트로부터 복원하는 것에 많은 시간이 소모되었다고 하는데 이 문제를 완화시킨 것이라고 할 수 있겠다.
데이터셋
나열하고 있는 것처럼 영상, 사진, 스크린샷, PDF, 도표 등 온갖 소스의 데이터가 모두 들어갔을 것이다. 여기에서 다국어에 대한 고려가 많이 들어갔을 것으로 보인다. 토크나이저부터 비 라틴 계열 문제에 대한 효율성을 고려했다고 하고 따라서 한글 등에 대해 cl100k 보다 훨씬 쾌적할 가능성이 높다. 다국어 데이터에 대한 관심은 그동안 나온 다국어 데이터셋과 번역 문제에 대한 논문으로 힌트를 얻을 수 있을 것 같다. (https://arxiv.org/abs/2302.09650, https://arxiv.org/abs/2304.09151, https://arxiv.org/abs/2305.11938, https://arxiv.org/abs/2305.11778, https://arxiv.org/abs/2309.04662)
Gopher와 Chinchilla 때와는 달리 모델 기반 퀄리티 필터링을 수행했고 학습 과정을 나눠 데이터셋 비율을 조절했다. 학습 후반에는 도메인과 관련된 데이터의 비율을 높였다고 하는데 이 의미가 무엇인지는 분명하지 않다. 아마 좀 더 가치 있는, 일반적으로 수행하는 과제와의 관련성이 높은 데이터의 비율을 높였다는 정도의 의미라고 생각해야할 것 같다. (책이나 위키 등 고품질의 데이터.) Continual Pretraining 대신 프리트레이닝 스케쥴 내에서 데이터셋의 샘플링 비율과 구성을 의도적으로 바꾸는 것은 괜찮은 전략으로 보인다. (그리고 이러한 전략을 사용하는 사례가 암암리에(?) 꽤 있을 것으로 보인다.)
아직 많은 것이 경험적인 문제라고 할 수 있겠다. (https://arxiv.org/abs/2305.10429) 물론 딥 러닝에서 경험적이지 않은 문제를 찾는 것이 더 어려울 수도 있겠지만 말이다.
벤치마크
요즘 평가가 다 그런 감이 있지만 평가 수치를 가지고 공정하게 비교하는 것은 거의 불가능하다. 텍스트 벤치마크 표에서 GPT-4의 경우 리포트에 보고된 것과 API 호출을 통해 뽑은 값이 혼재되어 있고 제미니는 프리트레이닝 모델과 Instruction Tuning된 모델에서 뽑은 값이 섞여 있다. 사실 다른 모델들도 보고된 수치일 뿐 정확히 어떤 모델로 측정한 것인지는 알 수 없는 경우들이 있다.
그래도 대략적으로 GPT-4와 비슷하다고 말할 수 있을 것 같고 추정되는 학습 규모에서 기대할만한 결과인 것 같기도 하다. MMLU나 HumanEval에서 GPT-4가 놀라울 정도로 성능이 높은 것으로 보이는데 이는 결국 데이터셋 구성의 문제로 돌아가는 것 아닐까 한다. 리포트에서 HellaSwag에 대해 특정 웹사이트의 데이터를 사용할 것인가 아닌가로 인해 많은 차이가 났다고 주장한 것이 그것을 시사한다고 보인다.
위에서 언급한 것처럼 다국어 성능에 강점이 있다. 번역, 요약, OCR, 음성 인식, 음성 번역 등.
"시작부터 멀티모달"의 덕인지 이미지, 비디오, 오디오 인식에서 보여준 스코어는 압도적이다. 단순히 Few shot SOTA를 넘어 일부 벤치마크에 대해선 파인튜닝된 모델보다 나은 스코어를 기록하고 있다. (오디오 벤치마크에는 제미니 울트라의 스코어가 빠져 있다. MMMU 같은 경우는 거의 데이터셋이 나오자마자 벤치마크를 진행한 것으로 보인다. https://arxiv.org/abs/2311.16502 굉장히 빠른 페이스로 진행됐다고 할 수 있을 것 같다.)
이미지 생성은 제공된 샘플의 수가 적고 해상도가 낮아서 퀄리티에 대해 말하기는 어렵다. 심미적으로 우수한 샘플 생성을 위해선 프리트레이닝 이후 그에 대한 튜닝이 필요할 수 있다고 본다. (https://arxiv.org/abs/2309.15807) 다만 오디오 입력에서도 언급한 것처럼 텍스트를 경유하지 않는다는 것이 가지는 효과를 기대할 수 있을 것이다.
Long Context 문제에 대해서는 요즘 자주 돌아다니는 Key Retrieval에 대해 98%의 성능을 보였다고 말하고 있다. 이 문제는 과제와 Instruction Tuning의 특성도 작용한다고 보이지만, Long Context Window를 사용해 비디오를 처리했다는 대목을 고려하면 제미니가 Long Context 샘플에 대해 더 오래 학습되었고 그에 의한 향상일 가능성도 있다고 보인다.
정렬
이것이 촉박한 일정에서 가장 까다로운 부분이었을 것이다. 평가, 데이터셋 구축, 튜닝 각각에 모델 학습이 완료되어야만 진행할 수 있는 과제들이 있기 때문이다. 그리고 이것이 정렬된 제미니 울트라가 공개되는 시점을 늦춘 이유이기도 할 것이다.
누구나 인정하듯 데이터셋의 퀄리티가 극히 중요하다는 언급을 하고 있다. Instruction Tuning의 큰 부분이 모델의 응답 스타일을 가이드하는 것이라면 그 스타일이 일관되고 높은 품질일 필요가 있다는 것은 당연할 것이다. 모델이 커질수록 데이터셋이 모델의 확장된 능력을 활용할 수 있는 형태여야 하고 노이즈 패턴을 배제해야 한다는 것도 자연스럽다.
Helpfulness, Factuality, Safety의 세 헤드로 세 스코어를 뽑아 가중합으로 Reward Model을 학습했다고 한다. Helpfulness, Honestness, Harmlessness라는 3H에 상응하는 기준으로 보인다. (https://arxiv.org/abs/2112.00861) Helpfulness와 Safety를 분리하는 것은 이제 잘 알려진 접근이지만 (https://arxiv.org/abs/2307.09288, https://arxiv.org/abs/2310.12773) Factuality를 분리한 것은 좀 특별하다고 할 수 있겠다. 이는 실용적으로 할루시네이션을 억제하기 위함일 텐데, 컨텍스트 내의 정보를 충실하게 따르는 것과 세계에 대해 사실과 어긋난 정보를 생성하지 않는다라는 요즘 보통 통용되는 할루시네이션의 두 가지 문제를 커버하고 있다. 이는 Preference Data의 생성 과정에서 팩트 체크를 적극적으로 요구했으리라는 것을 시사한다.
Safety에 대해서는 구글의 정책을 기반으로 Constitutional AI와 유사한 형태의 피드백 데이터 생성을 한 것으로 보인다. GPT-4의 RBRM, Claude의 Constitutional AI, 그리고 제미니의 사례 모두 AI 피드백이 Safety 문제에 대한 유용한 도구라는 것을 시사한다. (https://arxiv.org/abs/2212.08073, https://arxiv.org/abs/2303.08774)
그동안 구글에서는 정렬과 관련된 방법들이 굉장히 많이 나왔다. https://arxiv.org/abs/2305.10425, https://arxiv.org/abs/2308.08998, https://arxiv.org/abs/2309.06657, https://arxiv.org/abs/2310.12036, https://arxiv.org/abs/2312.00886) 이런 방법들이 정렬 과정의 개선에 영향을 미쳤는지는 알 수 없다. 다만 Sparrow에서 축적한 경험은 도움이 되었을 것이라고 추측해볼 수 있다. (https://arxiv.org/abs/2209.14375) 안전, Fairness와 관련된 결과들도 많이 발표했는데 이쪽도 참조해볼만한 가치가 있을 수 있을 것이라고 본다. (https://arxiv.org/abs/2310.16523, https://arxiv.org/abs/2310.16955, https://arxiv.org/abs/2310.16959)
마무리
구글 규모의 연산력으로도 강력한 LLM을 만드는 작업은 쉽지 않다. 또한 지금 시점에서 프리트레이닝만으로는 의미가 없고 정렬 작업이 반드시 필요한데 평가, Preference 데이터 구축 등 모델 학습과 병렬적으로 진행할 수 없는 과제들이 모델 개발에 더 많은 시간을 소요하게 한다.
제미니는 멀티 모달에 대해 중요한 변곡점이 될 것으로 보인다. 앞으로 더 많은 모델들이 멀티모달 Scratch 학습될 것이고 텍스트라는 손실이 큰 매체를 경유하거나 혹은 텍스트 임베딩 공간에 끼워넣지 않고 작동하는 방향으로 나아갈 것이다. 그것이 사용자 경험을 어떻게 바꿔나갈 것인지 생각해보는 것도 흥미로운 일이다.
제미니의 다음 버전은 TPU v5p와 제미니 학습과 테스트 과정에서 누적되었고 누적되고 있을 경험들에 기반할 것이다. 정말로 제미니가 달에 먼저 도착할 수 있을까? 아직 제미니 울트라가 제대로 공개되지 않는 시점에서 그에 대해 논하는 것은 무의미할 것이다. 다만 이 규모로 모델 구축을 진행할 수 있는 행위자는 극히 드물고 구글이 그 중 가장 강력한 주자에 속한다는 것은 자명한 사실일 것이다.