RAG로 그라운딩된 답변 생성

Agent Search에서 검색 증강 생성 (RAG) 환경에 따라 다음 그라운딩 소스를 기반으로 프롬프트에 대해 그라운딩된 답변을 생성할 수 있습니다.

  • Google 검색: 모델을 전 세계 지식, 다양한 주제 또는 인터넷의 최신 정보와 연결하려면 Google 검색으로 그라운딩을 사용하세요. Google 검색을 이용한 그라운딩에서는 동적 검색이 지원되어 필요할 때만 Google 검색에 그라운딩된 결과를 생성하는 옵션이 제공됩니다. 따라서 동적 검색 구성에 따라 프롬프트에 최근 이벤트에 대한 지식이 필요한지 평가하고 Google 검색에 그라운딩을 사용 설정합니다. 자세한 내용은 동적 검색을 참조하세요.
  • 인라인 텍스트: 요청에 제공된 사실 텍스트라고 부르는 텍스트 조각에서 응답을 그라운딩하기 위해 인라인 텍스트에 그라운딩을 사용합니다. 사실 텍스트는 지정된 요청에 대해 사실로 간주되는 사용자가 제공한 문구입니다. 이 모델은 사실 텍스트의 진위를 확인하지 않습니다.
  • Agent Search 데이터 스토어: Agent Search 데이터 스토어에서 기업 문서로 모델을 연결하려면 Agent Search와 함께 그라운딩을 사용합니다.

이 페이지에서는 다음 접근 방식을 이용해서 이러한 그라운딩 소스를 기반으로 그라운딩된 답변을 생성하는 방법을 설명합니다.

또한 모델로부터 답변을 스트리밍하도록 선택할 수 있습니다. 스트리밍으로 그라운딩된 답변을 생성하는 방식은 실험적인 기능입니다.

애플리케이션에 따라 다른 방법을 이용해서 그라운딩된 답변을 생성할 수도 있습니다. 자세한 내용은 검색 및 RAG 경험을 빌드하기 위한 Vertex AI API를 참조하세요.

용어

그라운딩된 답변 생성 방법을 사용하기 전에 입력과 출력, 요청의 구성 방법, RAG 관련 용어를 이해하는 것이 도움이 됩니다.

RAG 용어

대규모 언어 모델은 RAG를 통해 사용자가 선택한 데이터 소스에 그라운딩된 응답을 생성할 수 있습니다. RAG에는 두 가지 단계가 있습니다.

  1. 검색: 가장 관련성 있는 사실을 빠르게 가져오는 것이 일반적인 검색 문제일 수 있습니다. RAG를 이용하면 답변을 생성하는 데 중요한 사실을 빠르게 검색할 수 있습니다.
  2. 생성: LLM은 검색된 사실을 이용해서 그라운딩된 응답을 생성합니다.

따라서 그라운딩된 답변 생성 방법은 그라운딩 소스로부터 사실을 검색하고 그라운딩된 답변을 생성합니다.

입력 데이터

그라운딩된 답변 생성 방법을 이용하려면 요청에 다음 입력이 필요합니다.

  • 역할: 제공된 텍스트의 발신자로서, 사용자(user) 또는 모델(model) 중 하나일 수 있습니다.

  • 텍스트: 역할이 user이면 텍스트가 프롬프트이고 역할이 model이면 텍스트가 그라운딩된 답변입니다. 요청에서 역할 및 텍스트를 지정하는 방법은 다음과 같이 결정됩니다.

    • 싱글턴 답변 생성의 경우 사용자가 요청에 프롬프트 텍스트를 전송하고 모델이 응답에 답변 텍스트를 전송합니다.
    • 멀티턴 답변 생성의 경우 요청에는 모든 이전 턴의 프롬프트-답변 쌍과 현재 턴에 대한 사용자의 프롬프트 텍스트가 포함됩니다. 따라서 이러한 요청에서 역할은 프롬프트 텍스트에 대해서는 user이고 답변 텍스트에 대해서는 model입니다.
  • 시스템 안내: 모델의 동작을 제어하고 그에 따라 출력을 수정하는 프롬프트에 대한 프리앰블입니다. 예를 들어 생성된 답변에 페르소나를 추가하거나 모델이 출력 텍스트 형식을 특정 방식으로 지정하도록 설정할 수 있습니다. 멀티턴 답변 생성의 경우 모든 턴에 대해 시스템 안내를 제공해야 합니다. 자세한 내용은 시스템 안내 사용을 참조하세요.

  • 그라운딩 소스: 답변이 그라운딩되는 소스이고, 다음 중 하나 이상일 수 있습니다.

    • Google 검색: Google 검색 결과와 함께 답변을 그라운딩합니다. 그라운딩 소스가 Google 검색이면 동적 검색 기준점이 포함된 동적 검색 구성을 지정할 수 있습니다. 자세한 내용은 동적 검색을 참조하세요.

    • 인라인 텍스트: 요청에 제공된 사실 텍스트에서 답변을 그라운딩합니다. 사실 텍스트는 지정된 요청에 대해 사실로 간주되는 사용자가 제공한 문구입니다. 이 모델은 사실 텍스트의 진위를 확인하지 않습니다. 각 인라인 텍스트 소스에서 최대 100개의 사실 텍스트를 제공할 수 있습니다. 사실 텍스트는 제목, 저자, URI와 같은 메타 속성을 사용하여 지원할 수 있습니다. 이러한 메타 속성은 답변을 지원하는 청크를 참조할 때 응답에 반환됩니다.

    • Agent Search 데이터 스토어: Agent Search 데이터 스토어의 문서에서 답변을 그라운딩합니다. 웹사이트 검색 데이터 스토어를 그라운딩 소스로 지정할 수 없습니다.

    제공된 요청에서 인라인 텍스트 소스와 Agent Search 데이터 스토어 소스를 모두 제공할 수 있습니다. Google 검색을 이러한 소스와 조합할 수는 없습니다. 따라서 Google 검색 결과로 답변을 그라운딩하려면 Google 검색을 유일한 그라운딩 소스로 지정하여 개별 요청을 전송해야 합니다.

    순서에 관계없이 최대 10개의 그라운딩 소스를 제공할 수 있습니다. 예를 들어 총 10개의 그라운딩 소스를 얻기 위해 다음 순서로 다음 개수의 그라운딩 소스를 제공한다고 가정해 보세요.

    • 인라인 텍스트 소스 3개(각 소스에 최대 100개의 사실 텍스트 포함 가능)
    • Agent Search 데이터 스토어 6개
    • 인라인 텍스트 소스 1개(최대 100개의 사실 텍스트 포함 가능)

    각 소스에는 요청에 지정된 순서로 색인이 할당됩니다. 예를 들어 요청에 소스 조합을 지정한 경우 다음 테이블에 표시된 것처럼 소스 색인이 할당됩니다.

    그라운딩 소스 색인
    인라인 텍스트 1번 0
    인라인 텍스트 2번 1
    Agent Search 데이터 스토어 1번 2
    인라인 텍스트 3번 3
    Agent Search 데이터 스토어 2번 4

    이 색인은 응답에서 인용되며 출처를 추적할 때 유용합니다.

  • 생성 사양: 다음 정보로 구성된 모델 구성의 사양입니다.

    • 모델 ID: 답변 생성에 사용할 Vertex AI Gemini 모델을 지정합니다. 그라운딩된 답변을 생성하는 데 사용할 수 있는 Gemini 모델 목록은 Gemini 모델을 참고하세요.

    • 모델 매개변수: 사용하도록 선택하는 모델에 설정할 수 있는 매개변수를 지정합니다. 이러한 매개변수에는 언어, 강도, Top-P, Top-K가 있습니다. 이러한 매개변수에 대한 자세한 내용은 Gemini 모델 매개변수를 참고하세요.

  • 언어 코드: 생성된 대답의 언어는 일반적으로 프롬프트의 언어와 일치하도록 설정됩니다. 프롬프트에 단일 언어가 없는 경우 (예: 프롬프트가 매우 짧고 여러 언어로 유효할 수 있는 경우) 언어 코드 필드가 대답의 언어를 결정합니다.

    언어 코드 목록은 언어를 참고하세요.

  • 위도 및 경도: 사용자의 위도와 경도를 지정합니다. 검색어에 '내 주변 커피숍 찾기'와 같은 위치 관련 질문이 포함된 경우 이러한 필드가 사용됩니다. 질문 언어를 확인할 수 없고 언어 코드가 설정되지 않은 경우 위도와 경도를 사용하여 답변의 언어를 확인합니다.

출력 데이터

모델이 생성하는 응답은 후보라고 부르며 다음 데이터를 포함합니다. 모든 필드가 출력에 제공되지 않을 수 있습니다.

  • 역할: 그라운딩된 답변의 발신자입니다. 응답에는 항상 그라운딩된 답변 텍스트가 포함됩니다. 따라서 응답의 역할은 항상 모델입니다.

  • 텍스트: 그라운딩된 답변입니다.

  • 그라운딩 점수: 지정된 소스에서 답변이 그라운딩된 정도를 나타내는 [0, 1] 범위의 부동 소수점 값입니다.

  • 그라운딩 메타데이터: 그라운딩 소스에 대한 메타데이터입니다. 그라운딩 메타데이터에는 다음 정보가 포함됩니다.

    • 지원 청크: 답변을 지원하는 청크 목록입니다. 각 지원 청크에는 출처를 추적할 때 도움이 되는 지원 청크 색인이 할당됩니다. 각 지원 청크에는 다음이 포함됩니다.

      • 청크 텍스트: 답변 또는 답변의 일부(주장 텍스트라고 부름)가 추출되는 소스에서 가져온 정확한 인용 텍스트 부분입니다. 이 부분은 응답에 항상 표시되지 않을 수 있습니다.
      • 소스: 요청의 소스에 할당된 색인입니다.
      • 소스 메타데이터: 청크에 대한 메타데이터입니다. 소스에 따라 소스 메타데이터는 다음 중 하나일 수 있습니다.

        • 인라인 소스의 경우에는 제목, 저자, URI와 같이 요청에 지정된 추가 세부정보가 메타데이터가 될 수 있습니다.
        • Agent Search 데이터 스토어의 경우에는 문서 ID, 문서 제목, URI (Cloud Storage 위치), 페이지 번호가 메타데이터가 될 수 있습니다.
        • Google 검색을 통한 그라운딩의 경우 그라운딩된 결과가 생성되면 그라운딩된 결과를 생성하는 데 사용된 콘텐츠의 게시자로 리디렉션되는 URI가 메타데이터에 포함됩니다. 메타데이터에는 게시자의 도메인도 포함됩니다. 제공된 URI는 그라운딩된 결과가 생성된 후 최대 30일 동안 액세스 가능한 상태로 유지됩니다.
    • 그라운딩 지원: 답변의 주장에 대한 그라운딩 정보입니다. 그라운딩 지원에는 다음 정보가 포함됩니다.

      • 주장 텍스트: 지원 청크 텍스트로 지원되는 답변 또는 답변의 일부입니다.
      • 지원 청크 색인: 청크가 지원 청크 목록에 표시되는 순서로 지원 청크에 할당된 색인입니다.