파이썬과 Azure를 이용한 머신러닝 모델 배포

머신러닝 모델을 개발하고 배포하기 위해서는 강력하고 안정적인 클라우드 플랫폼이 필요합니다. Azure는 파이썬 개발자들이 머신러닝 모델을 배포하고 관리하는데 탁월한 선택입니다. 이번 블로그 포스트에서는 Azure를 이용하여 파이썬 기반의 머신러닝 모델을 배포하는 방법에 대해 알아보겠습니다.

1. Azure Machine Learning 서비스 소개

Azure Machine Learning은 Microsoft가 제공하는 클라우드 기반의 머신러닝 서비스입니다. 이 서비스는 머신러닝 모델의 훈련, 배포 및 관리를 지원합니다. Azure Machine Learning은 다양한 머신러닝 알고리즘, 데이터 전처리 기능, 모델 관리 도구 등을 제공하여 개발자들이 빠르고 효율적으로 머신러닝 모델을 개발할 수 있습니다.

2. Azure Machine Learning 워크스페이스 설정

Azure Machine Learning 워크스페이스는 머신러닝 모델을 개발하고 배포하기 위한 작업 공간입니다. 먼저 Azure Portal에 로그인하여 Azure Machine Learning 서비스를 생성한 후 새로운 워크스페이스를 설정해야 합니다.

from azureml.core import Workspace

# Azure 구독 ID, 리소스 그룹, 워크스페이스 이름 설정
subscription_id = '<your-subscription-id>'
resource_group = '<your-resource-group>'
workspace_name = '<your-workspace-name>'

# 워크스페이스 생성 또는 로딩
workspace = Workspace.create(name=workspace_name,
                             subscription_id=subscription_id,
                             resource_group=resource_group,
                             create_resource_group=True,
                             location='eastus')

# 워크스페이스 정보 출력
print(workspace.name, workspace.resource_group, workspace.location, workspace.subscription_id, sep='\n')

3. 머신러닝 모델 훈련

Azure Machine Learning을 사용하여 머신러닝 모델을 훈련시키기 위해서는 데이터 준비, 모델 선택 및 훈련 파라미터 설정 등의 작업이 필요합니다. 이러한 작업을 위해 azureml-sdk 라이브러리를 사용할 수 있습니다. 아래 예시는 scikit-learn 라이브러리를 사용하여 간단한 분류 모델을 훈련하는 코드입니다.

from azureml.core import Experiment
from azureml.core import ScriptRunConfig
from azureml.core.runconfig import CondaDependencies

# 실험 생성
experiment = Experiment(workspace=workspace, name='my-experiment')

# 훈련 스크립트 설정
script_config = ScriptRunConfig(source_directory='.',
                               script='train.py',
                               compute_target='local')

# 필요한 패키지 설치
dependencies = CondaDependencies.create(conda_packages=['scikit-learn'])
script_config.run_config.environment.python.conda_dependencies = dependencies

# 실험 실행
run = experiment.submit(config=script_config)
run.wait_for_completion(show_output=True)

4. 머신러닝 모델 배포

훈련된 머신러닝 모델을 Azure에서 사용하기 위해서는 모델을 배포해야 합니다. Azure Machine Learning은 다양한 배포 옵션을 제공하며, 이를 통해 웹 서비스로 모델을 배포하거나, 모바일 애플리케이션에 모델을 통합할 수 있습니다.

from azureml.core.model import Model
from azureml.core.webservice import AciWebservice

# 모델 등록
model = Model.register(model_path='model.pkl',
                       model_name='my-model',
                       workspace=workspace)

# ACI(Azure Container Instances) 웹 서비스 생성
service_name = 'my-web-service'
deployment_config = AciWebservice.deploy_configuration(cpu_cores=1, memory_gb=1)
service = Model.deploy(workspace=workspace,
                       name=service_name,
                       models=[model],
                       inference_config=inference_config,
                       deployment_config=deployment_config)

# 서비스 배포
service.wait_for_deployment(show_output=True)

# 서비스 엔드포인트 확인
print(service.scoring_uri)

위의 코드는 훈련된 모델을 ACI(Azure Container Instances)로 배포하는 예시입니다. 배포가 완료되면 service.scoring_uri를 통해 서비스의 엔드포인트 URL을 얻을 수 있습니다.

결론

Azure를 이용한 파이썬 기반의 머신러닝 모델 배포는 간단하고 효율적으로 수행할 수 있습니다. Azure Machine Learning 서비스를 통해 머신러닝 모델을 쉽게 개발하고 배포하여 실제 환경에서 활용할 수 있습니다. Azure의 강력한 스케일링 기능과 관리 툴을 활용하여 머신러닝 프로젝트를 성공적으로 완료해보세요.

참고 자료

#python #Azure