Azure AI 검색의 지식 저장소

지식 저장소는 Azure AI 검색에서 기술 세트에 의해 생성된 AI 보강 콘텐츠의 보조 스토리지입니다. Azure AI 검색에서 인덱싱 작업은 항상 검색 인덱스에 출력을 보내지만 기술 세트를 인덱서에 연결하는 경우 필요에 따라 Azure Storage의 컨테이너 또는 테이블에 AI 보강 출력을 보낼 수도 있습니다. 지식 저장소는 지식 마이닝과 같은 검색 이외 시나리오에서 독립적인 분석 또는 다운스트림 처리에 사용될 수 있습니다.

인덱싱의 두 출력, 즉 검색 인덱스와 지식 저장소는 동일한 파이프라인의 상호 배타적인 제품입니다. 동일한 입력에서 파생되고 동일한 데이터를 포함하지만 해당 콘텐츠는 서로 다른 애플리케이션에서 구조화, 저장 및 사용됩니다.

Pipeline with skillset

물리적으로 지식 저장소는 Azure Storage이며 Azure Table Storage, Azure Blob Storage 또는 둘 다 해당합니다. Azure Storage에 연결할 수 있는 모든 도구 또는 프로세스는 지식 저장소의 콘텐츠를 사용할 수 있습니다. Azure AI 검색에서는 지식 저장소에서 콘텐츠를 검색하는 쿼리가 지원되지 않습니다.

Azure Portal을 통해 보면 지식 저장소는 테이블, 개체 또는 파일의 다른 컬렉션처럼 보입니다. 다음 스크린샷에서는 세 개의 테이블로 구성된 지식 저장소를 보여 줍니다. kstore 접두사와 같은 명명 규칙을 채택하여 콘텐츠를 함께 유지할 수 있습니다.

Skills read and write from enrichment tree

지식 저장소의 이점

지식 저장소의 주요 이점은 콘텐츠에 대한 유연한 액세스와 데이터 셰이프 기능의 두 가지입니다.

Azure AI 검색의 쿼리를 통해서만 액세스할 수 있는 검색 인덱스와 달리 지식 저장소는 Azure Storage에 대한 연결을 지원하는 도구, 앱 또는 프로세스에서 액세스할 수 있습니다. 이러한 유연성은 보강 파이프라인에 의해 생성된 분석 및 보강 콘텐츠를 사용하는 새로운 시나리오를 열어줍니다.

데이터를 보강하는 동일한 기술 세트를 사용하여 데이터를 셰이프할 수도 있습니다. Power BI와 같은 일부 도구는 테이블에서 더 잘 작동하는 반면 데이터 과학 워크로드에는 Blob 형식의 복잡한 데이터 구조가 필요할 수 있습니다. 쉐이퍼 기술을 기술 세트에 추가하면 데이터의 셰이프를 제어할 수 있습니다. 그런 다음, 이러한 셰이프를 테이블 또는 Blob 프로젝션에 전달하여 데이터의 용도에 맞는 물리적 데이터 구조를 만들 수 있습니다.

다음 비디오에서는 이러한 이점과 그 이상을 모두 설명합니다.

지식 저장소 정의

지식 저장소가 기술 세트 내에 정의되어 있으며 다음 두 가지 구성 요소가 있습니다.

  • Azure Storage에 대한 연결 문자열

  • 지식 저장소가 테이블, 개체 또는 파일로 구성되는지 여부를 결정하는 프로젝션 프로젝션 요소는 배열입니다. 하나의 지식 저장소 내에서 여러 테이블-개체-파일 조합 집합을 만들 수 있습니다.

    "knowledgeStore": {
        "storageConnectionString":"<YOUR-AZURE-STORAGE-ACCOUNT-CONNECTION-STRING>",
        "projections":[
           {
              "tables":[ ],
              "objects":[ ],
              "files":[ ]
           }
        ]
    }
    

이 구조에서 지정하는 프로젝션의 형식에 따라 지식 저장소의 구조가 아닌 지식 저장소에서 사용하는 스토리지 형식이 결정됩니다. 테이블, 개체, 파일의 필드는 프로그래밍 방식으로 지식 저장소를 만드는 경우 쉐이퍼 기술 출력에 의해 결정되고, 포털을 사용하는 경우 데이터 가져오기 마법사에 의해 결정됩니다.

  • tables는 보강된 콘텐츠를 Table Storage에 프로젝션합니다. 분석 도구에 입력하기 위해 테이블 형식 보고 구조가 필요하거나 데이터 프레임으로 다른 데이터 저장소에 내보낼 경우 테이블 프로젝션을 정의합니다. 동일한 프로젝션 그룹 내에서 여러 tables를 지정하여 보강 문서의 하위 집합이나 단면을 가져올 수 있습니다. 동일한 프로젝션 그룹 내에서 테이블 관계를 사용할 수 있게 보존됩니다.

    프로젝팅된 콘텐츠는 집계되거나 정규화되지 않습니다. 다음 스크린샷에서는 인접한 열에 부모 문서가 표시되고 핵심 구를 기준으로 정렬된 테이블을 보여 줍니다. 인덱싱 중 데이터 수집과 달리 언어 분석이나 콘텐츠 집계는 없습니다. 복수형 양식과 대/소문자 차이는 고유한 항목으로 간주됩니다.

    Screenshot of key phrases and documents in a table

  • objects는 JSON 문서를 Blob Storage에 프로젝션합니다. object의 물리적 표현은 보강 문서를 나타내는 계층적 JSON 구조입니다.

  • files는 이미지 파일을 Blob Storage에 프로젝션합니다. file은 문서에서 추출되어 Blob 스토리지로 그대로 전송되는 이미지입니다. 이름이 "files"이지만 파일 스토리지가 아니라 Blob Storage에 표시됩니다.

지식 저장소 만들기

지식 저장소를 만들려면 포털이나 API를 사용합니다.

Azure Storage, 기술 세트인덱서가 필요합니다. 인덱서에는 검색 인덱스가 필요하므로 인덱스 정의도 제공해야 합니다.

완성된 지식 저장소로 가는 가장 빠른 경로에 대한 포털 접근 방식을 사용하세요. 또는 개체가 정의되고 관련되는 방식을 더 자세히 이해하려면 REST API를 선택하세요.

데이터 가져오기 마법사를 사용하여 4단계로 첫 번째 지식 저장소를 만듭니다.

  1. 보강하려는 데이터가 포함된 데이터 원본을 정의합니다.

  2. 기술 집합을 정의합니다. 기술 집합은 보강 단계 및 지식 저장소를 지정합니다.

  3. 인덱스 스키마를 정의합니다. 필요하지 않을 수도 있지만 인덱서에는 필요합니다. 마법사에서 인덱스를 유추할 수 있습니다.

  4. 마법사를 완료합니다. 데이터 추출, 보강 및 지식 저장소 생성이 이 마지막 단계에서 이루어집니다.

마법사는 여러 작업을 자동화합니다. 특히 셰이핑과 프로젝션(Azure Storage의 물리적 데이터 구조 정의)이 모두 자동으로 생성됩니다.

앱을 사용하여 연결

보강된 콘텐츠가 스토리지에 존재하면 Azure Storage에 연결하는 도구나 기술을 사용하여 콘텐츠를 검색, 분석 또는 사용할 수 있습니다. 다음 목록으로 시작합니다.

  • Azure Portal에서 Storage Explorer 또는 스토리지 브라우저(미리 보기)를 사용하여 보강된 문서 구조 및 콘텐츠를 봅니다. 이 도구를 지식 저장소 콘텐츠를 보기 위한 기준선 도구로 고려합니다.

  • 보고 및 분석을 위한 Power BI

  • Azure Data Factory - 추가 조작을 위한 도구입니다.

콘텐츠 수명 주기

인덱서와 기술 세트를 실행할 때마다 기술 세트나 기본 원본 데이터가 변경된 경우 지식 저장소가 업데이트됩니다. 인덱서에서 선택한 모든 변경 내용이 보강 프로세스를 통해 지식 저장소의 프로젝션에 전파되어 프로젝션된 데이터가 원래 데이터 원본 콘텐츠의 현재 표현이 되도록 합니다.

참고 항목

프로젝션의 데이터를 편집할 수 있지만 원본 데이터의 문서가 업데이트된 경우 다음에 파이프라인을 호출하면 편집 내용을 모두 덮어씁니다.

원본 데이터의 변경 내용

변경 내용 추적을 지원하는 데이터 원본의 경우 인덱서에서 새 문서와 변경된 문서를 처리하고, 이미 처리된 기존 문서는 무시합니다. 타임스탬프 정보는 데이터 원본에 따라 다르지만 인덱서는 Blob 컨테이너에서 lastmodified 날짜를 확인하여 수집해야 하는 Blob을 결정합니다.

기술 세트의 변경 내용

기술 세트를 변경하는 경우, 가능하면 기존 보강을 재사용하기 위해 보강된 문서의 캐싱을 사용하도록 설정해야 합니다.

증분 캐싱을 사용하지 않는 경우 인덱서는 뒤로 돌아가지 않고 항상 높은 워터마크 순서로 문서를 처리합니다. Blob에서 인덱서는 인덱서 설정이나 기술 세트의 변경 내용과 관계없이 lastModified로 정렬된 Blob을 처리합니다. 기술 세트를 변경하는 경우 이전에 처리된 문서는 새 기술 세트를 반영하도록 업데이트되지 않습니다. 기술 세트 변경 후에 처리된 문서는 새 기술 세트를 사용하므로 인덱스 문서에 이전 기술 세트와 새 기술 세트가 모두 포함됩니다.

증분 캐싱을 사용하는 경우 인덱서는 기술 세트 업데이트 후에 기술 세트 변경의 영향을 받지 않은 모든 보강을 재사용합니다. 변경된 기술과 격리된, 독립적인 보강과 마찬가지로 업스트림 보강을 캐시에서 풀합니다.

삭제

인덱서는 Azure Storage의 구조와 콘텐츠를 만들고 업데이트하지만 삭제하지는 않습니다. 인덱서나 기술 세트가 삭제된 경우에도 프로젝션은 계속 존재합니다. 더 이상 필요하지 않은 경우 스토리지 계정의 소유자가 프로젝션을 삭제해야 합니다.

다음 단계

지식 저장소는 보강된 문서를 지속적으로 유지하므로 기술 세트를 디자인하거나 Azure Storage 계정에 액세스할 수 있는 모든 클라이언트 애플리케이션에서 사용할 새 구조와 콘텐츠를 만들 때 유용합니다.

보강된 문서를 만드는 가장 간단한 방법은 포털을 사용하는 것이지만 REST 클라이언트 및 REST API는 개체를 만들고 프로그래밍 방식으로 참조하는 방법에 대한 더 많은 인사이트를 제공할 수 있습니다.