- 2024년 6월 6일 오후 11:09
- 조회수: 29615
INFORMATION
- 2024년 6월 7일
- 오전 12시 ~
온라인 비디오 시청 (YouTube)

TOPIC
On-Line Video
OVERVIEW
청취자 후기

금일 세미나는 최근 화두가 되고 있는 RAG 분야에 대해 살펴본 세미나다. 기존 LLM의 경우 일반적인 지식에 대한 corpus 데이터로 학습 되기 때문에, 병리학, 화학, 의학, 공학 등 전문적인 도메인 지식이 요구되는 분야에 대해서는 해당 분야의 데이터로 다시 한번 fine-tuning을 진행하지 않는 이상 적합한 답변을 내기 어려웠다. RAG는 LLM이 특정 분야에 대한 지식(정보)를 가지고 있는 데이터베이스가 추가적으로 주어졌을 때, 질문에 대한 답변을 하기 위해 주어진 데이터베이스를 탐색하여 적절한 답변을 유추하는 태스크이다. 해당 세미나의 10p에 나온 그림이 RAG를 가장 잘 설명하는 그림인 것 같다. 질문(query)와 외부 데이터셋(key)에 대한 유사도를 계산하여 적합한 소스(source)를 고른 뒤, 답변을 생성하는 generator에 동시 입력되는 방식인 듯 하다. 따라서 RAG는 크게 두 개의 stage(retrieval과 generation)로 구성된 듯 한데, 본 세미나에서 설명하는 것을 이해한 바로는 해당 스테이지마다 쓰는 언어모델이 다른 것 같다.
최초로 제안된 RAG의 경우, Retrieval에서는 DPR이라는 모델을 Generator에서는 BART를 썼다. (DPR이라는 모델은 처음 들어봤는데, 기존 언어 모델과 어떠한 차이가 있어서 본 논문의 저자들이 굳이 DPR을 썼는지 좀 궁금하다. )
두번째 논문인 RETRO의 경우, 내가 이해한바로는 큰 프레임워크는 다르지 않지만 다음과 같은 소소한 차이가 존재하는 것 같다. 1. Generator를 GPT를 사용하였으나, 모델 크기보다는 사용하는 데이터셋 크기를 늘림. 2. 특정 개수의 token을 묶어 입력 값으로 사용(이건 언어 모델의 입력 토큰 개수 제한 때문인지 모르겠다. 4의 causality 관점에서는 맞는 것 같기도...) 3. Retrieval Dataset에서 선택된 source passage 다음 passage도 함께 사용, 4. Chunk 단위의 Input에 대한 Retrieval 정보와 Cross Attention 사용. 4.의 경우 Chunk 단위의 입력을 그냥 끊어서 입력하면 맥락정보가 반영되지 않을 수 있기 때문에, 토큰을 하나씩 밀려서 넣는데, 2와 4의 경우 아마 입력 토큰 데이터가 너무 길 경우, 잘라서 넣고 싶은데 이로 인한 맥락 정보 손실을 방지하기 위해 두 가지 트릭을 혼용해서 사용한듯하다(아니라면 누가 반박 적어주면 감사하겠습니다).
RETRO++의 경우 fine-tuning이 조금 더 들어간 것 이외에 '템플릿'이라는 개념이 처음 소개 되었는데, 구체적으로 이게 어떻게 저장되어 활용되는지 프레임워크가 완벽히 잘 그려지지는 않았다.
본 세미나를 준비하느라 고생한 이정민 연구원에게 큰 박수를 보낸다.

이번 세미나는 대형 언어 모델(LLM)과 회수 모델(Retriever)에 대해 소개되었으며, 각 연구 분야에서의 발전과 적용 사례에 대해 설명되었다. 대형 언어 모델(LLM)은 방대한 양의 텍스트로 사전 학습된 모델로, 다양한 작업을 수행할 수 있는 능력을 갖추고 있다. 그러나 LLM의 주요 한계 중 하나는 특정 도메인 텍스트에 대해 부적절한 답변을 출력할 수 있다는 점이다. 이를 개선하고, 사용자의 의도와 작업에 맞게 활용하기 위해서는 instruction-tuning이 필수적이다.
이러한 한계를 극복하기 위해 회수 모델이 도입되었으며, 질문과 관련된 정보를 데이터베이스에서 탐색하여 모델에 입력함으로써 보다 정확한 응답을 생성할 수 있다. 회수 모델은 임베딩 벡터의 유사성을 기반으로 쿼리와 관련된 정보를 추출하는 방법을 사용한다. 본 세미나에서는 이와 관련된 논문 3개를 소개하였다.
1. Retrieval-Augmented Generation for Knowledge-Intensive NLP tasks (2020, NeurIPS)
: Retrieval-Augmented Generation (RAG)은 retrieval와 generator 두 가지 모델로 구성된 프레임워크이다. RAG는 사전 학습된 DPR 모델과 BART generator 모델을 사용하여 질문에 대한 더 나은 응답을 생성한다. Rag-Sequence 모델과 RAG-Token 모델은 각각 출력 토큰마다 동일한 또는 다른 문서를 사용하여 응답을 생성하는 방식으로 구분되어 진다.
2. Improving Language Models by Retrieving from Trillions of Tokens (2022, PMLR) & Shall We Pretrain Autoregressive Language Models with Retrieval? (2023, EMNLP)
: Retro는 대규모 텍스트 데이터베이스를 사용하여 언어 모델의 성능을 향상시키는 방법론이다. 해당 방법론은 Chunked Cross-Attention (CCA)을 통해 낮은 연산 비용으로 retrieval한 정보와 cross-attention을 수행하며, GPT-2 기반의 디코더에 retro block을 삽입하여 성능을 개선한다. RETRO++는 기존 RETRO에 추가적인 미세 조정을 적용한 모델로, 다양한 실험을 통해 성능이 검증되었다. (RETRO에서 CCA를 진행할 때, 첫 번째 chunk에서 별도의 연산을 적용하지 않는 이유가 뭔지 궁금하였고 RETRO++에서 최상위 정보는 Template A에 추가하고 나머지는 encoder에 저장한다는 의미가 머릿속으로 잘 그려지지 않았다.)
결론적으로, RAG와 RETRO는 외부 데이터베이스를 활용하는 회수 모델을 통해 특정 작업에 맞춰 성능을 크게 향상시켰다. 특히 RETRO++는 미세 조정을 통해 GPT보다 repetition 비율이 낮아짐에 따라 우수한 성능을 발휘하는 것을 확인할 수 있었다. 이번 세미나를 통해 각 연구의 한계점을 개선하며 발전해온 과정을 잘 이해할 수 있었다. 유익한 세미나를 준비해준 정민이에게 고마운 마음을 전하며, 세미나 후기를 마친다.

LLM으로 QA Task를 효과적으로 수행하기 위해 연구된 Retriever 모델에 대한 세미나를 청취하였다.
Retriever 모델은 특정 데이터베이스와 협업하여 LLM 모델의 특정 도메인 분야에 대한 QA 성능을 향상시키는데 활용될 수 있다. 데이터베이스 안 여러 Knowledge들 중에서 Question이랑 관련있는 것들을 탐색한 뒤, 연관성 높은 Knowledge를 추출 및 LLM에 활용한다는 의미에서 Retriever라는 이름을 붙이게 된 것 같다. 탐색 대상인 데이터베이스의 규모가 큰 상황을 가정하는데, 이러한 이유로 학습 및 추론 과정에서 계산 효율성을 높이는 전략들도 함께 연구되고 있는 것을 알 수 있었다. 또, 연관성 파악 과정에서는 Cross attention mechanism이 주로 사용되는 것 같다.
좋은 세미나를 준비하느라 고생한 정민이에게 감사의 말씀을 전하며 세미나 후기를 마치도록 한다.

Language Model의 Retriever에 대해 진행되었다. Retriever는 사용자 Prompt에 대해 LLM이 답변할 때 기존에 학습된 내용으로만 답하는 것이 아닌, 데이터 베이스를 참고하여 답변하는 것이다.
1) RAG: 데이터 베이스 내 여러 문서와 Query 간 유사도를 구한 후, 가장 높은 Top K 유사도 문서를 참고한다. 이후, Query 벡터와 유사도 문서 벡터를 결합하여 입력된다. 또한 Output을 순차적으로 출력할 때 마다 참고 문서를 변경해가며 Decoding하는 것도 가능하다.
2) RETRO, RETRO++: Token을 묶어서 입력으로 받으며(계산 효율성), 이후 다음 Passage까지 묶어서 입력에 활용한다. 또한 참고 문서 정보와 Input 간 Cross Attention을 적용한다. RETRO++은 RETRO를 Finetuning 한 것이다.
최근 많이 들어본 Task였는데, 이번 기회에 공부할 수 있었다. 꽤나 직관적이며, 반드시 현실에서 필요한 연구 아이디어라는 생각도 들었다. 향후 대형 Vision 모델에서도 이러한 Retrieval 이 도입된 사례가 있는지 궁금해졌다. 유익한 세미나를 준비해준 이정민 연구원님께 고맙다는 말을 전하며 세미나 후기를 마친다.