Azure OpenAI 포함 기술

메모

Azure AI 검색 Azure 포털, REST API 및 Azure SDK 통해 사용할 수 있습니다. 또한 엔터프라이즈 콘텐츠를 Microsoft Foundry 포털의 에이전트에 대해 재사용 가능한 사용 권한 인식 기술 자료로 변환하는 관리되는 기술 계층인 Foundry IQ를 뒷받침합니다.

Azure OpenAI Embedding 스킬은 Azure OpenAI in Foundry Models 리소스 또는 Microsoft Foundry 프로젝트에 배포된 임베딩 모델과 연결하여 인덱싱 중 임베딩을 생성합니다. 데이터는 모델이 배포된 지오(Geo )에서 처리됩니다.

Azure 포털의 Import data 마법사은 Azure OpenAI 임베딩 스킬을 사용해 콘텐츠를 벡터화합니다. 위저드를 실행하면서 생성된 스킬셋을 검토해서 위저드가 모델 임베딩 스킬을 어떻게 구축하는지 확인할 수 있습니다.

메모

이 기술은 OpenAI에 Azure 필수이며, Azure OpenAI 표준 가격로 요금이 부과됩니다.

사전 요구 사항

  • Azure 파운드리 모델의 OpenAI 리소스 또는 Foundry 프로젝트.

    • Azure OpenAI 자원에는 같은 https://<resource-name>.openai.azure.com가 있어야 합니다. 이 엔드포인트는 Azure 포털의 Keys and Endpoint 페이지에서 찾을 수 있으며, 이 스킬의 resourceUri 속성에 사용할 수 있습니다.

    • Foundry 프로젝트의 상위 리소스는 , , https://<resource-name>.openai.azure.com, 등 https://<resource-name>.services.ai.azure.com여러 엔드포인트https://<resource-name>.cognitiveservices.azure.com에 접근할 수 있도록 합니다. 이 엔터리들은 Azure 포털의 Keys 및 Endpoint 페이지에서 찾을 수 있으며, 이 스킬의 resourceUri 속성에 사용할 수 있습니다.

  • 귀하의 리소스나 프로젝트에 배포된 Azure OpenAI 임베딩 모델입니다. 지원되는 모델에 대해서는 스킬 매개변수 섹션을 참조하세요.

@odata.type

Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill

데이터 제한

텍스트 입력의 최대 크기는 8,000 토큰이어야 합니다. 입력이 허용된 최대 값을 초과하면 모델은 무효 요청 오류를 생성합니다. 자세한 내용은 Azure OpenAI 문서의 tokens 핵심 개념을 참조하세요. 데이터 청킹이 필요하다면 텍스트 분할 스킬 을 고려해 보세요.

기술 매개 변수

매개변수는 대소문자에 구분됩니다.

입력 Description
resourceUri (필수) 모델 제공자의 URI. 지원되는 도메인은 다음과 같습니다:

  • openai.azure.com
  • services.ai.azure.com
  • cognitiveservices.azure.com

이 필드는 리소스가 프라이빗 엔드포인트 뒤에 배포되었거나 가상 네트워크(VNet) 통합을 사용할 때 필요합니다. API Management 사용자 지정 도메인을 제외하고 Azure API Management 엔드포인트도 지원됩니다. 인증, RBAC 및 선택적 프라이빗 연결을 비롯한 설정은 Azure OpenAI 기술 및 벡터라이저와 함께 Azure API Management 사용 참조하세요.

apiKey 모델에 접근하는 데 사용된 비밀 키입니다. 열쇠를 제공한다면 비워두세요 authIdentity . 만약 와 를 모두 apiKeyauthIdentity설정하면 연결 apiKey 에 사용됩니다.
deploymentId (필수) 배포된 Azure OpenAI 임베딩 모델의 ID입니다. 이것은 모델을 배포할 때 지정한 배포 이름입니다.
authIdentity 검색 서비스가 연결에 사용하는 사용자 관리 신원입니다. 시스템 기반 또는 사용자 관리 신원 중 하나를 사용할 수 있습니다. 시스템 관리 신원을 사용하려면 leave apiKey and authIdentity blank를 사용하세요. 시스템 관리 신원은 자동으로 사용됩니다. 관리된 신원은 텍스트를 Azure OpenAI에 전송하려면 Cognitive Services OpenAI User 권한을 가져야 합니다.
modelName (필수) 지정된 deploymentId에 배포된 Azure OpenAI 모델의 이름입니다. 지원되는 값은 다음과 같습니다:

  • text-embedding-ada-002
  • text-embedding-3-large
  • text-embedding-3-small
dimensions (선택 사항) 모델이 다양한 차원을 지원한다고 가정할 때, 생성하려는 임베딩의 차원들입니다. 기본값은 각 모델의 최대 치수입니다. 2023-10-01-프리뷰 이전에 REST API 버전으로 생성된 스킬셋의 경우, 크기는 1536으로 고정되어 있습니다. 이 스킬에서 속성을 설정 dimensions 하면, dimensions의 속성도 같은 값으로 설정하세요.

지지 차원 modelName

Azure OpenAI 임베딩 스킬에 지원되는 크기는 설정된 modelName에 따라 다릅니다.

modelName 최소 차원 최대 치수
text-embedding-ada-002 1536 1536
text-embedding-3-large 1 3072
text-embedding-3-small (텍스트 임베딩 3 스몰) 1 1536

기술 입력

입력 Description
text 입력 텍스트를 벡터화해야 합니다. 데이터 청킹을 사용한다면, 소스가 아 /document/pages/*마 일 수 있습니다.

기술 성과

출력 Description
embedding 입력 텍스트에 벡터화된 임베딩.

샘플 정의

다음 필드를 가진 레코드를 고려해 봅시다:

{
    "content": "Microsoft released Windows 10."
}

그렇다면 스킬 정의는 다음과 같을 수 있습니다:

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://my-demo-openai-eastus.openai.azure.com/",
  "deploymentId": "my-text-embedding-ada-002-model",
  "modelName": "text-embedding-ada-002",
  "dimensions": 1536,
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}

샘플 출력

주어진 입력 텍스트에 대해 벡터화된 임베딩 출력이 생성됩니다.

{
  "embedding": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... 
        0.021276434883475304,
      ]
}

출력은 메모리에 저장됩니다. 이 출력을 검색 인덱스의 필드로 보내려면, 벡터화된 임베딩 출력(배열)을 벡터 필드에 매핑하는 outputFieldMapping을 정의해야 합니다. 스킬 출력이 문서의 임베딩 노드에 있고, content_vector 가 검색 인덱스의 필드라고 가정하면, 인덱서의 outputFieldMapping은 다음과 같이 보여야 합니다:

  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/embedding/*",
      "targetFieldName": "content_vector"
    }
  ]

모범 사례

다음은 이 기술을 활용할 때 고려해야 할 몇 가지 모범 사례입니다:

  • Azure OpenAI TPM(분당 토큰) 한도에 도달했다면, quota limits advisory를 참고해 적절히 대응할 수 있습니다. Azure OpenAI 인스턴스 성능에 대한 자세한 내용은 Azure OpenAI monitoring 문서를 참고하세요.

  • 이 스킬에 사용하는 Azure OpenAI 임베딩 모델 배포는 query vectorizer 등 다른 사용 사례에 사용되는 배포와 이상적으로 분리되어야 합니다. 이로 인해 각 배포가 특정 사용 사례에 맞게 맞춤화되어 최적화된 성능과 인덱서 및 인덱스 임베딩 호출의 트래픽 식별이 용이해집니다.

  • Azure OpenAI 인스턴스는 AI 검색 서비스가 호스팅된 지역과 같은 지역이거나 지리적으로 가까워야 합니다. 이로 인해 지연 시간이 줄어들고 서비스 간 데이터 전송 속도가 향상됩니다.

  • 429개의 오류 코드가 자주 발생하지 않도록 하려면 여러 Azure OpenAI 포함 모델 배포 앞에서 게이트웨이를 구현하여 API Management를 통해 부하 분산을 구현하는 것이 좋습니다.

  • Azurequotas and limits 문서에 공개된 OpenAI TPM(분당 토큰) 한도가 기본값보다 크다면, Azure AI 검색팀에 support 케이스를 열어 조정하세요. 이렇게 하면 더 높은 한도가 있을 경우 문서화된 기본 TPM 한도 때문에 인덱싱 과정이 불필요하게 느려지지 않도록 도와줍니다.

  • 이 기술을 사용한 예제와 작업 코드 샘플은 다음 링크를 참조하세요:

오류 및 경고

Condition 결과
null 또는 유효하지 않은 URI 오류
null 또는 유효하지 않은 deploymentID 오류
텍스트가 비어 있어 Warning
텍스트는 8,000 토큰보다 큽니다 오류

관리 ID 인증에 대한 보안 고려 사항

Azure OpenAI 포함 기술이 관리 ID 인증을 사용하는 경우 Azure AI 검색 Foundry Tools 대상 그룹()에 대한 Microsoft Entra 액세스 토큰을https://cognitiveservices.azure.com 가져와 지정된 엔드포인트로 전송된 resourceUri요청에 포함합니다. 관리 ID 인증은 설정된 경우 authIdentity 또는 둘 다 apiKey 비어 있고 authIdentity 서비스가 시스템 할당 ID를 사용하는 경우에 적용됩니다.

참조하는 resourceUri 엔드포인트는 사용자 고유의 Azure OpenAI 또는 Foundry Tools 리소스여야 합니다. 지원되는 도메인은 다음과 같습니다:

  • openai.azure.com
  • cognitiveservices.azure.com
  • services.ai.azure.com

APIM(Azure API Management) 엔드포인트(*.azure-api.net)도 지원됩니다. APIM 호스트 이름은 이름에서만 확인할 수 없으므로 Azure AI 검색 도메인 일치가 아닌 구성 시간에 라이브 연결 확인을 사용하여 이러한 엔드포인트의 유효성을 검사합니다. APIM 엔드포인트와 그 뒤에 있는 Azure OpenAI 또는 Foundry Tools 리소스 간의 관계를 구성하고 유지 관리해야 합니다.

Foundry Tools 대상 그룹에 대해 발급된 관리 ID 토큰은 Id에 권한이 부여된 모든 Foundry 도구 또는 Azure OpenAI 리소스에 대해 유효합니다. 신뢰할 수 없는 엔드포인트로 보내면 토큰이 노출될 수 있습니다.

보안 배포를 유지 관리하려면 다음 방법을 따르세요.

  • 소유하고 신뢰하는 엔드포인트로만 설정합니다 resourceUri . 이전에 나열된 Foundry 도구 도메인을 선호합니다. APIM 엔드포인트를 사용하는 경우 관리 ID를 사용하도록 설정하기 전에 자체 리소스를 사용하는지 확인합니다. 신뢰할 수 있는 호스트 이름은 소유권 증명이 아닙니다.
  • 검색 서비스에서 사용하는 관리 ID에 최소 권한 원칙을 적용합니다. Azure OpenAI 포함 기술에는 대상 리소스에 대한 Cognitive Services OpenAI 사용자 역할만 필요합니다. 더 광범위한 역할을 부여하지 않습니다.
  • NSP(네트워크 보안 경계) 및 프라이빗 엔드포인트 또는 VNet 통합을 사용하여 검색 서비스에서 연결할 수 있는 엔드포인트와 대상 리소스가 요청을 수락하는 원본을 제한합니다.
  • APIM 엔드포인트를 사용하는 경우 게이트웨이가 인바운드 요청의 유효성을 검사하고 의도한 백 엔드에만 전달해야 합니다. 또한 해당 액세스 정책을 주기적으로 검토해야 합니다.
  • 보다 관리 ID를 apiKey선호합니다. 사용하는 apiKey경우 안전하게 저장 및 회전하고 소스 제어에 포함하지 않습니다. 서비스는 둘 다 apiKeyauthIdentity설정하는 구성을 거부합니다.
  • 기술 세트 정의, 관리 ID 역할 할당 및 APIM 구성을 주기적으로 검토하여 값, 액세스 제어 및 ID 권한이 현재 및 적절하게 유지되도록 resourceUri 합니다. 설정된 변경 관리 및 보안 검토 프로세스를 통해 구성 변경 내용을 검토합니다.
  • Azure OpenAI 및 Foundry Tools 로그인 로그, 인증 이벤트 및 액세스 로그를 모니터링하여 예기치 않거나 권한이 없는 활동을 확인합니다.
  • 더 이상 필요하지 않은 사용되지 않는 기술, 엔드포인트, 역할 할당 및 API 키를 제거합니다.

기술 세트 구성에 대한 액세스 제한

기술 세트를 만들거나 수정하거나 실행할 수 있는 사용자는 대상 엔드포인트(resourceUri)와 기술에서 사용하는 인증 구성을 모두 제어합니다. 이 기술은 Foundry Tools 대상 그룹에 대한 관리 ID 토큰을 해당 엔드포인트로 보내기 때문에 이러한 권한을 신뢰할 수 있는 관리자로 제한하고 관리 ID 사용 기술을 구성할 때 표준 변경 관리 및 보안 검토 프로세스를 따릅니다.

참고하십시오