AI Engineering Topic/논문 리뷰

RAG 논문 리뷰

Young_Metal 2023. 11. 7. 02:41

해결하고 싶었던 문제

많은 양의 "지식"을 필요로하는 공개 도메인의 문제에 대한 답변하기 를 수행하기

외부 지식 참고를 해야한다.

자유도 높은 답변을 생성해야한다.

 

RAG가 신기한 점

 

1. 외부 지식()을 사용하여 직접적으로 "지식"을 디코딩(지식을 저장하고 질문에 맞는 답을 찾아 생성)할 때 이용하는 방법을 제시

2. Retriever-based와 Generator-based의 프레임워크를 사용해서 knowledge intensive task와 같은 NLP task를 처음으로 해결한 논문

3. end-to-end 학습이 가능하다

 

 

 

 

RAG 모델 구조의 특징

1. Retriever-and-Reader -> Retriever-and-Generator 로 바뀌면서 정답이 없는 경우에도 답변을 생성할 수 있는 구조

2. answer generation task로 문제를 정의해서 QA를 포함한 다양한 글 종류에 대한 생성 기반 task 수행 가능

3. 답변을 생성하기 때문에 Retrieve한 Passage(글)에 없는 내용에 대한 것을 "생성"한다.

 

 

기존 ODQA(Open-Domain Question Answering)에서 사용 된 점

REALM 구조 : Retriever-and-Read : Passage(글)에서 질문의 context(문맥)에 해당되는 Answer span을 찾아내는 방법(Span Prediction)으로 "선택"해야함

선택 이외의 "생성" 이 안되서 답을 할 수 없는 문제에 대해서 답변이 이상하거나 다양성이 떨어진다

ex) 위키피디아

 

 

 

모델 구조

Retriever : DPR

Generator : BART

 

DPR의 input : 질문에 대한 Query (인코더), 지식이 담긴 글에 대한 Passage (인코더)DPR의 output : 인코더를 반복적으로 사용해서 "Representation(표현)"을 추출하고 그에 가장 유사한 

Passage(글)을 찾아내어 기존 Query(질문)와 연결(Concat)한 것을 출력한다

 

BART의 input : DPR output에 대한 Top-k 글을 Query와 연결한 것

BART의 output(정답)Vocabulary Distribution -> 문장으로 만들기 위한 Rag-Sequence, Rag-Token을 통해 최종 "답변 글"

 

생성방식(2가지) 1. 각 글마다 새롭게 토큰을 만들고 최종 생성된 결과를 시점단위로 주석달듯 생성하는 것    RAG_sequence : 동일한 문서를 기반으로 각 target token 예측 2. 토큰을 하나씩 생성할 때마다 다른 글들에 따른 분포로 주석달듯 생성하는 것    RAG-token 다른 문서를 기반으로 각 target token 예측

 

BART의 장점 : 다양성, hallucination을 줄임

 

결론 둘 중에 하나의 방법이 무조건적으로 우세하지 않고, 데이터셋별로 우세한 것이 다르다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[참고 문헌]

1. [Paper Review] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks – DSBA (korea.ac.kr)

 

[Paper Review] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

논문 제목 : Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks 제안 방법론 : RAG Arxiv 링크 : https://arxiv.org/abs/2005.11401 발표 컨퍼런스 : 2020 NeurIPS 인용 수 : 412회 (2022년 10월 10일 Semantic Scholar 기준) 1

dsba.korea.ac.kr

2. [논문리뷰] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks | Deep Learner (jeonsworld.github.io)

 

[논문리뷰] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks Patrick Lewis, Ethan Perez, Aleksandara Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen-tau Yih, Tim Rocktäschel, Sebastian Riedel, Douwe Kiela htt

jeonsworld.github.io

3. [논문 리뷰] Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering (tistory.com)

 

[논문 리뷰] Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering

이번 게시물에서는 retrieval augmented language model의 일종인 RAG model을 내부적으로 수정하여 발전시킨 FiD (Fusion-in-Decoder) model을 제안한 Leveraging Passage Retrieval with Generative Models for Open Domain Question Answeri

gbdai.tistory.com

4. 3. [논문 리뷰] Retrieval-augmented Knowledge-intensive Task(RAG) - NLP AI (dajeblog.co.kr)

 

3. [논문 리뷰] Retrieval-augmented Knowledge-intensive Task(RAG) - NLP AI

Retrieval-augmented Knowledge-intensive Task(RAG) 관련한 논문 리뷰 입니다.

dajeblog.co.kr

5. transformers/src/transformers/models/rag/modeling_rag.py at v4.25.1 · huggingface/transformers (github.com)