Post

Vision-Flan: Scaling Human-Labeled Tasks in Visual Instruction Tuning

Vision-Flan: Scaling Human-Labeled Tasks in Visual Instruction Tuning
  • ACL Findings, 2024
  • Virginia Tech, Washington U, Michigan U, 홍콩과기대, meta

https://github.com/VT-NLP/Vision-Flan

Abstract

  • VLM 발전, 여전히 두가지 큰 문제가 있음
    1. task 다양성 부족 - pretraining, instruction tuning 모두 특정 task에 치우침
    2. gpt-4 synthetic data의 오류/편향
      • 자동 생성 데이터라서 noisy, bias 존재

    → 일반화 약함, hallucination 발생, catastrophic forgetting (기존 능력 망가짐)

  • 해결방법
    1. 데이터셋: vision-flan 데이터셋 구축
      • 약 187개 task, 166만 샘플, human-curated instruction
    2. 학습방식 - 두 단계 학습
      • stage 1: vision-flan으로 학습 → capability learning / 개념 이해
      • stage 2: gpt-4 데이터로 추가학습 → format alignment / 표현을 다듬기
  • gpt 데이터는 vlm 능력을 키우기 보다는 출력 스타일을 사람처럼 맞춤 → alignment 용도
  • gpt 데이터는 많이 필요 없음, 1000개 정도면 충분
  • instruction tuning의 핵심은 llm이 이미지 피처를 이해하게 만드는 것

Introduction

  • 기존 VLM 구성 요소
    • bridging module (이미지 인코더 ↔ llm 연결)
    • 대규모 이미지-텍스트 데이터 → 사전학습용
    • GPT-4 기반 instruction 데이터 → instruction tuning용
      • 사람이 원하는 스타일로 답하도록 alignment
    • 구조
      • 입력 → encoder → bridging → llm → 답변
  • **문제 1: pretraining 데이터가 너무 단순함**
    • 이미지 캡셔닝 중심 - 다양성 부족
    • → 다른 task에 대한 일반화가 약함
    • ex. llava의 경우 ocr 성능이 낮은데, text detection 학습 안함
    • 이 문제를 해결하기 위해서 instruction tuning으로 task의 다양성을 개선하려고 시도한 연구들
      • 하지만 여전히 task의 coverage가 부족함..
  • **문제 2: gpt 기반 데이터의 구조적 한계**
    • 합성 데이터라서 생기는 문제점
    • gpt 데이터 만드는 방식은 주로
      • 기존 캡션을 gpt로 변형 (대화, vqa, 설명..)
    • 문제점
      • task의 다양성이 부족함 → 결국 같은 source에서 변형한 것들
      • spurious pattern * object들이 함께 나오는 패턴이 있음
        • cup - 테이블이 항상 같이 나오는 패턴
      • long-form output 문제
        • 쓸데없이 길고 비슷한 패턴

      → hallucination 증가, catastrophic forgetting 발생 (기본 task 성능 감소)

  • 해결방법

    “GPT로 데이터 만들지 말고 진짜 task를 모아라”

    • Vision-FLAN이라는 데이터 제시함
      • 가장 다양한 유형을 포함한 academic dataset 기반 visual instruction dataset임
      • 187개 task
      • 여러 유형 포함
        • perception
        • domain-specific
        • reasoning

        → 진짜 task 다양성 확보하기 위함

      • 기존 데이터셋은 caption을 gpt로 변형한것에 그쳤다면, vision-flan은 처음부터 다양한 task를 고려함 + expert-written instruction임
    • 2단계 학습 구조
      • **stage 1: 능력 학습**
        • LLaVA 모델을 vision-flan으로 finetuning함 → Vision-FLAN Base
        • 정확하지만 답이 짧고 딱딱함
      • **stage 2: 스타일 정렬**
        • Vision-FLAN Base를 gpt-4로 만든 소량의 데이터를 사용해서 Vision-FLAN Chat을 만듦
        • 사람처럼 자연스럽게 답하도록 조정
    • 결과
      • hallucination, catastrophic forgetting 위험은 적고 성능은 높임
    • key insights
      1. human-labeled task 수가 올라갈 수록 성능은 높아짐
      2. gpt 데이터는 성능을 거의 올리지 않음 → 능력 향상에는 별 도움 안됌
      3. gpt 데이터는 조금만 필요함 (약 1000개), 너무 많으면 hallucination랑 bias 증가함
      4. instruction tuning의 본질은 llm이 visual feature를 이해하게 만드는 것
        • bridging 모듈은 거의 사전학습 단계에서 다 학습 → instruction tuning은 이해 능력을 강화하는 것이 목적임

Vision-FLAN

2.1. Collection pipeline

  • annotator 선정: 21명 중 2번의 training-test 과정을 거쳐 7명의 컴퓨터공학 대학원생이 선정됨
    1. 기존 데이터셋 수집 및 전처리
    • 두 연구자가 고품질 vision-language 데이터셋 선정
예시 ![image.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/8937ab66-9873-42b9-a0ea-ddc3bff7d2bd/3057eedf-c946-4268-b349-58e0ea6d3db2/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466WFET4GXU%2F20260330%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260330T033653Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEFMaCXVzLXdlc3QtMiJHMEUCIAl0975Gttm6DlCj2rRw84q6Pt5X7EDso5zjMPcXJ%2BNRAiEArMBq8lbgA%2BfPGVkh9Z2cXN8lfS8RkuTC5q%2FtjOcOs6kq%2FwMIHBAAGgw2Mzc0MjMxODM4MDUiDPhUgbBKx33HO6I5myrcA8W2gNhuaBs5vIZ88RxdFSf%2BbU3udGugNvFu1RTzErF3Fu3T22G95DCN01Oe9dahS85aYukg%2BTvlCudiMkkoImyw3q7YnSlrdvFOhjVh%2Bj8sry63kLNd3rldC7qLYOWdW80VYKJTk0hc3U4hKF%2BTL9hIjv0Qq%2B1iE7TxuJ4Uo6hM86Cdzbr%2BZGfi61LydQqZfNJqEyHl04zFDrQwMnVDmeJt1%2FDMPp7xJ1RmmtUf7a%2FIj1ld1g3MuSehhmpQtYp7ahCuDRhoEOMXEbqc9h0GSnj01fEuNOTeTu4E7d3FGezbVZJkzzFu6yLorxTFd5fUAwpVcC7b4xLBv48bw0sSIfWHOLfimgFEEb2ChwLBjTY2PA3OFq5FgRtWJbMxi20dV7jBXz6oKxx%2BHsJX5JZdCGq5Y1KJi9VqlYzuNhTMzU3kUeN25ABWc%2BtLSOZwsYIXyehqBq7lBcqPzrTP2mV0sPZiZQO7OfyAxnZrmCgPFdguu8C8dvupLFkqBKn9EIv%2F462LzCfSE9sAEtfIMf9DqN%2B5DMppAUQ0PPKSmxn5dLCXXj3uAcGTsK%2BEuQA1aQyXoLL7YurJUe8syVuiUOQWgs5vhmi6FgTR5PI7Q77gUpaLGR6QQloL6Me9couhMN3Jp84GOqUBUx5ks7og4lrEhB1XKVJJVmRybVLurDV0xF2c2BtvE6kyzFjrUcZsHk2toqkH7n2K%2FQkOptQh8hNOVHsaxemtS8UIwik4WTj90xFdscMIpHfQKOZ%2FaWWBy%2BDrHNXdk2ZQyo5azAq9UEptOZenfHg0NmmO0WZQ3vj5Jl%2Fk7iLFk55eP%2BvkLP2rDXiUWH2dE0JE%2Ft4lE3c1M2AQZj7HwGdwqGYaGkXI&X-Amz-Signature=6824d797ba1b16a8a4d808345cf27bbc244e86863518cad209c3dcf55ea97d53&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
1
2
3
4
5
6
7
8
9
10
11
12
- 7명의 annotator들에게 분배해서 각각 다운로드하고 전처리함
- 각 데이터 샘플 구조: image, instruction, text input (필요시), target output 2. **새로운 task 생성**
- 여러 annotation 결합: 캡션 + 지식 → 합친 output
- task 단순화: object detection → 이 이미지에 나타난 object 선택 문제
- 새로운 task에 대해서 20개의 샘플을 사람이 직접 풀어보고, 정답과 일치하면 taks를 유효하다고 판단함 3. **instruction 및 output template 개선**
- 기존에 있던 task는 annotator가 instruction 작성
- 새로운 task는 annotator와 연구자가 함께 작성함
- 연구자가 랜덤으로 할당되어 검토, 피드백 후 반복 수정 4. **task 품질 검증**
- 두 명의 연구자가 instruction이 자연스럽고 명확한지, 다른 task와 중복되지 않는지 품질 검증함 - 결과적으로,
- 총 187개의 task
- 각 task 당 최대 10,000개의 샘플
- <u>_총 1,664,261개 데이터 구성_</u>

2.2. Comparison with Existing Datasets

  • Vision-FLAN이 기존 데이터 대비 무엇이 더 나은가?

    → 기존 데이터셋보다 vision-flan은 task 종류도 더 많고, 세분화도 더 잘 되어 있음

  • 기존 데이터 (대부분 GPT 기반 생성 데이터)
    • task의 다양성이 좁고, 대부분 합성 데이터 중심
    • VL-Qwen: 사람이 만든 데이터셋, 하지만 비공개
    • MultiInstruct: 공개 데이터기반, task 수가 29개고 특정 task에 치우침
      • visual grounding 중심임
      • 일부 정보가 부족 - region-specific 정보 없음
  • 하지만 Vision-FLAN은,
    • task 수가 엄청 많음- multiinstruct 대비 약 3배
    • task 종류가 다양함
    • figure 2를 보면..
      • 우선 vision-flan은 크게 3가지 종류로 나뉘어짐
        • question-answering, generation, classification
      • classification의 경우 general / vehicle model… → 단순 vs 세밀함 모두 있음

Vision-FLAN Finetuning

image.png

  • 모델 구조
    • llava와 동일한 구조 사용
    • vision encoder, llm, 2개의 mlp
  • 두 단계 visual instruction tuning
    • stage 1: 능력 학습
      • 데이터: vision-flan (187개 task 전체)
      • 학습 대상 모듈: mlps, llm
      • instruction tuning 안 된 LLaVA 모델을 initial 모델로 사용함
      • 학습 결과 모델: Vision-FLAN-Base
      • 목적: 다양한 task 수행 능력 확보
      • academic dataset이라서 출력이 짧고 단순함
    • stage 2: 출력 정렬
      • 데이터: 소량의 gpt-4 생성 데이터
      • 학습 대상 모듈: mlps, llm
      • Vision-FLAN-Base에서 finetuning
      • 목적: 사람 선호 형태로 답변 생성
  • implementation details
    • 구조: llava
      • vicuna-13b v1.5, clip vit-l (336px), mlp 2 layers
    • stage 1: lr 2e-5, bs 16, epoch 1
    • stage 2: lr 1e-5, bs 8, steps 128
      • **llava dataset에서 1000개 랜덤 샘플링함**

Experimental Setup

  • 평가 데이터셋
    • 객관식 - MMbench, MME, MMMU
    • 자유 생성 - MM-Vet, LLaVA-Bench
    • hallucination 평가 - POPE
    • catastrophic forgetting 평가 - CIFAR-10, CIFAR-100, MNIST, miniImageNet
  • 평가 방식
    • 공식 벤치마크인 MMbench, MME, MM-Vet, LLaVA-Bench, POPE, MMMU
      • 공식 평가 코드 사용
    • 아닌 경우
      • CIFAR-10, CIFAR-100, MNIST, miniImageNet
      • Vicuna 1.5 13B를 사용해 평가 수행
      • 4개 데이터셋 평균 성능을 CF 컬럼으로 보고
  • 베이스라인 모델
    • BLIP-2, InstructBLIP, Shikra, LLaVA, Qwen-VL, Qwen-VL-Chat, LLaVA 1.5

Results and Analysis

  • 메인 실험 결과

    image.png

    • VISION-FLAN BASE 성능
      • mm-bench 등에서 sota 달성
      • llava-bench에서 성능이 낮음 → academic 데이터로 학습해서 모델이 짧게 답하는 경향을 학습, 사람 선호 스타일과 불일치
    • VISION-FLAN CHAT 성능
      • llava-bench에서 성능 크게 향상
      • 동시에 hallucination, forgetting 낮음
      • chat 데이터에서는 성능이 향상되었지만 일부 벤치마크 성능은 떨어짐
        • gpt 데이터가 bias를 유입하고, hallucination이 증가해서 그렇다고 함… 이후 study에서 보여줄 것
  • Human-labeled and GPT-4 합성 데이터의 효과
    • task 수 증가 vs 성능
      • task 수가 증가할 수록 모든 벤치마크에서 성능이 증가함

        image.png

    • instance 수 고정, task 수만 변화
      • 총 데이터 수는 고정을 하고, 적은 종류의 task에 많이 할당하는 것 vs 많은 종류의 데이터셋에 적게 할당하는 것

        image.png

        • task 수가 많은 것이 더 좋은 성능

      ⇒ 데이터 양 < task 다양성이 더 중요함

    • gpt-4 생성 데이터가 성능을 올리는지 분석

      image.png

      • mme, mm-bench와 같은 comprehensive benchmark 점수 비교
        • vision-flan base는 gpt 데이터를 추가 학습했더니 조금 떨어짐
        • llava는 초기 성능은 좀 상승하나 추가 성능 향상 없음

      → gpt4는 모델의 능력을 향상시키지는 않음 / 답변 형식만 바꿈

    • gpt-4 생성 데이터의 양이 human preference에 미치는 영향

      image.png

      • llava-bench에 대해서 평가
      • 1000개 만으로도 큰 향상

      → 소량 gpt 데이터만으로도 사람 선호 alignment 충분히 가능함

      • 오히려 양이 너무 많아지면 성능 감소
    • gpt 데이터 양이 hallucination과 bias에 미치는 영향

      image.png

      • gpt 데이터가 많아질수록 모델이 yes를 더 자주 선택함
      • hallucination도 높아짐

      → gpt 데이터가 많아질수록 bias와 hallucination을 증가시킴

  • 단일 stage를 mixed 데이터로 학습 vs two-stage 학습
    • 단일 stage
      • vision-flan + gpt 데이터 한번에 섞어서 학습
    • two stage
      • stage 1은 vision flan
      • stage 2는 gpt 데이터 1000개

      image.png

    • mixed 데이터 방식은 성능이 낮음
      • gpt 데이터 많이 써도 성능 오히려 떨어짐
      • two-stage가 좋음
        • 단계적으로 학습하는 것이 각 단계의 역할이 분리되고 더욱 효과적임
  • 새로 만든 task의 효과 분석

    image.png

    • 전체 task 사용 vs 기존 task 사용
    • 전체 task 사용하는 것이 (즉 새로운 task 포함하는 것이) 더 좋음
  • 각기 다른 task group에서 온 task들의 기여
    • vision-flan은 크게 3가지의 큰 그룹으로 나뉨
      • qa, classification, generation
      • 각 그룹을 하나씩 제거한 모델을 학습해서 성능 비교함

        image.png

      • generation 제거 시 llava-bench가 크게 하락
        • 자유 생성 능력에 중요
      • qa + classification은 제거하니까 mme가 감소
        • 종합적인 성능에 중요함

    ⇒ 3가지 task는 각각 다른 능력을 담당하며, 모두 함께 있어야 최상의 성능이 나옴

  • visual instruction tuning이 adapter와 llm 중 어떤 성능을 올리는가

    image.png

    • mlp만 학습 → 성능 낮음
    • llm만 학습 → 성능 많이 개선
    • mlp & llm 학습 → 최고 성능
    • llm만 학습해도 거의 최고 성능에 근접하게 나옴
      • mlp의 역할: pretraining 단게에서 이미 충분히 학습됨

      → instruction tuning 단계는 llm이 visual feature를 충분히 잘 “이해하도록” 만드는 과정임

    image.png

    • instruction tuning된 mlp를 제거하고 pretraining mlp로 교체함
    • 성능이 90% 이상 유지됨 → 큰 차이는 아님

    → visual instruction tuning의 본질은 mlp가 아니라 llm이 visual feature를 이해하게 만드는 것임

  • instruction tuning
    • nlp에서 시작 → vision-language로 확장
    • multiInstruct
      • 최초의 human-labeled 멀티모달 instruction 데이터
    • llava
    • 이후 확장 연구 - 3d, multi-image, video로 확장
    • 혼합 데이터 방식
  • 성능 개선을 위한 여러 시도들
    • 데이터 생성 다양화
    • bias/robustness 개선
    • visual grounding 강화
    • ocr 관련 개선
    • scaling 연구
    • gpt-4”v” 활용
  • 본 연구의 차별점: human-labeled task 확장에 집중 / task 다양성을 늘림

Conclusion

  • VISION-FLAN 구축
    • 187개 task, 166만개 데이터, 모두 academic 기반 + expert instruction
  • two-stage 적용 시 여러 벤치마크에서 sota 달성함
  • human-labeled data vs gpt 데이터의 역할을 분석함

Limitations

  • 모든 task가 영어
  • 모든 task가 단일 이미지 기반
  • gpt-4 기반 데이터하고만 비교하고, 더 최신 gpt-4v 데이터는 고려 안함
  • 모델 구조 제한 - llava만 사용해 봄
This post is licensed under CC BY 4.0 by the author.