MoE-LLaVA: 대규모 Vision-Language 모델을 위한 전문가 혼합 기법 적용 (Mixture of Experts for Large Vision-Language Models)

PyTorchKR​:fire::kr: :thinking::speech_balloon:

  • MoE(Mixture-of-Experts)를 적용하여 모델의 크기를 확장하면서도 연산 대상이 되는 가중치를 줄이는 방식으로 연산 효율을 유지하는 MoE-LLaVA 모델이 공개되었습니다. 어떻게 학습을 하고 구성을 하였는지 함께 살펴보시죠. :framed_picture::llama::llama::llama::llama::llama:
  • 이 글은 GPT 모델로 정리한 것으로, 잘못된 부분이 있을 수 있으니 글 아래쪽의 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

MoE-LLaVA: 대규모 비전-언어 모델을 위한 전문가 혼합(MoE) (MoE-LLaVA: Mixture of Experts for Large Vision-Language Models)

소개

대규모 시각 언어 모델(LVLM, Large Vision-Language Model)의 확장성 문제를 해결하는 것을 목표로 하는 대규모 시각 언어 모델용 전문가 혼합(MoE, Mixture-of-Experts)을 사용하는 새로운 아키텍처인 MoE-LLaVA를 소개합니다. 이 접근 방식은 방대한 모델의 매개변수들을 드문드문 활성화할 수 있으므로 일반적으로 멀티모달 학습 및 모델 희소성과 관련된 성능 저하를 효과적으로 완화할 수 있습니다. 즉, 연산 효율을 유지하면서 모델 용량을 크게 확장할 수 있습니다. 이를 통해 MoE-LLaVA는 시각적 이해도를 높이고 모델 출력의 환영을 줄여주며, 더 적은 수의 파라미터로 기존 모델과 비슷하거나 더 우수한 성능을 보여줍니다.

최근 대규모 멀티모달 모델(LMM, Large Multimodal Model 또는 LVLM, Large Vision-Language Model)을 확장하는 기존의 접근 방식은 주로 모델의 크기와 학습 데이터의 양을 늘리는 데 중점을 두었습니다. 이렇게 모델의 크기를 늘리게 되면 매개변수의 수가 증가하면서 연산 비용 또한 증가하기 때문에 성능 향상에는 효과적이지만, 학습 및 추론에 필요한 연산 요구 사항이 크게 증가하는 문제가 있습니다. 이에 대한 대안 중 하나로 MoE 접근 방식 또한 제안되었지만, MoE 기법을 직접적으로 LVLM 모델에 적용하는 데에는 성능 하락의 문제가 있었습니다. MoE-LLaVA는 이를 해결하기 위해 MoE-Tuning이라는 방식을 제안하는데요, 자세한 내용은 계속 살펴보시죠. :smiley:

MoE-LLaVA의 구조 및 학습 / 동작

MoE-LLaVA는 전문가와 라우터, 게이팅의 3가지 주요한 구성요소로 이뤄져있습니다:

  • 전문가(Experts): 전체 LLM 작업 내의 특정 하위 작업에 대해 학습된 개별 모델입니다.
  • 라우터(Router): 이 구성 요소는 입력을 분석하고 이를 처리하는 데 가장 적합한 전문가를 결정합니다.
  • 게이팅(Gating): 이 메커니즘은 전문가 간의 정보 흐름을 제어하여 효과적으로 협업할 수 있도록 합니다.

학습이 완료된 MoE-LLaVA 모델은 사용자 입력에 따라 전체 전문가들 중 일부만 활성화하여 입력을 전달하는 방식으로 동작합니다. 더 자세히 살펴보면, 1) 먼저 입력된 데이터는 라우터(Router)가 분석하여 어떤 전문가(들)에게 전달할지를 결정하게 됩니다. 2) 이 과정에서 게이트(Gating)는 라우터의 결정을 바탕으로 가장 적합한 전문가(들)를 선택하고 활성화시키는 기능을 수행합니다. 3) 이렇게 선택된 전문가(들)는 입력 데이터에 대해 가장 전문화된 처리를 수행하게 되며, 이러한 과정을 통해 MoE-LLaVA는 다양한 데이터에 대해 매우 효율적이고 정확한 처리를 달성할 수 있습니다.

MoE-튜닝(MoE-Tuning) 과정 설명

MoE-LLaVA는 대규모 비전-언어 모델(LVLM)의 확장성 문제를 해결하기 위해 '전문가 혼합(Mixture of Experts, MoE)' 기술을 적용한 새로운 구조로, 크게 세 단계(3-stage)의 MoE-Tuning 절차를 통해 학습이 이뤄집니다. 먼저, 1단계(Stage I)에서는 기본 LVLM에 MoE를 접목하기 위한 초기 설정이 이루어지고, 2단계(Stage II)에서는 MoE 구성요소의 세밀한 조정과 최적화가 진행됩니다. 마지막으로 3단계(Stage III)에서는 전체 모델을 통합하고 세부적인 조정을 통해 최종적인 성능을 향상시킵니다. 이 과정을 통해 MoE-LLaVA는 기존 LVLM보다 효율적인 계산으로 더 높은 성능을 달성하는 것을 목표로 합니다.

  • 1단계: **이해도 학습 단계(Understanding training stage)**에서는 이미지 토큰을 LLM에 맞게 조정하여 LLM이 이미지의 인스턴스를 이해할 수 있도록 하는 것이 목표입니다. 이를 위해 이미지 토큰을 LLM의 입력 영역에 투영하기 위해 MLP를 사용하여 이미지 패치를 의사 텍스트 토큰으로 취급합니다. 이 단계에서 LLM은 이미지를 설명하도록 학습됩니다. 이 단계에서는 MoE 레이어가 LLM에 적용되지 않습니다.

  • 2단계: **멀티모달 명령어 데이터를 사용한 튜닝(tuning with multi-modal instruction data)**은 대규모 모델의 기능과 제어 가능성을 향상시키는 핵심 기술입니다. 이 단계에서는 LLM을 멀티모달 이해를 갖춘 LVLM으로 조정합니다. 이미지 논리적 추론 및 텍스트 인식과 같은 작업을 포함하여 더 복잡한 명령어를 사용하여 모델이 더 강력한 다중 모드 이해력을 갖도록 요구합니다. 일반적으로 고밀도 모델의 경우 이 단계에서 LVLM 학습이 완료된 것으로 간주합니다. 하지만 LLM을 LVLM으로 변환하는 동시에 LVLM이 희소해지는(sparsifying) 문제에 직면하게 됩니다. 따라서 MoE-LLaVA는 희소한 모델의 학습 난이도를 완화하기 위해 2단계의 가중치를 3단계의 초기화로 활용합니다.

  • 3단계: 초기화에서는 FFN을 여러 번 복제하여 전문가를 초기화합니다. 이미지 토큰과 텍스트 토큰이 MoE 레이어에 공급되면 라우터는 각 토큰과 전문가 간의 일치하는 가중치를 계산합니다. 그런 다음 각 토큰은 상위 k명의 전문가에 의해 처리되고, 라우터의 가중치에 따라 가중치 합산 방식으로 결과가 집계됩니다. 상위 k명의 전문가가 활성화되면 나머지 전문가들은 침묵을 유지합니다. 이 모델링 접근 방식은 무한히 가능한 희소 경로를 가진 MoE-LLaVA를 형성하여 광범위한 기능을 제공합니다.

장점과 단점

MoE-LLaVA-1.8B x4 모델과 오픈소스 모델들 간의 비교 결과

장점(Pros)

  • 효율성(Efficiency): MoE-LLaVA의 핵심 강점은 계산 비용 절감에 있습니다. 관련 전문가만 전략적으로 활성화함으로써 Jurassic-1 Jumbo 같은 단일 모델(monolithic model)에 비해 더 적은 리소스를 필요로 합니다. 따라서 리소스 제약이 우려되는 애플리케이션에 특히 유용합니다.

  • 확장성(Scalability): 독립적인 전문가로 구성된 MoE-LLaVA의 모듈식 구조 덕분에 모듈을 추가하거나 제거하여 쉽게 확장할 수 있습니다. 이러한 적응성 덕분에 ViLBERT와 같은 고정된 아키텍처를 가진 모델에 비해 다양한 작업과 데이터 세트를 보다 유연하게 처리할 수 있습니다.

  • 정확도 잠재력(Accuracy potential): MoE-LLaVA의 개별 모델에 집중된 전문성은 잠재적으로 범용 모델에 비해 특정 작업의 정확도를 높일 수 있습니다. 이는 전문 지식이 필요한 도메인에 특히 유리할 수 있습니다.

단점(Cons)

  • 복잡성(Complexity): MoE-LLaVA의 다단계 학습 프로세스 및 게이팅 메커니즘을 구현하고 튜닝하는 것은 UNITER와 같은 단순한 아키텍처에 비해 더 복잡할 수 있습니다. 따라서 추가적인 전문 지식과 컴퓨팅 리소스가 필요합니다.

  • 해석 가능성(Interpretability): MoE-LLaVA가 어떻게 결정에 도달하는지, 어떤 전문가가 최종 결과에 기여하는지 이해하는 것은 LXMERT와 같은 보다 투명한 모델에 비해 어려울 수 있습니다. 이러한 해석 가능성 부족은 설명 가능성이 필요한 영역에서 우려를 불러일으킬 수 있습니다.

  • 데이터 요구 사항(Data requirements): MoE-LLaVA의 개별 전문가가 전체적으로 필요로 하는 데이터는 적을 수 있지만, 각 전문가를 효과적으로 훈련하려면 여전히 상당한 양의 데이터가 필요하며, 이는 단일의 대규모 아키텍처를 사용하는 모델보다 더 많은 양일 수 있습니다.

:whale: 모델

Model Activated Param Transformers(HF) ModelScope(HF) Avg VQAv2 GQA VizWiz SQA T-VQA POPE MME MM-Bench MM-Vet
MoE-LLaVA-1.6B×4-Top2 2.0B :hugs:LanguageBind/MoE-LLaVA-StableLM-1.6B-4e PKU-YuanLab/MoE-LLaVA-StableLM-1.6B-4e 57.3 76.7 60.3 36.2 62.6 50.1 85.7 1318.1 60.2 26.9
MoE-LLaVA-1.8B×4-Top2 2.2B :hugs:LanguageBind/MoE-LLaVA-Qwen-1.8B-4e PKU-YuanLab/MoE-LLaVA-Qwen-1.8B-4e 56.7 76.2 61.5 32.6 63.1 48.0 87.0 1291.6 59.6 25.3
MoE-LLaVA-2.7B×4-Top2 3.6B :hugs:LanguageBind/MoE-LLaVA-Phi2-2.7B-4e PKU-YuanLab/MoE-LLaVA-Phi2-2.7B-4e 61.1 77.6 61.4 43.9 68.5 51.4 86.3 1423.0 65.2 34.3
MoE-LLaVA-1.6B×4-Top2-384 2.0B :hugs:LanguageBind/MoE-LLaVA-StableLM-1.6B-4e-384 PKU-YuanLab/MoE-LLaVA-StableLM-1.6B-4e-384 60.0 78.6 61.5 40.5 63.9 54.3 85.9 1335.7 63.3 32.3
MoE-LLaVA-2.7B×4-Top2-384 3.6B :hugs:LanguageBind/MoE-LLaVA-Phi2-2.7B-4e-384 PKU-YuanLab/MoE-LLaVA-Phi2-2.7B-4e-384 62.9 79.9 62.6 43.7 70.3 57.0 85.7 1431.3 68.0 35.9
LLaVA-1.5 7B :hugs:liuhaotian/llava-v1.5-7b - 62.0 78.5 62.0 50.0 66.8 58.2 85.9 1510.7 64.3 30.5

Pretrain Model

Model Checkpoint
MoE-LLaVA-1.6B×4-Top2 LanguageBind/MoE-LLaVA-StableLM-Pretrain
MoE-LLaVA-1.8B×4-Top2 LanguageBind/MoE-LLaVA-Qwen-Pretrain
MoE-LLaVA-2.7B×4-Top2 LanguageBind/MoE-LLaVA-Phi2-Pretrain
MoE-LLaVA-2.7B×4-Top2-384 LanguageBind/MoE-LLaVA-Phi2-384-Pretrain

더 읽어보기

MoE-LLaVA 논문

MoE-LLaVA GitHub 저장소

온라인 데모

MoE-LLaVA Demo




:fire:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 뉴스 발행에 힘이 됩니다~ :star_struck: