다음을 통해 공유


고급 검색 강화 생성 시스템 구축

이 문서에서는 RAG(검색 기반 생성)을 깊이 탐구합니다. 개발자가 프로덕션 지원 RAG 솔루션을 만드는 데 필요한 작업 및 고려 사항에 대해 설명합니다.

비즈니스에서 생성 AI의 가장 중요한 사용 사례 중 하나인 "데이터 채팅" 애플리케이션을 구축하는 두 가지 옵션에 대해 배우려면 RAG로 대형 언어 모델(LLM)을 보강하거나미세 조정을 참조하세요.

다음 다이어그램은 RAG의 단계 또는 단계를 보여 줍니다.

단계 또는 프로세스를 나타내는 상자와 각 상자를 연결하는 화살표가 있는 간단한 RAG 흐름을 보여 주는 다이어그램입니다.

이 묘사는 순진한 RAG로 불립니다. RAG 기반 채팅 시스템을 구현하는 데 필요한 메커니즘, 역할 및 책임을 처음에 이해하는 데 유용한 방법입니다.

그러나 실제 구현에는 사용할 아티클, 쿼리 및 응답을 준비하기 위한 더 많은 전처리 및 사후 처리 단계가 있습니다. 다음 다이어그램은 고급 RAG라고도 하는 RAG의 보다 현실적인 묘사입니다.

논리의 고급 RAG 흐름을 그 사이에 화살표가 있는 일련의 상자로 보여 주는 다이어그램

이 문서에서는 실제 RAG 기반 채팅 시스템의 전처리 및 후처리 단계를 이해하기 위한 개념 프레임워크를 제공합니다.

  • 수집 단계
  • 추론 파이프라인 단계
  • 평가 단계

수집

수집은 주로 조직의 문서를 저장하여 사용자의 질문에 대답하기 위해 쉽게 검색할 수 있도록 하는 것입니다. 문제는 사용자의 쿼리와 가장 일치하는 문서 부분이 유추 중에 배치되고 사용되는지 확인하는 것입니다. 일치는 주로 벡터화된 포함 및 코사인 유사성 검색을 통해 수행됩니다. 그러나 일치는 콘텐츠의 특성(예: 패턴 및 양식)과 데이터 조직 전략(벡터 데이터베이스에 저장될 때의 데이터 구조)을 이해하여 촉진됩니다.

데이터 수집을 위해, 개발자는 다음 단계를 고려해야 합니다.

  • 콘텐츠 전처리 및 추출
  • 청크 분할 전략
  • 청크 분할 조직
  • 업데이트 전략

콘텐츠 전처리 및 추출

깨끗하고 정확한 콘텐츠는 RAG 기반 채팅 시스템의 전반적인 품질을 개선하는 가장 좋은 방법 중 하나입니다. 깨끗하고 정확한 콘텐츠를 얻으려면 먼저 인덱싱할 문서의 모양과 형태를 분석합니다. 문서가 설명서와 같은 지정된 콘텐츠 패턴을 준수합니까? 그렇지 않은 경우 문서에서 대답할 수 있는 질문 유형은 무엇인가요?

최소 수집 파이프라인에 다음의 단계를 추가합니다.

  • 텍스트 형식 표준화
  • 특수 문자 처리
  • 관련이 없는 오래된 콘텐츠 제거
  • 버전이 지정된 콘텐츠에 대한 계정
  • 콘텐츠 환경 계정(탭, 이미지, 테이블)
  • 메타데이터 추출

이 정보 중 일부(예: 메타데이터)는 유추 파이프라인에서 검색 및 평가 프로세스 중에 사용할 벡터 데이터베이스의 문서와 함께 보관하는 경우에 유용할 수 있습니다. 또한 텍스트 청크와 결합하여 청크의 벡터 포함을 설득할 수도 있습니다.

청크 분할 전략

개발자는 더 큰 문서를 더 작은 청크로 분할하는 방법을 결정해야 합니다. 청킹은 사용자 쿼리에 정확하게 응답하기 위해 LLM으로 전송되는 보조 콘텐츠의 관련성을 높일 수 있습니다. 또한 검색 후 청크를 사용하는 방법도 고려합니다. 시스템 디자이너는 일반적인 산업 기술을 연구하고 몇 가지 실험을 수행해야 합니다. 조직에서 제한된 용량으로 전략을 테스트할 수도 있습니다.

개발자는 다음을 고려해야 합니다.

  • 청크 크기 최적화: 이상적인 청크 크기 및 청크를 지정하는 방법을 결정합니다. 섹션별로? 단락으로? 문장으로?
  • 겹침 및 슬라이딩 윈도우 조각: 콘텐츠를 불연속적인 조각으로 나눌 것인지, 아니면 조각이 겹치도록 할 것인지 결정하세요. 슬라이딩 윈도우 디자인에서 두 가지 작업을 모두 수행할 수도 있습니다.
  • Small2Big: 청크가 단일 문장처럼 세분화된 수준에서 수행되면 인접한 문장이나 문장이 포함된 단락을 쉽게 찾을 수 있도록 콘텐츠가 구성되나요? 이 정보를 검색하고 LLM에 제공하면 사용자 쿼리에 응답할 수 있는 더 많은 컨텍스트를 제공할 수 있습니다. 자세한 내용은 다음 섹션을 참조하세요.

청크 분할 조직

RAG 시스템에서는 벡터 데이터베이스에서 데이터를 전략적으로 구성하는 것이 생성 프로세스를 보강하기 위해 관련 정보를 효율적으로 검색하는 열쇠입니다. 고려할 수 있는 인덱싱 및 검색 전략 유형은 다음과 같습니다.

  • 계층적 인덱스: 이 방법은 여러 인덱스 계층을 만드는 것입니다. 최상위 인덱스(요약 인덱스)는 검색 공간을 잠재적으로 관련 있는 청크의 하위 집합으로 빠르게 좁혀줍니다. 두 번째 수준 인덱스(청크 인덱스)는 실제 데이터에 대한 보다 자세한 포인터를 제공합니다. 이 메서드는 먼저 요약 인덱스를 통해 필터링하여 세부 인덱스에 검색할 항목 수를 줄이므로 검색 프로세스 속도를 크게 높일 수 있습니다.
  • 특수 인덱스: 데이터의 특성과 청크 간의 관계에 따라 그래프 기반 또는 관계형 데이터베이스와 같은 특수 인덱스를 사용할 수 있습니다.
    • 그래프 기반 인덱스는 청크에 상호 연결된 정보 또는 인용 네트워크 또는 지식 그래프와 같은 검색을 향상시킬 수 있는 관계가 있는 경우에 유용합니다.
    • 관계형 데이터베이스 청크가 테이블 형식으로 구성된 경우 효과적일 수 있습니다. SQL 쿼리를 사용하여 특정 특성 또는 관계를 기반으로 데이터를 필터링하고 검색합니다.
  • 하이브리드 인덱스: 하이브리드 접근 방식은 여러 인덱싱 메서드를 결합하여 전체 전략에 강점을 적용합니다. 예를 들어 초기 필터링에 계층적 인덱스와 그래프 기반 인덱스를 사용하여 검색하는 동안 청크 간의 관계를 동적으로 탐색할 수 있습니다.

맞춤 최적화

검색된 청크의 관련성과 정확도를 향상하려면 청크가 대답하는 질문 또는 쿼리 형식에 밀접하게 맞춥니다. 한 가지 전략은 청크가 답변에 가장 적합한 질문을 나타내는 각 청크에 대한 가상의 질문을 생성하고 삽입하는 것입니다. 이는 다음과 같은 여러 가지 방법으로 도움이 됩니다.

  • 향상된 매칭: 검색 시, 시스템은 들어오는 쿼리를 가상 질문과 비교하여 가져오는 청크의 관련성을 높이기 위해 최적의 일치 항목을 찾을 수 있습니다.
  • 기계 학습 모델에 대한 학습 데이터: 질문과 청크의 쌍은 RAG 시스템의 기본 구성 요소인 기계 학습 모델을 개선하기 위한 학습 데이터일 수 있습니다. RAG 시스템은 각 청크에서 가장 잘 답변할 수 있는 질문 유형을 알아봅니다.
  • 직접 쿼리 처리: 실제 사용자 쿼리가 가상 질문과 밀접하게 일치하는 경우 시스템은 해당 청크를 신속하게 검색 및 사용하고 응답 시간을 단축할 수 있습니다.

각 청크의 가상 질문은 검색 알고리즘을 안내하는 레이블처럼 작동하여 더 집중되고 문맥을 잘 이해할 수 있게 합니다. 이러한 종류의 최적화는 청크가 다양한 정보 항목 또는 형식을 다루는 경우에 유용합니다.

업데이트 전략

조직에서 자주 업데이트되는 문서를 인덱싱하는 경우 리트리버 구성 요소가 최신 정보에 액세스할 수 있도록 업데이트된 모음을 유지해야 합니다. 검색기 구성 요소 벡터 데이터베이스에 대해 쿼리를 실행한 다음 결과를 반환하는 시스템의 논리입니다. 이러한 유형의 시스템에서 벡터 데이터베이스를 업데이트하기 위한 몇 가지 전략은 다음과 같습니다.

  • 증분 업데이트:

    • 정기 간격: 문서 변경 빈도에 따라 정기적으로(예: 매일 또는 매주) 업데이트를 예약합니다. 이 메서드는 데이터베이스가 알려진 일정에 따라 주기적으로 새로 고쳐지도록 합니다.
    • 트리거 기반 업데이트: 업데이트가 다시 인덱싱을 트리거하는 시스템을 구현합니다. 예를 들어 문서를 수정하거나 추가하면 영향을 받는 섹션에서 다시 인덱싱이 자동으로 시작됩니다.
  • 부분 업데이트:

    • 선택적 다시 인덱싱: 전체 데이터베이스를 다시 인덱싱하는 대신 변경된 코퍼스 부분만 업데이트합니다. 이 방법은 특히 큰 데이터 세트의 경우 전체 다시 인덱싱보다 더 효율적일 수 있습니다.
    • 델타 인코딩: 기존 문서와 업데이트된 버전 간의 차이점만 저장합니다. 이 방법은 변경되지 않은 데이터를 처리할 필요가 없도록 하여 데이터 처리 부하를 줄입니다.
  • 버전 관리:

    • 스냅샷: 다른 시점에서 문서 모음 버전을 유지 관리합니다. 이 기술은 백업 메커니즘을 제공하고 시스템이 이전 버전으로 되돌리거나 참조할 수 있도록 합니다.
    • 문서 버전 제어: 버전 제어 시스템을 사용하여 변경 기록을 유지하고 업데이트 프로세스를 간소화하기 위해 문서 변경 내용을 체계적으로 추적합니다.
  • 실시간 업데이트

    • 스트림 처리: 정보의 시의성이 중요한 경우, 문서에 변경이 발생할 때 실시간 벡터 데이터베이스 업데이트를 위해 스트림 처리 기술을 사용합니다.
    • 라이브 쿼리: 미리 인덱싱된 벡터에만 의존하는 대신 up-to-date 응답에 라이브 데이터 쿼리 접근 방식을 사용하여 효율성을 위해 라이브 데이터를 캐시된 결과와 결합할 수 있습니다.
  • 최적화 기술:

    • Batch 처리: 일괄 처리는 변경 내용을 누적하여 리소스를 최적화하고 오버헤드를 줄이기 위해 덜 자주 적용합니다.

    • 하이브리드 접근 방식: 다양한 전략 결합:

      • 사소한 변경에 대해 증분 업데이트를 사용합니다.
      • 주요 업데이트에는 전체 재색인을 사용하십시오.
      • 코퍼스에 대한 구조적 변경 사항을 문서화합니다.

올바른 업데이트 전략 또는 올바른 조합을 선택하는 것은 다음을 비롯한 특정 요구 사항에 따라 달라집니다.

  • 문서 모음 크기
  • 업데이트 빈도
  • 실시간 데이터 요구 사항
  • 리소스 가용성

특정 애플리케이션의 요구 사항에 따라 이러한 요소를 평가합니다. 각 접근 방식에는 복잡성, 비용 및 업데이트 지연 시간의 절충점이 있습니다.

유추 파이프라인

귀하의 기사는 청크화되고 벡터화된 후 벡터 데이터베이스에 저장됩니다. 이제 완료 문제를 해결하는 데 초점을 맞춥니다.

가장 정확하고 효율적인 완료를 얻으려면 다음과 같은 여러 요소를 고려해야 합니다.

  • 사용자의 쿼리가 사용자가 찾고 있는 결과를 가져오는 방식으로 작성되어 있나요?
  • 사용자의 쿼리가 조직의 정책을 위반하나요?
  • 사용자의 쿼리를 다시 작성하여 벡터 데이터베이스에서 가장 가까운 일치 항목을 찾을 가능성을 높이려면 어떻게 해야 하나요?
  • 쿼리 결과를 평가하여 아티클 청크가 쿼리에 맞게 조정되도록 하려면 어떻게 해야 할까요?
  • 쿼리 결과를 LLM에 전달하기 전에 쿼리 결과를 평가하고 수정하여 가장 관련성이 큰 세부 정보가 완성에 포함되도록 하려면 어떻게 해야 할까요?
  • LLM의 응답을 평가하여 LLM의 완성이 사용자의 원래 쿼리에 응답하도록 하려면 어떻게 해야 할까요?
  • LLM의 응답이 조직의 정책을 준수하도록 하려면 어떻게 해야 할까요?

전체 유추 파이프라인은 실시간으로 실행됩니다. 전처리 및 후처리 단계를 디자인하는 올바른 방법은 하나도 없습니다. 당신은 프로그래밍 논리와 다른 LLM 호출의 조합을 선택할 가능성이 높습니다. 가장 중요한 고려 사항 중 하나는 가능한 가장 정확하고 규정을 준수하는 파이프라인을 빌드하는 것과 이를 실현하는 데 필요한 비용과 대기 시간 간의 절상입니다.

유추 파이프라인의 각 단계에서 특정 전략을 식별해 보겠습니다.

쿼리 전처리 단계

쿼리 전처리는 사용자가 쿼리를 제출한 직후에 발생합니다.

고급 RAG 단계를 반복하는 다이어그램으로, 쿼리 처리 단계라고 레이블이 붙은 상자에 중점을 두고 있습니다.

이 단계의 목표는 사용자가 시스템의 범위 내에 있는 질문을 하도록 보장하고, 사용자의 질문을 최적으로 준비하여 코사인 유사성 또는 "최근접 이웃" 검색을 활용해 최상의 문서 조각을 찾을 가능성을 높이는 것입니다.

정책 검사: 이 단계에는 특정 콘텐츠를 식별, 제거, 플래그 지정 또는 거부하는 논리가 포함됩니다. 일부 예로는 개인 데이터 제거, 욕설 제거, 그리고 "탈옥" 시도의 식별 등이 있습니다. 탈옥 모델의 기본 제공 안전, 윤리적 또는 운영 지침을 우회하거나 조작하려는 사용자의 시도를 의미합니다.

쿼리 다시 쓰기: 이 단계는 약어를 풀고 속어를 제거하는 것에서부터 질문을 더 추상적인 방식으로 다시 표현하여 고차원적인 개념과 원리를 추출하도록 유도하는 것(단계 후퇴 프롬프트)에 이르기까지 무엇이든 될 수 있습니다.

스텝백 프롬프트의 변형은 가설적 문서 임베딩(HyDE)입니다. HyDE는 LLM을 사용하여 사용자의 질문에 답변하고, 해당 응답에 대한 포함(가상 문서 포함)을 만든 다음, 포함을 사용하여 벡터 데이터베이스에 대한 검색을 실행합니다.

하위 쿼리

하위 쿼리 처리 단계는 원래 쿼리를 기반으로 합니다. 원래 쿼리가 길고 복잡한 경우 프로그래밍 방식으로 여러 개의 작은 쿼리로 분할한 다음 모든 응답을 결합하는 것이 유용할 수 있습니다.

예를 들어, 물리학에서 과학적 발견에 대 한 질문 수 있습니다.: "누가 현대 물리학에 더 중요 한 기여를 했다, 알버트 아인슈타인 또는 닐스 보어?"

복잡한 쿼리를 하위 쿼리로 세분화하면 더 쉽게 관리할 수 있습니다.

  • 하위 쿼리 1: "현대 물리학에 알버트 아인슈타인의 주요 기여는 무엇입니까?"
  • 하위 쿼리 2: "현대 물리학에 닐스 보어의 주요 기여는 무엇입니까?"

이러한 하위 쿼리의 결과는 각 물리학자의 주요 이론과 발견을 자세히 설명합니다. 예시:

  • 아인슈타인의 경우, 기여에는 상대성 이론, 광전 효과, 그리고 E=mc^2등이 포함될 수 있다.
  • Bohr의 기여에는 Bohr의 수소 원자 모델, 양자 역학에 대한 Bohr의 작업 및 보어의 보완성 원칙이 포함될 수 있습니다.

이러한 기여를 요약하면 더 많은 하위 쿼리를 결정하기 위해 평가할 수 있습니다. 예시:

  • 하위 쿼리 3: "아인슈타인의 이론은 현대 물리학의 발전에 어떻게 영향을 미쳤습니까?"
  • 하위 쿼리 4: "보어의 이론은 현대 물리학의 발전에 어떻게 영향을 미쳤습니까?"

이러한 하위 쿼리는 다음과 같은 물리학에 대한 각 과학자의 영향을 탐구합니다.

  • 아인슈타인의 이론은 우주론과 양자 이론의 발전으로 이어진 방법
  • Bohr의 작업이 원자 구조 및 양자 역학을 이해하는 데 어떻게 기여했는지

이러한 하위 쿼리의 결과를 결합하면 언어 모델이 이론적 발전에 따라 현대 물리학에 더 중요한 기여를 한 사람에 대한 보다 포괄적인 응답을 형성하는 데 도움이 될 수 있습니다. 이 메서드는 보다 구체적이고 응답 가능한 구성 요소에 액세스한 다음, 이러한 결과를 일관된 답변으로 합성하여 원래의 복잡한 쿼리를 간소화합니다.

쿼리 라우터

조직에서 콘텐츠 모음을 여러 벡터 저장소 또는 전체 검색 시스템으로 분할하도록 선택할 수 있습니다. 이 시나리오에서는 쿼리 라우터를 사용할 수 있습니다. 쿼리 라우터 가장 적합한 데이터베이스 또는 인덱스를 선택하여 특정 쿼리에 가장 적합한 답변을 제공합니다.

쿼리 라우터는 일반적으로 사용자가 쿼리를 공식화한 후 쿼리를 검색 시스템에 보내기 전에 한 지점에서 작동합니다.

쿼리 라우터에 대한 간소화된 워크플로는 다음과 같습니다.

  1. 쿼리 분석: LLM 또는 다른 구성 요소는 들어오는 쿼리를 분석하여 해당 콘텐츠, 컨텍스트 및 필요한 정보 유형을 이해합니다.
  2. 인덱스 선택: 분석에 따라 쿼리 라우터는 사용 가능한 여러 인덱스에서 하나 이상의 인덱스를 선택합니다. 각 인덱스는 다양한 유형의 데이터 또는 쿼리에 최적화될 수 있습니다. 예를 들어 일부 인덱스는 사실 쿼리에 더 적합할 수 있습니다. 다른 인덱스는 의견 또는 주관적인 콘텐츠를 제공하는 데 탁월할 수 있습니다.
  3. 쿼리 디스패치: 쿼리가 선택한 인덱스로 디스패치됩니다.
  4. 결과 집계: 선택한 인덱스의 응답이 수집되고, 필요에 따라 집계되거나 추가 처리되어 포괄적인 답변을 형성할 수 있습니다.
  5. 응답 생성: 마지막 단계에서는 검색된 정보를 기반으로 일관된 응답을 생성하여 여러 원본의 콘텐츠를 통합하거나 합성할 수 있습니다.

조직에서는 다음과 같은 사용 사례에 대해 여러 검색 엔진 또는 인덱스를 사용할 수 있습니다.

  • 데이터 형식 전문화: 일부 인덱스는 뉴스 기사를 전문으로 하고, 다른 인덱스는 학술 논문을, 또 다른 인덱스는 일반 웹 콘텐츠 또는 의료나 법률 정보와 같은 특정 데이터베이스를 전문으로 할 수 있습니다.
  • 쿼리 형식 최적화: 특정 인덱스는 빠른 사실 조회(예: 날짜 또는 이벤트)에 최적화될 수 있습니다. 복잡한 추론 작업이나 심층적인 도메인 지식이 필요한 쿼리에 사용하는 것이 더 좋은 경우도 있습니다.
  • 알고리즘 차이점: 벡터 기반 유사성 검색, 기존 키워드 기반 검색 또는 고급 의미 체계 이해 모델과 같은 다양한 검색 알고리즘을 다른 엔진에서 사용할 수 있습니다.

의료 자문 컨텍스트에서 사용되는 RAG 기반 시스템을 상상해 보십시오. 시스템에서 여러 인덱스에 액세스할 수 있습니다.

  • 상세하고 기술적인 설명을 위해 최적화된 의학 연구 논문 인덱스
  • 증상 및 치료의 실제 예를 제공하는 임상 사례 연구 인덱스
  • 기본 쿼리와 공중 보건 정보에 대한 일반 건강 정보 인덱스

사용자가 신약의 생화학 효과에 대한 기술적 질문을 하는 경우 쿼리 라우터는 깊이와 기술적 초점으로 인해 의학 연구 논문 인덱스의 우선 순위를 지정할 수 있습니다. 일반적인 질병의 일반적인 현상에 관하여 질문, 그러나, 일반적인 건강 지수는 그것의 광범위하고 쉽게 이해할 수 있는 내용을 위해 선택될 수 있습니다.

검색 후 처리 단계

검색 후 처리는 검색기 구성 요소가 벡터 데이터베이스에서 관련 콘텐츠 청크를 검색한 후에 발생합니다.

고급 RAG 단계를 반복하는 다이어그램으로, 검색 후 처리 단계에 레이블이 지정된 상자에 중점을 두고 있습니다.

후보 콘텐츠 청크를 검색하면 다음 단계는 LLM에 표시할 프롬프트를 준비하기 전에 LLM 프롬프트를 보강할 때 아티클 청크 유용성의 유효성을 검사하는 것입니다.

고려해야 할 몇 가지 프롬프트 측면은 다음과 같습니다.

  • 너무 많은 보충 정보를 포함 하면 가장 중요 한 정보를 무시 될 수 있습니다.
  • 관련 없는 정보를 포함하면 답변에 부정적인 영향을 줄 수 있습니다.

또 다른 고려 사항은 건초 더미 속 바늘 문제이며, 이는 프롬프트의 시작과 끝에 있는 콘텐츠가 중간의 콘텐츠보다 LLM에 더 큰 가중치를 갖는 일부 LLM의 알려진 특성을 나타내는 용어입니다.

마지막으로 LLM의 최대 컨텍스트 창 길이와 매우 긴 프롬프트를 완료하는 데 필요한 토큰 수를 고려합니다(특히 대규모 쿼리의 경우).

이러한 문제를 처리하기 위해 검색 후 처리 파이프라인에는 다음 단계가 포함될 수 있습니다.

  • 필터링 결과: 이 단계에서는 벡터 데이터베이스에서 반환되는 아티클 청크가 쿼리와 관련이 있는지 확인합니다. 그렇지 않으면 LLM 프롬프트가 작성될 때 결과가 무시됩니다.
  • 재정렬: 벡터 저장소에서 검색된 아티클 청크의 순위를 매겨, 관련 세부 정보가 프롬프트의 시작과 끝에 잘 배치되도록 합니다.
  • 프롬프트 압축: 작은 저렴한 모델을 사용하여 LLM에 프롬프트를 보내기 전에 여러 아티클 청크를 단일 압축 프롬프트로 압축하고 요약합니다.

완료 후 처리 단계

완료 후 처리는 사용자의 쿼리와 모든 콘텐츠 청크가 LLM으로 전송된 후에 발생합니다.

완료 후 처리 단계에 레이블이 지정된 상자를 중심으로 향상된 RAG 단계를 반복하는 다이어그램입니다.

정확도 유효성 검사는 LLM의 프롬프트가 완료된 후에 발생합니다. 완료 후 처리 파이프라인에는 다음 단계가 포함될 수 있습니다.

  • 사실 확인: 의도는 기사에서 특정하게 제기된 주장을 식별하고, 그런 다음 그 주장들을 사실의 정확성을 위해 검증하는 것입니다. 팩트 확인 단계가 실패하면 더 나은 답변을 얻거나 오류 메시지를 사용자에게 반환하기 위해 LLM을 다시 쿼리하는 것이 적절할 수 있습니다.
  • 정책 검사: 답변에 사용자 또는 조직에 대한 유해한 콘텐츠가 포함되지 않도록 하는 마지막 방어선입니다.

평가

비결정적 시스템의 결과를 평가하는 것은 대부분의 개발자가 잘 알고 있는 단위 테스트 또는 통합 테스트를 실행하는 것만큼 간단하지 않습니다. 다음과 같은 몇 가지 요소를 고려해야 합니다.

  • 사용자가 얻은 결과에 만족하고 있나요?
  • 사용자가 질문에 대한 정확한 응답을 받고 있나요?
  • 사용자 피드백을 캡처하려면 어떻게 해야 할까요? 사용자 데이터에 대해 수집할 수 있는 데이터를 제한하는 정책이 있나요?
  • 불만족스러운 응답의 진단을 위해 질문에 대답하는 데 들어간 모든 작업에 대한 가시성이 있습니까? 근본 원인 분석을 수행할 수 있도록 입력 및 출력의 유추 파이프라인에 각 단계의 로그를 유지하나요?
  • 결과가 퇴보하거나 질이 떨어지지 않게 시스템을 변경하려면 어떻게 해야 할까요?

사용자의 피드백 캡처 및 작업

앞에서 설명한 대로 조직의 개인 정보 보호 팀과 협력하여 쿼리 세션의 포렌식 및 근본 원인 분석을 위한 피드백 캡처 메커니즘, 원격 분석 및 로깅을 설계해야 할 수 있습니다.

다음 단계는 평가 파이프라인을 개발하는 것입니다. 평가 파이프라인은 AI 시스템이 제공한 응답과 그 근본 원인을 이해하는 데 있어, 축자 피드백을 분석하는 데 필요한 복잡성과 시간 소모적 특성에 대해 도움을 줍니다. 이 분석은 AI 쿼리가 결과를 생성하는 방법을 이해하기 위해 모든 응답을 조사하고, 설명서에서 사용되는 콘텐츠 청크의 적합성 및 이러한 문서를 분할하는 데 사용되는 전략을 확인하기 때문에 중요합니다.

또한 결과를 향상시킬 수 있는 추가 전처리 또는 후처리 단계를 고려하는 것도 포함됩니다. 이 상세 검사는 특히 사용자의 쿼리에 대한 응답에 적합한 설명서가 없는 경우 콘텐츠 차이를 발견합니다.

평가 파이프라인 빌드는 이러한 작업의 규모를 효과적으로 관리하는 데 필수적입니다. 효율적인 파이프라인은 사용자 지정 도구를 사용하여 AI에서 제공하는 답변의 품질을 근사하는 메트릭을 평가합니다. 이 시스템은 사용자의 질문에 특정 답변이 제공된 이유, 해당 답변을 생성하는 데 사용된 문서 및 쿼리를 처리하는 유추 파이프라인의 효율성을 결정하는 프로세스를 간소화합니다.

골든 데이터 세트

RAG 채팅 시스템과 같은 비결정적 시스템의 결과를 평가하는 한 가지 전략은 골든 데이터 세트를 사용하는 것입니다. 골든 데이터 세트 큐레이팅된 질문 및 승인된 답변 집합, 메타데이터(예: 주제 및 질문 유형), 답변에 대한 근거로 사용할 수 있는 원본 문서에 대한 참조, 심지어 변형(사용자가 동일한 질문을 할 수 있는 방법의 다양성을 포착하기 위한 다양한 구문)입니다.

골든 데이터 세트는 "최상의 시나리오"를 나타냅니다. 개발자는 시스템을 평가하여 얼마나 잘 작동하는지 확인하고 새 기능 또는 업데이트를 구현할 때 회귀 테스트를 수행할 수 있습니다.

피해 평가

피해 모델링은 잠재적인 피해를 예측하고, 개인에게 위험을 초래할 수 있는 제품의 결함을 발견하고, 이러한 위험을 완화하기 위한 사전 전략을 개발하기 위한 방법론입니다.

기술, 특히 AI 시스템의 영향을 평가하기 위해 설계된 도구는 제공된 리소스에 설명된 대로 피해 모델링 원칙에 따라 몇 가지 주요 구성 요소를 제공합니다.

피해 평가 도구의 주요 기능은 다음과 같습니다.

  • 이해 관계자 식별: 이 도구는 사용자가 직접 사용자, 간접적으로 영향을 받는 당사자 및 미래 세대 또는 환경 문제와 같은 비인간적 요인과 같은 기타 엔터티를 포함하여 기술의 영향을 받는 다양한 이해 관계자를 식별하고 분류하는 데 도움이 될 수 있습니다.

  • 피해 범주 및설명: 이 도구에는 개인 정보 보호 손실, 정서적 고통 또는 경제적 착취와 같은 잠재적 피해의 포괄적인 목록이 포함될 수 있습니다. 이 도구는 다양한 시나리오를 통해 사용자를 안내하고, 기술이 이러한 피해를 초래할 수 있는 방법을 설명하고, 의도된 결과와 의도하지 않은 결과를 모두 평가하는 데 도움이 될 수 있습니다.

  • 심각도 및 확률 평가: 이 도구는 사용자가 확인된 각 피해의 심각도 및 확률을 평가하는 데 도움이 될 수 있습니다. 사용자는 먼저 문제를 해결하기 위해 우선 순위를 지정할 수 있습니다. 예를 들어 사용 가능한 경우 데이터에서 지원하는 정성적 평가가 있습니다.

  • 완화 전략: 이 도구는 피해를 식별하고 평가한 후 잠재적 완화 전략을 제안할 수 있습니다. 예를 들어 시스템 설계 변경, 보호 장치 추가, 식별된 위험을 최소화하는 대체 기술 솔루션 등이 있습니다.

  • 피드백 메커니즘: 이 도구는 이해 관계자로부터 피드백을 수집하기 위한 메커니즘을 통합하여 피해 평가 프로세스가 새 정보와 관점에 동적으로 반응하도록 해야 합니다.

  • 설명서 및 보고: 투명성 및 책임을 위해 이 도구는 피해 평가 프로세스, 결과 및 수행된 잠재적 위험 완화 조치를 문서화하는 자세한 보고서를 용이하게 할 수 있습니다.

이러한 기능은 위험을 식별하고 완화하는 데 도움이 될 수 있지만 처음부터 광범위한 영향을 고려하여 보다 윤리적이고 책임 있는 AI 시스템을 설계하는 데도 도움이 됩니다.

자세한 내용은 다음 문서를 참조하세요.

안전 장치 테스트 및 확인

이 문서에서는 RAG 기반 채팅 시스템이 악용되거나 손상될 가능성을 완화하기 위한 몇 가지 프로세스를 간략하게 설명합니다. 레드 팀 완화가 효과적인지 확인하는 데 중요한 역할을 합니다. 레드 팀 구성에는 잠재적인 악의적 사용자의 작업을 시뮬레이션하여 애플리케이션의 잠재적인 약점 또는 취약성을 파악하는 작업이 포함됩니다. 이 접근 방식은 탈옥의 중요한 위험을 해결하는 데 특히 중요합니다.

개발자는 다양한 지침 시나리오에서 RAG 기반 채팅 시스템 보호 장치를 엄격하게 평가하여 효과적으로 테스트하고 확인해야 합니다. 이 접근 방식은 견고성을 보장할 뿐만 아니라 정의된 윤리적 표준 및 운영 절차를 엄격하게 준수하도록 시스템의 응답을 미세 조정하는 데 도움이 됩니다.

애플리케이션 디자인에 대한 최종 고려 사항

다음은 애플리케이션 디자인 결정에 영향을 줄 수 있는 이 문서에서 고려해야 할 사항 및 기타 내용의 짧은 목록입니다.

  • 디자인에서 생성 AI의 비결정적 특성을 인정합니다. 출력의 가변성을 계획하고 응답의 일관성과 관련성을 보장하기 위한 메커니즘을 설정합니다.
  • 잠재적인 대기 시간 및 비용 증가에 대해 전처리 사용자 프롬프트의 이점을 평가합니다. 제출 전에 프롬프트를 단순화하거나 수정하면 응답 품질이 향상될 수 있지만 응답 주기에 복잡성과 시간이 더해질 수 있습니다.
  • 성능을 향상시키려면 LLM 요청을 병렬화하는 전략을 조사합니다. 이 방법은 대기 시간을 줄일 수 있지만 복잡성 증가 및 잠재적 비용 영향을 방지하기 위해 신중한 관리가 필요합니다.

자체 데이터 샘플을 사용하여 Python의 채팅 기능을 시작하는 방법 을 살펴보는 것이 즉시 생성 AI 솔루션 빌드를 실험하는 데 좋습니다. 이 자습서는 .NET, Java및 javaScript사용할 수도 있습니다.