본문 바로가기

논문읽기

[논문읽기] 3D-LLM: Injecting the 3D world into Large Language Models

MIT IBM Watson 랩 및 Umass Amherst 등 여러 대학 출신들로 구성된 연구팀에서 진행중인 연구로 2024년 NeurIPS에 Spotlight로 발표되었다. ( 이름에서 바로 알 수 있듯이 3D 데이터와 LLM을 연결시켜 여러 가지 작업들을 할 수 있도록 하는 연구이다. 요즘 Vision Language Model (VLM)들이 많이 나오고 있는데, 이의 3D 버전이라고 생각하면 편할 듯 하다. 현재 Arxiv에 올라와 있는 논문은 NuerIPS에 제출되기 전 버전인 듯 하다. 아래 링크에서 보는 게 정확할듯...

NeurIPS Poster 3D-LLM: Injecting the 3D World into Large Language Models

 

 

아래는 이 모델을 트레이닝하기 위해 직접 생성한 데이터의 예시이다. (모델이 답변하는 것이 아님!)

 

홈페이지에 들어가면 더 생동감 있는 예시들을 볼 수 있다: 3D-LLM: Injecting the 3D World into Large Language Models

 

3D-LLM: Injecting the 3D World into Large Language Models

 

vis-www.cs.umass.edu

 

 

이런 연구를 하는데 있어 가장 큰 어려움은 3D 데이터와 Text description이 짝지어진 대규모 데이터셋을 구하기 어렵다는 점일 것이다. 3D-LLM에서는 새로운 데이터 생성 파이프라인을 구성하여 300K개의 데이터를 새로 생성했다고 한다. 

3D 모델과 LLM을 잘 연결시키는 것도 쉽지 않은 일일 텐데, 이는 2D multiview로부터 3D feature를 추출해내는 모델과 2D VLM을 적극적으로 활용하였다.

 

3D-Language data generation

Text-only GPT를 활용하여 데이터를 생성하도록 하였다. 이와 같은 과정을 통해 위 Figure 1에 있는 형태의 데이터를 생성하였다고 한다.

1. Boxes-demonstration-instruction based prompting: 방과 물체의 바운딩박스(AABB, Axis-aligned Bounding Box)를 GPT에게 제공한 후 다양한 데이터를 생성하도록 하였다. 0-3개의 Few shot 샘플을 GPT에게 제공해서 어떤 데이터를 생성할지 알려주었다고 한다.

 

2. ChatCaptioner based prompting: ChatGPT가 이미지에 대한 질문을 하면 BLIP-2가 답변하도록 하여 데이터 수집. 3D 데이터라는 특성상 BLIP-2에는 여러 각도에서 찍은 이미지를 인풋으로 준다. ChatCaptioner 라는 다음 연구를 활용하였다: 2303.06594

 

3. Revision based prompting: 정확한 설명은 없고, 한가지 타입의 3D 데이터를 다른 타입으로 전송하기 위해 쓰인다고 되어 있다.

 

기본이 되는 3D 데이터는 아래 3가지를 사용하였다.

  • Objaverse: 800K개의 3D Object 데이터. 3D 데이터와 함께 설명이 제공되기는 하나 깔끔하지가 않아서 ChatCaptioner를 이용해서 다시 설명을 달았다고 한다.
  • Scannet: 1천장 정도의 3D 실내 스캔 데이터이다. 
  • Habitat-Matterport (HM3D): Embodied AI로 수집한 3D 데이터이다. HM3DSem에는 200개 장면에 대한 Semantic annotation과 바운딩박스를 제공한다고 한다.

 

3D-LLM model

3D와 LLM을 연결하기 위해서는 2D를 한번 거쳐가는 방식으로 동작한다.

3D feature extractor

먼저 3D point cloud를 여러 개의 2D 이미지로 렌더링한다. 그런 다음 CLIP 같은 걸 통과시켜서 2D feature를 얻는다. 이렇게 얻은 2D feature를 다시 3D 형태로 복원하는데, 3가지 정도의 접근법을 활용하였다.

Direct reconstruct: Camera pose / Intrinsic 등을 정확하게 아는 경우에 활용할 수 있다.

gradSLAM: Depth map에 노이즈가 많거나 Camera pose / Intrinsic 등에도 노이즈가 많은 경우에 활용

Neural Field: RGB 이미지만 가용하거나, Camera pose / Intrinsic 등에 노이즈가 많은 경우에 활용

 

2D VLMs as backbone

위에서 얻은 3D Feature들을 Perceiver를 활용해서 Latent space로 옮겨준다. Perceiver는 입력 사이즈가 커지더라도 동일한 크기의 아웃풋을 제공해주는 특징이 있다고 한다. 그렇기 때문에 3D feature의 크기가 크더라도 2D VLM에서 활용할 수 있는 형태로 바뀌게 된다. 

 

3D Localization mechanism

3D의 특징은 공간 정보를 2D에 비해 더 정확하게 알고 있다는 점이다. 이런 장점을 살리기 위해 아래와 같은 요소들을 도입하였다.

  • 3D feature를 만들 때 3D position embedding 사용
  • LLM에 location token 추가: 아래와 같은 형태의 AABB 토큰을 LLM vocabulary에 추가해 주었다고 한다. 구체적으로 어떻게 동작하는지 확실하게 이해하지는 못했는데 코드를 들춰봐야 알 것 같다.

 

Experiments

모델 디테일

2D VLM backbones:

  • Flamingo 9B: Perceiver, Gated  cross attention, location token에 대한 Weight 부분만 파인튜닝.
  • BLIP-2 Vit-g Opt2.7B / BLIP-2 Vit-g FlanT5-XL: Q-Former부분을 파인튜닝, LLM과 Vision encoder는 Freeze. 다만 Location token에 대한 Weight는 학습하였음.

Class-agnostic mask: Mask2Former와 SAM을 사용하여 마스크를 생성하였다고 함. (이건 어디에 쓰이는건지 확실히 모르겠음)

 

Evaluation protocol

  • Held-in evaluation: 직접 수집한 데이터셋을 Train/Test로 나누어서 평가
  • Held-out evaluation: ScanQA, SQA3D, 3DMV-VQA 3개의 데이터셋에 대하여 평가

 

ScanQA 데이터셋에 대한 평가 결과

  • 기존에 가장 성능이 좋았던 ScanQA보다 BLEU-1 기준으로 9정도 높은 결과를 보여줌.
  • 3D Encoder를 사용하는 경우보다 더 좋은 성능을 보여줌 (ULIPPointMLP + ...)
  • 3D reconstruction 없이 2D 정보를 단순 concat하는 경우보다 더 좋은 성능을 보여줌 (VLM + single/multiview)

 

SQA3D 데이터셋 평가 결과

  • 마찬가지로 Avg. 기준으로 보면 가장 좋은 성능을 보여주었음.
  • Test set별로 보면 꼭 최고 성능이 아니기는 하나, 그런 경우에도 차이는 크지 않음.

 

3DMV-VQA 데이터셋 평가 결과

  • 기존 SOTA였던 3D-CLR보다 좋은 결성능 달성

 

Held-In evaluation

3가지 태스크에 대해서 평가를 수행하였고, Baseline들에 비해 좋은 성능 달성 (Pure LLM / VLM + 2D images)

 

Qualitative examples

 

 

Appendix를 보면 컴퓨팅 리소스는 BLIP2는 8 node of 8 x V100s, Flamingo는 8 x A100s를 썼다고 한다. 빅테크 회사들에 비하면 미미한 수준이지만, 연구실 수준에서는 다소 버거울 수 있는 환경이다.

 

3D와 LLM을 연결하려는 점에서 신선하다는 생각이 든다. 다만 아직 이쪽 분야의 연구가 초기단계이다 보니 좀 더 완성도를 높일 수 있는 부분도 있어 보인다. 예를 들면 3D에서 얻을 수 있는 공간적 정보를 좀 더 잘 반영할 수 있을 것 같다는 생

각이 들고, 3D 공간이 넓어졌을 때 연산량이 감당불가능할 정도로 늘어날 수 있을 것 같다.

 

Openriview에 리뷰어들의 코멘트가 올라와 있는데, 여기에서도 좋은 얘기들이 많이 나왔다.

3D-LLM: Injecting the 3D World into Large Language Models | OpenReview

새로운 연구 방향에 대해서는 좋게 평가하면서도 몇가지 한계를 지적하였는데,

- 순수한 3D 데이터를 사용하기보다는 2D 정보를 한번 거쳐갔다는 점. 

- 3D-Image-LLM으로 align해 보는 아이디어 제안. 참고 연구([1]: "ULIP: Learning a Unified Representation of Language, Images, and Point Clouds for 3D Understanding" -- CVPR2023 [2]: "CLIP2: Contrastive Language-Image-Point Pretraining from Real-World Point Cloud Data" -- CVPR2023)

 

저자들이 스스로 평가하는 Limitation은 아래와 같다.

We would like to share with you some more limitations which are crucial for further improvement of this paper:

  • For the grounding mechanism, we input detailed text descriptions to refer to an object and train 3D-LLMs to output location tokens for these objects. However, the referring sentence might contain multiple hops of relations, and directly training on such corpus is non-trivial since the models need to simultaneously learn both semantics and relationships. A better way to improve the grounding mechanism is to assign location tokens to each noun in all data, like in [1].
  • We find that 3D-LLMs, like a lot of 2D VLMs, are bad at grounding relationships [2]. This problem is more salient for 3D tasks which have more complex spatial relationships. Relational modules need to be added to the models.
  • We do not have ego-centric or robot-centric data in our 3D-language data. Therefore, current 3D-LLMs are unable to solve embodied robotics tasks. Such data and tasks are crucial for equipping 3D-LLMs with the ability to understand the complex 3D physical world.

[1] Kosmos-2: Grounding Multimodal Large Language Models to the World. Zhiliang Peng et al. 2023

[2] Going Beyond Nouns With Vision & Language Models Using Synthetic Data. Paola Cascante-Bonilla et al. 2023