ABOUT ME

Today
Yesterday
Total
  • [NLP] RAG 란 무엇일까?
    카테고리 없음 2024. 9. 5. 12:05

    1. RAG 란 무엇일까요?

     

    - Retrieval-Augmented Generation 의 약자 입니다.

    - 이름을 해석해보자면, 가져와서 -> 증강하고 -> 생성한다 입니다. 

    - 무엇을 가져오고, 무엇을 생성하는 걸까요?

    - 아래 영상을 잠깐 봅시다.

     

    https://ai.meta.com/1319742961447503/videos/244800523626272/?idorvanity=712362492679853

     

    2. RAG 는 왜 필요할까요?

     

    - LLM 은 parameter 안에 지식을 저장합니다.

    - 이 지식은 한번 학습되면 멈춰있기 때문에 정적 상태에 놓여 있습니다.

    - 지식이 수정되거나, 지식을 추가해야할 경우, 이 parameter를 수정하기 위해 재학습을 시켜야 합니다.

    - 하지만 LLM 을 학습시키는데에는 많은 자원이 필요합니다.

     

    - 또한 LLM은 도메인 지식에 대해서는 취약합니다. 

     

    3. RAG의 이용 ( 결론 )

     

    - RAG 는 LLM이 가지고 있지 못한 지식을, 가져와서(retrieve), prompt에 추가시켜(augment), 답변을 생성해주는(generation) 방법론 입니다.

     

     

    4. RAG 의 작동 원리를 살펴보시죠.

     

     

    < 아래의 설명은 chatgpt 와의 대화를 통한 정보입니다 >

     

     

    1) Retriever 는 DPR ( Dense Passage Retrieval ) 로 구성된다. 

     

    - 질문(question)을 encoding 하고, 질문과 문서 벡터 사이의 유사도 측정을 통해, top-k 개의 문서를 반환한다.

    2) Generator ( seq2seq 모델을 사용한다 )

     

    - 그런데 retrieve 단계와 generate 단계에서 문서 인코딩 방식이 다른걸 볼 수 있다.

    - 그래서 물어봤더니 좋은 질문이라고 칭찬을 받았네요.

    -> 검색 목적과 생성 목적의 차이 

     

    < 검색 목적 >

    - 문서 벡터 d(i) 는 검색 목적으로 인코딩된 벡터이다.

    - 이 벡터는 주어진 질문 q 와의 관련성을 평가하기 위해 사용된다.

    - 이때의 인코딩은 문서 전체의 의미를 요약하고, 질문과의 유사성을 측정하는데 최적화 되어 있다. 

     

    < 생성 목적 >

    - 생성 단계에서는 문서의 세부적인 정보를 바탕으로 텍스트를 생성해야 한다.

    - 생성기는 검색과는 다른 방식으로 문서의 내용을 활용한다.

    - 문서의 전체 의미 뿐만 아니라 문서의 구체적인 세부 정보들이다.

    - 문서의 내용을 더 세밀하게 표현한 벡터 z(i) 가 필요하다.

     

    -> 따라서 문서 검색을 위한 인코더와 생성을 위한 인코더는 다를 수 있다.

     

     

    5. RAG-Sequence 와 RAG-Token

     

    1) RAG-Token

     

    - 같은 질문에 대해 RAG-Token 모델은 첫 번째 단어를 생성하고,

    - 이 단어를 바탕으로 정보를 업데이트하여 다음 단어를 생성하는 식으로 진행됩니다.

    - 이 과정에서 필요하다면 추가적인 문서를 검색합니다.

    - 매우 세밀한 정보가 요구되거나, 질문에 대한 답변이 매우 구체적이어야 하는 경우에 적합합니다.

    - 각 토큰마다 정보 검색이 이루어지므로, 질문에 대한 응답이 더욱 정교해질 수 있습니다. 

    - 매 토큰 생성마다 검색이 수행되므로, 연산 비용이 더 크고, 생성 속도가 느려질 수 있습니다.

     

    2) RAG-Sequence :

     

    - 인코딩된 문서 정보를 바탕으로 한 번에 전체 응답 텍스트를 생성합니다.

    - 응답의 일관성이 중요한 경우에 적합합니다.

    - 길고 복잡한 질문에 대해 긴 답변을 제공해야 하는 경우, 검색된 모든 정보를 바탕으로 통합적인 응답을 제공할 수 있습니다.

     

    -> 요약 : RAG-Sequence는 더 단순하고 일관된 응답을 원할 때, RAG-Token은 더 복잡하고 동적인 응답이 필요할 때 적합합니다.

     

     

     

Designed by Tistory.