강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

rarexband님의 프로필 이미지
rarexband

작성한 질문수

RAG를 활용한 LLM Application 개발 (feat. LangChain)

RAG 구조에서 전체 맥락을 이해시키는 방법

작성

·

13

0

안녕하세요, 강사님.
강의 덕분에 RAG를 활용한 챗봇을 성공적으로 구현해서 잘 사용하고 있습니다!

(질문1)
다만, RAG 구조상 사용자의 질문과 가장 유사한 문서 조각(chunk)을 찾아서 그 안에서만 답변을 생성하다 보니, 전체 문서를 이해해서 답변을 해주지는 못하는 점이 아쉽습니다.

RAG로 학습시킨 매뉴얼이 약 47페이지 정도이고 양이 많지 않은데,
이 전체 매뉴얼의 내용 전체를 이해하고 종합적으로 답변할 수 있는 방법이 있을까요?

출처를 알려줄 수 있는 RAG의 분명한 장점이 있어서, 현재의 RAG 기반 구조를 유지한 채 개선을 할 수 있는 방법이 있을지 궁금합니다.

 

(질문2)

47페이지 문서 외에 더 자세한 매뉴얼을 추가로 반영하려고 하는데요,

이때 pinecone에 동일 DB(인덱스)로 그냥 추가하는게 좋을지 아니면 더 나은 구조가 있을지 조언 구하고 싶습니다.

감사합니다.

답변 2

0

강병진님의 프로필 이미지
강병진
지식공유자

안녕하세요! 좋은 질문 감사합니다. 현업에서 사용중이시라니 일단 기분이 너무 좋습니다 ㅎㅎ

매뉴얼 전체의 내용을 이해하는 것은 아마 context window에 걸린다면 LLM 실행 자체가 안될거라 에러가 발생할 위험이 있습니다. 가장 간단한 방법은 매뉴얼 요약본을 pincone 검색 결과와 같이 활용해서 프롬프트에 넣어서 작업하는게 가능할 것 같습니다.

만약 직접적으로 검색에 걸리는 chunk에서 보다 더 자세한 문맥을 활용하고 싶으시면 ParentDocumentRetriever를 활용해서 조금 더 긴 chunk를 가져올 수 있습니다. 아래 관련 링크 전달 드립니다!

https://python.langchain.com/docs/how_to/parent_document_retriever/

0

안녕하세요, 인프런 AI 인턴입니다. rarexband님.

RAG를 활용해 구현한 챗봇의 전체 문서를 이해하고 답변하는 방법 및 문서 추가 방안에 대한 질문을 주셨습니다.

질문 1: 전체 문서를 이해하고 답변하기

RAG 구조는 기본적으로 사용자의 질문에 대해 가장 관련성 높은 문서 조각을 검색하여 답변을 제공합니다. 전체 문서를 대상으로 한 이해 및 종합적인 답변은 RAG의 특성상 제한적일 수 있습니다. 하지만 몇 가지 방법으로 개선을 시도할 수 있습니다:

  1. 세션 유지:

    • 사용자의 여러 쿼리를 하나의 세션으로 간주하고, 이전에 처리된 정보들을 지속적으로 활용하도록 구현할 수 있습니다. 사용자의 질의가 시간적 맥락 속에서 처리되도록 할 수 있습니다.
  2. Context Window:

    • 검색 결과로 가져온 여러 섹션을 기반으로 답변을 생성하도록 조정할 수 있습니다. 이를 위해 검색된 문서들을 최대한 많이 결합하여 하나의 컨텍스트로 제공하도록 합니다.
  3. 요약 기능 사용:

    • 문서 전체에 대해 자동 요약을 생성하고, 이를 RAG의 Refiner(추론 모델)에게 추가 컨텍스트로 제공할 수 있습니다. 요약된 정보를 기반으로 좀 더 종합적인 답변이 가능합니다.

질문 2: 문서 추가 방안

Pinecone의 동일 DB(인덱스)로 문서를 추가하는 것이 가장 간단한 방법이지만, 다른 방법도 고려해 볼 수 있습니다:

  1. 동일 인덱스에 추가:

    • 간단하지만, 기존 문서와 신규 문서의 검색 혼합 가능성을 염두에 두어야 합니다.
  2. 분리된 인덱스 사용:

    • 문서의 성격에 따라 별도의 인덱스를 생성하고, 쿼리 시 적절한 인덱스를 선택하여 검색할 수 있도록 로직을 구현할 수 있습니다. 이 경우 필터를 사용해 필요한 인덱스만 검색하도록 조정할 수 있습니다.
  3. 메타데이터 이용:

    • 각 문서에 대한 카테고리를 메타데이터로 지정하여 검색할 때 사용자가 선택한 문서 유형이나 카테고리에 따라 적절히 검색하도록 하는 방법도 있습니다.

이와 관련된 정보를 더 잘 이해하려면 기존 질문들을 참고할 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

rarexband님의 프로필 이미지
rarexband

작성한 질문수

질문하기