멀티모달 LLM 기초 연구: CLIP → Flamingo → LLaMA → Vicuna
1. 멀티모달 LLM은 왜 중요할까요?
추상적 답변: 인간이 이해하고 표현하는 다양한 정보 표현방식을 모두 이용함으로써 더 포괄적이고 다양한 문제를 풀 수 있다는 점입니다.
엔지니어적 답변: zero-shot, few-shot 등 예시가 없거나 적은 경우에도 다양한 task를 풀 수 있다는 점에서 매력적인 모델입니다.
구체적인 예시를 하나 보겠습니다. GPT-4에 홀란드의 사진을 입력으로 주고 이름을 알려주면, 얼굴인식·ReID 등의 task를 한 번에 풀 수 있게 됩니다.
한 번의 정확한 예시 제공(이름)만으로 얼굴인식, ReID 등의 task를 풀 수 있게 된다는 점이 굉장히 놀랍습니다. (단, 정확도면에서는 task-specific 모델보다 낮은 performance를 보이는 경우가 아직은 많다는 점도 함께 기억해야 합니다.)
2. 멀티모달 LLM 발전의 두 출발점
CLIP — 이미지와 텍스트를 같은 공간으로
CLIP은 이미지와 텍스트를 동일한 embedding space에 매칭되도록 학습된 multi-modal model입니다. 이때까지 모든 task는 이미지 데이터를 활용한 task, 텍스트 데이터를 활용한 task로 명확히 나뉘어졌는데, CLIP 이후부터는 이미지와 텍스트를 함께 사용해 더 폭넓은 정보를 활용할 수 있게 되었습니다.
Flamingo — CLIP을 활용한 completion task
CLIP의 단점: zero-shot classification 성능에서는 좋은 성능을 보이지만 그 이외의 task에서는 성능이 떨어진다는 특징이 있습니다.
Flamingo의 의미: 높은 few-shot learning 성능, CLIP보다 높은 범용성, image-text를 함께 input으로 받는다는 점이 큰 특징입니다.
그 이후: BLIP2, RAM과 같은 vision-text 중심의 학습이 가능한 모델들이 등장했지만, GPT와 같은 질의응답 형식으로 확장은 불가능하다는 단점이 존재합니다.
LLM History
현재 많은 기업에서 LLM을 개발하고 있으며, 주류를 이루고 있는 기업 세 곳을 꼽자면 OpenAI, Meta, Google입니다.
LLaMA — Meta의 오픈소스 전략
ChatGPT의 흥행이 이어지던 2023년 초 Meta에서도 언어모델을 하나 발표했습니다. 세 가지 핵심 특징이 있습니다.
- Open source: v1에서는 일부 연구기관에서 사용 가능, v2에서는 전체 공개
- Public DB만 사용: 공개 데이터만으로 학습 + 자체 정제 모델을 사용하여 데이터 퀄리티 향상
- sLLM (small LLM): 이전 Foundation model들은 학습 성능에만 주로 초점을 맞춰 추론 시의 computing resource를 고려하지 않았지만, LLaMA는 추론 효율을 함께 고려
Meta가 LLaMA를 공개한 이유는 세 가지로 요약할 수 있습니다.
- 개발자 생태계 확장: LLaMA 기반의 연구, 개발 및 피드백을 통해 기술력 향상 + 인재유치
- AI 생태계 주도권 확보: AI 선도 기업 이미지, AI 규제 압박 완화
- 장기적인 AI 시장 확보: 콘텐츠 생성 AI가 활성화되면 자체 플랫폼(Facebook, Instagram)과의 시너지 + 이용자 데이터 확보 용이
Alpaca — LLaMA의 Instruction Tuning
Stanford에서 LLaMA를 instruction tuning한 모델입니다. 자체 instruction following data를 이용한 fine-tuning이 핵심입니다. Instruction-following data란 LLM이 수행해야 할 task에 대한 정보를 instruction 형태로 주어진 data를 의미합니다.
self-instruct 논문에서 LLM을 이용해 자체 생산한 self-instruction data가 모델 성능을 올리는 데 도움이 된다고 주장했고, Alpaca는 이 방식을 채택해 학습했습니다.
Vicuna — 오픈소스 최강자
Alpaca와 동일하게 LLaMA를 fine-tuning하는 방식이지만, 성능면에서 당시 오픈소스 중 가장 높은 성능을 기록했습니다. 7시간 동안 A100 8대로 학습이 완료됩니다.
| 모델 | 베이스 | Data | 핵심 특징 | 성능 |
|---|---|---|---|---|
| Alpaca | LLaMA | 52K GPT-3 생성 데이터 | Self-instruct 기반 fine-tuning | 기준점 |
| Vicuna | LLaMA | 70K ShareGPT 대화 | 실제 사용자-ChatGPT 대화로 학습 | Bard 수준 ★ |
Alpaca vs Vicuna 핵심 차이: Alpaca는 GPT-3 프롬프트로 생성한 52K 예제로 fine-tuning한 반면, Vicuna는 ChatGPT 대화를 공유하는 ShareGPT에서 약 70K개의 실제 사용자-ChatGPT 대화를 수집하여 fine-tuning했습니다.
가장 충격적인 결과는 Google의 Bard보다 훨씬 가볍게 구성했는데 거의 동일한 성능이 나왔다는 점입니다. 이후 Multi-modal LLM에서 LLM 백본으로 Vicuna를 사용하는 흐름이 생겨납니다.