2023년 9월 28일 - 10월 3일
https://arxiv.org/abs/2309.17453
Efficient Streaming Language Models with Attention Sinks (Guangxuan Xiao, Yuandong Tian, Beidi Chen, Song Han, Mike Lewis)
LM으로 생성을 쭉 이어나가다가 context length를 넘어버리는 상황이 되면 어떻게 대응할 것인가. window attention 느낌으로 key-value cache를 자른 다음 생성을 이어나가는 방식으로 할 수 있다면 좋겠지만 그러면 작동을 하지 않는다고 하죠. 왜? 첫 부분의 토큰이 중요하기 때문이라고 합니다.
그렇다면 첫 부분의 토큰이 중요한 이유는? 초기 토큰을 attention sink로 쓰기 때문이라고 합니다. softmax에서는 전체가 0이 될 수 없는데 트랜스포머에서는 전체가 0인 attention이 필요한 경우가 있고, 그래서 특정 토큰을 사용해 그 역할을 하도록 한다는 것입니다. 그게 왜 하필 초기 토큰인가 하면 아무래도 초기 토큰은 모든 토큰에서 접근이 가능하니 그 방향으로 학습이 되는 경향이 있을 수 있겠네요.
이 문제는 비교적 최근 발견되었고 (https://arxiv.org/abs/2306.12929) 거기에 대해 softmax의 분모에 1을 더해놓으면 어떨까 (https://www.evanmiller.org/attention-is-off-by-one.html) 하는 대응 방법도 논의된 적이 있습니다.
여하간 첫 부분의 토큰이 문제이니 첫 부분의 토큰 임베딩 캐시를 유지하면 문제가 없다는 발견입니다. window attention과 결합하면 제목 그대로 context length를 넘는 경우에도 streaming generation이 가능해지는 것이죠.
더 나아가 학습 시점부터 attention sink를 도와주는 방식으로 할 수는 없을까 하는 실험도 했습니다. zero key-value를 사용해 위의 softmax off by one을 테스트해봤는데 이 방법만으로는 충분하지 않은 것으로 보입니다. learnable token을 사용하면 잘 작동하는 것으로 보이네요.
초기 토큰이 중요하다는 것은 context length 연장이라는 측면에서도 논의된 적이 있습니다. (https://arxiv.org/abs/2308.16137) 트랜스포머의 특성에 대한 꽤 중요한 발견이 될 것 같네요.
#lm #efficiency #transformer
https://arxiv.org/abs/2309.15505
Finite Scalar Quantization: VQ-VAE Made Simple (Fabian Mentzer, David Minnen, Eirikur Agustsson, Michael Tschannen)
Vector Quantization의 대안. 스칼라를 정수로 반올림하고 straight through estimator를 사용했습니다. 정수 변환을 통해 가능한 값을 L개로 맞추는데, 차원을 늘리면 코드북의 크기를 큰 문제 없이 확장할 수 있네요.
성능은 대략 VQ와 비슷하게 나옵니다만 좀 더 심플하고, 특별한 트릭 없이 코드북 크기를 키워도 코드북 활용률 100%를 달성할 수 있다는 것이 장점이군요.
#vq
https://arxiv.org/abs/2309.15337
Beyond the Chat: Executable and Verifiable Text-Editing with LLMs (Philippe Laban, Jesse Vig, Marti A. Hearst, Caiming Xiong, Chien-Sheng Wu)
LLM을 활용할 수 있는 방법이 채팅만 있는 것은 아니니, LLM을 어떻게 유저 인터페이스에 녹여낼 것인가 하는 것도 흥미로운 주제인 것 같네요. Salesforce에서 LLM 기반 텍스트 편집 인터페이스를 설계하고 평가해봤습니다.
https://speakerdeck.com/huffon/generative-ux-in-llm-application
최근 비슷한 발표 슬라이드를 본 적이 있어서 흥미롭네요.
#ux
https://arxiv.org/abs/2309.16039
Effective Long-Context Scaling of Foundation Models (Wenhan Xiong, Jingyu Liu, Igor Molybog, Hejia Zhang, Prajjwal Bhargava, Rui Hou, Louis Martin, Rashi Rungta, Karthik Abinav Sankararaman, Barlas Oguz, Madian Khabsa, Han Fang, Yashar Mehdad, Sharan Narang, Kshitiz Malik, Angela Fan, Shruti Bhosale, Sergey Edunov, Mike Lewis, Sinong Wang, Hao Ma)
Llama-2의 context length 확장. Code Llama (https://arxiv.org/abs/2308.12950) 에서와 같이 rope의 base frequency를 증가시키고 파인튜닝하는 방법을 사용했습니다. rope + base frequency 증가 트릭이 꽤 잘 작동하는 것처럼 보이네요. 그 외에 짧은 길이로 프리트레이닝하고 긴 길이로 파인튜닝하는 커리큘럼이 효과적이라는 것을 다시 확인했습니다.
그러나 중요한 것은 파인튜닝한 데이터의 구성인데 여기에 대한 힌트는 거의 없네요. Llama 2의 프리트레이닝 데이터를 사용했을 때 짧은 길이의 데이터만으로 파인튜닝하거나 혹은 긴 길이의 데이터의 비율을 높인다거나 했을 때에도 (둘 다 파인튜닝 하지 않은 베이스라인보다 향상은 있었지만) 차이는 크게 없었고, 추가적인 긴 길이의 데이터 샘플이 들어갔을 때 효과가 있었다고 합니다. 그러니까 긴 길이의 샘플이 딱히 많을 필요는 없고 그 샘플의 퀄리티가 높아야 한다는 것을 시사하고 있습니다. 물론 그 높은 퀄리티의 샘플을 어떻게 구성한 것인지에 대해서는 그다지 말하고 있지 않습니다. 요즘 Weight도 공개하고 방법도 대략 공개하는 경우는 많지만 학습 데이터에 대해서는 거의 공개하지 않는 것이 흐름이군요.
#long_context
https://arxiv.org/abs/2309.15807
Emu: Enhancing Image Generation Models Using Photogenic Needles in a Haystack (Xiaoliang Dai, Ji Hou, Chih-Yao Ma, Sam Tsai, Jialiang Wang, Rui Wang, Peizhao Zhang, Simon Vandenhende, Xiaofang Wang, Abhimanyu Dubey, Matthew Yu, Abhishek Kadian, Filip Radenovic, Dhruv Mahajan, Kunpeng Li, Yue Zhao, Vladan Petrovic, Mitesh Kumar Singh, Simran Motwani, Yi Wen, Yiwen Song, Roshan Sumbaly, Vignesh Ramanathan, Zijian He, Peter Vajda, Devi Parikh)
프리트레이닝한 Diffusion 모델을 필터링과 사람의 큐레이션으로 선정한 단 2천 장의 데이터로 파인튜닝 했을 때 생성 이미지의 퀄리티가 대폭 상승한다는 결과.
비교적 낮은 퀄리티의 데이터로 프리트레이닝 - 높은 퀄리티의 데이터로 파인튜닝이라는 공식이 성공적으로 작동하고 있네요. (https://arxiv.org/abs/2305.11206) 기존에는 딥 러닝은 전자, 낮은 퀄리티더라도 데이터 양을 증가시키는 것에 관심이 더 높았다고 할 수 있을 텐, 지금은 파인튜닝을 위해 데이터의 퀄리티를 최대한 끌어올리는 것의 중요성이 높아지고 있다고 볼 수 있지 않을까 싶습니다. 그런데 이 두 가지 방향은 데이터의 수집과 구축 과정에서 서로 다른 요구 사항을 발생시키죠. 이 논문의 경우에도 필터링을 위해 자동화된 필터링을 한 번 하고, 사람을 통해 필터링할 때에도 첫 단계로 일반적인 어노테이터들로 한 번 필터링한 다음 사진에 대한 이해가 있는 어노테이터들로 다시 한 번 필터링하는 흐름으로 진행했습니다. 그 과정에서 어떤 것이 더 높은 퀄리티의 이미지인가라는 기준에 대한 정립이 필요했고요.
#ddpm
https://arxiv.org/abs/2309.16609
Qwen Technical Report (Jinze Bai, Shuai Bai, Yunfei Chu, Zeyu Cui, Kai Dang, Xiaodong Deng, Yang Fan, Wenbin Ge, Yu Han, Fei Huang, Binyuan Hui, Luo Ji, Mei Li, Junyang Lin, Runji Lin, Dayiheng Liu, Gao Liu, Chengqiang Lu, Keming Lu, Jianxin Ma, Rui Men, Xingzhang Ren, Xuancheng Ren, Chuanqi Tan, Sinan Tan, Jianhong Tu, Peng Wang, Shijie Wang, Wei Wang, Shengguang Wu, Benfeng Xu, Jin Xu, An Yang, Hao Yang, Jian Yang, Shusheng Yang, Yang Yao, Bowen Yu, Hongyi Yuan, Zheng Yuan, Jianwei Zhang, Xingxuan Zhang, Yichang Zhang, Zhenru Zhang, Chang Zhou, Jingren Zhou, Xiaohuan Zhou, Tianhang Zhu)
알리바바의 LLM. 14B 모델을 3T 토큰에 대해 학습시켰고, 코드 모델도 만들었군요. 요즘 그렇듯 데이터셋 구성에 대해서는 그렇게 말을 많이 하고 있진 않습니다. 그래도 여기 나와있는 정도면 대략적이나마 기술했다고 할 수 있을 것 같기도 하네요.
요즘 나오는 모델들은 alignment 까지 거치고 나오고 있는데, 그래서 오히려 이쪽에 흥미로운 포인트들이 조금 더 있는 것 같네요. reward model을 위한 데이터의 구성 방법 등등.
#llm #alignment
https://arxiv.org/abs/2309.16588
Vision Transformers Need Registers (Timothée Darcet, Maxime Oquab, Julien Mairal, Piotr Bojanowski)
DINO (https://arxiv.org/abs/2104.14294) 같은 경우 외의 일반적인 ViT에서 (DINOv2의 경우에도) attention map을 열어보면 이미지 내의 객체에 예쁘게 정렬되어 있는 것이 아니라 군데군데 이미지 내 다른 영역에 튀는 패턴이 나타나는데, 이 문제에 대해 탐색했습니다. 이 튀는 토큰들을 보면 norm이 높고, 로컬한 정보는 없고 글로벌한 정보가 주로 들어 있다고 하네요. 근처 패치들과 비슷해서 중복된 정보가 많은 경우에 이 정보를 무시하고 글로벌한 정보를 처리하기 위해 사용한다는 것을 시사하네요. 글로벌한 정보를 처리하는 것 자체는 유용하지만 dense prediction 케이스를 생각하면 중요한 로컬 정보가 날아간다는 의미이기도 하죠.
그래서 이런 글로벌한 정보 처리를 위해 쓸 수 있는 토큰(레지스터)들을 몇 개 추가해줬습니다. 그랬을 때 attention map에서 발생하던 패턴들이 사라지고, 성능 또한 좀 더 향상되는 군요. Streaming LM과는 좀 다른 원인이긴 하지만 (https://arxiv.org/abs/2309.17453) 모델이 임의로 사용할 수 있는 토큰을 추가한다는 공통적인 아이디어는 흥미롭지 않나 싶습니다. 사실 토큰과 임베딩, 출력이 모두 일대일 대응되어야 할 필요는 없죠.
#vit #transformer
https://arxiv.org/abs/2309.16653
DreamGaussian: Generative Gaussian Splatting for Efficient 3D Content Creation (Jiaxiang Tang, Jiawei Ren, Hang Zhou, Ziwei Liu, Gang Zeng)
Gaussian Splatting (https://arxiv.org/abs/2308.04079) 기반 이미지/텍스트 to 3D 모델. 요즘 뉴럴 렌더링 커뮤니티에서는 Gaussian Splatting이 중요한 주제가 된 것 같더군요.
https://dreamgaussian.github.io/
#3d_generative_model
https://arxiv.org/abs/2309.16797
Promptbreeder: Self-Referential Self-Improvement Via Prompt Evolution (Chrisantha Fernando, Dylan Banarse, Henryk Michalewski, Simon Osindero, Tim Rocktäschel)
진화 알고리즘 기반 프롬프트 튜닝. 변이(Mutation) 프롬프트를 사용해서 과제 프롬프트를 변형하는 방식으로 작동하는데, 이 방법이 이전 방법들 (https://arxiv.org/abs/2309.08532) 과 다른 점은 변이 프롬프트 또한 변이를 통해 개선할 수 있는 형태로 시스템을 구성했다는 부분이겠습니다. 프롬프트 튜닝의 자기 개선을 목표했다고 할 수 있겠네요.
#prompt
https://arxiv.org/abs/2309.16240
Beyond Reverse KL: Generalizing Direct Preference Optimization with Diverse Divergence Constraints (Chaoqi Wang, Yibo Jiang, Chenghao Yang, Han Liu, Yuxin Chen)
RLHF 과정의 reverse KL 페널티를 다른 divergence로 바꿔 보려는 시도. reverse KL을 쓰면 diversity가 감소하지 않는가 하는 아이디어가 동기가 되죠. Direct Preference Optimization (https://arxiv.org/abs/2305.18290) 기반으로 loss에서 log 대신 다른 함수를 사용하는 방식으로 수정되는 군요. 이 loss는 다른 offline 세팅에서도 사용될 수 있으니 (https://arxiv.org/abs/2309.06657) 재미있을 것 같네요. 결국 diversity와 accuracy의 trade off 곡선 위에서 움직이는 것이긴 합니다만.
#alignment
https://arxiv.org/abs/2309.17179
Alphazero-like Tree-Search can Guide Large Language Model Decoding and Training (Xidong Feng, Ziyu Wan, Muning Wen, Ying Wen, Weinan Zhang, Jun Wang)
트리 서치 기반 디코딩 개선. 얼마 전의 MCTS 적용 (https://arxiv.org/abs/2309.15028) 이 떠오르는데 이쪽은 PPO를 거치지 않은 모델에서 value를 구성하는 것에서 시작합니다. 그리고 토큰 외에도 문장 단위 서치, 그리고 서치 알고리즘에 대한 탐색, 또한 서치 결과를 사용한 모델 개선 등의 세팅에서 다르다고 할 수 있겠네요.
#search
https://arxiv.org/abs/2309.17400
Directly Fine-Tuning Diffusion Models on Differentiable Rewards (Kevin Clark, Paul Vicol, Kevin Swersky, David J Fleet)
differentiable reward function을 사용해 rl 없이 바로 diffusion 모델을 학습시키는 방법. 샘플링 함수를 미분해야 하기 때문에 메모리 소모가 엄청난데 lora, gradient checkpointing을 사용하고, 거기에 더해 마지막 샘플링 스텝에서만 backward를 하는 것 + 노이즈를 사용해 추가 샘플을 만들어서 gradient variance를 줄이는 방법을 사용했습니다.
#ddpm #alignment