중요합니다
이 문서의 Azure CLI 명령 중 일부는 Azure Machine Learning azure-cli-ml 또는 v1 확장을 사용합니다. CLI v1에 대한 지원은 2025년 9월 30일에 종료되었습니다. Microsoft는 더 이상 이 서비스에 대한 기술 지원 또는 업데이트를 제공하지 않습니다. CLI v1을 사용하는 기존 워크플로는 지원 종료 날짜 이후에도 계속 작동합니다. 그러나 제품의 아키텍처 변경 시 보안 위험 또는 호환성이 손상되는 변경에 노출될 수 있습니다.
가능한 한 빨리 ml, 즉 v2 확장 프로그램으로 전환하는 것이 좋습니다. v2 확장에 대한 자세한 내용은 Azure Machine Learning CLI 확장 및 Python SDK v2 참조하세요.
중요합니다
이 문서에서는 Azure Machine Learning SDK v1 사용에 대한 정보를 제공합니다. SDK v1은 2025년 3월 31일부터 더 이상 사용되지 않습니다. 지원은 2026년 6월 30일에 종료됩니다. 해당 날짜까지 SDK v1을 설치하고 사용할 수 있습니다. SDK v1을 사용하는 기존 워크플로는 지원 종료 날짜 이후에도 계속 작동합니다. 그러나 제품의 아키텍처 변경 시 보안 위험 또는 호환성이 손상되는 변경에 노출될 수 있습니다.
2026년 6월 30일 이전에 SDK v2로 전환하는 것이 좋습니다. SDK v2에 대한 자세한 내용은 AZURE MACHINE LEARNING CLI 및 Python SDK v2? 및 SDK v2 참조 참조하세요.
중요합니다
이 문서에서는 CLI 및 SDK v1을 사용하여 모델을 배포하는 방법을 보여줍니다. v2에 권장되는 방법은 온라인 엔드포인트를 사용하여 기계 학습 모델 배포 및 점수 매기기를 참조하세요.
Azure Machine Learning 사용하여 ACI(Azure Container Instances)에서 모델을 웹 서비스로 배포하는 방법을 알아봅니다. 다음과 같은 경우 Azure Container Instances 사용합니다.
- 자체 Kubernetes 클러스터를 관리하지 않는 것을 선호하는 경우
- 서비스의 복제본을 하나만 두는 것에 동의하는 경우, 이는 가동 시간에 영향을 미칠 수 있습니다.
ACI 관련 할당량 및 지역 가용성에 대한 정보는 'Azure Container Instances의 할당량 및 지역 가용성' 문서를 참조하세요.
중요합니다
웹 서비스에 배포하기 전에 로컬로 디버그합니다. 자세한 내용은 로컬 디버그를 참조하세요.
Azure Machine Learning 참조할 수도 있습니다. 로컬 Notebook에 배포.
필수 조건
Azure Machine Learning 작업 영역입니다. 자세한 내용은 Azure Machine Learning 작업 영역 만들기 참조하세요.
작업 영역에 등록된 기계 학습 모델. 등록된 모델이 없는 경우 모델을 배포하는 방법 및 위치를 참조하세요.
Azure Machine Learning 서비스에 대한 Azure CLI 확장(v1), Azure Machine Learning Python SDK, 또는 Azure Machine Learning Visual Studio Code 확장.
이 문서의 Python 코드 조각은 다음 변수가 설정된다고 가정합니다.
-
ws- 작업 영역으로 설정. -
model- 등록된 모델로 설정. -
inference_config- 모델에 대한 유추 구성으로 설정.
이러한 변수를 설정하는 방법에 대한 자세한 내용은 모델을 배포하는 방법 및 위치를 참조하세요.
-
이 문서의 CLI 코드 조각에서는 사용자가 파일을 만들었다고 가정합니다
inferenceconfig.json. 이 파일을 만드는 방법에 대한 자세한 내용은 모델을 배포하는 방법 및 위치를 참조하세요.
제한 사항
참고
- 가상 네트워크에 Azure Container Instances 배포하는 것은 지원되지 않습니다. 대신 네트워크 격리를 위해 관리되는 온라인 엔드포인트를 사용하는 것이 좋습니다.
- 효과적인 지원을 보장하려면 ACI 컨테이너에 필요한 로그를 제공해야 합니다. 이러한 로그가 없으면 기술 지원을 보장할 수 없습니다. 배포 구성에서 지정하여
enable_app_insights=True로그 분석 도구를 사용하여 ACI 컨테이너 로그를 효율적으로 관리하고 분석합니다.
ACI에 배포
Azure Container Instances 모델을 배포하려면 코어 수 및 메모리 수와 같이 필요한 컴퓨팅 리소스를 설명하는 배포 구성 만듭니다. 모델 및 웹 서비스를 호스트하는 데 필요한 환경을 설명하는 유추 구성도 필요합니다. 유추 구성을 만드는 방법에 대한 자세한 내용은 모델을 배포하는 방법 및 위치를 참조하세요.
참고
- ACI는 크기가 1GB 미만인 작은 모델에만 적합합니다.
- 단일 노드 AKS를 사용하여 더 큰 모델을 개발 테스트합니다.
- 배포당 최대 1,000개의 모델을 배포할 수 있습니다(컨테이너당).
SDK 사용
적용 대상:
Azure Machine Learning SDK v1 for Python
from azureml.core.webservice import AciWebservice, Webservice
from azureml.core.model import Model
deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1, memory_gb = 1)
service = Model.deploy(ws, "aciservice", [model], inference_config, deployment_config)
service.wait_for_deployment(show_output = True)
print(service.state)
이 예제에서 사용되는 클래스, 메서드 및 매개 변수에 대한 자세한 내용은 다음 참조 문서를 참조하세요.
Azure CLI 사용
적용 대상:
Azure CLI ml extension v1
CLI를 사용하여 배포하려면 다음 명령을 실행합니다.
mymodel:1은 등록된 모델의 이름과 버전으로 바꿉니다.
myservice는 이 서비스를 제공할 이름으로 바꿉니다.
az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json
파일의 deploymentconfig.json 항목은 AciWebservice.deploy_configuration 매개 변수에 매핑됩니다. 다음 표에서는 JSON 파일의 엔터티와 메서드에 대한 매개 변수 간의 매핑에 대해 설명합니다.
| JSON 엔터티 | 메서드 매개 변수 | 설명 |
|---|---|---|
computeType |
해당 없음 | 컴퓨팅 대상. ACI의 경우 값은 ACI여야 합니다. |
containerResourceRequirements |
해당 없음 | CPU 및 메모리 엔터티에 대한 컨테이너입니다. |
cpu |
cpu_cores |
할당할 CPU 코어 수입니다. 기본값은 0.1입니다 |
memoryInGB |
memory_gb |
이 웹 서비스에 할당할 메모리 양(GB)입니다. 기본값은 0.5입니다 |
location |
location |
이 웹 서비스를 배포할 Azure 지역입니다. 이 값을 지정하지 않으면 작업 영역 위치가 사용됩니다. 사용 가능한 지역에 대한 자세한 내용은 ACI 지역을 참조하세요. |
authEnabled |
auth_enabled |
이 웹 서비스에 대해 인증을 사용하도록 설정할지 여부입니다. 기본값은 False입니다. |
sslEnabled |
ssl_enabled |
이 웹 서비스에 TLS를 사용하도록 설정할지 여부입니다. 기본값은 False입니다. |
appInsightsEnabled |
enable_app_insights |
이 웹 서비스에 AppInsights를 사용하도록 설정할지 여부입니다. 기본값은 False입니다. |
sslCertificate |
ssl_cert_pem_file |
TLS가 사용하도록 설정된 경우 필요한 인증서 파일 |
sslKey |
ssl_key_pem_file |
TLS가 사용하도록 설정된 경우 필요한 키 파일 |
cname |
ssl_cname |
TLS가 사용하도록 설정된 경우에 대한 CNAME |
dnsNameLabel |
dns_name_label |
점수 매기기 엔드포인트의 DNS 이름 레이블입니다. 이 값을 지정하지 않으면 점수 매기기 엔드포인트에 대해 고유한 DNS 이름 레이블이 생성됩니다. |
다음 JSON은 CLI에서 사용할 수 있는 배포 구성의 예제입니다.
{
"computeType": "aci",
"containerResourceRequirements":
{
"cpu": 0.5,
"memoryInGB": 1.0
},
"authEnabled": true,
"sslEnabled": false,
"appInsightsEnabled": false
}
자세한 내용은 az ml model deploy 참조를 확인하세요.
VS Code 사용
VS Code에서 리소스를 관리하는 방법을 참조하세요.
중요합니다
테스트를 위해 미리 ACI 컨테이너를 만들 필요가 없습니다. 솔루션은 필요에 따라 ACI 컨테이너를 만듭니다.
중요합니다
솔루션은 생성하는 모든 기본 ACI 리소스에 해시된 작업 영역 ID를 추가합니다. 동일한 작업 영역의 모든 ACI 이름에는 동일한 접미사가 있습니다. Azure Machine Learning 서비스 이름은 고객이 제공한 service_name 동일하게 유지됩니다. 사용자에게 표시되는 Azure Machine Learning SDK API는 변경할 필요가 없습니다. 솔루션은 만드는 기본 리소스의 이름을 보장하지 않습니다.