SQL에서 외부 모델 만들기 및 관리

Completed

Tip

자세한 내용은 텍스트 및 이미지 탭을 참조하세요.

외부 모델은 Transact-SQL을 사용하여 SQL Server 및 Azure SQL 내에서 AI 모델을 참조하는 방법을 제공합니다. 외부 모델은 모델 엔드포인트에 대한 연결을 나타내며 SQL 기본 제공 AI 함수가 해당 모델을 호출하는 방법을 정의합니다.

외부 모델을 만들면 애플리케이션 코드에 모델별 논리를 포함하지 않고도 데이터베이스 엔진 내에서 직접 AI 기능을 사용할 수 있습니다.

외부 모델란?

외부 모델은 AI 모델 엔드포인트에 대한 메타데이터를 저장하는 데이터베이스 개체입니다. 이 메타데이터에는 엔드포인트 URL, 인증 세부 정보 및 모델별 구성과 같은 정보가 포함됩니다.

외부 모델은 SQL Server 내에서 실행되는 모델이 아닙니다. 대신, SQL Server가 AI 함수를 실행할 때 외부 AI 서비스를 호출할 수 있도록 하는 관리되는 참조 역할을 합니다.

만든 후에는 외부 모델을 쿼리 및 워크로드에서 다시 사용할 수 있으므로 SQL에서 AI 기능에 액세스할 수 있는 일관되고 중앙에서 관리되는 방법을 제공합니다.

외부 모델 만들기

CREATE EXTERNAL MODEL 문을 사용하여 외부 모델을 만듭니다. 이 문은 모델 이름을 정의하고 외부 엔드포인트와 연결합니다.

외부 모델을 만들면 모델이 호출되거나 출력이 생성되지 않습니다. 생성 포함 또는 다른 AI 지원 작업과 같은 AI 함수가 나중에 참조할 수 있는 재사용 가능한 정의를 설정합니다.

외부 모델은 데이터베이스 개체이므로 명명 규칙, 권한 및 스크립트를 통한 배포를 비롯한 표준 SQL 사례를 사용하여 관리할 수 있습니다.

외부 모델 수정

엔드포인트, 자격 증명 또는 구성 설정이 업데이트되면 시간이 지남에 따라 외부 모델이 변경됩니다. 이러한 변경 내용을 반영하기 위해 ALTER EXTERNAL MODEL 문을 사용할 수 있습니다.

외부 모델을 변경하면 종속 쿼리 또는 함수를 다시 작성할 필요 없이 메타데이터가 업데이트됩니다. 이 업데이트를 사용하면 기존 SQL 논리를 그대로 유지하면서 모델 구성을 중앙에서 조정할 수 있습니다.

외부 모델 수준에서 변경 내용을 관리하면 애플리케이션 논리와 AI 서비스 구성 간의 결합을 줄이는 데 도움이 됩니다.

AI 함수와 함께 외부 모델 사용

SQL Server는 AI 관련 작업을 수행하기 위해 외부 모델을 참조하는 기본 제공 AI 함수를 제공합니다. 이러한 함수는 데이터베이스에 정의된 외부 모델 엔드포인트를 호출하여 포함 생성과 같은 작업을 처리합니다.

AI 함수는 외부 모델 정의를 사용하여 호출할 엔드포인트와 요청을 인증하는 방법을 결정합니다. 이러한 분리를 통해 Transact-SQL 코드는 연결 또는 자격 증명 세부 정보보다는 데이터 처리에 집중할 수 있습니다.

외부 모델을 만들기 전에 AI 엔드포인트에 대한 인증 세부 정보를 저장하는 데이터베이스 범위 자격 증명이 필요합니다. Azure OpenAI 엔드포인트는 다음 두 가지 인증 옵션을 지원합니다.

  • 관리 ID (Azure SQL Database에 권장): 데이터베이스의 관리 ID는 Azure OpenAI를 사용하여 직접 인증합니다. Azure OpenAI 리소스에서 Cognitive Services OpenAI 사용자 역할을 부여합니다.

    CREATE DATABASE SCOPED CREDENTIAL [https://<resource-name>.cognitiveservices.azure.com/]
        WITH IDENTITY = 'Managed Identity',
        SECRET = '{"resourceid":"https://cognitiveservices.azure.com"}';
    
  • API 키: HTTP 헤더에 키를 저장합니다. 이 방법은 Azure SQL Database와 SQL Server 2025 모두에서 작동합니다.

    CREATE DATABASE SCOPED CREDENTIAL [https://<resource-name>.cognitiveservices.azure.com/]
        WITH IDENTITY = 'HTTPEndpointHeaders',
        SECRET = '{"api-key":"<your-api-key>"}';
    

T-SQL 코드에서 API 키를 하드 코딩하지 마세요. 가능한 경우 관리 ID를 사용하여 더 나은 보안 및 더 쉬운 키 회전을 지원합니다.

중요합니다

외부 엔드포인트를 EXECUTE ANY EXTERNAL ENDPOINT 호출해야 하는 사용자 또는 역할에 권한을 부여합니다. GRANT EXECUTE ANY EXTERNAL ENDPOINT TO [user_or_role];

자격 증명을 사용하면 외부 모델을 만들 수 있습니다. 다음 예제에서는 최소 워크플로를 보여줍니다.

CREATE EXTERNAL MODEL my_external_model
WITH (
    LOCATION   = 'https://<resource-name>.cognitiveservices.azure.com/openai/deployments/<deployment-name>/embeddings?api-version=<api-version>',
    API_FORMAT = 'Azure OpenAI',
    MODEL_TYPE = EMBEDDINGS,
    MODEL      = 'text-embedding-3-small',
    CREDENTIAL = [https://<resource-name>.cognitiveservices.azure.com/],
    PARAMETERS = '{"dimensions":<n>}'
);

외부 모델이 만들어지면 AI 함수는 쿼리에서 이를 참조할 수 있습니다.

SELECT
    id,
    AI_GENERATE_EMBEDDINGS(
        description USE MODEL my_external_model
    ) AS embedding
FROM dbo.documents;

이 예제에서 외부 모델은 SQL Server가 AI 서비스에 연결하는 방법을 정의합니다. 함수는 AI_GENERATE_EMBEDDINGS 해당 정의를 사용하여 쿼리에 엔드포인트 또는 인증 세부 정보를 포함하지 않고 열에 대한 description 포함을 생성합니다.

외부 모델을 AI 함수와 결합하면 SQL Server는 Transact-SQL을 통해 완전히 정의, 실행 및 유지 관리되는 AI 워크플로를 사용하도록 설정합니다.

외부 모델을 데이터베이스 개체로 관리

외부 모델은 데이터베이스 범위 개체이므로 기존 데이터베이스 관리 방식에 자연스럽게 적합합니다. 사용 권한을 통해 액세스를 제어하고, 배포 파이프라인에 포함하고, 다른 스키마 개체와 함께 수명 주기를 관리할 수 있습니다.

외부 모델을 일류 데이터베이스 개체로 처리하면 AI 기능을 SQL 기반 솔루션에 통합할 때 일관성, 유지 관리 가능성 및 예측 가능한 동작을 보장할 수 있습니다.

주요 내용

외부 모델은 AI 모델 엔드포인트에 대한 메타데이터를 저장하는 데이터베이스 개체로, SQL Server가 애플리케이션 코드에 연결 세부 정보를 포함하지 않고도 외부 AI 서비스를 호출할 수 있습니다. 다음과 같이 CREATE EXTERNAL MODEL을 생성하고, ALTER EXTERNAL MODEL를 업데이트하며, AI_GENERATE_EMBEDDINGS와 같은 기본 제공 AI 함수에서 이를 참조합니다. 데이터베이스 범위가 지정되므로 다른 스키마 개체와 함께 사용 권한, 수명 주기 및 배포를 관리할 수 있습니다.