Azure OpenAI Service 리소스 생성 및 배포

이 문서에서는 Azure OpenAI Service 를 시작하는 방법을 설명하고 리소스를 만들고 모델을 배포하는 단계별 지침을 제공합니다. 여러 가지 방법으로 Azure에서 리소스를 만들 수 있습니다.

  • Azure Portal
  • REST API, Azure CLI, PowerShell 또는 클라이언트 라이브러리
  • ARM(Azure Resource Manager) 템플릿

이 문서에서는 Azure portal 및 Azure CLI를 사용하여 리소스를 만들고 배포하는 예제를 검토합니다.

필수 구성 요소

참고 항목

현재 Azure OpenAI Service 에 액세스하려면 신청서를 제출해야 합니다. 액세스를 신청하려면 이 양식을 작성하세요. 도움이 필요한 경우 이 리포지토리에서 문제를 열어 Microsoft에 문의하세요.

리소스 만들기

다음 단계에서는 Azure portal에서 Azure OpenAI 리소스를 만드는 방법을 보여줍니다.

리소스 식별

  1. Azure portal에서 Azure 구독으로 로그인합니다.

  2. 리소스 만들기를 선택하고 Azure OpenAI를 검색합니다. 서비스를 찾으면 만들기를 선택합니다.

    Screenshot that shows how to create a new Azure OpenAI Service resource in the Azure portal.

  3. Azure OpenAI 만들기 페이지에서 기본 사항 탭의 필드에 다음 정보를 제공합니다.

    필드 Description
    구독 Azure OpenAI Service 온보딩 애플리케이션에 사용되는 Azure 구독입니다.
    리소스 그룹 Azure OpenAI 리소스를 포함할 Azure 리소스 그룹입니다. 새 그룹을 만들거나 기존 그룹을 사용할 수 있습니다.
    지역 인스턴스의 위치입니다. 위치에 따라 지연 시간이 발생할 수 있지만 리소스의 런타임 가용성에는 영향을 미치지 않습니다.
    이름 MyOpenAIResource와 같이 Azure OpenAI Service 리소스를 설명하는 이름입니다.
    가격 책정 계층 리소스의 가격 책정 계층입니다. 현재 표준 계층만 Azure OpenAI Service에 사용할 수 있습니다. 가격 책정에 대한 자세한 내용은 Azure OpenAI 가격 책정 페이지를 참조하세요.

    Screenshot that shows how to configure an Azure OpenAI resource in the Azure portal.

  4. 다음을 선택합니다.

네트워크 보안 구성

네트워크 탭에는 보안 유형에 대한 세 가지 옵션이 표시됩니다.

  • 옵션 1: 인터넷을 포함한 모든 네트워크가 이 리소스에 액세스할 수 있습니다.
  • 옵션 2: 선택한 네트워크에서 Azure AI 서비스 리소스에 대한 네트워크 보안을 구성합니다.
  • 옵션 3: 사용 중지됨, 어떤 네트워크도 이 리소스에 액세스할 수 없습니다. 이 리소스에 액세스하는 유일한 방법이 될 프라이빗 엔드포인트 연결을 구성할 수 있습니다.

Screenshot that shows the network security options for an Azure OpenAI resource in the Azure portal.

선택한 옵션에 따라 추가 정보를 제공해야 할 수 있습니다.

옵션 1: 모든 네트워크 허용

첫 번째 옵션을 사용하면 인터넷을 포함한 모든 네트워크에서 리소스에 액세스할 수 있습니다. 이 옵션은 기본 설정입니다. 이 옵션에는 추가 설정이 필요하지 않습니다.

옵션 2: 특정 네트워크만 허용

두 번째 옵션을 사용하면 리소스에 액세스할 수 있는 특정 네트워크를 식별할 수 있습니다. 이 옵션을 선택하면 다음 필수 필드를 포함하도록 페이지가 업데이트됩니다.

필드 설명
가상 네트워크 리소스에 대한 액세스가 허용되는 가상 네트워크를 지정합니다. Azure portal에서 기본 가상 네트워크 이름을 편집할 수 있습니다.
서브넷 리소스에 대한 액세스가 허용되는 서브넷을 지정합니다. Azure portal에서 기본 서브넷 이름을 편집할 수 있습니다.

Screenshot that shows how to configure network security for an Azure OpenAI resource to allow specific networks only.

방화벽 섹션에서는 리소스에 대한 방화벽 설정을 구성하는 데 사용할 수 있는 선택적 주소 범위 필드를 제공합니다.

옵션 3: 네트워크 액세스 사용 안 함

세 번째 옵션을 사용하면 리소스에 대한 네트워크 액세스를 사용하지 않도록 설정할 수 있습니다. 이 옵션을 선택하면 페이지가 업데이트되어 프라이빗 엔드포인트 테이블을 포함합니다.

Screenshot that shows how to disable network security for an Azure OpenAI resource in the Azure portal.

선택적으로 리소스에 액세스하기 위한 프라이빗 엔드포인트를 추가할 수 있습니다. 프라이빗 엔드포인트 추가를 선택하고 엔드포인트 구성을 완료합니다.

구성 확인 및 리소스 생성

  1. 다음을 선택하고 원하는 대로 리소스에 대한 태그를 구성합니다.

  2. 다음을 선택하여 프로세스의 마지막 단계인 검토 + 제출로 이동합니다.

  3. 구성 설정을 확인하고 만들기를 선택합니다.

Azure portal은 새 리소스를 사용할 수 있을 때 알림을 표시합니다.

모델 배포

텍스트 또는 추론을 생성하려면 먼저 모델을 배포해야 합니다. Azure OpenAI Studio에서 사용 가능한 여러 모델 중 하나를 선택할 수 있습니다.

모델을 배포하려면 다음 단계를 수행합니다.

  1. Azure OpenAI Studio에 로그인합니다.

  2. 작업할 구독과 Azure OpenAI 리소스를 선택하고 리소스 사용을 선택합니다.

  3. 관리에서 배포를 선택합니다.

  4. 새 배포 만들기를 선택하고 다음 필드를 구성합니다.

    필드 설명
    모델 선택 모델 가용성은 지역에 따라 다릅니다. 지역별로 사용 가능한 모델 목록을 보려면 모델 요약 표 및 지역 가용성을 참조하세요.
    배포 이름 신중하게 이름을 선택합니다. 배포 이름은 코드에서 클라이언트 라이브러리 및 REST API를 사용하여 모델을 호출하는 데 사용됩니다.
    고급 옵션(선택 사항) 리소스에 필요한 대로 선택적 고급 설정을 지정할 수 있습니다.
    - 콘텐츠 필터의 경우 배포에 콘텐츠 필터를 할당합니다.
    - 분당 토큰 비율 제한의 경우 분당 토큰(TPM)을 조정하여 배포에 대한 효과적인 비율 제한을 설정합니다. 할당량 메뉴를 사용하여 언제든지 이 값을 수정할 수 있습니다. 동적 할당량을 사용하면 추가 용량을 사용할 수 있을 때 더 많은 할당량을 활용할 수 있습니다.
  5. 드롭다운 목록에서 모델을 선택합니다.

  6. 모델을 식별하기 위한 배포 이름을 입력합니다.

    Important

    API를 통해 모델에 액세스하는 경우 API 호출에서 기본 모델 이름이 아닌 배포 이름을 참조해야 합니다. 이것은 OpenAI와 Azure OpenAI의 주요 차이점 중 하나입니다. OpenAI에는 모델 이름만 필요하며, Azure OpenAI는 모델 매개 변수를 사용하는 경우에도 항상 배포 이름이 필요합니다. 문서에는 특정 API 엔드포인트에서 작동하는 모델을 나타내는 데 도움이 되도록 모델 이름과 동일한 배포 이름이 표시되는 예제가 많이 있습니다. 궁극적으로 배포 이름은 사용 사례에 가장 적합한 명명 규칙을 따를 수 있습니다.

  7. 처음 배포하는 경우 고급 옵션을 기본값으로 둡니다.

  8. 만들기를 실행합니다.

배포 테이블에는 새로 생성된 모델에 해당하는 새 항목이 표시됩니다.

배포가 완료되면 모델 배포 상태가 성공으로 변경됩니다.

필수 구성 요소

참고 항목

현재 Azure OpenAI Service 에 액세스하려면 신청서를 제출해야 합니다. 액세스를 신청하려면 이 양식을 작성하세요. 도움이 필요한 경우 이 리포지토리에서 문제를 열어 Microsoft에 문의하세요.

Azure CLI에 로그인

Azure CLI에 로그인하거나 다음 단계에서 Cloudshell 열기를 선택합니다.

Azure 리소스 그룹 만들기

Azure OpenAI 리소스를 만들려면 Azure 리소스 그룹이 필요합니다. Azure CLI를 통해 새 리소스를 만들 때 새 리소스 그룹을 만들거나 Azure에 기존 그룹을 사용하도록 지시할 수도 있습니다. 다음 예에서는 az group create 명령을 사용하여 OAIResourceGroup이라는 새 리소스 그룹을 만드는 방법을 보여줍니다. 리소스 그룹은 미국 동부 위치에 생성됩니다.

az group create \
--name OAIResourceGroup \
--location eastus

리소스 만들기

리소스 그룹에 Azure OpenAI 리소스를 만들려면 az cognitiveservices account create 명령을 사용합니다. 다음 예에서는 OAIResourceGroup 리소스 그룹에 MyOpenAIResource라는 리소스를 만듭니다. 예제를 시도할 때 Azure 구독 ID <subscriptionID>와 함께 리소스 그룹 및 리소스 이름에 원하는 값을 사용하도록 코드를 업데이트하세요.

az cognitiveservices account create \
--name MyOpenAIResource \
--resource-group OAIResourceGroup \
--location eastus \
--kind OpenAI \
--sku s0 \
--subscription <subscriptionID>

리소스에 대한 정보 검색

리소스를 만든 후에는 다양한 명령을 사용하여 Azure OpenAI Service 인스턴스에 대한 유용한 정보를 찾을 수 있습니다. 다음 예에서는 REST API 엔드포인트 기본 URL과 새 리소스에 대한 액세스 키를 검색하는 방법을 보여줍니다.

엔드포인트 URL 가져오기

리소스에 대한 REST API 엔드포인트 기본 URL을 검색하려면 az Cognitiveservices account show 명령을 사용합니다. 이 예에서는 jq JSON 프로세서를 통해 명령 출력을 지시하여 .properties.endpoint 값을 찾습니다.

예시를 시도할 때 리소스 그룹 <myResourceGroupName> 및 리소스 <myResourceName>에 대한 값을 사용하도록 코드를 업데이트하세요.

az cognitiveservices account show \
--name <myResourceName> \
--resource-group  <myResourceGroupName> \
| jq -r .properties.endpoint

기본 API 키 가져오기

리소스에 대한 액세스 키를 검색하려면 az Cognitiveservices account key list 명령을 사용합니다. 이 예에서는 jq JSON 프로세서를 통해 명령 출력을 지시하여 .key1 값을 찾습니다.

예제를 시도할 때 리소스 그룹 및 리소스에 대한 값을 사용하도록 코드를 업데이트하세요.

az cognitiveservices account keys list \
--name <myResourceName> \
--resource-group  <myResourceGroupName> \
| jq -r .key1

모델 배포

모델을 배포하려면 az Cognitiveservices account development create 명령을 사용합니다. 다음 예에서는 text-embedding-ada-002 모델의 인스턴스를 배포하고 이름을 MyModel로 지정합니다. 예제를 시도할 때 리소스 그룹 및 리소스에 대한 값을 사용하도록 코드를 업데이트하세요. model-version, model-format, sku-capacitysku-name 값을 변경할 필요가 없습니다.

az cognitiveservices account deployment create \
--name <myResourceName> \
--resource-group  <myResourceGroupName> \
--deployment-name MyModel \
--model-name text-embedding-ada-002 \
--model-version "1"  \
--model-format OpenAI \
--sku-capacity "1" \
--sku-name "Standard"

Important

API를 통해 모델에 액세스하는 경우 API 호출에서 기본 모델 이름이 아닌 배포 이름을 참조해야 합니다. 이것은 OpenAI와 Azure OpenAI의 주요 차이점 중 하나입니다. OpenAI에는 모델 이름만 필요하며, Azure OpenAI는 모델 매개 변수를 사용하는 경우에도 항상 배포 이름이 필요합니다. 문서에는 특정 API 엔드포인트에서 작동하는 모델을 나타내는 데 도움이 되도록 모델 이름과 동일한 배포 이름이 표시되는 예제가 많이 있습니다. 궁극적으로 배포 이름은 사용 사례에 가장 적합한 명명 규칙을 따를 수 있습니다.

리소스에서 모델 삭제

az Cognitiveservices account development delete 명령을 사용하여 리소스에서 배포된 모든 모델을 삭제할 수 있습니다. 다음 예에서는 MyModel이라는 모델을 삭제합니다. 예제를 시도할 때 리소스 그룹, 리소스 및 배포된 모델에 대한 값을 사용하도록 코드를 업데이트하세요.

az cognitiveservices account deployment delete \
--name <myResourceName> \
--resource-group  <myResourceGroupName> \
--deployment-name MyModel

리소스 삭제

이러한 연습 후에 정리하려면 Azure CLI를 통해 리소스를 삭제하여 Azure OpenAI 리소스를 제거할 수 있습니다. 리소스 그룹을 삭제할 수도 있습니다. 리소스 그룹을 삭제하도록 선택하면 그룹에 포함된 모든 리소스도 삭제됩니다.

리소스 그룹 및 관련 리소스를 제거하려면 az Cognitiveservices account delete 명령을 사용합니다.

이 연습에서 생성된 리소스를 계속 사용하지 않으려면 다음 명령을 실행하여 리소스 그룹을 삭제하세요. 리소스 그룹 및 리소스에 대한 값을 사용하려면 예제 코드를 업데이트해야 합니다.

az cognitiveservices account delete \
--name <myResourceName> \
--resource-group  <myResourceGroupName>

필수 구성 요소

참고 항목

현재 Azure OpenAI Service 에 액세스하려면 신청서를 제출해야 합니다. 액세스를 신청하려면 이 양식을 작성하세요. 도움이 필요한 경우 이 리포지토리에서 문제를 열어 Microsoft에 문의하세요.

Azure PowerShell에 로그인

Azure PowerShell에 로그인하거나 다음 단계에서 Cloudshell 열기를 선택합니다.

Azure 리소스 그룹 만들기

Azure OpenAI 리소스를 만들려면 Azure 리소스 그룹이 필요합니다. Azure PowerShell을 통해 새 리소스를 만들 때 새 리소스 그룹을 만들거나 Azure에 기존 그룹을 사용하도록 지시할 수도 있습니다. 다음 예에서는 New-AzResourceGroup 명령을 사용하여 OAIResourceGroup이라는 새 리소스 그룹을 만드는 방법을 보여줍니다. 리소스 그룹은 미국 동부 위치에 생성됩니다.

New-AzResourceGroup -Name OAIResourceGroup -Location eastus

리소스 만들기

리소스 그룹에 Azure OpenAI 리소스를 만들려면 New-AzCognitiveServicesAccount 명령을 사용합니다. 다음 예에서는 OAIResourceGroup 리소스 그룹에 MyOpenAIResource라는 리소스를 만듭니다. 예제를 시도할 때 Azure 구독 ID <subscriptionID>와 함께 리소스 그룹 및 리소스 이름에 원하는 값을 사용하도록 코드를 업데이트하세요.

New-AzCognitiveServicesAccount -ResourceGroupName OAIResourceGroup -Name MyOpenAIResource -Type OpenAI -SkuName S0 -Location eastus

리소스에 대한 정보 검색

리소스를 만든 후에는 다양한 명령을 사용하여 Azure OpenAI Service 인스턴스에 대한 유용한 정보를 찾을 수 있습니다. 다음 예에서는 REST API 엔드포인트 기본 URL과 새 리소스에 대한 액세스 키를 검색하는 방법을 보여줍니다.

엔드포인트 URL 가져오기

리소스에 대한 REST API 엔드포인트 기본 URL을 검색하려면 Get-AzCognitiveServicesAccount 명령을 사용합니다. 이 예에서는 Select-Object cmdlet을 통해 명령 출력을 지시하여 endpoint 값을 찾습니다.

예제를 시도할 때 리소스 그룹 <myResourceGroupName> 및 리소스 <myResourceName>에 대한 값을 사용하도록 코드를 업데이트하세요.

Get-AzCognitiveServicesAccount -ResourceGroupName OAIResourceGroup -Name MyOpenAIResource |
  Select-Object -Property endpoint

기본 API 키 가져오기

리소스에 대한 액세스 키를 검색하려면 Get-AzCognitiveServicesAccountKey 명령을 사용합니다. 이 예에서는 Select-Object cmdlet을 통해 명령 출력을 지시하여 Key1 값을 찾습니다.

예제를 시도할 때 리소스 그룹 및 리소스 에 대한 값을 사용하도록 코드를 업데이트하세요.

Get-AzCognitiveServicesAccountKey -Name MyOpenAIResource -ResourceGroupName OAIResourceGroup |
  Select-Object -Property Key1

모델 배포

모델을 배포하려면 New-AzCognitiveServicesAccountDeployment 명령을 사용합니다. 다음 예에서는 text-embedding-ada-002 모델의 인스턴스를 배포하고 이름을 MyModel로 지정합니다. 예제를 시도할 때 리소스 그룹 및 리소스에 대한 값을 사용하도록 코드를 업데이트하세요. model-version, model-format, sku-capacitysku-name 값을 변경할 필요가 없습니다.

$model = New-Object -TypeName 'Microsoft.Azure.Management.CognitiveServices.Models.DeploymentModel' -Property @{
    Name = 'text-embedding-ada-002'
    Version = '2'
    Format = 'OpenAI'
}

$properties = New-Object -TypeName 'Microsoft.Azure.Management.CognitiveServices.Models.DeploymentProperties' -Property @{
    Model = $model
}

$sku = New-Object -TypeName "Microsoft.Azure.Management.CognitiveServices.Models.Sku" -Property @{
    Name = 'Standard'
    Capacity = '1'
}

New-AzCognitiveServicesAccountDeployment -ResourceGroupName OAIResourceGroup -AccountName MyOpenAIResource -Name MyModel -Properties $properties -Sku $sku

Important

API를 통해 모델에 액세스하는 경우 API 호출에서 기본 모델 이름이 아닌 배포 이름을 참조해야 합니다. 이것은 OpenAI와 Azure OpenAI의 주요 차이점 중 하나입니다. OpenAI에는 모델 이름만 필요하며, Azure OpenAI는 모델 매개 변수를 사용하는 경우에도 항상 배포 이름이 필요합니다. 문서에는 특정 API 엔드포인트에서 작동하는 모델을 나타내는 데 도움이 되도록 모델 이름과 동일한 배포 이름이 표시되는 예제가 많이 있습니다. 궁극적으로 배포 이름은 사용 사례에 가장 적합한 명명 규칙을 따를 수 있습니다.

리소스에서 모델 삭제

Remove-AzCognitiveServicesAccountDeployment 명령을 사용하여 리소스에서 배포된 모든 모델을 삭제할 수 있습니다. 다음 예에서는 MyModel이라는 모델을 삭제합니다. 예제를 시도할 때 리소스 그룹, 리소스 및 배포된 모델에 대한 값을 사용하도록 코드를 업데이트하세요.

Remove-AzCognitiveServicesAccountDeployment -ResourceGroupName OAIResourceGroup -AccountName MyOpenAIResource -Name MyModel

리소스 삭제

이러한 연습 후에 정리하려면 Azure PowerShell을 통해 리소스를 삭제하여 Azure OpenAI 리소스를 제거할 수 있습니다. 리소스 그룹을 삭제할 수도 있습니다. 리소스 그룹을 삭제하도록 선택하면 그룹에 포함된 모든 리소스도 삭제됩니다.

리소스 그룹 및 관련 리소스를 제거하려면 Remove-AzCognitiveServicesAccount 명령을 사용합니다.

이 연습에서 생성된 리소스를 계속 사용하지 않으려면 다음 명령을 실행하여 리소스 그룹을 삭제하세요. 리소스 그룹 및 리소스에 대한 값을 사용하려면 예제 코드를 업데이트해야 합니다.

Remove-AzCognitiveServicesAccount -Name MyOpenAIResource -ResourceGroupName OAIResourceGroup

다음 단계