Knowledge Infused Decoding

jihyelee·2023년 1월 30일
1

knowledge-edit

목록 보기
9/15

Knowledge Infused Decoding
ICLR 2022

분야 및 배경지식

  • NLG (Natural Language Generation)
    • 모델이 자연어 문장 혹은 텍스트를 생성
    • decoder와 연관
  • Decoding strategies (link)
    • 일반적으로 모델은 문장을 생성할 때 한 번에 하나의 토큰을 생성하는데, 이렇듯 토큰을 생성할 때 선택할 수 있는 여러 전략이 존재
    • Greedy Search
      • 각 timestep마다 가장 확률이 높은 토큰을 선택
      • 가장 확률이 높은 토큰은 가장 일반적이고 무난한 토큰일 확률이 높아 최적이 아닌 결과를 도출하기도 함
    • Beam Search
      • 각 timestep마다 vocab list에서 가능한 모든 토큰을 만들고 만들어진 시퀀스 중 가장 확률이 높은 N 개의 후보만 선택, 해당 후보들은 다음 timestep으로 넘어가며 해당 프로세스가 반복
      • 모든 경우를 다 고려하는 것보다 계산효율적임과 동시에 괜찮은 문장을 생성할 수 있음
    • Top-K Sampling
      • 확률이 낮은 단어는 생성 시 고려대상에서 완전히 제외되도록 함
      • 오직 상위 K개의 가능성 있는 토큰들만 생성 시 고려됨

문제점

  • 사전학습 모델은 상당한 양의 지식을 기억하고 있으나, 사실적 지식을 올바르게 재현하는 데에 있어 한계를 가짐
  • 기존 연구들의 한계
    • 방법 1. 목적함수(objective) 혹은 아키텍처 변경
      • 학습에 있어 비용이 더욱 많이 듦
      • 수정 혹은 확장이 어려움 (as implicitly parameterized)
      • 잘못된 생성을 진단하기 어려움 (lack of interpretation)
    • 방법 2. Retrieval-based model
      • 새로운 토큰이 생성됨에 따라 역동적으로 변모할 수 있는 문맥(context)의 본질을 제대로 지원하지 못함

해결책

Knowledge Infused Decoding (KID)

  • 언어모델이 디코딩을 하는(=토큰을 생성하는) 각 스텝마다 외부의 지식을 역동적으로 주입시키는 새로운 decoding algorithm
  • 현존하는 사전학습 언어모델의 목적함수는 일반적으로 token-level로 정의되어 있으며, 명시적으로 지식에 대해 모델링하지 않았음에 아이디어를 얻음

  1. Knowledge Retrieval
  • DPR을 활용해 연관성이 있는 상위 3개의 문서들을 검색(Retrieval)
    • DPR이란 context와 관련있는 문서(document)들을 bi-encoder 네트워크를 사용해 768 차원의 shared embedding에 투사하는 방식
  • RAG가 공개한 문서 사용
    • 위키피디아 문단을 100개의 단어 기준으로 잘라 총 21M개의 문서를 knowledge source로 활용
  1. Memory Construction
  • 외부 메모리 (External Memory) (Green)
    • OpenIE를 활용해 선택된 triplet의 end node(주어, 목적어)를 annotate
      • OpenIE는 평범한 문장을 triplet 형태로 변경
      • e.g. Iceland is a Nordic island country in the North Atlantic Ocean and it is the most sparsely populated country in Europe. -> subj:Iceland, rel:is,obj:Nordic island country⟩, ⟨subj:Iceland, rel:is, obj:most sparsely populated country in Europe⟩
    • 해당 triplet을 활용해 Knowledge Trie (=prefix tree)를 생성
      • 주어는 key, 관계는 edge, 목적어는 value
      • offline으로 생성
  • 로컬 메모리 (Local Memory) (Blue)
    • input context에 있는 개체(entity)로 초기화
    • online으로 update
  1. Interaction Guided Decoding
  • 로컬 메모리에 있는 각각의 개체(entity)를 Key로 사용해 외부 메모리에 쿼리를 날려 Knowledge demonstration (Purple) 수집
  • Value가 Key를 가진다면, 다시 쿼리를 날림 (최대 hop까지)
  • 새로운 개체(entity)가 생성된다면 로컬 메모리 업데이트
  • policy gradient를 통해 updated policy를 얻고 이를 활용해 새로운 토큰을 생성

평가

  • Tasks
    • Abstractive Question Answering: ELI5, MSMARCO
    • Logic-centric Writing: ROC, alphaNLG
    • Dialogue Generation: WoW, MuTual

  • 다른 decoding 방식들과 비교했을 때 ELI5, ROC, WoW에서 SOTA 성능

  • 다른 Knowledge-infusion 방식과 비교했을 때 few-shot에서 좋은 성능
  • 이밖에도
    • 사람의 평가에도 좋은 성능
    • 파인튜닝되지 않은 언어모델에서 더 좋은 성능
    • exposure bias를 완화하는 효과 (문장 길이와 관계없이 안정적인 품질을 보여줌)

한계

  • Reviewer said...
    • 논문 이해의 어려움
    • baseline 선택의 이유가 명확하지 않음
    • 이러한 의견을 참고해 저자들은 더 자세한 설명과 baseline을 추가
  • Decoding 시간이 굉장히 오래 걸림
    • web demo를 이용했을 때 약 11분이 걸림 (Nvidia T4 GPU)
    • 직접 실험했을 때 약 6분이 걸림 (Titan XP GPU)
    • 또한 논문에서 태스크나 데이터셋에 따라 추론 시간이 달라질 수 있음을 언급함. practicality가 다소 떨어짐

의의

  • Reviewer said...
    • 어떤 모델 혹은 태스크에도 활용될 수 있는(model and task agnoastic) 재학습이나 파인튜닝이 필요없는 방법
    • 고정적인(static) knowledge retrieval 대비 역동적으로 외부 지식을 주입한다는 점에서 장점을 가짐
    • baseline 대비 성능 개선
profile
Graduate student at Seoul National University, majoring in Artificial Intelligence (NLP). Currently AI Researcher at LG CNS AI Lab

0개의 댓글