- [21′ PMLR] Learning Transferable Visual Models From Natural Language Supervision (CLIP)
- [22′ NIPS] Flamingo: a Visual Language Model for Few-Shot Learning
- [24′ Nature Communications] Bidirectional generation of structure and properties through a single molecular foundation model
1. 들어가며
최근 딥러닝과 인공지능 분야에서는 다양한 혁신적인 모델들이 등장하고 있습니다. 특히, 시각과 언어를 결합한 모델링 방법은 새로운 가능성을 열어주고 있죠. 이번 글에서는 그 중에서도 특히 주목할 만한 모델인 ‘Flamingo’에 대해 소개하고자 합니다. Flamingo는 기존의 한계를 뛰어넘는 새로운 접근 방식을 제시하며, 이 분야의 연구와 응용에 새로운 지평을 열고 있습니다.
기존의 모델들, 예를 들어 CLIP[1]은 zero-shot classification에서 뛰어난 성능을 보여주었지만, 여전히 한계가 있었습니다. 이러한 한계를 극복하고자 Flamingo는 few-shot learning에 중점을 두고 개발되었습니다. 이는 GPT-3[2]와 같은 대규모 언어 모델(Large Language Models, LLM)에서 볼 수 있는 접근 방식으로, 적은 데이터로도 높은 성능을 달성할 수 있는 가능성을 탐구합니다.
Flamingo 모델의 가장 큰 특징은 그 구조에 있습니다. 이 모델은 복잡한 입력과 출력 사이의 연산을 어떻게 처리하는지에 대한 명확한 설명과 함께, perceiver[4]와 cross attention 메커니즘을 중심으로 설계되었습니다. 이 부분은 기존의 다른 블로그 글에서 찾아보기 힘든 내용으로, Flamingo 모델의 핵심이자 이 글의 백미라고 할 수 있습니다. 복잡한 개념을 쉽고 명확하게 설명하여, 독자 여러분이 이 모델의 핵심을 이해하는 데 도움이 될 것입니다.
또한, Flamingo 모델의 실험 결과는 few-shot learning과 fine-tuning 실험을 통해 그 성능을 입증합니다. 이러한 실험들은 모델의 강력한 학습 능력과 빠른 적응력을 보여주며, 이 분야의 연구에 중요한 기여를 합니다. 실험 결과의 세부적인 분석을 통해 Flamingo 모델의 잠재력을 더욱 깊이 이해할 수 있습니다.
이 글에서는 또한 Flamingo 모델의 장단점과 그 의의에 대해서도 자세히 다룹니다. 모델의 장점과 함께, 그 한계와 사회적 영향에 대한 토론을 통해 모델에 대한 균형 잡힌 시각을 제공하고자 합니다. 이를 통해 독자 여러분은 Flamingo 모델이 가져올 수 있는 긍정적이고 부정적인 결과에 대해 더욱 깊이 생각해볼 수 있을 것입니다.
이 글을 통해 Flamingo 모델의 전반적인 개요와 그 중요성을 이해하고, 이 모델이 딥러닝과 시각-언어 모델링 분야에서 어떤 새로운 가능성을 열고 있는지 함께 살펴보시기 바랍니다. Flamingo 모델은 단순히 새로운 기술적 성과를 넘어, 우리가 인공지능을 이해하고 활용하는 방식에 중요한 변화를 가져올 것입니다.
2. 기존 방법의 문제점
먼저 Flamingo 이전 기존 방법들의 문제점을 한번 생각해보겠습니다. 기존에도 이미 Image와 Language를 동시에 다룰 수 있는 Multimodal Model이 존재했는데요. 대표적으로 CLIP[1]을 들 수 있습니다. CLIP[1]은 현재 LMM (Large Multimodal Model)의 시초라고 할 수 있는 모델인데요. 그 전에도 다양한 Multimodal Model들이 존재했지만 CLIP[1]은 대용량 Image-Text 데이터셋을 효과적으로 학습한 최초의 모델이기 때문이죠. 이렇게 CLIP[1]은 Image와 Text를 모두 효과적으로 다룰 수 있는 모델이었지만 여러 한계를 갖고 있었는데요. 대표적인 한계로 제한된 사용 방법을 들 수 있습니다. CLIP[1]은 당시로서는 엄청난 Zero Shot Prediction 성능을 보여 모두를 깜짝 놀라게 했는데요. 문제는 그 Zero Shot Prediction 성능만 놀라웠다는 것입니다. 그 외에 다른 놀라운 기능은 없었죠. 따라서 진정한 LMM으로 나아가기 위해서는 좀 더 범용적 사용이 가능한 모델이 필요했습니다.
한편 기존 LLM(Large Language Model)에서 이러한 문제의 돌파구 아이디어를 얻을 수 있는데요. 당시 대표적인 LLM인 GPT-3[2]를 예로 들어 생각해볼게요. GPT-3[2]는 Few Shot Learning의 중요성과 활용법을 강조한 논문입니다. 기존 LLM들은 공통적으로 최종 Target Task 데이터셋으로 Fine Tuning하여 사용했는데요. 그러다보니 특정 문제별로 개별 모델을 보유해야 한다는 문제가 있었습니다. GPT-3[2]에서는 이렇게 번거로운 Fine Tuning 작업 없이, Few Shot Learning 방법을 사용하면 기존 모델들보다 성능이 좋으면서 범용적으로 사용 가능한 모델 개발이 가능함을 보였죠.
이에 Flamingo 저자들은 이러한 LLM에서의 아이디어를 Vision Language Model에 적용해 기존 한계를 극복할 수 있는 방법을 모색합니다. 이렇게 적용한 아이디어는 크게 두가지로 정리해볼 수 있는데요. 첫 번째는 데이터셋입니다. LLM에서의 Large는 모델이 크다는 의미도 있지만, 큰 데이터셋을 사용한다는 의미도 포함되어 있거든요. 따라서 LLM의 방향으로 발전하기 위해서는 Image-Text 쌍으로 이루어진 대용량의 데이터셋 제작이 필요했습니다. 두 번째는 Few shot Learning 방법의 활용입니다. Flamingo는 이 두 가지 포인트를 적극적으로 반영하여 새로운 LMM을 제작합니다. 자세한 내용은 아래 챕터에서 다루도록 하겠습니다.
이렇게 만들어진 Flamingo 모델의 성능을 간단하게 살펴보고 시작할게요. 기존 모델이었던 CLIP[1]은 Zero Shot Prediction을 잘 하는 모델이었는데요. 그 말은 엄밀히 말하면 CLIP[1]은 LMM이라기 보다는 Vision Model이라는 뜻이죠. 입력된 이미지의 Class를 구분할 수 있는 모델인데, 기존 Vision Model과 달리 Text를 활용할 수 있기에 Zero Shot Prediction이 가능한 모델이죠. 반면 Flamingo는 전혀 다릅니다. Vision Model 보다는 Language Model에 더 가깝죠. Flamingo가 수행하는 문제 예시를 보면 더 쉽게 이해할 수 있습니다.
위 그림은 Flamingo 모델의 입출력 예시를 보여주고 있는데요. 우선 Flamingo 모델이 받는 입력은 Input Prompt라고 부를게요. 그리고 그 출력은 오른쪽 빨간색 영역에 Completion으로 표현하겠습니다. 즉 Flamingo는 Input Prompt를 입력으로 받아 Completion을 출력으로 내는 모델인데요. 재미있는 특징은 위 그림에서 보는 것 처럼 입력으로 Image, Text를 모두 받을 수 있고요, 그에 대해 가장 적절한 Text를 출력으로 내준다는 점입니다. 기존 LLM은 Text만을 입력으로 받고 마찬가지로 Text 만을 출력해주었잖아요. 또 기존 Vision Model은 Image 만을 입력으로 받아 Label, Text 를 출력으로 낼 수 있었죠. 하지만 지금까지 Image와 Text를 모두 입력으로 받아 그에 해당하는 Text를 출력할 수 있는 모델은 없었습니다. Flamingo는 이를 가능하게 한 것이죠.
위 샘플 그림을 보면 앞의 두 예시는 Few Shot에 해당합니다. 첫 번째 예시는 Chincilla 사진과 이에 대한 Text 설명이죠. 두 번째 예시는 시바견 사진과 이에 대한 Text 설명입니다. 그리고 세번째 입력은 문제에 해당합니다. 플라밍고 사진을 주고 ‘이것은’ 까지만 입력해준 것이죠. 이에 대한 Flamingo 모델의 대답이 우측 Text 인데요. 앞서 Few Shot 으로 입력받은 예시와 동일한 포멧으로 플라밍고에 대해 설명한 Text를 출력해주는 모습을 볼 수 있습니다.
뿐만 아니라 위 그림에서는 입력으로 받은 이미지에서 설명하는 사칙 연산도 가능한 모습을 볼 수 있고요.
위 그림에서는 입력으로 받은 이미지를 분석하여 질문에 대한 적절한 대답을 하는 모습도 볼 수 있습니다.
또한 위 그림에서는 입력으로 받은 영상과 그 질문에 대해 적절한 대답을 하는 모습을 볼 수 있죠.
뿐만 아니라 입력으로 받은 이미지에 대해 대화까지 가능한 모습을 볼 수 있는데요. 이러한 모습은 현재의 GPT-4V와 같은 LMM과 동일한 기능을 보여주고 있죠. 이렇게 엄청난 기능을 보여주는 Flamingo 모델인데요. 아래 챕터에서는 어떠한 방법으로 이렇게 엄청난 기능이 가능했는지 살펴보겠습니다.
3. Flamingo
이번 챕터에서는 Flamingo 모델의 구현 방법을 살펴보겠습니다. 크게 네가지 세부 챕터로 나누어 살펴볼건데요. 먼저 Flamingo 모델의 전체 Architecture를 살펴보겠습니다. Flamingo 모델의 가장 중요한 포인트는 크게 두가지로 볼 수 있는데요. 첫 번째는 Perceiver[4] 부분입니다. Flamingo는 입력으로 Image와 Text를 받아야 하잖아요. 그리고 이렇게 입력받은 Image와 Text를 같이 연산해주어야 하죠. 이를 위해서는 필연적으로 Image와 Text Feature의 차원을 동일하게 맞춰주어야 합니다. 이를 위해 사용하는 모듈이 Percervier입니다. 이 내용은 두 번째 세부 챕터에서 살펴봅니다. 또한 Image Feature와 Text Feature를 동시에 고려하여 연산하기 위한 Cross Attention 방법은 세 번째 세부 챕터에서 살펴보겠습니다. 마지막으로 간단하게 Flamingo 모델에서 사용한 데이터셋에 대해 살펴보도록 하겠습니다.
3-1. Architecture
가장 먼저 살펴볼 부분은 Flamingo 모델의 Architecture입니다. 다시 한번 생각해야할 부분은요, Flamingo 모델은 기본적으로 Image와 Text를 입력으로 받고, Text를 출력으로 내보내야 하는 모델이라는 겁니다. 이때 받아야 할 입력은 모델에게 대답의 예시로 제공되는 Few Shot들과, 문제로 구성되어 있죠. 이점을 고려하여 Flamingo 모델의 Architecture를 가장 높은 레벨에서 구성을 살펴보면 다음과 같습니다.
위 그림은 Flamingo 모델의 구성을 가장 높은 레벨에서 단순화하여 표현한 그림입니다. 먼저 왼쪽에서는 입력으로 받는 두개의 이미지를 보여주고 있습니다. 이 두 이미지는 학습 되어 있는 Vision Encoder를 통해 Feature로 추출됩니다. 이렇게 나온 Vision Feature는 그 특성상 매우 고차원의 벡터 형태를 갖고 있는데요. 이래서는 Text Feature와 같이 연산해줄 수가 없잖아요. 따라서 Perceiver[4]라는 모듈을 사용해 Text Feature와 동일한 저차원 벡터로 변환해줍니다.
그리고 그림의 아래쪽에서는 입력으로 받은 Text를 표현하고 있는데요. 각 이미지와 매칭되어 ‘This is a very cute dog.’ 이라는 문장과 ‘This is’ 라는 두개의 문장으로 구성되어 있습니다. 이렇게 입력으로 들어온 Text 벡터는 입력으로 들어온 Vision Feature와 Cross Attention을 거쳐 정보를 융합해줍니다. 최종적으로는 미리 학습된 Language Model에서 이렇게 융합된 정보를 받아 최종 Output을 출력해줍니다. 위 예시에서는 고양이 사진을 설명해주는 Text인 ‘A very serious cat.’ 이 정답 출력에 해당합니다. 이 출력은 Few Shot 예시에 대응하도록 고양이 이미지를 설명해주는 문장에 해당하죠.
이때 꼭 기억해야 하는 포인트는 ‘어떤 연산을 학습하고, 어떤 연산을 고정하는지’ 입니다. 위 그림에서 각 모듈에 Freeze와 Fire 표시를 추가했는데요. Freeze로 표현한 연산은 이번 과정에서 학습하지 않고 기존 학습된 가중치를 그대로 사용합니다. 위 그림에서는 Vision Encoder와 Text Encoder에 해당하죠. 반대로 Fire로 표현한 연산은 이번 학습 과정을 통해 가중치를 변경해줄 모듈들인데요. 위 그림에서는 Perceiver[4]와 Cross Attention에 해당합니다.
단순히 무엇을 고정했고, 무엇을 학습했는지가 중요한건 아니고 이 의미를 깊게 고민해봐야 하는데요. Flamingo를 포함한 많은 LMM들에서는 Vision Encoder와 Language Encoder의 가중치를 학습하지 않습니다. 기존 학습된 모델의 가중치를 고정해서 사용하죠. 그리고 이 두 도메인 정보를 합쳐주는 연산만 학습합니다. Flamingo에서는 Perceiver[4]와 Cross Attention에 해당합니다. 이 말은 LMM의 능력을 내기 위해서 시각 정보 처리 능력과 언어 능력을 추가로 학습할 필요가 없다는 의미입니다. 다만 중요한건 기존에 이미 학습한 시각 정보와 언어 정보 처리 능력을 잘 조합해서 최종 출력을 내는 기능을 잘 학습하는 것이죠. 이 부분은 LMM별로 다른 아이디어가 적용되고 있고, 성능 차이에 일정 부분 영향을 주는것으로 판단됩니다.
3-2. Perceiver : Vision Feature 압축하기
이제 연산 과정을 조금 더 자세히 살펴보겠습니다. 먼저 살펴볼 부분은 Perceiver[4] 부분인데요. 이 부분은 기존에 발표된 Perceiver[4] 라는 논문에서 제안된 연산 방법입니다. 핵심 내용은 서로 다른 차원을 갖는 Embedding을 Cross Attention 한다는 것인데요. 그림으로 보면 다음과 같습니다.
우선 Flamingo 모델에서는 Vision Feature와 Text Feature를 같이 연산해주어야 하는데요. 이때 Vision Feature는 Text Feature보다 일반적으로 훨씬 큰 차원을 갖죠. 따라서 이 둘을 동시에 연산하기 위해서는 Vision Feature의 차원을 Text Feature에 맞게 축소해줄 필요가 있습니다. 위 그림에서는 아래쪽에서 고차원 벡터에 해당하는 Vision Feature를 초록색 계열로 표현하고 있습니다. 이제 이 Vision Feature를 저차원으로 축소해야 하는데요. 이때의 타겟 벡터를 회색으로 표현하고 있습니다. 이 과정은 이후 Cross Attention 연산을 통해 수행되는데요. 그럼 Query로 들어가는 저차원 벡터는 무엇을 의미할까요? 저자들은 DETR와 마찬가지로 Learned Latent Vector를 사용했다고 표현하고 있는데요. 문맥상 DETR와 마찬가지로 위치정보 벡터를 사용한 것으로 추정됩니다. 이렇게 Learned Latent Vector는 Query로, Vision Feature를 Key,Value로 하여 Cross Attention을 수행하는거죠. 그럼 최종적으로는 최종 Target Task를 학습하기에 가장 적합한 형태의 Vision Feature가 나오게 되는데요, 이때의 차원은 Learned Latent Vector와 동일한 차원을 갖게 되는것이죠.
3-3. Cross Attention : Vision & Language 정보 연산하기
이제 Vision Feature를 Text Feature와 동일한 차원으로 맞춰 주었으니, 이 둘을 잘 섞어줄 차례입니다. 이를 위해서는 Cross Attention 연산이 제격인데요. 그림으로 표현하면 다음과 같습니다.
먼저 Query, Key, Value로는 무엇을 사용할지 정해줘야 하는데요. 우리가 최종적으로 출력할 정보는 Text 잖아요. 따라서 Query 로는 Text Feature를 사용해줍니다. 여기에 Vision 정보를 추가해주는 것이죠. 그래서 Key, Value로는 Vision Feature를 사용해줍니다.
이때 또 중요한 포인트가 있는데요. 바로 Masking의 적용입니다. 잠깐 Transformer[3]를 사용한 번역 과정을 다시 한번 떠올려볼게요. 이때 Transformer[3] Decoder에서도 Masking을 적용한 Cross Attention을 수행하는데요. 번역을 학습하는 과정에서 다음 단어는 정답에 해당하기에 이 부분은 제외하고 제공받아야 하기 때문이죠. 따라서 지금 순서 이후의 단어들은 모두 Masking 하여 학습합니다.
동일한 논리가 Flamingo의 Cross Attention 연산에서도 적용되는데요. Flamingo는 여러개의 Image와 Text를 입력받는 모델이잖아요. 그리고 각 Image와 Text는 매칭되는 쌍이 존재하고요. 따라서 각 Image와 Text는 본인의 매칭쌍에 해당하는 데이터만 참고해야 합니다. 다른 데이터를 참고하면 Transformer[3]에서 다음 번역해야 할 단어를 보는것과 비슷한 상황이 되어버리는거죠. 따라서 위 그림에서는 각 Image와 매칭되는 Text 쌍만 Attention할 수 있도록 나머지는 Masking 처리한 모습을 볼 수 있습니다.
3-4. Dataset
여기까지 Flamingo 모델의 핵심적인 내용을 살펴봤습니다. 이번에는 데이터셋 구성을 살펴볼건데요. LLM, LMM등의 초거대 모델들에서는 물론 모델 구성도 중요하지만 데이터셋도 매우 중요합니다. 초거대모델을 뜻하는 첫 글자 L은 모델이 Large 하다는 의미뿐만 아니라 학습한 데이터셋도 Large 하다는 의미를 갖고 있죠.
따라서 Flamingo에서도 기존 Vision Model과는 차별화되는 능력을 보이기 위해 차별화된 데이터셋이 필요했습니다. 기존 Caption 데이터셋 수준으로는 감당할 수 없었죠. 그래서 기존 데이터셋에 더해 새로운 데이터셋을 몇가지 새로 제작합니다.
첫 번째 데이터셋은 M3W 데이터셋입니다. Image-Text 쌍으로 되어 있는 데이터셋이고요. 43M 개의 웹페이지로부터 추출한 데이터셋입니다. 구성 언어는 모두 영어로만 구성되어 있습니다.
두 번째 데이터셋은 LTIP 데이터셋입니다. 마찬가지로 Image-Text 쌍 데이터셋입니다. 개수는 3억 1200만개입니다.
세 번째 데이터셋은 VTP 데이터셋입니다. 전 두가지 데이터셋과 달리 Video-Text 쌍 데이터셋입니다. Flamingo는 여러개의 Image를 입력으로 받을 수 있기에 영상도 처리할 수 있죠. 이를 위한 데이터셋을 구성했습니다. 개수는 2700만개입니다.
웹페이지로부터 크롤링을 한 덕분에 데이터셋 사이즈가 확실히 기존 데이터셋과는 비교가 되지 않을 정도로 거대한 모습을 볼 수 있는데요. Flamingo는 이렇게 거대한 데이터셋으로부터 학습한 덕분에 기존 Vision Model들과는 차별화되는 성능을 보여줄 수 있었습니다.
4. 실험 결과
지금까지 Flamingo 이전 방법들의 한계를 살펴봤고요, 이어서 이러한 한계를 극복하기 위해 Flamingo 저자들은 어떠한 시도를 했는지 자세히 살펴봤습니다. 이번 챕터에서는 실제로 그 한계를 극복했는지, 그 정도는 어떠했는지에 대한 실험 결과를 살펴보겠습니다.
실험 결과는 크게 두가지로 나누어 살펴볼건데요.
첫 번째는 Few Shot Learning 성능입니다. 처음에도 밝혔듯, Flamingo 모델은 LLM의 GPT-3[2]와 같이 Few Shot Learning 방법론을 적극 활용했다고 했는데요. 당연히 Few Shot Learning 성능이 주요 목표였던 만큼, Few Shot Learning 성능을 살펴봐야겠죠?
두 번째는 Fine Tuning 성능입니다. 물론 Flamingo는 Fine Tuning 없이도 거의 모든 태스크를 잘 하는 모델이긴 합니다만, 기존의 각 태스크별로 최고 성능을 내는 모델들과 성능 비교를 해보기 위해 Fine Tuning 성능을 비교해봤습니다.
4-1. Few Shot Learning
먼저 확인해 볼 실험은 Few Shot Learning 실험입니다. 총 16개의 벤치마크를 사용하여 성능을 측정할건데요. 각 벤치마크마다 모델을 Fine Tuning 하지 않을겁니다. 그저 사전 학습을 완료한 Flamingo 모델에게 몇 가지 예시만을 제공하고 문제를 풀도록 시키는거죠.
위 그림은 이러한 실험 결과를 보여주고 있습니다. X축을 따라 16개의 벤치마크가 나열되어 있고요. Y축으로는 크기에 따른 다양한 Flamingo 모델과 SOTA 모델의 성능을 보여주고 있습니다. 한 눈에 보기에도 기존 SOTA 모델들을 거의 넘어선 것으로 보이는데요.
위 그림을 통해 좀 더 쉽게 성능 비교를 할 수 있습니다. 왼쪽은 기존 SOTA 모델과 Flamingo 모델의 벤치마크별 Few Shot Learning 성능을 비교한 그래프인데요. 모든 벤치마크에서 Flamingo 모델의 성능이 각 벤치마크별 SOTA 모델을 넘어선 모습을 볼 수 있습니다.
또한 오른쪽 그림에서는 크기별 Flamingo 모델을 Shot 개수에 따라 성능을 비교한 그래프입니다. 이 결과를 통해 우리는 세가지 교훈을 얻을 수 있습니다.
첫 번째 교훈은 먼저 Few Shot으로 입력 가능한 데이터 개수가 Flexible 하다는 것입니다. 32 Shot 까지도 가능한 모습을 볼 수 있죠.
두 번째 교훈은 샷 개수가 늘어날 수록 성능이 좋아진다는 점입니다. 이는 모델 입장에서 활용할 수 있는 예시 데이터가 많아졌기 때문으로 상식적으로 이해할 수 있습니다.
세 번째 교훈은 큰 모델일수록 다양한 개수의 샷을 잘 활용한다는 점입니다. 80B 모델에서는 16샷보다 32샷의 성능이 더 증가하는 모습을 보이죠. 반면 작은 모델들에서는 그 성능 차이가 적은 모습을 보여줍니다. 이를 통해 큰 모델에서는 더 많은 샷을 받아도 이를 잘 활용하여 성능을 더 높일 수 있음을 알 수 있죠.
4-2. Fine Tuning
Few Shot Learning 성능은 굳이 비유를 하자면 공부하지 않고 본 시험 결과라고 할 수 있겠는데요. 마치 지금 바로 수능 시험을 보고 얻은 성적처럼 말이죠. 이 성적은 시험 범위에 맞게 공부해서 얻은 성적이 아니고, 내가 알고 있는 지식만으로 얻은 성적이잖아요. 따라서 해당 모델의 ‘상식’ 능력을 평가했다고 생각하면 적절할 것 같습니다.
반면 우리도 시험 범위에 맞는 자료를 공부하고 시험보면 해당 과목의 성적이 더 좋아지잖아요? 마찬가지로 모델들도 해당 태스크 데이터로 추가 학습을 하고 나면 성능이 더 좋아집니다. 이 성능은 이 모델이 해당 태스크에서 낼 수 있는 최대 성능에 해당한다고 볼 수 있죠.
위 그림은 이렇게 Fine Tuning 을 진행한 Flamingo 모델과 각 벤치마크별 SOTA 모델들의 성능을 비교한 표입니다. 이 표를 통해 우리는 두가지 교훈을 얻을 수 있습니다.
첫 번째 교훈은 Fine Tuning을 진행한 Flamingo 모델은 32 Few Shot 모델보다 거의 항상 성능이 더 좋다는 점입니다. 이는 앞서 사람의 시험 성적을 통한 비유로 이해할 수 있을 것 같습니다. 다만 사람과 달리 딥러닝 모델은 Fine Tuning을 진행하면서 ‘상식’ 수준은 떨어진다는 차이점이 있습니다. 해당 태스크에 특화되면서 일반적인 능력을 조금씩 잃어버리는 특징이 있죠.
두 번째 교훈은 5개의 태스크에서 Flamingo Fine Tuning 모델이 SOTA 성능을 넘어섰다는 점입니다. Flamingo 모델은 애초에 Fine Tuning 성능을 타켓으로 하지 않았음을 감안할때, 각 태크스별 최고 성능 모델을 여러개나 넘어섰다는 점은 놀랍다고 할 수 있습니다.
5. Discussion
이번 챕터에서는 Flamingo 논문에서 제시하고 있는 토론 주제에 대해 정리해보겠습니다.
5-1. Limitations
지금까지 Flamingo 모델의 놀라운 능력들을 확인해봤는데요. 하지만 이렇게 놀라운 Flamingo 모델에도 한계가 존재합니다. 논문에서는 크게 두가지 한계를 지적하고 있습니다.
첫 번째 한계는 낮은 Classification 성능입니다. 애초에 Flamingo 모델의 CLIP[1] 모델이 Zero Shot Classification 성능만 좋은 점을 한계로 지적하며 시작했는데요. 이래서는 범용적인 Vision Language Model이 될 수 없다면서 말이죠. 반대로 Flamingo 는 Classification에 특화되지 않았기에, Classification 성능이 낮은 문제를 지적하고 있습니다.
두 번째 한계는 데이터 편향 문제입니다. 이는 요즘 발표되고 있는 대부분의 LLM, LMM 등에서도 마찬가지인데요. 아무래도 웹페이지에서 크롤링한 데이터로 학습한 모델이기에 정제되지 않은 데이터의 영향을 많이 받을 수밖에 없는데요. 일일이 데이터를 확인할 수 없기에 이 데이터가 편향되어 있다면 이 영향은 고스란히 모델에게 전달되겠죠.
5-2. Societal Impacts
두 번째로는 사회적 영향에 대해 언급하고 있습니다. 결론적으로 말하자면 Flamingo 모델의 성능은 엄청나지만, 그 성능이 엄청난 만큼 이 능력이 악용 되었을때의 악영향이 너무나 우려스럽다고 말하고 있습니다. 이 또한 현재의 LLM, LMM 모두에게 해당하는 말일텐데요. 심지어 Flamingo 이후 출시된 모델들은 더욱 엄청난 성능을 보여주고 있죠. 이는 좋은 의도로 사용된다면 사람을 편리하게 만들어주겠지만, 악용된다면 사기, 테러 등 다양한 분야에서 상상할 수 없는 파급력을 낼 것으로 예상되기도 합니다.
6. 장단점
지금까지 Flamingo 모델의 주요 내용을 살펴봤습니다. 이번 챕터에서는 이러한 내용을 바탕으로 Flamingo 모델의 장단점에 대해 생각해보겠습니다.
6-1. 장점
첫 번째 장점은 다양한 작업 적응 능력입니다. Flamingo는 다양한 이미지 및 비디오 작업에 빠르게 적응할 수 있는 능력을 가지고 있습니다. 이는 특히 데이터가 부족한 상황에서 유용합니다.
두 번째 장점은 강력한 Few-Shot 학습 능력입니다. 이 모델은 적은 수의 예시로 새로운 작업에 대해 빠르게 학습하고, 최고 수준의 성능을 달성할 수 있습니다.
세 번째 장점은 Vision-Language 통합 모델이라는 점입니다. Flamingo는 시각적 입력과 언어적 입력을 통합하여 처리할 수 있는 능력을 가지고 있어, 보다 복잡한 시각-언어 작업을 수행할 수 있습니다.
네 번째 장점은 향상된 접근성입니다. 이 모델은 비전문가 사용자들도 쉽게 사용할 수 있도록 설계되었으며, 다양한 형식과 작문 스타일로 질문을 할 수 있는 대화형 인터페이스를 제공합니다.
다섯 번째 장점은 모델 재활용이 가능하다는 점입니다. Flamingo는 기존에 훈련된 언어 모델과 시각 인코더를 활용하여, 새로운 모달리티를 도입함으로써 비용이 많이 드는 재훈련을 피할 수 있습니다.
6-2. 단점
첫 번째 단점은 Classification 성능의 한계입니다. Flamingo는 분류 작업에서 대조적 모델에 비해 성능이 떨어질 수 있습니다. 이는 모델이 분류 작업에 직접 최적화되어 있지 않기 때문입니다.
두 번째 단점은 편향과 스테레오타입 전파 문제입니다. 대규모 언어 모델과 마찬가지로, Flamingo는 훈련 데이터에서 비롯된 편향과 스테레오타입을 전파할 위험이 있습니다.
세 번째 단점은 개인 정보 유출 위험입니다. 이 모델은 개인 정보를 유출할 수 있는 위험을 안고 있으며, 이는 특히 시각적 입력을 처리할 때 더욱 심각할 수 있습니다.
네 번째 단점은 사회적 위험입니다. Flamingo의 능력은 유익한 응용뿐만 아니라 악의적인 응용에도 사용될 수 있어, 사회적 위험을 안고 있습니다.
7. 의의
마지막으로 Flamingo 모델의 의의에 대해 생각해보겠습니다.
첫 번째 의의는 Few-Shot Learning의 새로운 기준 설정했다는 점입니다. Flamingo는 적은 수의 예시를 사용하여 다양한 시각적 및 언어 작업에 빠르게 적응할 수 있는 능력을 보여줌으로써, few-shot learning 분야에서 새로운 기준을 설정했습니다. 이는 특히 데이터가 부족한 상황에서 유용하며, 기존의 방법들과 비교하여 뛰어난 성능을 보여줍니다.
두 번째 의의는 Vision-Language Model의 발전입니다. Flamingo는 시각적 및 언어적 입력을 통합하여 처리하는 능력을 갖추고 있어, 시각-언어 모델링 분야에서 중요한 발전을 나타냅니다. 이는 복잡한 시각-언어 작업을 수행할 수 있는 새로운 가능성을 열어줍니다.
세 번째 의의는 다양한 응용 가능성을 열어주었다는 점입니다. Flamingo의 다양한 작업 적응 능력은 여러 분야에서의 응용 가능성을 제시합니다. 예를 들어, 의료 이미지 분석, 자동 캡셔닝, 시각적 질문-답변 시스템 등 다양한 분야에서 활용될 수 있습니다.
네 번째 의의는 접근성과 사용 용이성입니다. Flamingo는 비전문가 사용자들도 쉽게 사용할 수 있도록 설계되었으며, 이는 기술의 접근성을 높이고, 보다 넓은 사용자층에게 도달할 수 있게 합니다.
다섯 번째 의의는 기존 모델의 재활용 방법을 열어준 점입니다. Flamingo는 기존에 훈련된 언어 모델과 시각 인코더를 활용하여, 새로운 모달리티를 도입함으로써 비용이 많이 드는 재훈련을 피할 수 있습니다. 이는 자원과 시간을 절약하는 동시에, 기존 모델의 잠재력을 최대한 활용할 수 있게 합니다.
8. 마치며
이 글을 통해 Flamingo 모델의 다양한 측면을 살펴보았습니다. 이 모델은 기존의 한계를 넘어서는 새로운 접근 방식을 제시하며, 시각과 언어를 결합한 인공지능 분야에서 중요한 발전을 이루었습니다. Flamingo의 독특한 구조와 few-shot learning 능력은 이 분야의 연구와 응용에 새로운 방향을 제시합니다.
우리는 Flamingo 모델의 구조와 작동 원리를 자세히 살펴보았습니다. 특히, perceiver[4]와 cross attention 메커니즘에 대한 설명은 이 모델의 핵심을 이해하는 데 중요한 역할을 했습니다. 이러한 복잡한 개념들을 쉽게 설명하려 노력했으며, 이를 통해 독자 여러분이 이 모델의 중요성을 더욱 깊이 이해하셨기를 바랍니다.
또한, Flamingo 모델의 실험 결과와 그 의의를 살펴보며, 이 모델이 어떻게 다양한 작업에 적응하고 높은 성능을 달성하는지 확인할 수 있었습니다. 이러한 실험적 접근은 모델의 실제 성능을 이해하는 데 중요한 기준이 되었습니다.
이 글에서는 Flamingo 모델의 장단점과 사회적 영향에 대해서도 깊이 있게 다루었습니다. 이러한 토론은 모델에 대한 균형 잡힌 시각을 제공하며, 인공지능 기술의 발전이 우리 사회에 미치는 영향에 대해 생각해볼 기회를 제공합니다.
마지막으로, Flamingo 모델의 의의를 되새겨보며, 이 모델이 딥러닝과 시각-언어 모델링 분야에서 어떤 새로운 가능성을 열고 있는지 강조하고자 합니다. Flamingo는 단순히 기술적인 성과를 넘어, 우리가 인공지능을 이해하고 활용하는 방식에 중요한 변화를 가져올 것입니다.
이 글을 마무리하며, Flamingo 모델이 앞으로 어떤 새로운 변화와 가능성을 가져올지 기대해봅니다. 이 모델은 분명히 이 분야의 연구와 응용에 큰 영향을 미칠 것이며, 우리의 일상 생활에도 긍정적인 변화를 가져올 것입니다. Flamingo 모델에 대한 여러분의 관심과 통찰이 이 분야의 미래를 밝게 할 것입니다.
너무 잘 정리해주셔서 감사합니다. 많이 배우고 갑니다!
감사합니다! 좋은 하루 되세요!
정말 잘 읽었습니다! 감사합니다.
질문이 있는데, 4.1에 pretrained FT SOTA와 4.2에 Sota는 어떤게 다른건가요..?
논문에 따르면 4.2 테이블 (그림11) SotA 성능에 십자가 표시가 있는 결과는 모델 앙상블 또는 domain specific metric optimisation 같은 트릭을 사용한 성능이라고 합니다. 십자가 표시가 없는 성능은 4.1과 일치하는 모습을 볼 수 있습니다.
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.
Sure, What can I do for you?