AI/vision

[논문 리뷰] Reducing Hallucinations in Vision-Language Models via Latent Space Steering

민사민서 2024. 10. 31. 23:17

https://arxiv.org/abs/2410.15778

https://github.com/shengliu66/VTI

 

GitHub - shengliu66/VTI: Code for Reducing Hallucinations in Vision-Language Models via Latent Space Steering

Code for Reducing Hallucinations in Vision-Language Models via Latent Space Steering - shengliu66/VTI

github.com

깃헙 레포는 글 작성일인 오늘 업데이트된 따끈따끈한 논문..인데 어쩌다보니 읽어봄

 

Abstraction + Introduction

LVLM의 환각은 시각적 입력과 텍스트 출력 간의 불일치로 인해 발생하는 경우가 많음

종종 텍스트 디코더의 시각 입력에 대한 민감도 때문에 발생하며, 이는 이미지 인코더와 텍스트 디코더가 별도로 사전 학습될 때 나타나는 자연스러운 현상임

LVLM은 CLIP과 같은 강력한 비전 인코더와 LLM 언어 모델을 모두 활용, 비전 정보를 언어 영역에 매핑하여 정교하게 이해한다

 

LVLM에서 환각이란?

생성된 텍스트 반응에 존재하지 않는 물체나 문자를 언급하거나 잘못된 공간 관계를 제공하는 등 입력 이미지에 대한 부정확한 설명

⇒ 표준 LLM의 메커니즘과는 다르다

 

⇒ 추론 중 latent space expression을 조정해 환각 줄이기 위한 Visual and Textual Intervention (VTI) 기법 소개

(llm에서 latent altering 등의 논문들에서 아이디어를 얻었다고 함)

 

이 논문은 

(1) 시각 인코더와 텍스트 디코더 사이의 순차적 관계에 초점을 맞춰 환각의 메커니즘을 조사하여 시각적 특징의 안정성과 LVLM의 환각 사이의 상관관계를 밝혀내고,

(2) 잠재 공간에서 LVLM을 조정하여 덜 환각적인 출력으로 유도하는 새로운 방법인 VTI를 제안하고, (3) 광범위한 실험을 수행하여 기준 방법과 VTI를 벤치마킹

 

LLVM Hallucination Mechanism

Vision encoder

  • 이미지에서 시각 정보를 vision feature vector로 extract
  • text input과 동일한 embedding 공간에 투영

특징 안정성과 물체 환각 사이의 연관성을 조사하기 위해 다양한 유형의 노이즈로 원시 이미지를 교란하고 결과 특징 분포의 분산 분석

  • 이미지의 semantics 변경하지 않는 noise는 모델의 출력에 별다른 영향을 안미쳐야 하는데
    • 대부분의 시각 기능은 안정적이지만 긴 tail distribution을 보임 (불완전함)
    • noise에 지나치게 민감해져 출력의 부정확성 초래 ⇒ not robust
  • 노이즈가 주입된 여러 이미지에 걸쳐 시각적 특징을 평균화하면 주입된 노이즈의 유형에 관계없이 섭동의 수가 증가함에 따라 환각이 감소
    • 피처 평균화는 환각 현상을 완화한다
    • 하지만 치명적인 단점 = vision encoder는 깨끗한 데이터로 학습되므로 정보 추출이 손상되어 디테일이 손실될 수 있다
    • 여러 번 순방향 통과해서 평균화하는 cost가 너무 크다

오버헤드 없이 시각 특징의 안정성을 높이는 방법은 없을까?

 

Methods

안정적인 특징의 “방향”을 미리 계산한 뒤 다음 inference 시 모든 query 예제에 일관되게 적용하여 추가적인 학습/추론 비용 없이 환각을 줄이자

비슷하게 간혹 발생하는 text decoder(LLM)의 환각에도 대응하기 위해 textual direction도 구해 텍스트 디코더에도 적용할 수 있음

 

 

1. vision input v가 주어졌을 때 비전 인코더가 취하는 latent state를 h_l,t 라고 하자 (l = layer, t = index of vision tokens)

2. feature averaging처럼 인풋 image v의 일부 패치를 m개의 different random masks C_i로 masking한다. masking한 결과는 C_i(v) 이고 (corrupted copy of v)

3. 즉 robust latent embedding은 averaged embedding of different random masked images 겠지

위와 같이 visual direction을 구할 수 있음

 

근데 이건 한 샘플에 대한 visual direction => image-specific한 info 제거 필요 (generalization)

 

이런 visual direction을 N개의 (how to select N?) visual examples v_i에 대해 구한다 (by applying diff random mask)

PCA analysis를 통해 first principle direction을 구한다 (전체 분포를 대표하는 visual shifting vector를 구함)

 

레포 코드를 살펴보니 vision encoder 맨 뒤에 mlp layer를 하나 붙인다 (visual VTI 적용 위한)

if args.alpha_image != 0:
    add_vti_layers(model.model.vision_tower.vision_tower.vision_model, torch.stack([visual_direction],dim=1).cuda(), alpha = [args.alpha_image])

if args.alpha_text != 0:

    vti_text, _ = obtain_textual_vti(
        model, input_ids, input_images, rank=1
        )
    textual_direction = vti_text[1:]

if args.alpha_text != 0:
    add_vti_layers(model, torch.stack([textual_direction],dim=1).cuda(), alpha = [args.alpha_text])

 

비슷한 방식으로 textual shifting vector도 구할 수 있다

 

특징은 masking 대신 gpt-4의 도움을 받아 (response wo hallucination, w hallucination) 쌍을 생성

 

Experiments

POPE, CHAIR, MMHAL-Bench 데이터셋에서 평가함

effectiveness를 InstructBLIP, LLaVA 1.5, Qwen-VL 에서 평가해봄

일반 디코딩 전략을 일관되게 능가

 

visual shift와 text shift 는 서로 다른 평가 차원에서의 효과를 입증

  • visual shift는 CHAIR_I (calculates on image level)
  • textual shifting은 reducing CHAIR_S (calculates on sentence level)

=> 텍스트 시프트와 시각적 시프트는 상호 보완적?

 

Analysis

Visual shifting이 feature stability를 개선할 수 있냐?

  • multiple perturbed images의 visual embedding을 averaging하는 것에 대한 “soft” alternative
  • 이미지에 다양한 유형의 변화를 주었고, 100개의 perturbations에 대해 feature variance 평균을 구해봤음 ⇒ VTI를 적용한 것이 lower variance = better stability = smooth vision features

 

 

Text intervention은 image에 대한 attention dependency를 높인다

  • LLVM은 때때로 입력 이미지 정보를 무시하고 다음 토큰 예측을 오직 텍스트 기반으로 하는 것이 관찰되었음
  • text intervention = push latent space features to the non-hallucination direction ⇒ text-biased 환각 현상을 방지할 수 있을 것이다
  • reduce text-text average attention, increase attention to vision tokens
  • 아래 세모를 보면 generated content 양을 감소시키지 않고도 환각을 줄일 수 있음이 나타

 

 

단순히 vision feature averaing 한다면?

  • information loss가 발생할 수 있음
  • visual intervention ⇒ probing accuracy를 해치지 않으면서 visual feature stability를 높일 수 있을 것

 

 

 

'AI > vision' 카테고리의 다른 글

Vision Encoder - SIGLIP  (1) 2024.10.30
camera calibration using OpenCV  (0) 2024.08.29
OpenCV 이모저모  (0) 2024.08.29
영상 처리를 위한 OpenCV 라이브러리  (0) 2024.08.29