LLM4SGG: 약한 지도 기반 장면 그래프 생성을 위한 대규모 언어 모델
요약
본 글은 CVPR 2024에 채택된 LLM4SGG의 소스 코드를 공개하며, 기존 장면 그래프 생성 방식의 한계점을 분석합니다. 특히 의미적 과도 단순화와 지식 기반(KB) 의존으로 인한 저밀도 문제를 해결하기 위해 대규모 언어 모델(LLM)을 활용하는 방법을 제시합니다.
핵심 포인트
- 기존 파서는 미세한 술어를 일반적인 술어로 단순화하는 경향이 있음.
- 지식 기반은 데이터에 없는 개체나 관계를 놓쳐 트리플 생성을 제한함.
- LLM4SGG는 CoT 아이디어를 활용하여 트리플 형성 과정을 두 개의 체인으로 분리했습니다.
- Conceptual caption 및 Visual Genome 데이터셋과 학습 프롬프트/코드를 공개합니다.
CVPR 2024에 채택된 LLM4SGG(Large Language Models for Weakly Supervised Scene Graph Generation)의 공식 소스 코드입니다.
기존 접근 방식(파서 + 지식 기반(WordNet))에 내재된 두 가지 문제점을 다룹니다.
- 의미적 과도 단순화 (Semantic Over-simplification) (Step 2)
표준 장면 그래프 파서는 일반적으로 미세한 술어(fine-grained predicates)를 거친 술어(coarse-grained predicates)로 변환하는 경향이 있으며, 이를 의미적 과도 단순화라고 합니다. 예를 들어, 그림 (c)에서 이미지 캡션에 있는 정보가 풍부한 술어 lying on은 규칙 기반으로 작동하는 장면 파서가 lying on을 한 번에 포착하지 못하고, 그 휴리스틱 규칙들이 다양한 캡션 구조를 수용하는 데 미흡하여 바람직하지 않게 덜 정보적인 술어 on으로 변환됩니다. 결과적으로 그림 (b)에서 술어 분포는 긴 꼬리 분포(long-tailedness)를 따릅니다. 설상가상으로, 50개의 술어 중 12개가 존재하지 않아 이 12개의 술어는 절대 예측될 수 없습니다.
- 저밀도 장면 그래프 (Low-density Scene Graph) (Step 3)
지식 기반(즉, WordNet)에 기반한 트리플 정렬은 저밀도 장면 그래프를 초래하며, 즉 Step 3 이후 남아 있는 트리플의 수가 적습니다. 구체적으로, 트리플의 세 구성 요소 중 어느 하나(주어, 술어, 목적어) 또는 해당 트리플 내에서의 동의어/상위어/하위어가 대상 데이터의 개체나 술어 클래스와 정렬되지 않으면 트리플이 폐기됩니다. 예를 들어, 그림 (d)에서 트리플 *<elephant, carrying, log>*는 log가 대상 데이터에 존재하지 않거나 그 동의어/상위어가 존재하지 않더라도 elephant와 carrying가 존재하더라도 폐기됩니다. 결과적으로 많은 수의 술어가 폐기되어 낮은 일반화 성능과 성능 저하를 초래합니다. 이는 지식 기반의 정적 구조화된 지식이 광범위한 범위의 단어들 사이의 의미 관계를 포괄하기에 불충분하다는 사실에 기인합니다.
앞서 언급된 두 가지 문제를 완화하기 위해, 우리는 사전 학습된 대규모 언어 모델(LLM)을 채택합니다. 단계적으로 답변에 도달하는 방식인 Chain-of-Thoughts (CoT)의 아이디어에서 영감을 받아, 우리는 삼중항(triplet) 형성 과정을 두 개의 체인으로 분리합니다. 이 각각의 체인은 Step 2에서의 규칙 기반 파서(rule-based parser)를 대체하고(즉, Chain-1), Step 3에서의 지식 기반(KB)을 대체합니다(즉, Chain-2).
LLM과 관련하여, 우리는 ChatGPT에서 gpt-3.5-turbo를 사용합니다.
- Conceptual caption 데이터셋으로 모델 학습을 위한 프롬프트 및 코드 공개
- Conceptual caption의 향상된 장면 그래프 데이터셋 공개
- Visual Genome caption 데이터셋으로 모델 학습을 위한 프롬프트 및 코드 공개
- Visual Genome caption의 향상된 장면 그래프 데이터셋 공개
conda create -n llm4sgg python=3.9.0 -y
conda activate llm4sgg
pip install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html
...
패키지 설치가 완료되면, setup.py 파일을 실행하십시오.
python setup.py build develop --user
dataset/README.md를 참조하십시오.
삼중항 추출 과정에 대한 자세한 설명은 triplet_extraction_process/README.md에서 찾을 수 있습니다.
국소화된 삼중항의 상세 경로는 maskrcnn_benchmark/config/paths_catalog.py 파일에 있습니다.
caption 데이터셋(예: COCO, CC, 및 VG Caption)으로 훈련된 모델은 VG 테스트 데이터셋에서 평가됩니다.
구현을 용이하게 하기 위해 필요한 파일(즉, LLM4SGG가 만든 국소화된 삼중항)과 사전 학습된 모델(즉, GLIP)은 자동으로 다운로드됩니다. 필요에 따라 DATASET 이름을 변경하기만 하면 됩니다.
※ 웹 오류로 인해 Grounded Scene Graphs에 필요한 파일을 다운로드할 수 없었습니다. 이 문제가 발생하면 https://huggingface.co/datasets/kb-kim/LLM4SGG를 방문하여 파일을 직접 다운로드하십시오.
# DATASET: coco,cc,and vgcaption
bash scripts/single_gpu/train_{DATASET}4vg.sh
# DATASET: coco,cc,and vgcaption
bash scripts/multi_gpu/train_{DATASET}4vg.sh
재가중치(reweighting) 전략을 사용하여 모델을 훈련하려면 코드를 실행하십시오.
# 훈련 데이터: COCO
bash scripts/{multi_gpu or single_gpu}/train_coco4vg_rwt.sh
bash scripts/{multi_gpu or single_gpu}/train_coco4gqa.sh
# test.sh 파일에서 모델 체크포인트를 변경하십시오
bash scripts/test.sh
또한 사전 훈련된 모델과 다른 결과물도 제공합니다. Grounded Scene Graphs 링크는 Google Drive에 연결되어 있습니다.
Grounded Scene Graphs: aligned_triplet_coco4cg_grounded.json
Chain 1 Output: misaligned_triplets_vg_caption.json
Chain 2 Output: aligned_entity_dict_vg_caption4vg.pkl, aligned_predicate_dict_vg_caption4vg.pkl
Grounded Scene Graphs: aligned_triplet_vgcaption4vg_grounded.json
Training Result: evaluation_res.txt
Chain 1 Output: misaligned_triplets_cc.json
Chain 2 Output: aligned_entity_dict_cc4vg.pkl, aligned_predicate_dict_cc4vg.pkl
Grounded Scene Graphs: aligned_triplet_cc4vg_grounded.json
Training Result: model_CC4VG.pth, evaluation_res.text
- model_GQA_VS3.pth, config.yml, evaluation_res.txt
- Grounded Scene Graphs: aligned_triplet_coco4gqa_grounded.json
@InProceedings{Kim_2024_CVPR,
author = {Kim, Kibum and Yoon, Kanghoon and Jeon, Jaehyeong and In, Yeonjun and Moon, Jinyoung and Kim, Donghyun and Park, Chanyoung},
title = {LLM4SGG: Large Language Models for Weakly Supervised Scene Graph Generation},
...
코드는 VS3를 기반으로 개발되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기