생성 데이터 인텔리전스

Amazon Bedrock에 대한 기술 자료는 이제 검색 정확도를 향상하기 위해 메타데이터 필터링을 지원합니다. 아마존 웹 서비스

시간

At AWS 재 : 발명 2023년에 정식 출시를 발표했습니다. Amazon Bedrock에 대한 기술 자료. Amazon Bedrock에 대한 지식 베이스를 사용하면 기본 모델(FM)을 다음과 같이 안전하게 연결할 수 있습니다. 아마존 기반암 완전히 관리되는 RAG(Retrieval Augmented Generation) 모델을 사용하여 회사 데이터에 추가합니다.

RAG 기반 애플리케이션의 경우 FM에서 생성된 응답의 정확도는 모델에 제공된 컨텍스트에 따라 달라집니다. 컨텍스트는 사용자 쿼리를 기반으로 벡터 저장소에서 검색됩니다. Amazon Bedrock에 대한 지식 베이스에 대해 최근 출시된 기능에서, 하이브리드 검색, 의미 검색과 키워드 검색을 결합할 수 있습니다. 그러나 대부분의 경우 정의된 기간에 생성되었거나 특정 카테고리로 태그가 지정된 문서를 검색해야 할 수 있습니다. 검색 결과를 구체화하려면 문서 메타데이터를 기반으로 필터링하여 검색 정확도를 높일 수 있으며, 이를 통해 관심 분야에 맞는 보다 관련성이 높은 FM 세대를 얻을 수 있습니다.

이 게시물에서는 Amazon Bedrock 지식 베이스의 새로운 사용자 정의 메타데이터 필터링 기능에 대해 논의합니다. 이 기능을 사용하면 벡터 스토어에서 검색한 항목을 사전 필터링하여 검색 결과를 개선할 수 있습니다.

메타데이터 필터링 개요

메타데이터 필터링이 출시되기 전에는 사전 설정된 최대값까지 의미상 관련된 모든 청크가 응답을 생성하는 데 사용할 FM의 컨텍스트로 반환됩니다. 이제 메타데이터 필터를 사용하면 의미상 관련된 청크뿐만 아니라 적용된 메타데이터 필터 및 관련 값을 기반으로 관련 척의 잘 정의된 하위 집합을 검색할 수 있습니다.

이 기능을 사용하면 이제 기술 자료의 각 문서에 대해 사용자 정의 메타데이터 파일(각각 최대 10KB)을 제공할 수 있습니다. 검색에 필터를 적용하여 벡터 저장소에 문서 메타데이터를 기반으로 사전 필터링한 다음 관련 문서를 검색하도록 지시할 수 있습니다. 이렇게 하면 특히 쿼리가 모호한 경우 검색된 문서를 제어할 수 있습니다. 예를 들어, 서로 다른 맥락에서 유사한 용어가 포함된 법률 문서를 사용할 수 있거나, 서로 다른 연도에 개봉된 비슷한 줄거리를 가진 영화를 사용할 수 있습니다. 또한 검색되는 청크 수를 줄임으로써 정확성 향상 외에도 CPU 주기 감소, 벡터 저장소 쿼리 비용 감소와 같은 성능상의 이점을 얻을 수 있습니다.

메타데이터 필터링 기능을 사용하려면 소스 데이터 파일과 동일한 이름의 메타데이터 파일을 소스 데이터 파일과 함께 제공해야 하며, .metadata.json 접미사. 메타데이터는 문자열, 숫자 또는 부울일 수 있습니다. 다음은 메타데이터 파일 콘텐츠의 예입니다.

{
    "metadataAttributes" : { 
        "tag" : "project EVE",
        "year" :  2016,
        "team": "ninjas"
    }
}

Amazon Bedrock에 대한 기술 자료의 메타데이터 필터링 기능은 AWS 리전 미국 동부(버지니아 북부) 및 미국 서부(오레곤)에서 사용할 수 있습니다.

다음은 메타데이터 필터링의 일반적인 사용 사례입니다.

  • 소프트웨어 회사의 문서 챗봇 – 이를 통해 사용자는 제품 정보 및 문제 해결 가이드를 찾을 수 있습니다. 예를 들어 운영 체제 또는 애플리케이션 버전에 대한 필터는 오래되거나 관련 없는 문서를 검색하는 것을 방지하는 데 도움이 될 수 있습니다.
  • 조직의 애플리케이션에 대한 대화형 검색 – 이를 통해 사용자는 문서, 칸반, 회의 녹음 기록 및 기타 자산을 검색할 수 있습니다. 작업 그룹, 사업부 또는 프로젝트 ID에 메타데이터 필터를 사용하면 채팅 경험을 개인화하고 협업을 향상시킬 수 있습니다. 예를 들어, 사용자가 특정 프로젝트 또는 소스 유형(예: 이메일 또는 회의 문서)에 대해 문서를 필터링할 수 있는 "프로젝트 Sphinx의 상태 및 제기된 위험은 무엇입니까?"입니다.
  • 소프트웨어 개발자를 위한 지능형 검색 – 이를 통해 개발자는 특정 릴리스에 대한 정보를 찾을 수 있습니다. 릴리스 버전, 문서 유형(예: 코드, API 참조 또는 문제)에 대한 필터는 관련 문서를 정확히 찾아내는 데 도움이 될 수 있습니다.

솔루션 개요

다음 섹션에서는 기술 자료로 사용할 데이터 세트를 준비한 다음 메타데이터 필터링으로 쿼리하는 방법을 보여줍니다. 다음 중 하나를 사용하여 쿼리할 수 있습니다. AWS 관리 콘솔 또는 SDK.

Amazon Bedrock에 대한 기술 자료용 데이터 세트 준비

이 게시물에서는 샘플 데이터 세트 Amazon Bedrock용 지식 베이스를 사용하여 메타데이터를 수집하고 검색하는 방법을 설명하기 위해 가상의 비디오 게임에 대해 설명합니다. 자신의 AWS 계정을 따라가려면 파일을 다운로드하십시오.

기존 기술 자료의 문서에 메타데이터를 추가하려면 예상되는 파일 이름과 스키마로 메타데이터 파일을 만든 다음 데이터를 기술 자료와 동기화하는 단계로 건너뛰어 증분 수집을 시작합니다.

샘플 데이터 세트에서 각 게임의 문서는 별도의 CSV 파일입니다(예: s3://$bucket_name/video_game/$game_id.csv) 다음 열이 포함됩니다.

title, description, genres, year, publisher, score

각 게임의 메타데이터에는 접미사가 있습니다. .metadata.json (예 : s3://$bucket_name/video_game/$game_id.csv.metadata.json) 다음 스키마를 사용합니다.

{
  "metadataAttributes": {
    "id": number, 
    "genres": string,
    "year": number,
    "publisher": string,
    "score": number
  }
}

Amazon Bedrock에 대한 지식 기반 생성

새 기술 자료를 만드는 방법에 대한 지침은 다음을 참조하세요. 지식 기반 만들기. 이 예에서는 다음 설정을 사용합니다.

  • 데이터 소스 설정 페이지, 아래 청킹 전략, 고르다 청킹 없음, 이전 단계에서 이미 문서를 사전 처리했기 때문입니다.
  • . 임베딩 모델 섹션 선택 Titan G1 임베딩 – 텍스트.
  • . 벡터 데이터베이스 섹션 선택 새 벡터 저장소를 빠르게 생성. 메타데이터 필터링 기능은 지원되는 모든 벡터 저장소에서 사용할 수 있습니다.

데이터 세트를 기술 자료와 동기화

기술 자료를 생성하고 데이터 파일과 메타데이터 파일이 아마존 단순 스토리지 서비스 (Amazon S3) 버킷을 사용하면 증분 수집을 시작할 수 있습니다. 지침은 다음을 참조하세요. 동기화하여 데이터 소스를 지식 베이스에 수집.

Amazon Bedrock 콘솔에서 메타데이터 필터링을 사용한 쿼리

Amazon Bedrock 콘솔에서 메타데이터 필터링 옵션을 사용하려면 다음 단계를 완료하십시오.

  1. Amazon Bedrock 콘솔에서 다음을 선택합니다. 기술 자료 탐색 창에서
  2. 생성한 기술 자료를 선택하세요.
  3. 왼쪽 메뉴에서 지식 기반 테스트.
  4. 선택 구성 아이콘을 누른 다음 확장하세요. 필터.
  5. 키 = 값(예: 장르 = 전략) 형식을 사용하여 조건을 입력하고 키를 누릅니다. 엔터 버튼.
  6. 키, 값, 연산자를 변경하려면 조건을 선택하세요.
  7. 나머지 조건을 계속 진행합니다(예: (장르 = 전략 AND 연도 >= 2023) OR (등급 >= 9))
  8. 완료되면 메시지 상자에 쿼리를 입력한 다음 달리기.

이번 포스팅에서는 "2023년 이후 출시된 멋진 그래픽의 전략 게임"이라는 검색어를 입력해 보겠습니다.

SDK를 사용하여 메타데이터 필터링으로 쿼리

SDK를 사용하려면 먼저 클라이언트를 생성하세요. Amazon Bedrock용 에이전트 실행 시간:

import boto3

bedrock_agent_runtime = boto3.client(
    service_name = "bedrock-agent-runtime"
)

그런 다음 필터를 구성합니다(다음은 몇 가지 예입니다).

# genres = Strategy
single_filter= {
    "equals": {
        "key": "genres",
        "value": "Strategy"
    }
}

# genres = Strategy AND year >= 2023
one_group_filter= {
    "andAll": [
        {
            "equals": {
                "key": "genres",
                "value": "Strategy"
            }
        },
        {
            "GreaterThanOrEquals": {
                "key": "year",
                "value": 2023
            }
        }
    ]
}

# (genres = Strategy AND year >=2023) OR score >= 9
two_group_filter = {
    "orAll": [
        {
            "andAll": [
                {
                    "equals": {
                        "key": "genres",
                        "value": "Strategy"
                    }
                },
                {
                    "GreaterThanOrEquals": {
                        "key": "year",
                        "value": 2023
                    }
                }
            ]
        },
        {
            "GreaterThanOrEquals": {
                "key": "score",
                "value": "9"
            }
        }
    ]
}

필터를 다음으로 전달하세요. retrievalConfiguration검색 API or 검색 및 생성 API :

retrievalConfiguration={
        "vectorSearchConfiguration": {
            "filter": metadata_filter
        }
    }

다음 표에는 메타데이터 필터링 조건이 다른 몇 가지 응답이 나열되어 있습니다.

질문 메타데이터 필터링 검색된 문서 관측
“2023년 이후 출시되는 멋진 그래픽의 전략 게임” 떨어져서

* Viking Saga: The Sea Raider, 연도: 2023, 장르: 전략

* 중세 성: 공성 및 정복, 연도:2022, 장르: 전략
* 판타지 킹덤: 엘도리아 연대기, 연도: 2023, 장르: 전략

* 사이버네틱 혁명: 기계의 부상, 연도:2022, 장르: 전략
* Steampunk Chronicles: Clockwork Empires, 연도:2021, 장르: 도시 건설

2/5 게임이 조건을 충족합니다(장르 = 전략 및 연도 >= 2023).
On * Viking Saga: The Sea Raider, 연도: 2023, 장르: 전략
* 판타지 킹덤: 엘도리아 연대기, 연도: 2023, 장르: 전략
2/2 게임이 조건을 충족합니다(장르 = 전략 및 연도 >= 2023).

사용자 지정 메타데이터 외에도 S3 접두사(내장 메타데이터이므로 메타데이터 파일을 제공할 필요가 없음)를 사용하여 필터링할 수도 있습니다. 예를 들어 게임 문서를 게시자별로 접두사로 구성하는 경우(예: s3://$bucket_name/video_game/$publisher/$game_id.csv) 특정 게시자로 필터링할 수 있습니다(예: neo_tokyo_games) 다음 구문을 사용합니다.

publisher_filter = {
    "startsWith": {
                    "key": "x-amz-bedrock-kb-source-uri",
                    "value": "s3://$bucket_name/video_game/neo_tokyo_games/"
                }
}

정리

자원을 정리하려면 다음 단계를 완료하십시오.

  1. 기술 자료를 삭제합니다.
    1. Amazon Bedrock 콘솔에서 다음을 선택합니다. 기술 자료 아래에 오케스트레이션 탐색 창에서
    2. 생성한 기술 자료를 선택하세요.
    3. 주의하십시오 AWS 자격 증명 및 액세스 관리 (IAM) 서비스 역할 이름 기술 자료 개요 안내
    4. . 벡터 데이터베이스 섹션에서 컬렉션 ARN을 기록해 둡니다.
    5. 왼쪽 메뉴에서 .을 누른 다음 삭제를 입력하여 확인하세요.
  2. 벡터 데이터베이스를 삭제합니다.
    1. 아마존 오픈서치 서비스 콘솔, 선택 Collections 아래에 서버리스 탐색 창에서
    2. 검색 창에 저장한 컬렉션 ARN을 입력합니다.
    3. 컬렉션을 선택하고 선택했습니다. ..
    4. 확인 메시지에 확인을 입력한 후 선택하세요. ..
  3. IAM 서비스 역할을 삭제합니다.
    1. IAM 콘솔에서 역할 탐색 창에서
    2. 앞서 적어둔 역할 이름을 검색하세요.
    3. 역할을 선택하고 ..
    4. 확인 프롬프트에 역할 이름을 입력하고 역할을 삭제합니다.
  4. 샘플 데이터세트를 삭제합니다.
    1. Amazon S3 콘솔에서 사용한 S3 버킷으로 이동합니다.
    2. 접두사와 파일을 선택한 다음 ..
    3. 삭제하려면 확인 메시지에 영구 삭제를 입력하세요.

결론

이 게시물에서는 Amazon Bedrock에 대한 기술 자료의 메타데이터 필터링 기능을 다루었습니다. Amazon Bedrock 콘솔과 SDK를 사용하여 문서를 검색하고 쿼리하는 동안 문서에 사용자 지정 메타데이터를 추가하고 이를 필터로 사용하는 방법을 배웠습니다. 이는 컨텍스트 정확도를 향상시켜 쿼리 응답의 관련성을 더욱 높이는 동시에 벡터 데이터베이스 쿼리 비용을 줄이는 데 도움이 됩니다.

추가 리소스는 다음을 참조하세요.


저자에 관하여

코버스 리 런던에 본사를 둔 수석 GenAI Labs 솔루션 설계자입니다. 그는 생성 AI를 사용해 고객 문제를 해결하는 프로토타입을 설계하고 개발하는 데 열정을 쏟고 있습니다. 그는 또한 생성 AI 및 검색 기술의 최신 개발을 실제 시나리오에 적용하여 따라잡고 있습니다.

아메드 에위스 AWS GenAI Labs의 수석 솔루션 아키텍트로서 고객이 생성 AI 프로토타입을 구축하여 비즈니스 문제를 해결할 수 있도록 지원합니다. 고객과 협력하지 않을 때는 아이들과 놀고 요리하는 것을 즐깁니다.

크리스 페코라 Amazon Web Services의 생성 AI 데이터 과학자입니다. 그는 혁신적인 제품과 솔루션을 구축하는 데 열정을 쏟는 동시에 고객 중심의 과학에도 중점을 두고 있습니다. 실험을 하지 않을 때나 GenAI의 최신 개발 상황을 따라잡을 때 그는 아이들과 함께 시간을 보내는 것을 좋아합니다.

spot_img

최신 인텔리전스

spot_img