2023년 11월 14일
https://nonint.com/2023/11/05/compute-multipliers/
Anthropic의 Dario Amodei가 Compute Multiplier라는 단어를 언급하고 있나 보네요. 일단 연산 효율성을 고정된 loss를 목표로 삼아서, 이 loss에 도달하는데 필요한 FLOPs로 정의한다고 해보죠. 그러면 Compute Multiplier는 모든 모델 규모에 대해 연산 효율성을 향상시키는 어떤 방법이라고 할 수 있습니다. 이건 굉장히 중요한 발견입니다. 연산 효율성을 20% 향상시킨다면 GPU가 20%, 분산 처리로 인한 부하를 생각하면 실질적으로는 그 이상 증가한 것과 마찬가지죠.
그리고 Dario는 이 Compute Multiplier가 가장 중요한 산업 기밀이라고 말하고 있네요. 문제는 트랜스포머 이후로 지금까지 딥 러닝 판에서 이런 Compute Multiplier는 거의 발견된 적이 없다는 것이죠. SOTA를 찍을 수 있지만, (모델과 데이터의 규모가 증가했을 때에도) 다른 모델보다 동일 연산에서 더 나은 성능을 보여주거나 혹은 동일한 성능을 더 적은 연산에서 보여주는 경우는 드물죠. (https://arxiv.org/abs/2102.11972, https://arxiv.org/abs/2110.12894)
지금까지 발견된 것 중에는 무엇이 있을까요? 실제로 실험해보고 결과를 봐야겠지만 후보가 될 수 있지 않을까 싶은 것들을 생각해봤습니다.
트랜스포머에 대한 작은 개선들. SwiGLU (https://arxiv.org/abs/1612.08083, https://arxiv.org/abs/2002.05202), RMS Norm (https://arxiv.org/abs/1910.07467)
Sparse 모델. MoE (https://arxiv.org/abs/2101.03961, https://arxiv.org/abs/2112.06905, https://arxiv.org/abs/2202.08906) 혹은 Unstructured Sparsity? (https://arxiv.org/abs/2309.08520)
학습 Objective에 대한 개선. UL2 (https://arxiv.org/abs/2210.11399, https://arxiv.org/abs/2210.11416, https://arxiv.org/abs/2305.10403)
Optimizer 개선. Adam 이후로 Optimizer에 대한 개선이 거의 효과가 없다는 것이 딥 러닝 판의 교훈이지만 Shampoo (https://arxiv.org/abs/2002.09018, https://arxiv.org/abs/2309.06497) 는 의미가 있는 것 같다는 이야기를 들었습니다. 혹시 정말로?
데이터셋에 대한 개선. 데이터셋을 어떻게 전처리할 것인가, 어떤 데이터셋을 확보해 어떤 비율로 섞을 것인가. (https://x.com/BlancheMinerva/status/1721381649500316074) 데이터셋 필터링 혹은 샘플링 비율에 대한 조절. (https://arxiv.org/abs/2305.10429)
데이터셋을 모델에 어떻게 입력할 것인가. RETRO (https://arxiv.org/abs/2112.04426, https://arxiv.org/abs/2310.07713) 혹은 의미 있는 순서로 데이터셋을 정렬하기. (https://arxiv.org/abs/2310.10638)
#transformer #scaling-law
https://arxiv.org/abs/2311.07468
Are We Falling in a Middle-Intelligence Trap? An Analysis and Mitigation of the Reversal Curse (Ang Lv, Kaiyi Zhang, Shufang Xie, Quan Tu, Yuhan Chen, Ji-Rong Wen, Rui Yan)
Reversal Curse (https://arxiv.org/abs/2309.12288) 가 꽤 화제가 되는 것 같군요. (https://nonint.com/2023/10/18/is-the-reversal-curse-a-generalization-problem/) Autoregressive LM의 기본적 혹은 근본적인 한계로 생각할 수 있는 것들이 있는데 그걸 아주 간단하게 보여주는 사례인 것 같습니다. 결국 이런 질문이죠. 이런 명백한 한계가 있는데 이 모델에 대한 Scaling으로 AGI를 달성할 수 있을까?
사실 이 문제에 대해서는 Autoregressive loss와 Causal masking이 문제일 것이라고 생각할 수 있죠. 여기서는 GLM (https://arxiv.org/abs/2210.02414) 스타일로 기존의 Llama 모델을 가져와서 bidirectional attention을 사용한 infilling objective를 적용하는 방법을 고안했습니다. UL2 (https://arxiv.org/abs/2205.05131) 도 그렇고 이런 형태의 변형 중에 의미있는 것이 있을 수 있지 않을까 하는 생각이 드네요.
#autoregressive_model #lm
https://arxiv.org/abs/2311.07463
MEGAVERSE: Benchmarking Large Language Models Across Languages, Modalities, Models and Tasks (Sanchit Ahuja, Divyanshu Aggarwal, Varun Gumma, Ishaan Watts, Ashutosh Sathe, Millicent Ochieng, Rishav Hada, Prachi Jain, Maxamed Axmed, Kalika Bali, Sunayana Sitaram)
다국어, multimodal 벤치마크 수트를 구성해 GPT-4, PaLM 2, Llama 2 등의 모델을 평가해봤네요. 마이크로소프트 쪽에서 다국어에 대한 성능 평가 과제를 많이 하네요.
#benchmark
https://arxiv.org/abs/2311.07052
Towards the Law of Capacity Gap in Distilling Language Models (Chen Zhang, Dawei Song, Zheyu Ye, Yan Gao)
LM에서 distillation은 잘 안 되는 것으로 알려져 있죠. 여기서는 한 가지 이슈인 capacity gap 문제를 논하고 있네요. 더 큰 모델을 teacher로 쓰는 것이 반드시 좋지 않다는 것입니다. 여기서는 그걸 그냥 받아들이고 그래서 어느 정도 큰 규모의 teacher를 쓰는 것이 좋은가? 하는 질문을 합니다. structured pruning으로 임의의 작은 모델을 만들어서 테스트하는 식인데 50% ~ 60% sparsity 정도가 최선이라고 봤네요.
#distillation
https://arxiv.org/abs/2311.06607
Monkey: Image Resolution and Text Label Are Important Things for Large Multi-modal Models (Zhang Li, Biao Yang, Qiang Liu, Zhiyin Ma, Shuo Zhang, Jingxu Yang, Yabo Sun, Yuliang Liu, Xiang Bai)
제목 그대로 더 큰 이미지를 사용하고 더 나은 캡션을 생성해서라도 쓰는 것이 더 나은 multimodal 모델로 이어진다는 결과. GPT-4V도 꽤 큰 이미지 입력을 쓴다는 것이 드러났고 앞으로 높은 해상도의 이미지를 사용하는 모델에 대한 결과들이 나오겠네요. 높은 해상도의 이미지를 사용하는 것이 중요한 과제들에 익숙해서 좀 반가운 흐름입니다.
#vision-language #multimodal
https://arxiv.org/abs/2311.07575
SPHINX: The Joint Mixing of Weights, Tasks, and Visual Embeddings for Multi-modal Large Language Models (Ziyi Lin, Chris Liu, Renrui Zhang, Peng Gao, Longtian Qiu, Han Xiao, Han Qiu, Chen Lin, Wenqi Shao, Keqin Chen, Jiaming Han, Siyuan Huang, Yichi Zhang, Xuming He, Hongsheng Li, Yu Qiao)
Vision-Language 모델들이 요즘 워낙 많이 나와서 이 모델들의 디테일을 정리하고 비교하는 것도 만만치 않네요.
요즘 나오는 결과들처럼 이 논문도 LM을 얼려놓고 학습하는 것에는 한계가 있다고 보고 일단 LM을 해동하고 학습을 진행했군요. 텍스트에 대한 지식이 날아가는 것은 텍스트 only 데이터를 사용하는 것으로 대응했습니다.
재미있는 포인트는 다른 도메인에서 튜닝한 weight를 weight mixing으로 결합한 것과, 서로 다른 visual encoder로 뽑은 임베딩을 결합해서 사용하는 것이네요.
이 논문도 입력 이미지의 해상도를 높이려고 시도하는데, 굉장히 공교롭게도 GPT-4V의 API 설명과 비슷하게 큰 이미지를 크롭한 이미지들과 전체 이미지를 저해상도로 리사이즈한 이미지에서 나온 토큰들을 결합해서 사용하는 군요.
#vision-language #multimodal
https://arxiv.org/abs/2311.07215
Coffee: Boost Your Code LLMs by Fixing Bugs with Feedback (Seungjun Moon, Yongho Song, Hyungjoo Chae, Dongjin Kang, Taeyoon Kwon, Kai Tzu-iunn Ong, Seung-won Hwang, Jinyoung Yeo)
코딩 챌린지 플랫폼에서 코드의 수정 내역을 가져와서, ChatGPT로 수정 전과 수정 후의 차이를 지적하게 하는 방식으로 피드백을 생성했군요. 이렇게 구축한 데이터로 피드백을 생성하는 Critic을 만들고, 피드백을 기반으로 코드를 수정하는 Editor를 만듭니다. 그리고 Critic이 생성한 피드백을 Editor에 적용해서 테스트 케이스에 대한 통과율을 Preference로 사용해 DPO를 했군요. 여기에 추가로 피드백 분류기까지 적용해 피드백을 필터링합니다.
이렇게 갈고 닦은 피드백을 사용한 Editor로 버그 수정 능력을 테스트해봤네요. 코딩 챌린지에서 온 데이터를 사용했다는 것 때문에 데이터셋 오염의 가능성이 신경쓰이긴 합니다만 피드백을 사용하는 방법으로서 흥미롭네요.
#code #feedback