[MiniGPT-4] Enhancing Vision-Language Understanding with Advanced Large Language Models
[MiniGPT-4] Enhancing Vision-Language Understanding with Advanced Large Language Models
- King Abdullah University of Science and Technology, ICLR 2024
- “Enhancing Vision-Language Understanding with Advanced Large Language Models”
💡 고품질 데이터와 llm의 체급이 vision-language 모델 성능에 중요함
abstract
- gpt-4의 놀라운 능력 - llm
- 본 연구는 frozen vision encoder와 llm (vicuna)를 하나의 projection layer로 정렬함
- 비전 특징을 고성능 llm과 적절히 정렬하는 것만으로도 gpt-4가 보여준 고급 멀티모달 능력을 구현할 수 있음을 증명함
- 창발적 능력 - 상세한 이미지 설명 생성, 초안 → 웹사이트 코드 생성 등
- 2단계 학습의 필요성
- 짧은 이미지-캡션 pair로만 학습했을 경우 부자연스러운 언어출력
- 고품질의 상세 이미지 설명 데이터셋을 구축해서 2단계 fine-tuning을 진행하여 생성 결과의 신뢰도와 사용성을 크게 높임
- “gpt-4의 성능을 흉내내기 위해서 blip-2에서 llm을 더 좋은걸로 교체하고 그걸 연결하는 projection layer를 도입함. 데이터 curation을 통해 자연스러운 언어 출력을 하게함”
introduction
- gpt-4의 등장
- 기존 모델에서 보기 힘든 강력한 멀티모달 성능을 보여줌, 하지만 closed 모델 (구조, 방법론 알 수 없음)
- 연구 저자들은 이 성능이 **복잡한 구조보다는 더 발전된 llm을 사용했기 때문에 나타나는 창발적 능력일 것**이라고 가정함
- minigpt-4의 구조/학습
- blip-2의 vit-g/14와 q-former, llm은 vicuna를 사용
- 두 모델을 projection layer 1개로 연결하고, 나머지 모델들은 전부 frozen
- 2단계 학습
- 대규모 데이터로 시각 특징을 정렬하는 것만으로는 챗봇과 같은 자연스러운 대화가 불가능함 - 출력이 반복되는 등..
- 3,500개의 고품질 상세 이미지 설명 데이터셋을 수집해서 2단계로 fine-tuning을 해서 자연스러운 언어 생성 능력을 확보함
- 기여점
- gpt-4 데모에서도 보지 못했던 요리 레시피 생성, 시/소설 창작, 제품 광고 작성 등 능력을 확인함
- llm의 중요성 입증 - 이 능력들은 상대적으로 덜 강력한 llm(kosmos-1, blip2)를 사용했을 때는 나타나지 않았던 것임
- → 고급 llm과의 통합이 mllm 발전의 핵심임
- llm의 중요성 입증 - 이 능력들은 상대적으로 덜 강력한 llm(kosmos-1, blip2)를 사용했을 때는 나타나지 않았던 것임
- 적절히 두 모델을 정렬하는 것만으로도 gpt-4급의 고급 능력을 가질 수 있음을 확인함 - 상세 이미지 설명, 웹사이트 제작 등
- 단일 projection layer가 효율적이고 효과적으로 두 모델을 정렬 가능함
- 고품질 데이터 curation의 중요성
- gpt-4 데모에서도 보지 못했던 요리 레시피 생성, 시/소설 창작, 제품 광고 작성 등 능력을 확인함
related work
- llm의 발전
- bert, gpt-2, t5 → gpt-3 → chinchilla, palm, opt, llama 등.. → instructGPT, ChatGPT / alpaca, vicuna 등 오픈 소스 모델
- vision-language task에서 사전학습된 llm을 활용하기
- autoregressive한 lm을 decoder로 사용하려는 추세가 강화됨
- flamingo, blip-2, palm-E, gpt-4 등
- llm과 vision 모델의 협업 방식
- visual chatgpt, mm-react: chatgpt를 조정자로 삼아 여러 visual foundation 모델을 통합해서 복잡한 문제를 해결함
- chatcaptioner: chatgpt가 질문을 던지고 blip-2가 답하는 방식
- vipergpt: llm과 vision 모델을 결합해서 복잡한 쿼리를 프로그래밍 방식으로 처리함
자세한 설명
1. 조정자(Coordinator) 역할: Visual ChatGPT **작동 방식**: 사용자가 "이 사진에서 고양이를 지우고 강아지로 바꿔줘"라고 하면, ChatGPT가 직접 이미지를 건드리는 게 아닙니다. **내부 과정**: 1. ChatGPT가 이 명령을 이해하고 **'Object Detection 모델'**을 불러서 고양이 위치를 찾게 합니다. 2. 그 다음 **'Stable Diffusion'** 같은 생성 모델을 불러서 그 자리를 강아지로 채우라고 명령합니다. **특징**: ChatGPT는 각 모델의 설명서(API Document)를 읽고 상황에 맞는 도구를 골라주는 **매니저 역할**만 수행합니다. 2. 질문자/요약자 역할: ChatCaptioner **작동 방식**: 마치 **취조실의 형사와 증인** 같은 관계입니다. **내부 과정**: 1. **ChatGPT(형사)**: "이미지 왼쪽에 있는 사람이 뭘 들고 있어?"라고 질문을 던집니다. 2. **BLIP-2(증인)**: 이미지를 보고 "가방을 들고 있습니다"라고 답합니다. 3. **ChatGPT(형사)**: 그 답을 듣고 다시 "그 가방은 무슨 색이야?"라고 꼬리에 꼬리를 무는 질문을 합니다. **특징**: 여러 번의 질문-답변(Multi-round QA)을 통해 얻은 정보들을 ChatGPT가 최종적으로 종합하여 아주 상세한 설명을 작성합니다. 3. 프로그래밍 방식: ViperGPT **작동 방식**: 질문을 받으면 LLM이 **파이썬(Python) 코드**를 짜버립니다. **내부 과정**: 1. 사용자가 "이미지에 있는 사과가 바구니 안에 있는 사과보다 커?"라고 묻습니다. 2. ViperGPT는 `find_object('apple')`, `get_bbox_size()`, `is_inside()` 같은 함수를 포함한 코드를 생성합니다. 3. 이 코드가 실행되면서 각각의 시각 모델 API를 호출하여 계산한 뒤 최종 결과를 도출합니다. **특징**: 논리적 추론이 필요한 복잡한 문제를 **코드 실행**이라는 절차적 방식으로 해결합니다.- minigpt와의 차별점
- **다른 모델들이 외부 시각 모델을 복잡하게 활용하거나 여러 단계를 거치는 것과 달리, minigpt는 시각 정보를 언어 모델과 직접 정렬해서 외부 모델 없이도 다양한 task를 수행할 수 있음**
method
- 구조
- llm: vicuna
- vision encoder: vit 백본 + pretrained q-former
- linear projection layer
3. 1. 첫번째 사전학습
1 2 3 4 5 6 7 8 9 10 11 12
- 목표: <u>**대규모 이미지-텍스트 데이터셋을 통해 기본적인 vision-language 지식을 습득함**</u> - projection layer의 output을 llm을 위한 soft prompt로 간주함 → llm이 ground truth 텍스트를 생성하도록 유도함 (language modeling loss) - 비전 인코더와 llm은 모두 frozen, linear projection layer만 학습시킴 - 데이터셋: conceptual caption, SBU, LAION 합쳐서 사용함 - 약 500만개의 이미지-텍스트 쌍, 배치 256, 학습은 20,000 스텝 - 4개의 a100 gpu로 약 10시간 만에 완료함 - 이 첫번째 학습의 문제점 - 언어 생성 시 출력이 일관되지 않음 - 단어/문장 반복, 문장이 끊기는 등 - → 인간과 대화 능력이 떨어짐 - <u>대규모 데이터로 학습된 gpt-3도 초기에는 사용자 의도와 일치하는 출력을 내는데 어려움을 겪음</u> - 이후 instruction fine-tuning과 RLHF를 거쳐 gpt3.5로 진화하면서 인간 친화적인 모델이 됌 - 1단계 학습을 마친 minigpt-4도 이와 비슷한 상태일 것이라고 가정?3.2. 고품질 데이터 큐레이션
- 데이터 생성
- vision-language 분야에는 고품질의 대화형 데이터셋이 부족해서 직접 구축함
- conceptual caption 데이터셋에서 랜덤하게 5,000개의 이미지를 선정함
- 1단계 학습을 마친 모델에게 “###Human:

4.2. 정량적 분석
- 고급 능력 평가
- 단순한 사물 인식을 넘어선 고급 능력을 평가하기 위해 총 100개의 다양한 이미지를 수집해서 4가지 task에 25개씩 할당함
- 밈 해석: “Explain why this meme is funny.”
- 레시피 생성: “How should I make something like this?”
- 광고 작성: “Help me draft a professional advertisement for this.”
- 시 창작: “Can you craft a beautiful poem about this image?”
human evaluator가 평가함 - 성공/실패
- 단순한 사물 인식을 넘어선 고급 능력을 평가하기 위해 총 100개의 다양한 이미지를 수집해서 4가지 task에 25개씩 할당함
- 이미지 캡셔닝
4.3. 2단계 fine-tuning의 효과
- second-stage fine-tuning의 효과
- 기존 blip-2가 second-stage 데이터로 이득을 볼 수 있을까?
- 아님
- blip-2와 minigpt4의 또 다른 차이점은 llm임
→ llm의 체급이 중요하다..
- 2 stage에서 다른 데이터 사용함: 공개 데이터인 localized narratives 데이터셋
- 2단계 데이터셋 비교: Self-collected vs. Localized Narratives
- Localized Narratives 데이터?
- annotator 작성자가 이미지를 설명하면서 동시에 해당 영역을 마우스로 추적하여만든 데이터셋 → 매우 상세한 이미지 묘사를 포함함
- 결과: 긴 문장을 잘 만들어내기는 하지만, 생성된 답변의 품질이 낮고 표현이 단조로움
- 밈 해석같은 복잡한 task에서 minigpt-4만큼의 성능 x
- 아마도 locna의 이미지 설명이 지나치게 반복적이고 단조로운 표현으로 구성되어 있어서 그럴 것이라고 추정함
→ 단순히 상세한 정보를 나열하는 데이터보다, 다양하고 자연스러운 대화형 표현이 포함된 데이터가 모델의 지능적 일반화에 훨씬 유리함
ablation study
- q-former 제거, projection layer를 3개로 늘림, q-former finetuning
- 의외로 q-former 없어도 성능이 비슷함
- 고급 능력은 q-former의 구조적 특징보다는 고급 llm과의 정렬에서 온다는 것을 시사함
- limitation analysis
### discussion
- minigpt의 지능은 어디서 오는가?
- llm과 vision encoder의 결합
- 학습하지 않은 task도 할수 있는 이유?
- 이미지를 보고 사물을 이해하는 법을 배우면, llm이 원래 가지고 있는 시 쓰는 능력과 결합되어 이미지 기반 시 쓰기가 가능해짐
- 고품질 데이터를 통해 2단계를 학습함으로써 llm의 원래 말 잘하는 언어 생성 능력을 복구할 수 있었음
- 한줄 요약: minigpt4는 LLM이 이미 가진 거대한 잠재력을 시각 정보와 연결해주는 ‘최적의 통로’를 찾아냄으로써 고급 mllm 능력을 얻을 수 있었음
- 고급 능력 평가
- llm: vicuna
This post is licensed under CC BY 4.0 by the author.








