KNN-LM (2019), REALM (2020), RAG (2020)
위 세 논문들은 RAG 기술의 기초를 다지고, 발전시키며, 현재의 형태로 정립하는 데 중요한 역할을 했다. 각각의 연구가 이전 연구의 한계를 보완하고 새로운 아이디어를 제시하면서 RAG 기술은 빠르게 발전해왔는데 (...) 이 논문들에 대해서 간략하게 살펴보자!
KNN-LM (2019)
- 주요 아이디어: 언어 모델에 k-최근접 이웃(k-Nearest Neighbors) 검색을 결합했습니다.
- 영향: 대규모 데이터셋에서 관련 정보를 검색하여 언어 모델의 성능을 향상시킬 수 있음을 보여주었습니다.
- 의의: 검색과 생성을 결합하는 아이디어의 초기 형태를 제시했습니다.
inference 시에 explicit memory 사용
사용자가 질문을 하거나 모델이 텍스트를 생성해야 할 때(Inference) 외부 데이터베이스(명시적으로 저장되고 접근 가능한 외부 데이터베이스)를 참조하여 정보를 활용한다. 외부 데이터베이스에서 관련 정보를 검색해서 다음 단어나 문장을 예측한다. (모델이 학습 시점 이후의 새로운 정보나 더 정확한 데이터를 실시간으로 활용할 수 있게 해줌)
참고로 KNN-LM에서 Inference가 나타날 때는?
- 사용자 질문 처리: 사용자가 질문을 입력했을 때
- 텍스트 생성: 모델이 텍스트를 계속 생성해야 할 때
- 다음 단어 예측: 문장을 완성하는 과정에서 각 단어를 선택할 때
전통적인 언어 모델에서는 학습 과정에서 얻은 지식을 모델 파라미터에 암묵적으로 저장했지만, KNN-LM은 그냥 외부 데이터를 쓴다.
decoder-only Transformers
텍스트 생성 과정에서 decoder-only 구조를 사용한다. Transformer는 원래 인코더와 디코더 두 부분으로 구성되는데, 인코더는 입력을 처리하고 디코더는 출력을 생성한다. 디코더만 쓰니까 출력 전용(?) 느낌. 참고로 GPT 시리즈도 디코드 온리다. Decoder-only Transformers는 텍스트 생성 태스크에 특화되어 있는데, 여기에 k-최근접 이웃 검색을 결합하여 성능을 향상시켰다.
REALM (2020)
- 주요 아이디어: 사전 학습 단계에서부터 검색 기능을 통합했습니다.
- 영향: 언어 모델이 학습 과정에서 외부 지식을 활용하는 방법을 제시했습니다.
- 의의: 검색과 생성의 end-to-end 학습 가능성을 보여주었습니다.
Retrieval-Augmented Pre-training
언어 모델과 검색기를 동시에 학습시킨다. 검색된 문서의 유용성에 따라 검색기를 최적화한다.
BERT(Bidirectional Encoder Representations from Transformers) Based
REALM은 BERT의 핵심 아키텍처와 학습 방식을 기반으로 하되, 여기에 검색 기능을 추가하여 확장했다. REALM은 BERT의 transformer 인코더 구조를 기본으로 사용한다. 양방향 컨텍스트를 이해한다는 강점! BERT와 마찬가지로 REALM도 다양한 하위 태스크에 대해 fine-tuning이 가능.
RAG (2020)
- 주요 아이디어: 검색 컴포넌트와 생성 모델을 명시적으로 분리하고 결합했습니다.
- 영향: 유연하고 확장 가능한 RAG 프레임워크를 제시했습니다.
- 의의: 현재 널리 사용되는 RAG 시스템의 기본 구조를 확립했습니다.
Retrieval-Augmented Fine-tuning
RAG에는 검색기(Retriever)가 있고 생성기(Generator)가 있는데, 이 둘을 하나의 연결된 시스템으로 취급한다. RAG는 사전 학습된 언어 모델에 검색 컴포넌트를 결합하고, Fine-tuning 단계에서 검색과 생성을 함께 최적화했다. 결과적으로 전체 시스템 성능이 최적화!
fine-tuning only
RAG 모델에서 검색기(retriever)는 고정하고, 생성기(generator)만 fine-tuning하는 방식. 전체 모델을 학습하는 것보다 빠르고, 검색 성능의 급격한 변화 없이 생성 성능을 개선할 수 있다. 상황에 따라 전체 모델을 학습하거나 일부만 fine-tuning하는 선택이 가능하다.
BERT encoder, BART generator
Encoder 검색기(retriever): BERT(Bidirectional Encoder Representations from Transformers) 사용해서 입력 텍스트와 문서를 벡터로 변환하여 유사도를 계산.
Generator 생성기: BART(Bidirectional and Auto-Regressive Transformers) 사용, 검색된 정보와 입력을 바탕으로 최종 출력을 생성.
'공부방 > Upstage AI Lab 4기' 카테고리의 다른 글
8/6 학습일지 | 파이썬에서 RAG 구현하기 (0) | 2024.08.06 |
---|---|
네이버 증권 데이터 크롤링 | f-string이 중요하네!! 디버깅 힌트 (0) | 2024.08.06 |
Langchain과 RAG에 관한 찍먹 기본 지식 (1) | 2024.08.05 |
파이썬 클래스 연습문제 3 - 도서관 관리 시스템 만들기 (0) | 2024.08.03 |
파이썬 클래스 연습문제 2 - 이제 조금은 알 것 같기도 하다 (0) | 2024.08.02 |