Abstract
word-sentence-paragraph 프레임워크
기능
연속된 형태를 '형태 단어'로 분할
해당 단어를 '형태 문장'으로 결합
형태를 프롬프트와 결합시켜 멀티모달 문단 생성
훈련 방법
형태 정보를 언어 정보와 연관짓는 codebook을 만들기 위한 훈련 시퀀스
1. shape representation
오브젝트의 형태를 모델이 알 수 있게 표현하는 과정
2. multimodal alignment
형태와 언어를 매치시키는 코드북 생성
3. instruction-based generation
사용자의 프롬프트를 바탕으로 모델을 오브젝트를 생성하는 것
1. Introduction
기존 모델의 한계
대규모 코퍼스로 훈련된 LLM이 등장하면서 이들을 다른 형태의 데이터와 통합하는 연구가 많이 진행되었으나, 프롬프트 기반 3D 모델 생성 쪽은 아직 미흡하다.
그러나 해당 분야는 VR, 게이밍, Network-aided design, 3D 프린팅 등 다양한 분야에 활용될 수 있다.
최근에 비전 언어 모델인 CLIP을 활용해서 언어 기반 모델 생성을 선보인 연구가 있으나, 이 또한 언어 혹은 형태 중 하나의 형태로만 변환시키는 로직을 가지고 있다. 즉, 둘의 상보적인 관계를 이해하는데 한계가 있다. 또한 Instruct-GPT 기반 연구는 분절된 텍스트 인풋은 잘 이해하나, 유저가 생성한 문장을 완벽히 이해하지 못하는 고질적인 문제가 있다.
제안된 방법
1. 3D 형상을 연속된 형상 토큰으로 변환
2. 이를 3D 형상 정보를 언어 모델이 이해하도록 설계된 ector quantized variational autoencoder (VQ-VQE) 에 통과시킴.
이 때 vision transformer와 visual-language perceiver를 사용.
3. 해당 토큰은 pre-trained 언어모델에 임베딩 됨.
4. 언어 모델은 이 토큰으로부터 문법과 구문, 특히 모델 텍스처와 관련된 정보를 인지함.
5. 이렇게 하여 서로 다른 두 모델이 소통할 수 있는 코드북이 생성된다.
훈련 시퀀스
1. 3D 데이터셋을 이용하여 모델을 생성하거나, 모델을 설명하는 업무를 전체 모델에 훈련
2. 설명과 렌더링 된 이미지, 형상 데이터로 구성된 멀티모달 데이터셋으로 파인튜닝
Contribution
멀티모달 입력을 받아 프롬프트를 수행하는 사전훈련 모델인 ShapeGPT를 제안.
명령 프롬프트를 통해 결과를 생성하고 피드백을 학습하는 훈련 체계를 도입.
img-to-3d, txt-to-3d, 3d-to-text 등의 다양한 업무 가능.
VQ-VAE란?
일반 VAE
잠재변수 z를 가우시안 분포로 표현해 연속 공간을 탐색.
비슷한 분포의 벡터를 매칭시킴.
VQ-VAE
코드북 e = e 1 , . . . , e K e = {e_1, ... , e_K} e = e 1 , . . . , e K 안의 단일, 혹은 복수의 벡터로 잠재변수 z를 양자화 한다.
모델 구조
입력값 x x x 를 인코더 E E E 에 넣어 얻은 압축 벡터 z e = E ( x ) z_e = E(x) z e = E ( x )
k = a r g m i n j ∣ ∣ z e − e j ∣ ∣ k = argmin_j ||z_e - e_j|| k = a r g m i n j ∣ ∣ z e − e j ∣ ∣ 인 k k k 에 대해 z q = e k z_q = e_k z q = e k
즉, z e z_e z e 와 유클리드 거리에서 가장 가까운 토큰 벡터 e k e_k e k 를 z q z_q z q 로 선택
z q z_q z q 를 디코더 D D D 에 넣어 얻은 값 x ^ \hat{x} x ^ 를 결과로 사용.
손실함수
L = ∥ x − D ( z q ) ∥ 2 ⏟ L r e c + ∥ s g [ z e ] − e k ∥ 2 ⏟ L c o d e b o o k + β ∥ z e − s g [ e k ] ∥ 2 ⏟ L c o m m i t \mathcal{L} = \underbrace{\|\,x - D(z_q)\|^2}_{\mathcal{L}_{\mathrm{rec}}} + \underbrace{\|\mathrm{sg}[z_e] - e_k\|^2}_{\mathcal{L}_{\mathrm{codebook}}} + \beta\,\underbrace{\|z_e - \mathrm{sg}[e_k]\|^2}_{\mathcal{L}_{\mathrm{commit}}} L = L r e c ∥ x − D ( z q ) ∥ 2 + L c o d e b o o k ∥ s g [ z e ] − e k ∥ 2 + β L c o m m i t ∥ z e − s g [ e k ] ∥ 2
재구성 손실 L r e c \mathcal{L}_{\mathrm{rec}} L r e c
L r e c ( x ) = ∥ x − D ( z q ) ∥ 2 2 \mathcal{L}_{\mathrm{rec}}(x) \;=\; \|\,x - D(z_q)\|_2^2 L r e c ( x ) = ∥ x − D ( z q ) ∥ 2 2
목적 : 인코더, 디코더가 입력 x x x 를 잘 복원하도록 학습.
계산 :
인코더 E E E 가 x x x 를 연속 벡터 z e = E ( x ) z_e = E(x) z e = E ( x ) 로 변환
코드북에서 선택된 벡터 z q = e k z_q = e_k z q = e k
디코더 D D D 가 x ^ = D ( z q ) \hat x = D(z_q) x ^ = D ( z q ) 복원
MSE(Mean Squared Error) 계산
그래디언트 :
x ^ \hat x x ^ 를 생성하는 디코더 파라미터와,
직·간접적으로 z q z_q z q (→ 코드북) 및 z e z_e z e (→ 인코더)
에 모두 전파된다.
코드북 업데이트 손실 L c o d e b o o k \mathcal{L}_{\mathrm{codebook}} L c o d e b o o k
L c o d e b o o k = ∥ s g [ z e ] − e k ∥ 2 2 \mathcal{L}_{\mathrm{codebook}} = \bigl\|\mathrm{sg}[\,z_e\,] - e_k\bigr\|_2^2 L c o d e b o o k = ∥ ∥ ∥ s g [ z e ] − e k ∥ ∥ ∥ 2 2
목적 : 코드북 벡터 e k e_k e k 를 인코더 출력 z e z_e z e 쪽으로 이동시켜, 코드북이 데이터 분포를 제대로 커버하도록 함.
s g [ ⋅ ] \mathrm{sg}[\cdot] s g [ ⋅ ] (stop-gradient) : 내부 값의 그래디언트 전파를 차단, 즉 s g [ z e ] \mathrm{sg}[z_e] s g [ z e ] 는 상수 취급하여 코드북 e k e_k e k 쪽만 업데이트.
그래디언트 : e k e_k e k 에만 전파되고, 인코더 E E E 파라미터에는 영향을 주지 않는다.
커밋 손실 L c o m m i t \mathcal{L}_{\mathrm{commit}} L c o m m i t
β L c o m m i t = ∥ z e − s g [ e k ] ∥ 2 2 \beta\, \mathcal{L}_{\mathrm{commit}} = \bigl\|\,z_e - \mathrm{sg}[e_k]\,\bigr\|_2^2 β L c o m m i t = ∥ ∥ ∥ z e − s g [ e k ] ∥ ∥ ∥ 2 2
목적 : 인코더 E E E 가 입력 벡터를 양자화된 코드북 벡터 e k e_k e k 쪽으로 이동하도록 강제함.
β \beta β : 커밋 손실의 가중치(보통 0.25~0.4)
s g [ e k ] \mathrm{sg}[e_k] s g [ e k ] : 코드북 쪽 그래디언트를 차단하여 인코더 E E E 만 업데이트
그래디언트 : z e z_e z e 의 수정을 통해 인코더 파라미터만 업데이트
그러나 양자화된 벡터 e k e_k e k 는 미분이 불가능 하므로,
순전파: 순수한 e k e_k e k 사용
역전파: z e z_e z e 를 대신하여 사용
2. Method
2.1 모델 파이프라인
2.2 Multimodal Corpus Construction
2.3 Shape-aware Multimodal Language Model
2.4 Three-stage training strategy
3. Experiments
3.1 Datasets
용어 정의 특징 ShapeNet 3D CAD 모델 ≈ 51 k개(55개 대분류)로 구성된 대규모 공개 저장소. CAD·로봇·CG 연구의 사실상 표준 벤치마크. (ShapeNet ) ① 다양한 물체(비행기, 의자, …)를 포함해 범주 다양성 이 높다. ② 정규화(크기·방향)·WordNet 기반 레이블이 붙어 있어 생성·분류·검색 등 다수의 3D 과제로 쓰인다. Xu split [54]Xu 등이 제안한 ShapeNet train / test 분할 방식. 약 50 k 모델을 85 % : 15 %로 나눠 후속 연구가 동일 조건에서 비교 가능하도록 만든다. ShapeGPT도 같은 분할을 채택해 선행 연구와 직접 성능 비교 가 가능하도록 함. Text2Shape ShapeNet ‘chair·table’ 두 클래스에 대해 사람이 작성한 상세 캡션 (색상·재질·형태)을 제공하는 최초의 텍스트↔3D 쌍 데이터셋. (Text2Shape: Generating Shapes from Natural Language by ... ) 텍스트-to-Shape 평가에 필수. 자연어만으로 3D 생성 모델이 정밀 형상+재질 까지 맞추는지를 측정할 수 있다. MOAT [56] M obile cO nvolution & AT tention 하이브리드 비전 백본 (ICLR 2023). 이미지에 태그(단어)를 자동 예측할 때 높은 정확도–효율 균형을 제공. (MOAT: Alternating Mobile Convolution and Attention Brings Strong Vision Models )다른 14 개 클래스엔 사람이 쓴 설명이 없으므로, ShapeGPT는 MOAT로 이미지→태그 를 생성해 텍스트 주석을 자동 확보 한다.
3.2 Evaluation Metrics
(1) 3D IoU (Intersection over Union)
정의 IoU ( V pred , V gt ) = ∣ V pred ∩ V gt ∣ ∣ V pred ∪ V gt ∣ \text{IoU}(V_{\text{pred}},V_{\text{gt}}) =\frac{\lvert V_{\text{pred}}\cap V_{\text{gt}}\rvert} {\lvert V_{\text{pred}}\cup V_{\text{gt}}\rvert} IoU ( V pred , V gt ) = ∣ V pred ∪ V gt ∣ ∣ V pred ∩ V gt ∣ 예측 복셀 집합과 정답 복셀 집합이 겹치는 비율.
평가 : 물체의 전체 외곽 형태 가 얼마나 정확히 맞는가.
특징
0 – 1 범위. 1에 가까울수록 완전 일치.
내부 빈 공간·세부 굴곡엔 둔감하므로 “윤곽” 품질을 볼 때 적합.
(2) Chamfer Distance (CD)
정의
CD ( P , Q ) = 1 ∣ P ∣ ∑ p ∈ P min q ∈ Q ∥ p − q ∥ 2 + 1 ∣ Q ∣ ∑ q ∈ Q min p ∈ P ∥ q − p ∥ 2 \text{CD}(P,Q)= \frac{1}{|P|}\sum_{p\in P}\min_{q\in Q}\!\lVert p-q\rVert_2+ \frac{1}{|Q|}\sum_{q\in Q}\min_{p\in P}\!\lVert q-p\rVert_2 CD ( P , Q ) = ∣ P ∣ 1 p ∈ P ∑ q ∈ Q min ∥ p − q ∥ 2 + ∣ Q ∣ 1 q ∈ Q ∑ p ∈ P min ∥ q − p ∥ 2
두 포인트 클라우드가 서로에게 얼마나 가까운지를 양방향으로 평균한 거리.
평기 : 곡면, 홈, 모서리 등 세밀한 기하차 를 파악할 수 있음.
특징
낮을수록 좋으며 0이면 완전히 일치.
거리나 거리² 버전을 모두 사용하므로 논문마다 명시 필요.
(3) F-score @ 1 %
(4) ULIP Score
정의
ULIP(Unified Language-Image-Point cloud) 모델 임베딩에서
sim ( e text , e shape ) = e text ⋅ e shape ∥ e text ∥ ∥ e shape ∥ \text{sim}(e_{\text{text}},e_{\text{shape}}) =\frac{e_{\text{text}}\!\cdot\!e_{\text{shape}}} {\lVert e_{\text{text}}\rVert\,\lVert e_{\text{shape}}\rVert} sim ( e text , e shape ) = ∥ e text ∥ ∥ e shape ∥ e text ⋅ e shape
텍스트 캡션에 대한 임베딩 벡터와 3D Shape 임베딩 벡터 간 코사인 유사도.
평가 : 생성된 Shape가 의미적으로 설명과 얼마나 일치하는지.
특징
값이 클수록 의미 일치성이 높음.
텍스트를 조건 으로 하는 다른 도메인의 생성 품질을 다룰 때 핵심 지표.
(5) CLIP Score (Caption Generation)
정의
사전 학습된 CLIP 텍스트 인코더에서 sim ( e gen , e ref ) = e gen ⋅ e ref ∥ e gen ∥ ∥ e ref ∥ \text{sim}(e_{\text{gen}},e_{\text{ref}}) =\frac{e_{\text{gen}}\!\cdot\!e_{\text{ref}}} {\lVert e_{\text{gen}}\rVert\,\lVert e_{\text{ref}}\rVert} sim ( e gen , e ref ) = ∥ e gen ∥ ∥ e ref ∥ e gen ⋅ e ref 생성된 캡션 임베딩과 정답에 해당하는 캡션 임베딩에 대한 코사인 유사도.
무엇을 재나? Shape-to-Text 작업에서 언어적 일치성 .
특징
CLIP이 갖는 시각·언어 공통 공간 덕분에 사람이 느끼는 “맞는 설명”과 상관이 높다.
3.3 정량평가
다른 모델과 비교했을 때 더욱 정확한 모습을 생성하였다.
또한 위와 같이 추가적인 태스크로 확장할 수도 있었다.