메모
Foundry의 관리 컴퓨팅은 현재 미리 보기로 제공됩니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.
Microsoft Foundry의 관리형 컴퓨팅 배포(미리 보기)는 전용 GPU 용량에서 오픈 소스 모델을 호스트합니다. Microsoft GPU 토폴로지, 런타임, 컨테이너 이미지 및 보안 패치를 소유합니다. 워크로드에 맞는 모델, 배포 템플릿, 가속기 패밀리 및 크기 조정 동작을 선택합니다. 이 문서에서는 Microsoft Foundry에서 관리형 컴퓨팅에 오픈 소스 모델을 배포하기 위한 엔드 투 엔드 워크플로를 안내합니다.
이 문서에서는 다음 방법을 알아봅니다.
- 모델 카탈로그에서 모델 선택
- 배포 템플릿 선택
- Foundry 포털 또는 Python SDK를 사용하여 모델 배포
- OpenAI SDK를 사용하여 추론 수행
- 배포 크기 조정 및 모니터링
- 추가 할당량 요청
모델 인스턴스, 배포 템플릿, 런타임, 액셀러레이터 패밀리, 청구 및 현재 제한 사항을 포함하여 Foundry의 관리형 컴퓨팅 배포에 대한 개요는 Microsoft Foundry(미리 보기)
Prerequisites
활성 Azure 구독입니다. 만들려면 Azure 체험 계정 만들기를 참조하세요.
리소스를 만들 수 있는 권한이 있는 구독의 리소스 그룹입니다.
Microsoft Foundry 계정(
AIServices종류의 Cognitive Services 계정) 및 Foundry 프로젝트입니다. 만들려면 Foundry 프로젝트 만들기를 참조하세요.Foundry 계정 범위의 다음 Azure 역할 할당:
- Cognitive Services 기여자 (또는 Foundry 소유자 / Foundry 계정 소유자)는 관리형 컴퓨팅 배포를 만들고, 업데이트하고, 삭제하는 데 필요합니다. Microsoft Foundry용 역할 기반 액세스 제어 — 관리형 컴퓨팅 컨트롤 플레인 작업을 참조하세요.
- Foundry User — 플레이그라운드, SDK 또는 REST의 Microsoft Entra ID 사용하여 배포를 호출하는 데 필요합니다.
대상 지역에서 배포하려는 가속기 제품군(A100, H100 또는 MI300X)에 대해 승인된 관리 컴퓨팅 할당량 입니다. 관리되는 컴퓨팅 할당량은 Azure VM 할당량과는 별개입니다. 이 문서의 끝부분에 있는 더 많은 할당량 요청을 참조하세요.
SDK 및 CLI 예제에 대한 로컬 도구:
pip install "azure-mgmt-cognitiveservices==15.0.0b2" azure-identity openai requests az loginAzure CLI 2.60 이상.
Important
Foundry의 관리 컴퓨팅은 공개 미리 보기로 제공됩니다. API, SKU 이름 및 지원되는 지역은 일반 공급 전에 변경될 수 있습니다. 기본 제공 콘텐츠 필터링은 공개 미리 보기에서 관리되는 컴퓨팅 데이터 경로의 일부가 아닙니다. 요청 수준 또는 응답 수준 필터링이 필요한 경우 애플리케이션에서 직접 Azure AI 콘텐츠 보안 API 호출합니다.
카탈로그에서 모델 선택
관리형 컴퓨팅은 레지스트리에서 제공되는 Foundry 모델 카탈로그의 Hugging Face Collection 에서 azure-huggingface 모델을 배포합니다.
-
Microsoft Foundry에 로그인합니다.
New Foundry 토글이 설정되었는지 확인합니다. 이러한 단계는 Foundry(신규)를 참조합니다.
- 구독 및 Foundry 리소스를 선택합니다.
- 오른쪽 위 탐색 영역에서 빌드 를 선택한 다음 왼쪽 창에서 모델을 선택합니다.
- 컬렉션별로 카탈로그 를 필터링합니다. 포옹 얼굴을 선택합니다. 다른 필터를 사용하여 배포하려는 모델(예: Qwen과 같은 모델 패밀리 선택) 또는 형식 또는 작업으로 범위를 좁힐 수도 있습니다. 모델 이름으로 검색할 수도 있습니다.
- 모델 카드(예:
nvidia-nemotron-3-nano-30b-a3b-fp8)를 선택하여 세부 정보를 엽니다.
모델 카드에는 업스트림 라이선스, 형식, 지원되는 작업 및 모델에 대해 게시된 배포 템플릿이 표시됩니다. 포털 마법사를 사용하는 대신 Python SDK 또는 REST를 통해 배포하려는 경우 배포 호출에 대한 입력으로 세 가지 값이 필요합니다. 다음과 같이 Foundry 포털에서 이러한 값을 찾을 수 있습니다.
모델 ID: 모델의 정규화된 레지스트리 자산 ID입니다. 카탈로그의 모델 카드 에서 사용할 수 있습니다(모델 세부 정보 창에서 복사). Example:
azureml://registries/azure-huggingface/models/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8/versions/2배포 템플릿 ID: 모델의 런타임, 가속기 패밀리 및 개수 및 컨텍스트 길이를 식별합니다. 모델 카드에서 배포를 선택하면 열리는 배포 마법사에서 사용할 수 있습니다. 템플릿을 선택하고 마법사에서 배포 템플릿 ID를 복사합니다. Example:
azureml://registries/azure-huggingface/deploymenttemplates/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8--nvidia-h100/labels/latest메모
모델 ID 및 배포 템플릿 ID는 호환되어야 합니다. 모든 템플릿은 지원하는 모델 버전을 나열합니다. 포털 마법사는 선택한 모델에 대해 호환되는 템플릿만 표시합니다. 코드를 사용해 배포하는 경우 두 참조가
azure-huggingface레지스트리의 유효한 자산을 가리키는지 확인하세요.배포 템플릿에 대한 자세한 내용은 관리 컴퓨팅 개요 문서의 배포 템플릿 을 참조하세요.
액셀러레이터 형식( 예
H100_80GB: ,A100_80GB또는MI_300_192GB. 배포 마법사의 각 템플릿 옆에 표시됩니다.
모델을 배포합니다.
모델 카드에서 배포 를 선택하여 배포 마법사를 엽니다.
배포 이름을 지정합니다. 배포 이름은 애플리케이션이 유추 시간에 필드에 전달하는
model이름입니다. 안정적인 애플리케이션 친화적인 이름(예:nemotron-3-nano-30b)을 선택합니다.배포 유형(전역 관리형 컴퓨팅)은 배포 마법사에서 미리 선택되어 있습니다.
워크로드와 일치하는 배포 템플릿 을 선택합니다. 예를 들어 중간 컨텍스트 길이에서 가장 낮은 비용으로 H100 단일 가속기 템플릿을 사용하거나 프롬프트가 단일 가속기 컨텍스트 제한을 초과하는 경우 2 가속기 템플릿을 사용합니다.
액셀러레이터 유형(예: )
H100_80GB을 선택합니다.모델 인스턴스를 (워크로드를
1측정한 경우 이상)으로 설정합니다. 모델 인스턴스는 관리형 컴퓨팅의 크기를 조정하며 배포 SKU의 값입니다capacity. 각 인스턴스는 템플릿에서 정의한 가속기 수를 사용합니다. 예를 들어 용량이 2인 인스턴스당 하나의 H100을 지정하는 템플릿은 총 2개의 H100 가속기를 사용합니다.Tip
첫 번째 배포부터
capacity: 1시작한 다음 워크로드를 측정한 후 용량을 늘려 스케일 아웃합니다. 용량을 늘리는 방법은 배포 관리 및 크기 조정 을 참조하세요.배포 비용을 승인하려면 확인란을 선택합니다.
배포를 선택합니다. 프로비전하는 데 일반적으로 10~15분이 걸립니다.
배포 확인
배포 세부 정보 페이지는 모델이 Foundry 엔드포인트를 통해 라이브 상태가 되면 Creating에서 Succeeded로 업데이트됩니다. 배포를 만드는 동안 프로비전 상태, 배포 유형 및 기타 선택 항목을 포함하여 배포에 대한 세부 정보를 볼 수 있습니다.
테스트 요청 보내기
배포가 준비되면 Foundry Playground에서 대화형으로 테스트 합니다.
- 플레이그라운드 탭을 선택하여 배포 세부 정보 페이지에서 전환합니다.
- 배포를 테스트하는 프롬프트를 보냅니다.
배포 모니터링
관리되는 컴퓨팅 배포는 다른 Foundry 배포와 동일한 Azure Monitor 화면에서 메트릭을 내보낸다. Foundry 포털의 배포 세부 정보 페이지에서 모니터 탭에 다음이 표시됩니다.
- HTTP 상태 코드별로 그룹화된 요청 수입니다.
- 응답 시간 백분위수(p50, p90, p99).
- 채팅 완료 모델의 경우: 입력 및 출력 토큰 수, 첫 토큰 생성까지 걸리는 시간(TTFT) 분위수, 그리고 토큰 간 디코딩 시간 분위수.
심층 분석 또는 경고를 보려면
배포 삭제
배포를 삭제하면 가속기 할당이 해제되고 즉시 청구가 중지됩니다. 배포를 삭제하려면 다음을 수행합니다.
- Foundry 포털의 배포 목록으로 이동합니다.
- 배포 이름 옆에 있는 라디오 단추를 선택합니다.
- 오른쪽 창에서 삭제를 선택합니다.
추가 할당량 요청
관리형 컴퓨팅 할당량은 Foundry 할당량 프로세스를 통해 지역당 액셀러레이터 패밀리별로 부여되며 Azure VM 할당량
더 많은 할당량을 요청하려면 다음을 수행합니다.
- 오른쪽 위 탐색에서 작동 을 선택한 다음 왼쪽 창에서 할당량 을 선택합니다.
- 관리형 컴퓨팅 탭을 선택합니다. 표에는 액셀러레이터 패밀리 및 지역별로 그룹화된 현재 할당이 나열되어 있습니다.
- 오른쪽 위 모서리에서 요청 할당량 을 선택합니다.
- 요청 양식에서 액셀러레이터 패밀리(A100, H100 또는 MI300X), 대상 지역 및 요청된 할당량을 선택합니다. 요청을 제출합니다.
승인된 할당량 변경 내용이 전파되는 데 최대 15분이 걸릴 수 있습니다. 할당량 페이지를 새로 고쳐 업데이트된 할당을 확인합니다. 할당량 개념에 대한 자세한 내용은 리소스에 대한 할당량 관리 및 증가를 참조하세요.
다음 Python 스크립트를 사용하여 모델을 배포합니다. 자리 표시자를 고유한 구독 ID, 리소스 그룹, Foundry 계정 이름 및 배포 이름으로 바꿉니다.
Tip
첫 번째 배포부터 capacity: 1 시작한 다음 워크로드를 측정한 후 용량을 늘려 스케일 아웃합니다. 용량을 늘리는 방법은 배포 관리 및 크기 조정 을 참조하세요.
from azure.identity import DefaultAzureCredential
from azure.mgmt.cognitiveservices import CognitiveServicesManagementClient
SUBSCRIPTION_ID = "<your-subscription-id>"
RESOURCE_GROUP = "<your-resource-group>"
ACCOUNT_NAME = "<your-foundry-account>"
DEPLOYMENT_NAME = "nemotron-3-nano-30b"
MODEL = "azureml://registries/azure-huggingface/models/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8/versions/2"
TEMPLATE = "azureml://registries/azure-huggingface/deploymenttemplates/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8--nvidia-h100/labels/latest"
client = CognitiveServicesManagementClient(
DefaultAzureCredential(), SUBSCRIPTION_ID
)
deployment = client.managed_compute_deployments.begin_create_or_update(
resource_group_name=RESOURCE_GROUP,
account_name=ACCOUNT_NAME,
deployment_name=DEPLOYMENT_NAME,
resource={
"sku": {"name": "GlobalManagedCompute", "capacity": 1},
"properties": {
"model": MODEL,
"deploymentTemplate": TEMPLATE,
"acceleratorType": "H100_80GB",
"versionUpgradeOption": "OnceNewDefaultVersionAvailable",
},
},
).result() # blocks until terminal state (~10–15 min)
print(f"State: {deployment.properties.provisioning_state}")
print(f"ID: {deployment.id}")
배포 확인
배포를 만든 후 트래픽을 보내기 전에 정상인지 확인합니다.
d = client.managed_compute_deployments.get(
resource_group_name=RESOURCE_GROUP,
account_name=ACCOUNT_NAME,
deployment_name=DEPLOYMENT_NAME,
)
print(f"State: {d.properties.provisioning_state}") # expect: Succeeded
print(f"Model: {d.properties.model}")
print(f"Template: {d.properties.deployment_template}")
print(f"Accelerator: {d.properties.accelerator_type}")
print(f"Capacity: {d.sku.capacity}")
살펴볼 항목:
-
provisioningState: Succeeded는 배포가 라이브 상태임을 의미합니다. -
acceleratorType는 요청한 값과 일치합니다. -
sku.capacity은 요청한 인스턴스 수와 일치합니다.
provisioningState이 Failed인 경우 문제 해결을 참조하세요.
테스트 요청 보내기
관리형 컴퓨팅 배포는 다음의 통합 Foundry 엔드포인트를 통해 연결할 수 있습니다.
https://<account>.services.ai.azure.com/openai/v1/
model 요청 본문의 필드는 모델 ID가 아니라 지정한 배포 이름을 사용합니다.
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import OpenAI
ACCOUNT_NAME = "<your-foundry-account>"
DEPLOYMENT_NAME = "nemotron-3-nano-30b"
token_provider = get_bearer_token_provider(
DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default",
)
client = OpenAI(
base_url=f"https://{ACCOUNT_NAME}.services.ai.azure.com/openai/v1",
api_key="placeholder", # required by OpenAI SDK; overridden by Authorization header
default_headers={"Authorization": f"Bearer {token_provider()}"},
)
resp = client.chat.completions.create(
model=DEPLOYMENT_NAME,
messages=[{"role": "user", "content": "What is the capital of France?"}],
)
print(resp.choices[0].message.content)
Microsoft Entra ID 사용하여 배포를 호출하려면 Foundry 계정에서 Azure AI 사용자 역할이 필요합니다.
배포 관리 및 크기 조정
관리형 컴퓨팅 배포는 모델 중심이므로 노드 크기를 조정하는 것이 아니라 모델 인스턴스 수를 변경하여 배포 크기를 조정합니다.
용량 변경
d = client.managed_compute_deployments.get(
RESOURCE_GROUP, ACCOUNT_NAME, DEPLOYMENT_NAME
)
d.sku.capacity = 3
client.managed_compute_deployments.begin_create_or_update(
resource_group_name=RESOURCE_GROUP,
account_name=ACCOUNT_NAME,
deployment_name=DEPLOYMENT_NAME,
resource=d,
).result()
런타임 및 모델 업데이트 가져오기
배포에서 versionUpgradeOption를 OnceNewDefaultVersionAvailable(으)로 설정하면 Microsoft가 새 기본 모델 및 런타임 버전을 게시할 때 해당 배포에서 이를 사용하도록 설정됩니다. 런타임 패치 및 CVE 수정 사항은 실행 중인 고객 배포 환경에 자동으로 적용됩니다. 이러한 변경 사항을 반영하기 위해 모델을 다시 배포할 필요는 없습니다.
배포 모니터링
관리되는 컴퓨팅 배포는 다른 Foundry 배포와 동일한 Azure Monitor 화면에서 메트릭을 내보낸다. 심층 분석 또는 경고를 보려면
- HTTP 상태 코드별로 그룹화된 요청 수입니다.
- 응답 시간 백분위수(p50, p90, p99).
- 채팅 완료 모델의 경우: 입력 및 출력 토큰 수, 첫 토큰 생성까지 걸리는 시간(TTFT) 분위수, 그리고 토큰 간 디코딩 시간 분위수.
배포별로 그룹화하고 경고를 구성할 수도 있습니다. 배포별 과금 태그는 자동으로 생성됩니다. 배포 태그를 기준으로 Cost Management를 필터링하여 지출을 특정 관리형 컴퓨팅 배포에 귀속시킵니다. 자세한 내용은 Microsoft Foundry 대한 비용 계획 및 관리를 참조하세요.
배포 삭제
배포를 삭제하면 가속기 할당이 해제되고 즉시 청구가 중지됩니다. 배포를 삭제하려면 다음을 수행합니다.
client.managed_compute_deployments.begin_delete(
resource_group_name=RESOURCE_GROUP,
account_name=ACCOUNT_NAME,
deployment_name=DEPLOYMENT_NAME,
).result()
액세스 제어 요약
| Action | 최소 역할 |
|---|---|
| 관리형 컴퓨팅 배포 만들기, 업데이트 또는 삭제 | Foundry 계정의 Cognitive Services 기여자(또는 Foundry 소유자/Foundry 계정 소유자) |
| 배포 읽기 또는 배포 목록 읽기 | Cognitive Services 사용자, Foundry 사용자, Foundry 프로젝트 관리자 또는 위 역할 중 하나 |
| Microsoft Entra ID 사용하여 배포 호출 | Foundry 계정에 속한 Foundry 사용자 |
| API 키를 사용하여 배포 호출 | 계정 키(호출 자체에 필요한 Azure 역할 없음, 키 검색에는 읽기 액세스가 필요함) |
전체 Azure 리소스 공급자 작업 목록, 역할 간 매트릭스 및 표준 배포와의 비교는 Microsoft Foundry에 대한Role 기반 액세스 제어 - 관리형 컴퓨팅 컨트롤 플레인 작업 참조하세요.
Troubleshooting
provisioningState: Failed
요청된 액셀러레이터 패밀리가 대상 지역의 할당량을 승인했으며 선택한 배포 템플릿에 해당 가속기 패밀리가 나열되었는지 확인합니다. 일치하지 않는 모델 및 배포 템플릿(예: 다른 모델 버전에 대해 게시된 템플릿)이 일반적인 원인입니다. 두 참조가 모두 azure-huggingface 레지스트리에서 유효한 레지스트리 자산으로 확인되는지 검증합니다.
만들기에서 "할당량 초과"
Foundry 계정에 요청된 가속기 제품군에 대한 지역에서 관리되는 컴퓨팅 할당량이 충분하지 않습니다. 더 많은 할당량을 요청합니다. Azure VM 할당량은 관리 컴퓨팅에 적용되지 않습니다.
지역의 "용량 부족"
이 지역은 요청된 액셀러레이터 패밀리에 대한 용량을 반환하지 않았습니다. 다른 패밀리(예: H100 대신 MI300X에 배포)를 시도하거나, 인스턴스당 가속기가 적은 템플릿을 선택하거나, 다른 지역을 대상으로 합니다. MI300X와 같은 더 큰 메모리 패밀리에는 A100에 맞지 않는 모델에 대한 용량이 있는 경우가 많습니다.
/openai/v1/ 경로에서 404 오류
채팅 완료 요청이 404를 반환하는 https://<account>.services.ai.azure.com/openai/v1/chat/completions 경우 다음을 확인합니다.
- 요청 본문의 배포 이름은 사용자가 만든 배포와 일치합니다.
- 배포의
provisioningState은Succeeded입니다. - 모델의 런타임은 채팅 완료를 노출합니다. 일부 런타임(예: 포함용 TEI)은 채팅 완료 경로를 노출하지 않습니다. 대신 모델 카드에 설명된 경로를 사용합니다.
배포가 Creating 상태에 20분 넘게 멈춰 있습니다
일부 대형 모델은 일반적인 10~15분보다 오래 걸립니다. 20분이 지난 후에도 provisioningState가 여전히 Creating 상태이면 Foundry 포털의 배포 세부 정보 페이지에서 작업 상태 메시지를 확인하고, 기반 지역이 성능 저하 상태가 아닌지 확인하세요. 배포가 작업 메시지 없이 30분이 지나도록 Creating 상태로 유지되면 삭제하고 다시 시도하세요. 프로비저닝은 배포 이름 기준으로 멱등입니다.