RAG를 이해해보자

RAG는 “LLM의 추론 성능을 높이기 위해 외부 지식 소스를 활용하는 기술”을 말합니다.


LLM의 한계

1) 환각
2) 데이터 최신성
3) 일관성

등 현재 생성형 언어 모델의 한계는 명확합니다.


AI 기술의 비약적인 발전에도 불구하고, 기업에서 이를 쉽게 상용화하지 못하고 있는 이유이기도 합니다.


언어 모델 발전사

Seq2Seq

Attention이 등장하기 전에 많이 쓰인 LSTM 셀로 구성돼 있습니다.

  • 구성 : LSTM 인코더, LSTM 디코더

  • LSTM 인코더
    : (현재 시점의 Input, 이전 시점의 Hidden State) → (현재 시점의 Hidden State) 생성

  • LSTM 디코더
    : LSTM 인코더와 비슷하지만 몇 가지 차이가 있습니다.

    1. LSTM 인코더가 만들어낸 최종 Hidden State를 디코딩을 위한 초기 Context로 가져옵니다.

    2. 이전 시점에 자신이 만든 Output을 보고 다음에 올 내용을 예측하며 문장을 Sequential하게 처리합니다.


Bahdanau Attention

Bahdanau Attention은 Output을 생성해낼 때마다 모델에 입력된 Input의 다른 부분을 참고합니다. 이는 대답하려는 Output이 무엇이냐에 따라 Input의 각 부분이 갖는 중요성이 균일하지 않기 때문입니다.


이는 마치 사람이 문장의 전체가 아닌 특정 부분에 집중하는 모습과 유사합니다.


  • Bahdanau Attention의 인코더는 Seq2Seq과 큰 차이가 없습니다.

  • 하지만 디코더는 Seq2Seq과 달리, 매 Iteration마다 새로 계산된 Context를 입력으로 받아 디코딩합니다. 현재 시점에서 Input 값 중 어떤 부분이 더 중요한지 가중치를 계산해 판단합니다.


Transformer

“Attention is all you need”라는 논문으로 유명한 트랜스포머는 Attention이 다른 모델에 붙어 가중치를 계산하는 다른 모델과 달리, 모델에서 가장 핵심적인 처리를 담당합니다.


  • 인코더는 모든 토큰을 한꺼번에 받아들여 처리합니다.

  • 디코더도 이전 시점까지의 출력 값들을 한 번에 받아서 처리합니다.

  • 때문에 Seq2Seq과 달리 데이터가 순차적으로 처리되지 않습니다.

  • 이 때문에 위치 정보를 처리하기 위해 Positional Encoding 단계가 필요합니다.


RAG 초기 논문

kNN-LM (2019)

머신 러닝의 kNN 알고리즘 (최근접 이웃 알고리즘) 을 언어모델에 접목한 모델입니다.

  • 추론 능력을 높이기 위해 외부 메모리를 사용합니다.

  • 외부 메모리는 쿼리 시 사용할 레퍼런스 데이터를 제공합니다.

  • 디코더만 존재하는 트랜스포머로 이루어져 있습니다.


REALM (2020)

Open-Domain QA 필드에서 큰 파장을 일으킨 논문

  • 사전 훈련 단계에서 외부 지식 소스를 활용합니다.


RAG의 정수

RAG는 문서를 어떻게 잘 검색해서 가져오고, LLM에게 잘 넘겨주는지가 중요합니다.


RAG가 각광 받는 이유는?

RAG는

  1. 내가 쓴 책처럼 모델이 알 수 없는 다른 외부 지식을 LLM에게 학습시키고 질의할 수 있게 해줍니다.

  2. 환각을 없앨 수는 없지만, 줄일 수 있게 해줍니다.

  3. LLM이 유저가 원하는 맞춤형 답변을 할 수 있게 해줍니다.


RAG는 어디에 쓰이나요?

  1. 챗봇 구축 시 많이 쓰입니다. 현재 RAG가 굉장히 각광 받고있는 이유가 아닐까 합니다!

  2. 유사도 기반 증강 검색



#11기랭체인

5

👉 이 게시글도 읽어보세요