경고
Microsoft Foundry 및 Azure Machine Learning 프롬프트 흐름은 2027년 4월 20일에 사용 중지됩니다. 프롬프트 흐름은 더 이상 새 개발에 권장되지 않습니다. 2027년 4월 20일 이전에 기존 프롬프트 흐름 애플리케이션 및 배포를 Microsoft Agent Framework로 마이그레이션합니다.
프롬프트 흐름 컨테이너 이미지는 더 이상 보안 및 패키지 업데이트를 포함한 업데이트를 받지 않습니다. 프롬프트 흐름 런타임 이미지(예 promptflow-runtime: , promptflow-runtime-stable및 promptflow-python)에 적용됩니다.
2027년 4월 20일 이후에는 Microsoft Foundry 및 Azure Machine Learning 웹 제작 환경, VS Code 확장 및 관련 프롬프트 흐름 컨테이너 이미지를 포함한 프롬프트 흐름이 더 이상 지원되거나 사용할 수 없습니다.
애플리케이션이 프롬프트 흐름 배포 또는 런타임 이미지에 종속된 경우 해당 워크로드를 사용 중지 날짜 전에 Microsoft Agent Framework 같은 지원되는 대안으로 이동할 계획입니다. 마이그레이션 지침은 프롬프트 흐름 마이그레이션 가이드 및 마이그레이션 코드 샘플을 참조하세요.
이 문서에서는 Azure Machine Learning v2 CLI를 사용하여 실시간 추론에 사용할 수 있도록 관리형 온라인 엔드포인트 또는 Kubernetes 온라인 엔드포인트에 흐름을 배포하는 방법을 알아봅니다.
시작하기 전에 흐름을 제대로 테스트하고 프로덕션에 배포할 준비가 되었는지 확인해야 합니다. 흐름 테스트에 대한 자세한 내용은 흐름 테스트를 참조하세요. 흐름을 테스트한 후 관리형 온라인 엔드포인트 및 배포를 만드는 방법과 실시간 추론을 위해 엔드포인트를 사용하는 방법을 알아봅니다.
- 이 문서에서는 CLI 환경을 사용하는 방법을 설명합니다.
- Python SDK는 이 문서에서 다루지 않습니다. 대신 GitHub 샘플 Notebook을 참조하세요. Python SDK를 사용하려면 Azure Machine Learning Python SDK v2가 있어야 합니다. 자세한 내용은
Azure Machine Learning 참조하세요.
중요
이 문서에서 표시된 항목(미리 보기)은 현재 공개 미리 보기로 제공됩니다. 미리 보기 버전은 서비스 수준 계약 없이 제공되며 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure 미리 보기에 대한 사용 약관 참조하세요.
필수 구성 요소
- Azure CLI 및 Azure CLI에 대한 Azure Machine Learning 확장입니다. 자세한 내용은 CLI(v2) 설치, 설정 및 사용을 참조하세요.
- Azure Machine Learning 작업 영역입니다. 없는 경우 빠른 시작: 작업 영역 리소스 만들기 문서의 단계를 사용하여 만듭니다.
- Azure RBAC(Azure 역할 기반 액세스 제어)는 Azure Machine Learning 작업에 대한 액세스 권한을 부여하는 데 사용됩니다. Azure Machine Learning 작업 영역의 단계들을 수행하려면, 사용자 계정에 해당 작업 영역의 소유자 또는 기여자 역할이 할당되어 있어야 합니다. 또는, "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/" 권한을 허용하는 사용자 지정 역할이 있어야 합니다. studio를 사용하여 온라인 엔드포인트 및 배포를 만들고 관리하는 경우, 리소스 그룹 소유자로부터 "Microsoft.Resources/deployments/write" 추가 권한이 필요합니다. 자세한 내용은 Azure Machine Learning 작업 영역에 대한 액세스 관리 참조하세요.
참고
관리형 온라인 엔드포인트는 관리형 가상 네트워크만 지원합니다. 작업 영역이 사용자 지정 가상 네트워크에 있는 경우 Kubernetes 온라인 엔드포인트에 배포하거나 Docker와 같은 다른 플랫폼에 배포할 수 있습니다.
배포를 위한 가상 머신 할당량 할당
관리되는 온라인 엔드포인트의 경우 Azure Machine Learning 업그레이드를 수행하기 위해 컴퓨팅 리소스의 20% 예약합니다. 따라서 배포에서 지정된 수의 인스턴스를 요청하는 경우 오류가 발생하지 않도록 사용할 수 있는 할당량 ceil(1.2 * number of instances requested for deployment) * number of cores for the VM SKU 이 있어야 합니다. 예를 들어 배포에서 10개의 Standard_DS3_v2 VM 인스턴스(4개 코어와 함께 제공)를 요청하는 경우 48개 코어(12개 인스턴스 4개 코어)에 대한 할당량을 사용할 수 있어야 합니다. 사용량 및 요청 할당량 증가를 보려면 Azure Portal에서 사용량 및 할당량 보기 참조하세요.
배포를 위한 흐름 준비
각 흐름에는 흐름의 코드, 프롬프트, 정의 및 기타 아티팩트가 포함된 폴더가 있습니다. UI를 사용하여 흐름을 개발하는 경우 흐름 세부 정보 페이지에서 흐름 폴더를 다운로드할 수 있습니다. CLI 또는 SDK를 사용하여 흐름을 개발하는 경우 흐름 폴더가 이미 있습니다.
이 문서에서는 Azure Machine Learning 관리되는 온라인 엔드포인트에 배포하는 예로 샘플 흐름 "기본 채팅"을 사용합니다.
중요
흐름에서 additional_includes를 사용하는 경우 먼저 pf flow build --source <path-to-flow> --output <output-path> --format docker를 사용하여 확인된 흐름 폴더 버전을 가져오세요.
기본 작업 영역 설정
다음 명령을 사용하여 CLI에 대한 기본 작업 영역 및 리소스 그룹을 설정합니다.
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
흐름을 모델로 등록(선택 사항)
온라인 배포에서 등록된 모델을 참조하거나 모델 경로(모델 파일을 업로드할 위치)를 인라인으로 지정할 수 있습니다. 모델을 등록하고 배포 정의에 모델 이름과 버전을 지정합니다. 양식을 model:<model_name>:<version>사용합니다.
다음 예제에서는 채팅 흐름에 대한 모델 정의를 보여 줍니다.
참고
흐름이 채팅 흐름이 아닌 경우 다음 properties을 추가할 필요가 없습니다.
$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json
name: basic-chat-model
path: ../../../../examples/flows/chat/basic-chat
description: register basic chat flow folder as a custom model
properties:
# In AuzreML studio UI, endpoint detail UI Test tab needs this property to know it's from prompt flow
azureml.promptflow.source_flow_id: basic-chat
# Following are properties only for chat flow
# endpoint detail UI Test tab needs this property to know it's a chat flow
azureml.promptflow.mode: chat
# endpoint detail UI Test tab needs this property to know which is the input column for chat flow
azureml.promptflow.chat_input: question
# endpoint detail UI Test tab needs this property to know which is the output column for chat flow
azureml.promptflow.chat_output: answer
모델을 작업 영역에 등록하는 데 사용합니다 az ml model create --file model.yaml .
엔드포인트 정의
엔드포인트를 정의하려면 다음 값을 지정합니다.
- 엔드포인트 이름: 엔드포인트의 이름입니다. Azure 지역에서 고유해야 합니다. 명명 규칙에 대한 자세한 내용은 엔드포인트 제한을 참조하세요.
- 인증 모드: 엔드포인트에 대한 인증 방법입니다. 키 기반 인증과 Azure Machine Learning 토큰 기반 인증 중에서 선택합니다. 키는 만료되지 않지만 토큰은 만료됩니다. 인증에 대한 자세한 내용은 온라인 엔드포인트에 대한 인증을 참조하세요. 필요에 따라 엔드포인트에 설명 및 태그를 추가합니다.
- 필요에 따라 엔드포인트에 설명 및 태그를 추가합니다.
- 작업 영역에 연결하는 Kubernetes 클러스터(AKS 또는 Arc 지원 클러스터)에 배포하려는 경우 흐름을 Kubernetes 온라인 엔드포인트로 배포할 수 있습니다.
다음 예제에서는 기본적으로 시스템 할당 ID를 사용하는 엔드포인트 정의를 보여줍니다.
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: basic-chat-endpoint
auth_mode: key
properties:
# this property only works for system-assigned identity.
# if the deploy user has access to connection secrets,
# the endpoint system-assigned identity will be auto-assigned connection secrets reader role as well
enforce_access_to_default_secret_stores: enabled
| 키 | 설명 |
|---|---|
$schema |
(선택 사항) YAML 스키마입니다. YAML 파일에서 사용 가능한 모든 옵션을 보려면 브라우저의 이전 코드 조각에서 스키마를 볼 수 있습니다. |
name |
엔드포인트의 이름입니다. |
auth_mode |
키 기반 인증에 사용합니다 key . Azure Machine Learning 토큰 기반 인증에 aml_token 사용합니다. 가장 최근 토큰을 가져오려면 명령을 사용합니다 az ml online-endpoint get-credentials . |
property: enforce_access_to_default_secret_stores (미리 보기) |
- 기본적으로 엔드포인트는 시스템 부호 있는 ID를 사용합니다. 이 속성은 시스템 할당 ID에 대해서만 작동합니다. - 이 속성을 사용하면 연결 비밀 판독기 권한이 부여되어, 엔드포인트의 시스템 할당 ID가 Azure Machine Learning 작업 영역의 연결 비밀 읽기 권한자 역할에 자동으로 할당됩니다. 이를 통해 추론 수행 시 엔드포인트가 연결에 올바르게 액세스할 수 있습니다. - 기본적으로 이 속성은 'disabled'입니다. |
Kubernetes 온라인 엔드포인트를 만드는 경우 다음 특성을 지정해야 합니다.
| 키 | 설명 |
|---|---|
compute |
엔드포인트를 배포할 Kubernetes 컴퓨팅 대상. |
엔드포인트에 대한 자세한 구성은 관리형 온라인 엔드포인트 스키마를 참조하세요.
중요
흐름이 Microsoft Entra ID 기반 인증 연결을 사용하는 경우 시스템 할당 ID 또는 사용자 할당 ID를 사용하든 관계없이 해당 리소스에 대한 API 호출을 수행할 수 있도록 해당 리소스의 관리 ID에 적절한 역할을 항상 부여해야 합니다. 예를 들어 Azure OpenAI 연결에서 Microsoft Entra ID 기반 인증을 사용하는 경우 해당 Azure OpenAI 리소스에 대해 엔드포인트 관리 ID에 Cognitive Services OpenAI 사용자 또는 Cognitive Services OpenAI 기여자 역할을 부여해야 합니다.
사용자 할당 ID 사용
기본적으로 온라인 엔드포인트를 만들면 시스템에서 자동으로 시스템 할당 관리 ID를 생성합니다. 엔드포인트에 대한 기존 사용자 할당 관리 ID를 지정할 수도 있습니다.
사용자 할당 ID를 사용하려면 파일에서 endpoint.yaml 다음 특성을 지정합니다.
identity:
type: user_assigned
user_assigned_identities:
- resource_id: user_identity_ARM_id_place_holder
또한 다음 예와 같이 deployment.yaml 파일에서 environment_variables 아래에 있는 사용자 할당 ID의 Client ID를 지정합니다. Azure 포털에서 관리 ID의 Overview에서 Client ID을 찾을 수 있습니다.
environment_variables:
AZURE_CLIENT_ID: <client_id_of_your_user_assigned_identity>
중요
유추를 수행하기 위해 Azure 리소스에 액세스할 수 있도록 엔드포인트를 만들기 전에 사용자 할당 ID에 다음 권한을 부여해야 합니다. 자세한 내용은 엔드포인트 ID에 권한을 부여하는 방법을 참조하세요.
| 범위 | 역할 | 필요한 이유 |
|---|---|---|
| Azure Machine Learning 작업 영역 | Azure Machine Learning 작업 영역 연결 비밀 읽기 역할또는 "Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action" 권한이 부여된 사용자 지정 역할 | 작업 영역 연결 가져오기 |
| 작업 영역 컨테이너 레지스트리 | ACR 끌어오기 | 컨테이너 이미지 가져오기 |
| 작업 영역 기본 스토리지 | Storage Blob 데이터 판독기 | 스토리지에서 모델 로드 |
| (선택 사항) Azure Machine Learning 작업 영역 | 작업 영역 메트릭 작성기 | 엔드포인트를 배포한 후 CPU/GPU/디스크/메모리 사용률과 같은 엔드포인트 관련 메트릭을 모니터링하려면 ID에 이 권한을 부여해야 합니다. |
배포를 정의하십시오
배포는 실제 추론을 수행하는 모델을 호스팅하는 데 필요한 리소스 집합입니다.
다음 예제에서는 배포 정의를 보여줍니다. 이 섹션은 model 등록된 흐름 모델을 참조합니다. 흐름 모델 경로를 줄에 지정할 수도 있습니다.
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: basic-chat-endpoint
model: azureml:basic-chat-model:1
# You can also specify model files path inline
# path: examples/flows/chat/basic-chat
environment:
image: mcr.microsoft.com/azureml/promptflow/promptflow-runtime:latest
# inference config is used to build a serving container for online deployments
inference_config:
liveness_route:
path: /health
port: 8080
readiness_route:
path: /health
port: 8080
scoring_route:
path: /score
port: 8080
instance_type: Standard_E16s_v3
instance_count: 1
environment_variables:
# for pulling connections from workspace
PRT_CONFIG_OVERRIDE: deployment.subscription_id=<subscription_id>,deployment.resource_group=<resource_group>,deployment.workspace_name=<workspace_name>,deployment.endpoint_name=<endpoint_name>,deployment.deployment_name=<deployment_name>
# (Optional) When there are multiple fields in the response, using this env variable will filter the fields to expose in the response.
# For example, if there are 2 flow outputs: "answer", "context", and I only want to have "answer" in the endpoint response, I can set this env variable to '["answer"]'.
# If you don't set this environment, by default all flow outputs will be included in the endpoint response.
# PROMPTFLOW_RESPONSE_INCLUDED_FIELDS: '["category", "evidence"]'
| 특성 | 설명 |
|---|---|
| 이름 | 배포의 이름입니다. |
| 엔드포인트 이름 | 배포를 만들 엔드포인트의 이름입니다. |
| 모델 | 배포에 사용할 모델입니다. 이 값은 작업 영역의 기존 버전 모델에 대한 참조 또는 인라인 모델 사양일 수 있습니다. |
| 환경 | 모델 및 코드를 호스트할 환경입니다. 여기에는 다음이 포함됩니다. - image- inference_config: 온라인 배포를 위한 서비스 컨테이너(예liveness route: 및 readiness_routescoring_route )를 빌드하는 데 사용됩니다. |
| 인스턴스 유형 | 배포에 사용할 VM 크기입니다. 지원되는 크기 목록은 관리형 온라인 엔드포인트 SKU 목록을 참조하세요. |
| 인스턴스 수 | 배포에 사용할 인스턴스 수입니다. 예상한 워크로드의 값을 기반으로 합니다. 고가용성을 위해 값을 3 이상으로 설정합니다. 이 서비스는 업그레이드 수행을 위해 20%를 추가로 확보합니다. 자세한 내용은 온라인 엔드포인트에 대한 제한을 참조하세요. |
| 환경 변수 | 흐름에서 배포된 엔드포인트에 대해 다음 환경 변수를 설정합니다. - (필수) PRT_CONFIG_OVERRIDE: 작업 영역에서 연결을 끌어온 경우 - (선택 사항) PROMPTFLOW_RESPONSE_INCLUDED_FIELDS:: 응답에 여러 필드가 있는 경우 이 env 변수를 사용하면 응답에 노출할 필드를 필터링합니다. 예를 들어 흐름 출력이 "answer", "context"인 경우 엔드포인트 응답에 "answer"만 표시하려면 이 env 변수를 '["answer"]'로 설정할 수 있습니다. |
중요
흐름 폴더에 requirements.txt 흐름을 실행하는 데 필요한 종속성이 포함된 파일이 있는 경우 사용자 지정 환경 단계와 함께 배포 에 따라 종속성을 포함한 사용자 지정 환경을 빌드합니다.
Kubernetes 온라인 배포를 만드는 경우 다음 특성을 지정합니다.
| 특성 | 설명 |
|---|---|
| 유형 | 배포의 유형입니다. 값을 .로 kubernetes설정합니다. |
| 인스턴스 유형 | 배포에 사용할 Kubernetes 클러스터에서 만든 인스턴스 유형입니다. 배포의 요청 및 제한 컴퓨팅 리소스를 나타냅니다. 자세한 내용은 인스턴스 유형 만들기 및 관리를 참조하세요. |
Azure 온라인 엔드포인트 배포
클라우드에서 엔드포인트를 만들려면 다음 코드를 실행합니다.
az ml online-endpoint create --file endpoint.yml
엔드포인트 아래에 명명된 blue 배포를 만들려면 다음 코드를 실행합니다.
az ml online-deployment create --file blue-deployment.yml --all-traffic
참고
이 배포에는 15분 이상 걸릴 수 있습니다.
팁
CLI 콘솔을 차단하지 않으려면 명령에 플래그 --no-wait 를 추가합니다. 그러나 이 플래그는 배포 상태의 대화형 표시를 중지합니다.
중요
이전 az ml online-deployment create 명령의 --all-traffic 플래그는 엔드포인트 트래픽의 100%를 새로 생성된 blue 배포에 할당합니다. 이 할당은 개발 및 테스트 목적에 유용하지만 프로덕션의 경우 명시적 명령을 통해 새 배포에 대한 트래픽을 여는 것이 좋습니다. 예를 들면 다음과 같습니다 az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100".
엔드포인트 및 배포 상태 확인
엔드포인트의 상태를 확인하려면 다음 코드를 실행합니다.
az ml online-endpoint show -n basic-chat-endpoint
배포 상태를 확인하려면 다음 코드를 실행합니다.
az ml online-deployment get-logs --name blue --endpoint basic-chat-endpoint
모델을 사용하여 엔드포인트를 호출하여 데이터 점수 매기기
"sample-request.json 파일을 만듭니다."
{
"question": "What is Azure Machine Learning?",
"chat_history": []
}
az ml online-endpoint invoke --name basic-chat-endpoint --request-file sample-request.json
다음과 같은 curlHTTP 클라이언트를 사용하여 엔드포인트를 호출할 수도 있습니다.
ENDPOINT_KEY=<your-endpoint-key>
ENDPOINT_URI=<your-endpoint-uri>
curl --request POST "$ENDPOINT_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data '{"question": "What is Azure Machine Learning?", "chat_history": []}'
Azure Machine Learning 작업 영역의 Endpoints>Consume>Basic consumption info에서 엔드포인트 키와 엔드포인트 URI를 가져옵니다.
고급 구성
흐름 개발과는 다른 연결을 사용하여 배포
배포할 때 흐름의 연결을 재정의하는 것을 고려해 볼 수 있습니다.
예를 들어 flow.dag.yaml 파일이 명명된 my_connection연결을 사용하는 경우 다음과 같이 배포 yaml의 환경 변수를 추가하여 재정의할 수 있습니다.
옵션 1: 연결 이름 재정의
environment_variables:
my_connection: <override_connection_name>
연결의 특정 필드를 재정의하려면 명명 패턴 <connection_name>_<field_name>으로 환경 변수를 추가하여 재정의할 수 있습니다. 예를 들어 흐름에서 구성 키를 사용하는 my_connection라는 이름의 chat_deployment_name 연결을 사용하는 경우 서버 백엔드는 기본적으로 환경 변수 'MY_CONNECTION_CHAT_DEPLOYMENT_NAME'에서 chat_deployment_name를 검색하려고 시도합니다. 환경 변수가 설정되지 않은 경우 흐름 정의의 원래 값을 사용합니다.
옵션 2: 자산을 참조하여 덮어쓰기
environment_variables:
my_connection: ${{azureml://connections/<override_connection_name>}}
참고
동일한 작업 영역 내의 연결만 참조할 수 있습니다.
사용자 지정 환경을 사용하여 배포
이 섹션에서는 Docker 빌드 컨텍스트를 사용하여 Docker 및 Azure Machine Learning 환경에 대한 지식이 있다고 가정하여 배포 환경을 지정하는 방법을 보여 줍니다.
로컬 환경에서 다음 파일이 포함된 폴더
image_build_with_reqirements를 만듭니다.|--image_build_with_reqirements | |--requirements.txt | |--Dockerfile흐름 폴더에서 상속된 파일은
requirements.txt흐름의 종속성을 추적합니다.Dockerfile다음 예제와 유사한 콘텐츠가 있는 경우:FROM mcr.microsoft.com/azureml/promptflow/promptflow-runtime:latest COPY ./requirements.txt . RUN pip install -r requirements.txt
배포 정의 YAML 파일의 환경 섹션을 다음 콘텐츠로 바꿉다.
environment: build: path: image_build_with_reqirements dockerfile_path: Dockerfile # deploy prompt flow is BYOC, so we need to specify the inference config inference_config: liveness_route: path: /health port: 8080 readiness_route: path: /health port: 8080 scoring_route: path: /score port: 8080
FastAPI 서비스 엔진 사용(미리 보기)
기본적으로 프롬프트 흐름 서비스에서는 FLASK 서비스 엔진을 사용합니다. 프롬프트 흐름 SDK 버전 1.10.0부터 FastAPI 기반 서비스 엔진이 지원됩니다. 환경 변수fastapi를 PROMPTFLOW_SERVING_ENGINE 지정하여 서비스 엔진을 사용할 수 있습니다.
environment_variables:
PROMPTFLOW_SERVING_ENGINE=fastapi
배포에 대한 동시성 구성
온라인 배포에 흐름을 배포하는 경우 동시성을 위해 두 가지 환경 변수를 구성합니다PROMPTFLOW_WORKER_NUM. PROMPTFLOW_WORKER_THREADS 또한 매개 변수를 max_concurrent_requests_per_instance 설정해야 합니다.
다음 예제에서는 파일에서 deployment.yaml 이러한 설정을 구성하는 방법을 보여줍니다.
request_settings:
max_concurrent_requests_per_instance: 10
environment_variables:
PROMPTFLOW_WORKER_NUM: 4
PROMPTFLOW_WORKER_THREADS: 1
PROMPTFLOW_WORKER_NUM: 이 매개 변수는 한 컨테이너에서 시작하는 작업자(프로세스)의 수를 설정합니다. 기본값은 CPU 코어 수와 같으며 최대값은 CPU 코어 수의 두 배입니다.
PROMPTFLOW_WORKER_THREADS: 이 매개 변수는 한 작업자에서 시작하는 스레드 수를 설정합니다. 기본값은 1입니다.
참고
PROMPTFLOW_WORKER_THREADS를 1보다 큰 값으로 설정하는 경우 흐름 코드가 스레드 안전한지 확인하세요.max_concurrent_requests_per_instance: 배포에 허용되는 인스턴스당 최대 동시 요청 수입니다. 기본값은 10입니다.
제안된 값
max_concurrent_requests_per_instance은 요청 시간에 따라 달라집니다.- 요청 시간이 200ms보다 큰 경우
max_concurrent_requests_per_instance을PROMPTFLOW_WORKER_NUM * PROMPTFLOW_WORKER_THREADS로 설정합니다. - 요청 시간이 200 ms 이하인 경우,
max_concurrent_requests_per_instance를(1.5-2) * PROMPTFLOW_WORKER_NUM * PROMPTFLOW_WORKER_THREADS로 설정합니다. 이 설정은 일부 요청이 서버 쪽에서 큐에 대기하도록 허용하여 총 처리량을 향상시킬 수 있습니다. - 지역 간 요청을 보내는 경우 임계값을 200ms에서 1초로 변경할 수 있습니다.
- 요청 시간이 200ms보다 큰 경우
이러한 매개 변수를 조정하는 동안 다음 메트릭을 모니터링하여 최적의 성능과 안정성을 보장합니다.
- 이 배포에 대한 인스턴스 CPU 및 메모리 사용률
- 200이 아닌 응답(4xx, 5xx)
- 429 응답을 받는 경우 이 상태 코드는 일반적으로 이전 가이드에 따라 동시성 설정을 다시 조정하거나 배포 크기를 조정해야 함을 나타냅니다.
- Azure OpenAI 제한 상태
엔드포인트 모니터링
일반 메트릭 수집
온라인 배포의 일반적인 메트릭(요청 번호, 요청 대기 시간, 네트워크 바이트, CPU/GPU/디스크/메모리 사용률 등)을 볼 수 있습니다.
유추 시간 동안 추적 데이터 및 시스템 메트릭 수집
배포 yaml 파일에 속성을 app_insights_enabled: true 추가하여 작업 영역 연결된 Application Insights에 유추 시간 동안 추적 데이터를 수집하고 흐름 배포 관련 메트릭(토큰 사용량, 흐름 대기 시간 등)을 프롬프트할 수 있습니다. 자세한 내용은 프롬프트 흐름 배포의 추적 및 메트릭을 참조하세요.
프롬프트 흐름 특정 메트릭을 지정하고 작업 영역이 연결된 메트릭이 아닌 다른 Application Insights로 추적할 수 있습니다. 다음과 같이 배포 yaml 파일에서 환경 변수를 지정할 수 있습니다. Azure Portal의 개요 페이지에서 Application Insights의 연결 문자열 찾을 수 있습니다.
environment_variables:
APPLICATIONINSIGHTS_CONNECTION_STRING: <connection_string>
참고
설정 app_insights_enabled: true 만 하지만 작업 영역에 연결된 Application Insights가 없는 경우 배포는 실패하지 않고 데이터가 수집되지 않습니다.
app_insights_enabled: true와 앞의 환경 변수를 동시에 지정하면 추적 데이터와 메트릭이 작업 영역에 연결된 Application Insights로 전송됩니다. 다른 Application Insights를 지정하려면 환경 변수만 유지합니다.
일반적인 오류
엔드포인트를 사용할 때 업스트림 요청 시간 제한 문제
이 오류는 일반적으로 시간 제한으로 인해 발생합니다. 기본적으로 값은 request_timeout_ms 5,000밀리초입니다. 최대 5분( 300,000밀리초)까지 설정할 수 있습니다. 다음 예제에서는 배포 YAML 파일에서 요청 시간 제한을 지정하는 방법을 보여줍니다. 배포 스키마에 대한 자세한 내용은 관리되는 온라인 배포 스키마를 참조하세요.
request_settings:
request_timeout_ms: 300000
중요
300,000ms 시간 제한은 프롬프트 흐름에서 관리되는 온라인 배포에만 작동합니다. 비 프롬프트 흐름 관리 온라인 엔드포인트의 최대 제한 시간은 180초입니다.
이 배포가 프롬프트 흐름에서 온 것임을 나타내려면 다음과 같이 모델에 대한 속성을 추가합니다(배포 YAML의 인라인 모델 사양 또는 독립 실행형 모델 사양 YAML).
properties:
# indicate a deployment from prompt flow
azureml.promptflow.source_flow_id: <value>
다음 단계
- 관리되는 온라인 엔드포인트 스키마 및 관리되는 온라인 배포 스키마에 대해 자세히 알아봅니다.
- UI에서 엔드포인트를 테스트하고 엔드포인트를모니터링하는 방법에 대해 자세히 알아봅니다.
- 관리되는 온라인 엔드포인트 문제를 해결하는 방법에 대해 자세히 알아봅니다.
- 프롬프트 흐름 배포 문제를 해결합니다.
- 안전한 출시 전략을 사용하여 향상된 흐름 버전을 배포하려면 온라인 엔드포인트에 대한 안전한 롤아웃을 참조하세요.
- 로컬 개발 서비스, Docker 컨테이너, Azure APP 서비스 등과 같은 다른 플랫폼으로의 배포 흐름에 대해 자세히 알아봅니다