오늘날의 RAG 솔루션에 대한 심층적인 인사이트를 얻는 데 있어 RAG 설명서가 어떤 도움이 되는지 알아보세요

Watson for Customer Care 리드스페이스를 기본으로 사용하여 색상을 변경한 리드스페이스.
개요

RAG 솔루션과 관련해 여러 의문이 있을 수 있습니다.

  • 검색 성능을 극대화하는 디자인을 어떻게 선택해야 할까?
  • 어떤 임베딩 모델이 우리 문서의 벡터를 가장 잘 표현하는지 어떻게 알 수 있을까?
  • 에이전틱 방식이 필요할까?
  • 순위를 재조정하면 결과가 향상될까? 또는 이러한 매개변수 선택들이 별다른 영향을 미치지 않는걸까?

RAG 기반 솔루션 개발 전반에 걸쳐 명확한 평가 전략을 수립하는 것은 성공적인 프로덕션 경로를 보장하는 데 있어 매우 중요합니다. 시범 운영 중에는 온갖 실증적 평가가 진행되지만, 때로는 이러한 평가를 재현할 수 없기도 합니다. 개발 중인 RAG 기반 솔루션 성능을 개선하거나 생산 문제를 적절하게 진단하려면 평가 작업을 재현 가능하고 신속하게 실행할 수 있어야 합니다. RAG 파이프라인의 검색 및 생성 구성 요소를 모두 체계적으로, 일관되게 평가해야 합니다.

RAG 기반 솔루션 성능에 대한 이해는 솔루션 라이프사이클의 다양한 단계에서 중요한 역할을 합니다.

  • 실험 및 조정 단계
  • 모니터링 단계

그러나 평가 엔진을 구축하는 데 드는 노력을 결코 과소평가하면 안 됩니다. 참조 답변과 참조 맥락이 포함된 골든 데이터 세트(실측 정보)를 생성할 때 특히 그렇습니다.

이 문서는 다양한 평가 접근 방식과 지표에 대해 설명하고, 이러한 솔루션을 더 쉽게 평가할 수 있도록 시중에 나와 있는 몇 가지 재사용 가능한 자산을 중점적으로 설명합니다.

접근법

AI 평가 AI

LLMAaJ(LLM as a Judge)는 지난 한 해 동안 참조 기반 평가 엔진을 구축하는 데 따르는 어려움을 극복하기 위한 주요 지표로 부상했습니다. 이 평가 기법은 인간의 판단과 상당한 상관관계를 보이는 것으로 나타났습니다. 기존 지표와 벤치마크로 정량화할 수 없지만 LLMaaJ로 평가할 수 있는 속성들을 살펴봅시다.

  • 안전 – 모델이 유해하거나 안전하지 않은 콘텐츠를 생성하는가?
  • 근거성 – 요약 및 검색 증강 생성에서, 생성된 아웃풋이 인풋 맥락에 존재하는 사실에 기반하는가?
  • 감정 – 생성된 응답이 일반적으로 긍정적, 부정적 또는 기타 규정된 감정을 띠는가?
  • 유해성 – 모델이 공격적이거나 차별적인 콘텐츠를 생성하는가?
  • 언어 스타일 – 모델이 편안한 목소리, 격식 있는 목소리, 일반적인 목소리 중 어떤 스타일인가? 여기에는 풍자, 유머, 아이러니를 평가하는 것도 포함됩니다.

채점 모델을 사용하여 다른 모델의 아웃풋을 평가하는 경우를 예로 들면, 채점 프롬프트에는 채점할 속성과 채점 척도에 대한 설명을 입력하고 평가할 응답을 포함하도록 덧붙여야 합니다.

이 예시에서 모델은 응답의 언어 스타일을 평가하고 분류를 반환하도록 요청받습니다.

네가 편파적이지 않고 공정한 채점 심사위원이 되어서 챗봇의 감정에 따라 응답을 분류하라는 요청을 받았다고 생각하고 아래 응답을 평가하고 해당 클래스를 추출해. 가능한 분류는 POSITIVE, NEUTRAL, NEGATIVE야. 판단 근거를 설명하고 분류한 감정을 명확하게 설명해서 결론을 맺어줘.
{{response}}

 

NER(Named Entity Recognition) 작업에 대한 LLM 기반 평가의 퓨샷 프롬프트 예도 살펴보세요.

-----------------------------------프롬프트---------------------------------------------
 너는 전문적인 평가관이고, 주어진 텍스트에서 개체 추출의 정확도를 평가해 점수를 매길 의무가 있어. 텍스트, 개체, 개체값이 제공될 거야.
0~1로 점수를 매겨봐. 최고점은 1점, 최저점은 0점이야. 점수는 무조건 숫자 값으로 매겨야 해.

예:

텍스트: IBM 뉴욕 지사는 어디에 있나요?
개체: 조직명
값: IBM's
점수: 0

텍스트: 고객 서비스 센터 1-800-555-1234로 문의하세요.
개체: 전화번호
값: +1 888 426 4409
점수: 1

텍스트: watsonx에는 watsonx.ai, watsonx.data, watsonx.governance가 있습니다.
개체: 제품명
값: Google
점수: 0.33

텍스트: 이 컨퍼런스는 2024년 8월 15일에 열릴 예정입니다.
개체: 날짜
값: 2024년 8월 15일
점수: 1

텍스트: 이 컨퍼런스는 2024년 8월 15일에 열릴 예정입니다.
개체: 사람 이름
값: Alice
점수: 1

-----------------------------------아웃풋---------------------------------------------점수: 0.67
--------------------------------------------------------------------------------------
메트릭

RAG 시스템의 복잡성은 대규모 언어 모델(LLM)의 불가사의한 특성과 RAG 파이프라인 내의 복잡하고 상호 연결된 구성 요소의 영향을 크게 받습니다. 기술이 전례 없는 속도로 계속 발전함에 따라 이러한 복잡한 시스템을 평가하는 것은 점점 더 어려운 작업이 되고 있습니다. 이 문제를 해결하기 위해 RAG 시스템만을 위한 수많은 벤치마크와 평가 도구가 개발되었습니다. 이러한 리소스는 시스템 성능과 효율성을 평가하는 표준화되고 체계적인 접근 방식을 제공하는 데 도움이 됩니다.

예를 들어 아래 표(‘검색 증강 생성: 설문조사’에서 발췌)에서 볼 수 있듯, 다양한 검색 증강 생성 평가 방법과 도구가 각각 고유한 강점과 애플리케이션을 가졌습니다. 이 표는 완전하지는 않지만 현재의 RAG 평가 환경을 간략하게 보여줍니다.

RAG 솔루션에 대한 평가 조치와 체계에 대한 표 일부.

RAG 시스템의 검색 구성 요소 맥락에서 몇 가지 문제가 발생합니다.

검색 구성 요소의 경우, 주로 잠재적 지식 저장소의 광범위하고 동적인 특성, 데이터의 시간적 측면, 정보 소스의 이질성으로 인해 문제가 발생합니다. 이러한 문제를 고려할 때, 재현율과 정밀도 같은 기존 평가 지표는 포괄적인 평가에 적합하지 않고 장비가 부족하다는 것이 분명해집니다. 대신 검색 프로세스의 복잡성과 미묘함을 효과적으로 파악할 수 있도록, 좀 더 맥락에 기반하고 뉘앙스를 고려하는 지표가 필요합니다.

생성 구성 요소에 있어서는, 검색 프로세스의 정밀도와 생성된 아웃풋의 품질 사이의 복잡한 관계를 고려하는 것이 중요합니다. 그러려면 시스템 성능에 대한 전체적이고 미묘한 평가를 제공할 수 있는 포괄적인 평가 지표를 개발하고 구현해야 합니다.

결과적으로 RAG 시스템 전체를 평가하려면 검색 구성 요소가 생성 프로세스에 미치는 영향을 철저히 검토하고, 의도한 목표와 목적을 달성하는 데 있어 시스템의 전반적인 효과와 효율성을 평가해야 합니다.

RAG 3요소는 대규모 언어 모델(LLM) 응답의 신뢰성과 맥락적 정확도를 평가하는 프레임워크입니다. 이 평가는 맥락 연관성, 근거성, 답변 관련성을 기준으로 하며 맥락 연관성, 맥락에 대한 응답 신뢰성, 사용자 문의와의 답변 일치를 확인하여 LLM 응답 할루시네이션을 식별하는 것을 목표로 합니다.

RAG 솔루션의 성능을 평가하는 RAG 3대 요소 프레임워크 일러스트.

RAG 평가는 자동 참조 기반 지표와 참조가 필요 없는 지표를 모두 사용하여 수행할 수 있습니다. HuggingFace에는 오픈소스 LLM들이 서로 얼마나 잘 어울리는지 보여주는 순위표가 있습니다.

검색 지표

아래의 검색 지표는 참조 기반으로, 모든 청크가 고유하게 식별되어야 하고(contexts_id) 모든 질문에 실측 정보 맥락의 고유 ID가 있습니다.

추천 시스템에 사용되는 순위 인식 평가 지표는 RAG에 적합합니다.

MRR(평균 상호 순위)

MRR은 Unitxt에서 사용되며 검색 결과에서 첫 번째 관련 문서의 위치를 측정합니다. MRR이 1에 가까울수록 관련 결과가 상단에 표시된다는 것을 의미하며, 이는 검색 품질이 높다는 것을 나타냅니다. 반대로 MRR이 낮을수록 검색 성능이 저하되어 관련 답변이 결과에서 더 아래쪽에 위치합니다.

장점: 첫 번째 관련 결과의 중요성을 강조하며, 이는 검색 시나리오에서 종종 중요한 역할을 합니다.
단점: 다른 기준값에 낮은 순위를 할당해도 검색에 불이익을 주지 않는다는 한계가 있습니다. 첫 번째 관련 항목에만 집중하기 때문에 검색된 결과의 전체 목록을 평가하는 데는 적합하지 않습니다.

NDCG(정규화된 할인 누적 이득)

순위 품질 지표는 모든 관련 항목이 맨 위에 위치하는 이상적인 순위와 비교할 때 항목 목록이 얼마나 잘 정렬되어 있는지 평가합니다.

NDCG@k는 DCG@k를 이상적인 DCG@k(IDCG@k)로 나누어 계산되며, 이는 k 위치까지의 항목이 완벽하게 순위가 매겨진 목록의 점수를 나타냅니다. DCG는 목록에 있는 항목의 총 관련성을 측정합니다.

범위 0~1

장점: 관련 항목의 위치를 고려하여 순위 품질을 더욱 전체적인 관점에서 제시합니다. 다양한 순위 수준에 맞게 조정할 수 있습니다(예: NDCG@k).
단점: MRR 같은 간단한 지표에 비해 계산과 해석이 복잡합니다. 비교를 하려면 이상적인 순위가 필요하지만, 항상 순위가 있거나 이를 정의하기 쉽지 않을 수 있습니다.

MAP(평균 정밀도 평균)

평균 정밀도 평균(MAP)은 결과 목록에서 올바르게 검색된 각 문서의 순위를 평가하는 지표입니다.

시스템에서 결과의 순서를 고려하고 실행 한번으로 여러 문서를 검색할 때 유용합니다.

장점: 정밀도와 재현율을 모두 고려하여 검색 성능을 조화롭게 평가합니다. 관련 문서가 많고 올바른 순서가 필요한 작업에 적합합니다.
단점: 더 간단한 지표에 비해 계산이 까다로울 수 있습니다. 다른 지표만큼 해석하기가 간단하지 않을 수 있으며 결과를 완전히 이해하려면 맥락이 더 많이 필요합니다.

세대 지표

충실도

아웃풋이 주어진 맥락을 기반으로 하는지, 또는 모델이 할루시테이션 반응을 생성하는지 측정합니다.

장점: 제공된 맥락을 기반으로 신뢰할 수 있는 응답이 생성되는지 확인합니다. 사실적 정확성이 가장 중요한 애플리케이션에 필수적입니다.
단점: 평가 과정에 인간의 판단이 필요한 경우가 많아 품이 많이 들고 주관적입니다. 부분적인 오류나 미묘한 할루시네이션을 전부 잡아내지 못할 수 있습니다.

견고성(비민감성)

견고성은 일반적으로 공백, 소문자/대문자, 탭 등의 데이터 교란 같은 다양한 입력 변형에 적응하는 솔루션의 기능을 의미합니다.

견고성 테스트는 평가 과정의 중요한 측면이며 Unitxt 시맨틱 등을 사용하여 진행할 수 있습니다.

장점: 다양한 입력 조건에서 모델이 안정적으로 작동하는지 확인합니다. 실제 적용 가능성: 입력 데이터의 형식이 완벽하게 지정되지 않을 수 있는 실제 애플리케이션에 중요합니다.
단점: 다양한 변형에 대한 결과를 철저하게 시험해야 해서 시간이 오래 걸릴 수 있습니다. 변형 정의: 가능한 모든 입력 섭동을 정의하고 측정하기 어렵습니다.

ROUGE(Recall-Oriented Understudy for Gisting Evaluation)

기계 생성 텍스트와 참조 텍스트 집합 간의 n-gram, 단어 시퀀스와 단어 쌍의 중복을 비교하여 생성된 텍스트의 품질을 측정합니다. 텍스트 요약과 번역 같은 작업을 평가하는 데 널리 사용됩니다.

장점: NLP 커뮤니티에서 확립되고 인정받은 비교 표준을 제공합니다. 모든 관련 정보를 포착하는 것이 중요한 작업에 적합합니다.
의미론적 품질이나 유창성을 포착하지 못할 수 있는 n-gram 중복에 중점을 둡니다. 생성된 텍스트의 길이가 영향을 미칠 수 있으며, 더 짧거나 간결한 아웃풋은 불이익을 받을 수 있습니다.

BLEU(Bilingual Evaluation Understudy)

기계 번역된 텍스트를 하나 이상의 참조 번역과 비교하여 품질을 측정합니다. 참조 텍스트와 관련하여 생성된 텍스트에서 n-gram의 정밀도를 평가합니다. 번역을 평가하는 데 주로 사용됩니다.

장점: 정밀도와 정확하게 일치하는 정도가 중요한 작업에 효과적입니다. 표준 지표: 기계 번역 커뮤니티에서 널리 채택되어 비교를 위한 벤치마크를 제공합니다.
단점: 참조 텍스트와 정확하게 일치하지 않지만 적절하게 변형된 문구에 불이익을 줄 수 있습니다. 부분 부정확성 사각지대: 부분적 오류나 미묘한 의미 차이를 완전히 포착하지 못할 수 있습니다.

비용 지표

GPU/CPU 사용률

CPU 사용률은 검색 단계에, GPU 사용률은 생성 단계에 주로 사용됩니다.

LLM 호출 비용

예: OpenAI API 호출 비용

인프라 비용

스토리지, 네트워킹, 컴퓨팅 리소스 등으로 인한 비용

운영 비용

유지 관리, 지원, 모니터링, 로깅, 보안 조치 등으로 인한 비용

평가 결과 이해하기

 

생성과 검색 점수를 기반으로 RAG 모델 조정을 위한 개선 조치를 보여주는 사분면 차트.

검색 지표가 최적은 아닌 것으로 나타났지만 생성 지표가 양호한 결과를 산출하는 경우 이렇게 조치를 취하세요. 

  1. 청킹 전략(예: 청크 크기 및 중복)을 재검토하고 조정해서 맥락과 관련성의 균형 조율
  2. 데이터를 정리하고 전처리하여 노이즈와 관련 없는 정보 제거
  3. 특정 사용 사례에 따라 데이터를 필터링하고 우선순위를 정하는 데 도움이 되도록 날짜 같은 메타데이터를 청크에 추가
  4. 순위 조정 도입: 검색 시스템에서 맥락에 맞게 최상위 노드를 세분화하기 위한 조치입니다. * LangChain과 LlamaIndex 모두 재순위 지정을 위해 사용하기 쉬운 추상화를 제공합니다.
  5. 인간을 위한 유사한 질문이 임베딩 공간에서 유사하게 나타나지 않을 수 있으므로 LLM이 쿼리를 바꾸고 다시 시도
  6. LLAmainDex로 임베딩을 미세 조정하여 정확도 개선

반대로, 검색 지표의 결과가 훌륭하지만 생성 결과가 최적이 아니라면 다음 방법으로 모델 성능을 개선하세요.

  1. 언어 모델 미세 조정: 관련 데이터 세트에서 모델을 미세 조정하여 도메인에 맞게 모델을 설정하고 정확도와 맥락 이해도 개선
  2. 프롬프트 엔지니어링 개선: 프롬프트 구조와 문구를 실험하여 더 정확한 아웃풋 유도
  3. 다양한 디코딩 전략 사용: 빔 검색, Top-k 샘플링, 핵 샘플링(top-p) 같은 디코딩 기술을 조정하여 생성된 응답의 품질 개선
  4. 제어 생성 길이: 출력이 간결하고 정확해지도록 응답 길이에 대한 제약 조건 설정
  5. 피드백 루프 통합: 최적이 아닌 응답을 식별하고 수정하는 시스템을 구현하여 지속적으로 개선
  6. 멀티턴 대화 활용: 복잡한 작업을 다단계 상호작용으로 세분화하여 모델이 거듭된 반복을 통해 응답을 구체화하게 합니다.

검색과 생성 지표 모두 수준 이하이면 메타데이터 개선, 지식 기반 개선, 검색 메커니즘 최적화와 같은 파이프라인의 초기 단계를 재검토하고 재고하는 것이 좋습니다.

이 접근 방식은 검색과 생성 구성 요소 간의 상호 작용과 의도한 목표 및 목적을 달성하는 데 있어 시스템의 전반적인 효율성을 고려하여, RAG 시스템에 대한 포괄적이고 미묘한 평가의 중요성을 강조합니다.

자세히 살펴보기

IBM의 최신 기술 패턴, 솔루션 아키텍처, 아키텍처 간행물을 받아보세요.

  1. IBM 아키텍처 센터로 이동
기고자

Vicky Kuo, Amna Jamal, Luke Major, Chris Kirby

업데이트: 2024년 11월 15일