"이미지 기반 한국어 대화가 가능한 멀티모달 모델" KoLLaVA 프로젝트를 소개합니다.
세 줄 요약
1.
한국어 기반 Visual Instruction Dataset(150K) 공개(DeepL 번역)
2.
KoLLaVA-7B 모델 공개(LLM : KoVicuna-7B / Vision encoder : CLIP image encoder)
3.
Gradio 이용 Web 데모 공개
KoLLaVA : Korean Large Language and Vision Assistant (feat. LLaVA)
사람이 세상을 온전히 이해하기 위해서는 시각적 정보와 언어적 정보 모두 필요합니다. 이를 위해 최근 LLM의 놀라운 능력을 leverage해, 이미지를 이해하고 대화할 수 있는 Large Multimodal Model(LMM)에 대한 연구가 빠르게 발전하고 있습니다(LLaVA, InstructBLIP, Otter 등).
영어 기반의 오픈소스 LLM의 경우 한국어 버전(Polyglot-ko, KoAlpaca, KoVicuna, KULLM 등)이 나와 한국어 기반 LLM 연구에 많은 기여를 하고 있는데요. 하지만 LMM 분야에서는 아직까지 한국어 버전이 공개되지 않아 발전이 더딘 상태입니다.(저희가 알기로는요..!)
저희는 다양한 LMM 연구 중 LLaVA의 한국어 버전 KoLLaVA를 공유합니다.
LLaVA는 LLM과 시각 정보를 처리하는 vision encoder를 linear layer로 연결하여 매우 심플한 구조를 설계해 좋은 성능을 보여주었습니다. 또한 LMM 학습을 위한 Visual instruction-following 데이터셋도 새롭게 제작해 공개했습니다. 이러한 LLaVA가 한국어 버전 LMM의 baseline에 적합하다고 생각해 KoLLaVA 프로젝트를 진행하게 되었습니다.
우선 DeepL을 이용해 150K개의 instruction-following 데이터셋을 한국어로 번역했습니다. 또한 Pretrain에 사용한 595K개의 데이터셋도 Ko-CC3M을 이용해 제작했습니다.(허깅페이스 참고)
준비한 데이터셋을 기반으로, 한국어 LLM(KoVicuna-7b)과 CLIP image encoder를 연결해 Pretrain, Finetune 각각 1epoch 씩 학습했습니다. (프로젝트에 대한 더 자세한 내용은 Github을 참고해주세요!)
프로젝트를 진행하며 조금 신기했던 부분은, 영어로 학습한 CLIP의 이미지 encoder가 한국어 LLM(KoVicuna)과 약간의 학습만으로 잘 align 되더라구요..! linear layer가 projection 역할을 해준다고 하지만 그 복잡한 개념들을 matching 해준다는 게 신기했습니다.
향후 계획
1.
QLoRA를 활용해 더 큰 모델(13B)을 학습하고 있습니다.
2.
LLaVA-Med 처럼 특정 task에 탁월한 성능을 보이는 모델도 계획하고 있습니다.
3.
InstructBLIP, Otter 등 다른 모델의 한국어 버전을 만들 수 있습니다.
데모를 통해 확인해보시면 알겠지만, KoLLaVA-7b 모델의 성능 아직 부족한 부분이 많습니다. 하지만 빠르게 공유해 많은 분의 피드백을 통해 점진적으로 발전시키고 싶었습니다. 깃헙 이슈 혹은 이메일로 많은 피드백 부탁드립니다!
지금까지 사비로 클라우드 GPU를 대여(vast.ai)해 만들어 왔지만, 속도를 내려면 GPU가 좀 더 필요한데요..! 혹시 GPU 지원 사업이나 저렴한 비용에 대여 가능한 곳을 알고 계신 분 있다면 공유 부탁드리겠습니다.
Github : https://github.com/tabtoyou/KoLLaVA
Demo는 깃헙 내 링크를 참고해주세요!
Email : gxq9106@gmail.com
마지막으로 프로젝트 진행에 많은 도움이 된 Polyglot-ko, KoAlpaca, KoVicuna, KULLM, Ko-CC3M 제작자 분들께 깊은 감사의 인사 전합니다.