검색 증강 생성(RAG)이란?

2024/04/26

검색 증강 생성(Retrieval Augmented Generation)의 정의

검색 증강 생성(RAG)은 외부 지식을 통합하여 대형 언어 모델(LLM) 생성을 강화하는 기술입니다. 이는 일반적으로 방대한 데이터베이스에서 관련 정보를 검색하고 해당 정보를 사용하여 생성 프로세스를 알리는 방식으로 수행됩니다.


검색 증강 생성의 구성 요소

RAG-diagram-1024x480.png

검색 증강 생성은 데이터 준비(위 이미지의 파란색 부분)와 RAG 시스템(위 이미지의 초록색 부분)으로 구성됩니다.

  • 데이터 준비: 원시 데이터 소스에 접속하여 문맥 정보에 어노테이션을 추가하고, 문서를 더 작은 단위로 분할하여 벡터 임베딩으로 변환하는 작업이 포함됩니다. 데이터 준비 과정을 통해 작업의 일관성을 높이고 검색 증강 검색 제너레이터의 의미적 일치와 관련 지식 검색을 향상합니다. 이 과정에는 도메인 전문 지식과 컨텍스트가 원시 데이터에 통합되어 있습니다.
  • RAG 시스템: 프롬프트를 기반으로 관련 구절에 대한 임베딩을 검색하고, 이를 대형 언어 모델로 전송하여 응답을 생성합니다. RAG 시스템에서는 벡터 검색 관련성을 강화하고 즉각적인/대응 품질 보증을 제공할 수 있는 인간의 참여가 중요한 역할을 합니다.

검색 증강 생성 사용 사례

검색 증강 생성은 대화형 AI 및 콘텐츠 생성부터 검색 엔진에 이르기까지 다양한 분야에서 활용됩니다.

  • 고객 지원 시스템: 고객 문의에 정확하고 맞춤화된 답변을 제공하여 고객 서비스 품질을 향상합니다.
  • 교육 플랫폼: 다양한 지식을 기반으로 상세한 설명과 답변을 제공하여 학습 경험을 풍부하게 합니다.
  • 연구 및 분석 도구: 복잡한 정보를 간결하고 포괄적인 요약으로 추출하여 연구 및 분석 과정을 간소화합니다.
  • 콘텐츠 생성: 다양한 주제에 대한 관련성이 높고 유익한 콘텐츠를 생성하여 다양한 사용자에게 가치를 제공합니다.

주요 프로세스

  • 데이터 준비: 데이터를 선택하여 일관성 있는 단위로 묶는 과정에서 맥락을 유지합니다. 데이터 어노테이션과 청킹에 대한 전문 지식을 기반으로 데이터가 문맥적으로 손상되지 않고 정확하게 라벨링되도록 보장합니다. 여기서 청킹은 프롬프트와 문서를 청크라는 작고 관리하기 쉬운 세그먼트로 나누는 프로세스를 의미합니다. 이러한 세그먼트는 문자, 문장 또는 단락의 수와 같이 고정된 차원을 기준으로 구분할 수 있습니다. 검색 증강 생성에서 각 청크는 임베딩 벡터로 변환된 다음 검색에 사용됩니다. 이때 이러한 청크의 크기를 최적화하는 것이 중요합니다. 더 작고 정확한 청크는 사용자의 쿼리와 검색된 콘텐츠 간의 일치도를 높이는 동시에 시스템이 포괄적인 범위와 정확한 검색 간에 적절한 균형을 유지할 수 있도록 합니다.
  • 쿼리: RAG 쿼리 프로세스는 초기 프롬프트로 시작하여 Rewriter가 의도를 명확히 하거나 형식을 개선하고 수정하기 위해 이를 정제합니다. 다음으로 업데이트된 프롬프트가 Retriever로 전달되고, Retriever는 코퍼스에서 관련 정보 청크를 추출합니다. 그런 다음 Reranker가 이러한 청크를 우선순위 지정하여 가장 관련성이 높은 청크를 식별합니다. 마지막으로, 순위가 가장 높은 청크는 LLM 추론을 거쳐 일관되고 맥락적으로 관련성 있는 응답을 합성하고 생성합니다. 이 프로세스를 통해 최종 출력이 사용자 쿼리에 최적화된 답변이 되도록 합니다.
  • 임베딩 기술: 텍스트 청크를 임베딩으로 변환하는 최적의 방법을 선택하여 효율적 검색을 지원합니다.
  • 관련성 및 순위: 검색된 데이터와 사용자 프롬프트, 그리고 후속 순위의 관련성을 결정하기 위한 알고리즘입니다. 인간 참여형 접근 방식으로 검색된 데이터의 관련성과 순위를 향상할 수 있습니다.

검색 증강 생성 개선 방법

RAG 평가 및 최적화 작업은 많은 노력과 시행착오가 따르는 과정입니다. 과연 RAG 성능을 높일 수 있는 효과적인 방법은 무엇이 있을까요? 검색 증강 생성 결과물의 높은 품질과 정확성을 보장하기 위해서는 아래와 같은 사항을 고려해야 합니다.

  • 정확한 데이터 어노테이션: 작업자가 직접 데이터를 정확하게 라벨링 하고 분류합니다. 저희 에펜의 데이터 어노테이션 서비스는 정확하고 맥락에 맞는 데이터 솔루션을 제공합니다.
  • 데이터 편향성 제거: 데이터셋과 모델의 응답에서 편향성을 찾아내고 중립화합니다.
  • 모델 평가: 모델을 다양한 프롬프트에 정기적으로 테스트하여 답변의 일관성과 신뢰성을 유지합니다. 에펜의 품질 보증 절차는 모델의 성능을 일정하게 유지하는 데 도움이 됩니다.

자동 평가 지표란?

자동 평가 지표는 검색 증강 생성의 성능을 모니터링하는 도구입니다. 이 지표는 RAG의 개선이 필요한 부분을 빠르게 식별하여 RAG가 실시간 응용 프로그램에서 효율적으로 작동할 수 있도록 합니다.


RAG 파이프라인 지표

검색 지표(Retrieval Metrics)

  • 맥락 회수율(Context Recall): 검색 구성 요소가 성공적으로 반환한 관련 청크의 백분율을 측정합니다.
  • 맥락 정밀도(Context Precision): 검색된 청크가 관련성을 판단하는 정확도를 평가합니다.

생성 지표(Generation Metrics)

생성 단계의 지표는 생성된 텍스트가 사실적이고 관련성이 있는지를 확인합니다.

  • 충실도: 검색된 관련 청크의 사실적인 정확성에서 벗어나는 문장/구를 생성한 수를 측정합니다.
  • 적합성: 사용자의 쿼리와 관련이 없는 문장/구의 수를 평가하여 시스템의 응답이 질문에 적합한 답변이 되도록 보장합니다.

검색 증강 생성에 대한 인간 개입의 중요성

검색 증강 생성 프로세스에 인간이 개입하게 되면 AI가 놓칠 수 있는 언어의 미묘한 맥락과 숨겨진 의미 등을 잡아낼 수 있습니다. 또한 직접 데이터 오류를 수정할 수 있고, 검색된 정보의 관련성을 높여 보다 정확하고 상황에 맞는 대응을 할 수 있습니다. 인간의 피드백은 또한 적응 학습을 가능하게 하여, RAG가 복잡한 데이터 시나리오에 동적으로 반응하고 지속적으로 개선될 수 있도록 합니다.

인간의 개입으로 개선 가능한 문제

  1. 형식이 명확하지 않은 데이터: 명확한 형식이 없으면 데이터 내에서 의미 있는 세그먼트나 덩어리를 식별하는 것이 어려워집니다.
  2. 필수 컨텍스트 메타데이터의 부재: 청크를 안내하는 맥락적 단서가 없으면 청크 내에 관련 없는 정보를 포함할 가능성이 높아지고 이에 따라 검색 프로세스에서 노이즈가 증가합니다. 맥락적 단서가 없으면 청크 경계가 임의로 정의되어 청크 선택에 부정확성이 발생할 수 있습니다. 이로 인해 관련 없는 정보를 포함하는 너무 큰 청크나 의미 있는 검색에 충분한 맥락이 없는 너무 작은 청크가 생성될 수 있습니다.
  3. 오래된 데이터: 벡터 스토어로 들어오는 콘텐츠가 최신이고 정확한지 확인하는 품질 관리 메커니즘이 없다면, 검색 증강 검색은 잘못된 컨텍스트로 인해 오도될 수 있습니다. 내부 SME가 지식 기반 콘텐츠를 벡터 스토어로 보내기 전에 이를 검토하고 검증할 수 있는 워크플로우를 구축하면 RAG의 답변의 신뢰도를 높일 수 있습니다.
  4. 세분화된 데이터: 문자 수나 문장 구분에 따른 청킹은 의미적 맥락을 효과적으로 포착하지 못해 사용자 쿼리와 검색된 콘텐츠가 일치하지 않는 경우가 발생할 수 있습니다.
  5. 누락된 데이터: 누락된 데이터는 검색 증강 생성이 관련 정보를 검색하지 못하게해 불완전한 답변이 나올 수 있습니다. 이를 완화하기 위해서는 정기적인 데이터 업데이트가 필요합니다. 또한 데이터 갭이 감지되면 인간의 개입을 통해 대체 메커니즘을 설계할 수 있습니다.
  6. 저품질 프롬프트: RAG 평가를 실행할 때, 테스트되는 프롬프트가 고품질이어야 하며 예상되는 실제 사용자 행동 범위를 포괄할 만큼 충분한 폭을 포함하는 것이 중요합니다.
  7. 재작성된 프롬프트: 시스템 기대치에 맞게 다시 작성된 프롬프트는 사용자의 원래 의도를 반영하지 못할 수 있습니다. 또한 구문적으로는 정확하지만 의미적으로는 적절하지 않은 답변을 제공할 수도 있습니다. 다시 쓰기 프로세스에 인간이 개입하면 프롬프트가 사용자의 의도에 맞게 답변하도록 하여 시스템의 효과를 유지할 수 있습니다.
  8. 상위 순위 청크 누락: 가장 관련성 있는 데이터 청크가 순위 알고리즘에 의해 표면화되지 않는 경우가 있습니다. 이는 알고리즘의 문제나 데이터의 갭 때문일 수 있습니다. 순위 알고리즘의 반복적 개선에 인간이 개입하면 상위 순위 청크가 생략되지 않도록 하여 응답의 정확도를 개선할 수 있습니다.
  9. 리랭킹 메커니즘: 리랭크는 최상의 데이터 청크가 먼저 표시되도록 하는 메커니즘입니다. 만약 이 알고리즘이 관련 데이터에 대한 우선순위를 효과적으로 지정하지 못하면 답변의 품질이 떨어집니다. 인간의 개입은 성과 검토를 기반으로 리랭킹 알고리즘을 조정하여 데이터 청크 선택을 개선하도록 합니다.
  10. 틀린 답변: 가드레일에서 벗어나는 답변은 잘못된 정보나 부적절한 콘텐츠의 유포로 이어질 수 있습니다. 이때 인간의 개입으로 답변을 검토하면 검색 증강 생성에 교정 피드백을 제공할 수 있습니다.
  11. 데이터 청크의 부정확한 활용: RAG가 데이터 청크를 부정확하게 사용하면 문맥적으로 무관하거나 사실적으로 부정확한 응답을 제공할 수 있습니다. 인간의 개입은 검색 알고리즘을 개선하고 적절한 학습 데이터를 제공하여 시스템이 데이터 청크를 올바르게 해석하고 활용하도록 보장합니다.
  12. 응답 스타일 불일치: RAG는 사용자 기대에 부응하기 위해 일관된 스타일과 톤을 유지해야 합니다. 그러나 데이터의 변화로 인해 불일치가 발생할 수 있습니다. 인간의 개입은 원하는 응답 스타일을 반영하는 학습 데이터 세트를 편집하고 큐레이팅하여 시스템을 표준화된 응답 스타일을 유지합니다.
  13. 잘못된 답변: 너무 모호하거나 지나치게 자세한 응답은 사용자 경험을 손상시킵니다. 이때 인간의 개입으로 원하는 수준의 세부 정보에 맞춰 시스템의 매개변수를 조정하고 데이터에 라벨링을 추가하여 잘못된 답변을 개선할 수 있습니다.

RAG 개선 프로세스

  • 데이터 어노테이션 및 청킹: 청크가 문맥적으로 완전하고 라벨링이 정확한지에 대해 보장합니다.
  • 모델 훈련 및 튜닝: 정교한 피드백을 기반으로 검색 증강 생성을 개선합니다. 에펜이 제공하는 RAG 모델 훈련과 튜닝 전문 지식은 검색 증강 생성의 최적의 성능과 모델 드리프트 모니터링을 보장합니다.
  • 품질 관리: RAG 모델의 출력물을 정확성, 유용성 및 안전성 측면에서 관리합니다. 저희 에펜의 품질 보증 프로세스는 검색 증강 검색을 최고 수준을 유지하도록 합니다.
  • 문맥적 무결성 보장: AI가 파악하기 어려운 미묘한 문맥의 차이를 해석하는데에는 인간의 도움이 필요합니다. 에펜의 인간 중심 접근 방식은 문맥적 무결성을 보장합니다.
  • 오류 제거: 지속적인 인간의 감독으로 오류와 답변의 부정확성을 식별하고 수정할 수 있습니다.

에펜의 검색 증강 생성 솔루션

에펜의 데이터 어노테이션, 모델 훈련 및 품질 보증에 대한 전문 지식은 검색 증강 생성 아키텍처의 모든 잠재력을 발휘하도록 합니다. 데이터 준비 및 청크 개선부터 모델 응답 최적화에 이르기까지 RAG 여정의 모든 단계에 대한 고품질 솔루션을 제공합니다. 또한 AI 프로젝트를 성공으로 이끄는 정확성을 기반으로 높은 관련성과 인간의 통찰력을 약속드립니다.


검색 증강 생성 프로젝트에 도움이 필요하신가요? 지금 바로 에펜의 데이터 전문가에게 문의하세요!

LLM 프로젝트 지원이 필요하신가요? 대규모 언어 모델 전문가에게 문의하세요.