강의

멘토링

로드맵

Inflearn brand logo image

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

내향적인 개발자 IDev님의 프로필 이미지
내향적인 개발자 IDev

작성한 질문수

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

3.3 LangChain 없이 구성하는 RAG의 불편함

토큰별로 문서를 쪼개는 이유

작성

·

19

0

안녕하세요.

토큰별로 문서를 쪼개는 이유가 아래가 맞을까요?

  1. 유사도 검색

    1. 18만글자를 안쪼개고 벡터 데이터베이스에 저장하면 유사도 검색이 안됨

  2. GPT4-0 컨텍스트 토큰 한계

    1. 18만글자를 안쪼개고 넣는다 한들 유사도 검색 후 GPT가 그 결과값을 보고 답변을 줘야하는데 결과값이 18만글자니깐 답변 조차 못함

답변 2

1

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

안녕하세요! 좋은 질문 감사합니다.

정확하게 이해하셨습니다! 말씀하신 것처럼, 유사도 검색에서의 효율 향상과 LLM의 토큰 제한으로 인해 RAG를 구현할 때 문서를 토큰별로 쪼개서 저장한다고 보시면 됩니다.

이해한게 맞나 싶었는데 맞았군요! 감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 내향적인 개발자 IDev님.

질문 주신 “문서를 토큰별로 쪼개는 이유”에 대해 설명드리겠습니다.

  1. 유사도 검색의 효율성:

    • 문서가 18만 글자와 같은 매우 큰 단위라면, 벡터 데이터베이스에 저장할 때 검색 효율성이 떨어질 수 있습니다. 벡터 데이터베이스는 일반적으로 더 작은 단위의 정보를 저장하고 검색할 때 성능이 좋습니다. 따라서, 문서를 적절한 크기로 분할하여 저장하면 유사도 기반 검색을 보다 효율적으로 수행할 수 있습니다.
  2. GPT 컨텍스트 토큰 한계:

    • GPT-4.0 등 대형 언어 모델은 컨텍스트 내에 처리할 수 있는 토큰 수에 한계가 있습니다. 대형 문서 전체를 넣어버리면 모델이 이를 한 번에 처리할 수 없습니다. 결과적으로, 문서를 작은 토큰 단위로 나누는 것은 모델이 한 번에 처리할 수 있는 범위 내로 데이터를 제한해주어야 하는 필요성 때문입니다. 이렇게 하면 모델은 검색된 문서 조각들을 통해서도 적절하게 응답할 수 있습니다.

문서를 쪼개는 과정을 통해 모델과 데이터베이스의 성능을 최적화하고, 검색 결과의 정확성과 효율성을 높일 수 있습니다.

이와 관련된 더 자세한 설명을 원하신다면, 아래의 링크를 통해 비슷한 주제의 답변을 확인하실 수도 있습니다:
- split시 encode/decode관련 질문

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

내향적인 개발자 IDev님의 프로필 이미지
내향적인 개발자 IDev

작성한 질문수

질문하기