Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Microsoft Foundry ve Azure Machine Learning'daki istem akışı 20 Nisan 2027'de kullanımdan kaldırılacaktır. Prompt flow artık yeni geliştirmelerde önerilmemektedir. Mevcut prompt akışı uygulamalarını ve dağıtımlarını 20 Nisan 2027'den önce Microsoft Agent Framework'e geçirin.
Prompt flow kapsayıcı imajları, güvenlik ve paket güncellemeleri dahil, artık güncelleme almıyor. Bu, promptflow-runtime, promptflow-runtime-stable ve promptflow-python dahil olmak üzere Prompt flow çalışma zamanı görüntüleri için geçerlidir.
20 Nisan 2027'den sonra, Microsoft Foundry ve Azure Machine Learning’deki web tabanlı yazma deneyimi, VS Code uzantıları ve ilgili Prompt flow kapsayıcı görüntüleri dahil olmak üzere Prompt flow artık desteklenmeyecek veya kullanılamayacaktır.
Uygulamanız istem akışı dağıtımlarına veya çalışma zamanı görüntülerine bağımlıysa, bu iş yüklerini kullanımdan kaldırma tarihinden önce Microsoft Agent Framework gibi desteklenen alternatiflere taşımayı planlayın. Geçiş yönergeleri için, Prompt flow geçiş kılavuzuna ve geçiş kod örneklerine bakın.
Bu makalede, Azure Machine Learning v2 CLI kullanarak akışınızı gerçek zamanlı çıkarımda kullanmak üzere yönetilen bir çevrimiçi uç noktaya veya Kubernetes çevrimiçi uç noktasına dağıtmayı öğreneceksiniz.
Başlamadan önce akışınızı düzgün bir şekilde test ettiğinizden ve üretime dağıtılmaya hazır olduğundan emin olduğunuzdan emin olun. Akışınızı test etme hakkında daha fazla bilgi edinmek için bkz. Akışınızı test etme. Akışınızı test ettikten sonra yönetilen çevrimiçi uç nokta ve dağıtım oluşturmayı ve gerçek zamanlı çıkarım için uç noktayı kullanmayı öğrenirsiniz.
- Bu makalede CLI deneyiminin nasıl kullanılacağı açıklanır.
- Python SDK'sı bu makalede ele alınmıyor. Bunun yerine örnek GitHub not defterine bakın. Python SDK'sını kullanmak için Azure Machine Learning için Python SDK v2'niz olmalıdır. Daha fazla bilgi edinmek için bkz. Azure Machine Learning için Python SDK v2'yi yükleme.
Önemli
Bu makalede işaretlenen (önizleme) öğeler şu anda genel önizleme aşamasındadır. Önizleme sürümü bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmeyebilir veya kısıtlı özelliklere sahip olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Uygun Kullanım Koşulları.
Önkoşullar
- Azure CLI ve Azure CLI için Azure Machine Learning uzantısı. Daha fazla bilgi için bkz. CLI'yi (v2) yükleme, ayarlama ve kullanma.
- Azure Machine Learning çalışma alanı. Yoksa, bir tane oluşturmak için
"Hızlı Başlangıç" makalesindeki "Çalışma alanı kaynakları oluşturma" adımlarını kullanın. - Azure rol tabanlı erişim denetimleri (Azure RBAC), Azure Machine Learning'daki işlemlere erişim vermek için kullanılır. Bu makaledeki adımları gerçekleştirmek için kullanıcı hesabınıza, Azure Machine Learning çalışma alanına sahip veya katkıda bulunan rol ya da "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/" izin veren özel bir rol atanmış olmalıdır. Çevrimiçi uç noktalar ve dağıtımlar oluşturmak ve yönetmek için Studio’yu kullanıyorsanız, kaynak grubunun sahibinden ek olarak "Microsoft.Resources/deployments/write" iznine ihtiyacınız vardır. Daha fazla bilgi için bkz. Azure Machine Learning çalışma alanına erişimi yönetme.
Not
Yönetilen çevrimiçi uç nokta yalnızca yönetilen sanal ağı destekler. Çalışma alanınız özel sanal ağdaysa Kubernetes çevrimiçi uç noktasına veya Docker gibi diğer platformlara dağıtabilirsiniz.
Dağıtım süreçleri için sanal makine kotası tahsisi
Yönetilen çevrimiçi uç noktalar için Azure Machine Learning, yükseltmeleri gerçekleştirmek için işlem kaynaklarınızdan 20% ayırır. Bu nedenle, bir dağıtımda belirli sayıda örnek isterseniz, hata almamak için ceil(1.2 * number of instances requested for deployment) * number of cores for the VM SKU kullanılabilir bir kotanız olmalıdır. Örneğin, bir dağıtımda bir Standard_DS3_v2 VM'nin 10 örneğini (dört çekirdekle birlikte gelir) isterseniz, 48 çekirdek (12 örnek dört çekirdek) için kotanız olmalıdır. Kullanım ve istek kotası artışlarınızı görüntülemek için bkz. Azure portalında kullanımınızı ve kotalarınızı görüntüleme.
Akışı dağıtıma hazırla
Her akışın kodlar, istemler, tanım ve akışın diğer yapıtlarını içeren bir klasörü vardır. Akışınızı kullanıcı arabirimini kullanarak geliştirirseniz akış klasörünü akış ayrıntıları sayfasından indirebilirsiniz. Akışınızı CLI veya SDK kullanarak geliştirirseniz akış klasörünüz zaten vardır.
Bu makalede yönetilen Azure Machine Learning çevrimiçi uç noktaya dağıtımı örneklemek için "basic-chat" adlı örnek akış kullanılır.
Önemli
Akışınızda additional_includes kullanıyorsanız, önce akış klasörünün çözümlenmiş sürümünü almak için pf flow build --source <path-to-flow> --output <output-path> --format docker kullanın.
Varsayılan çalışma alanını ayarlama
CLI için varsayılan çalışma alanını ve kaynak grubunu ayarlamak için aşağıdaki komutları kullanın.
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
Akışı model olarak kaydetme (isteğe bağlı)
Çevrimiçi dağıtımda, kayıtlı bir modele başvurabilir veya model yolunu (model dosyalarının karşıya yüklendiği yer) satır içi olarak belirtebilirsiniz. Modeli kaydedin ve dağıtım tanımında model adını ve sürümünü belirtin. formunu model:<model_name>:<version>kullanın.
Aşağıdaki örnekte sohbet akışı için model tanımı gösterilmektedir.
Not
Akışınız bir sohbet akışı değilse, bunları propertieseklemeniz gerekmez.
$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
Modeli çalışma alanınıza kaydetmek için kullanın az ml model create --file model.yaml .
Uç noktayı tanımlama
Uç nokta tanımlamak için aşağıdaki değerleri belirtin:
- Uç nokta adı: Uç noktanın adı. Azure bölgesinde benzersiz olmalıdır. Adlandırma kuralları hakkında daha fazla bilgi için bkz. uç nokta sınırları.
- Kimlik doğrulama modu: Uç nokta için kimlik doğrulama yöntemi. Anahtar tabanlı kimlik doğrulaması ile belirteç tabanlı kimlik doğrulaması Azure Machine Learning arasında seçim yapın. Anahtarın süresi dolmaz, ancak belirtecin süresi dolmaz. Kimlik doğrulaması hakkında daha fazla bilgi için bkz. Çevrimiçi uç noktada kimlik doğrulaması yapma. İsteğe bağlı olarak uç noktanıza bir açıklama ve etiketler ekleyin.
- İsteğe bağlı olarak uç noktanıza bir açıklama ve etiketler ekleyin.
- Çalışma alanınıza eklediğiniz bir Kubernetes kümesine (AKS veya Arc özellikli küme) dağıtmak istiyorsanız, akışı Bir Kubernetes çevrimiçi uç noktası olarak dağıtabilirsiniz.
Aşağıdaki örnekte, varsayılan olarak sistem tarafından atanan kimliği kullanan bir uç nokta tanımı gösterilmektedir.
$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
| Anahtar | Açıklama |
|---|---|
$schema |
(İsteğe bağlı) YAML şeması. YAML dosyasındaki tüm kullanılabilir seçenekleri görmek için, şemayı bir tarayıcıdaki önceki kod parçacığında görüntüleyebilirsiniz. |
name |
Uç noktanın adı. |
auth_mode |
Anahtar tabanlı kimlik doğrulaması için kullanın key . Azure Machine Learning belirteç tabanlı kimlik doğrulaması için aml_token kullanın. En son belirteci almak için az ml online-endpoint get-credentials komutunu kullanın. |
property: enforce_access_to_default_secret_stores (önizleme) |
- Varsayılan olarak uç nokta sistem tarafından atanan kimliği kullanır. Bu özellik yalnızca sistem tarafından atanan kimlik için çalışır. - Bu özellik, bağlantı sırlarını okuma iznine sahipseniz, uç nokta sistem tarafından atanan kimliğe, Azure Machine Learning Çalışma Alanı'nın Bağlantı Gizli Dizileri Okuyucusu rolü otomatik olarak atanır. Bu sayede, uç nokta çıkarım yaparken bağlantılara doğru şekilde erişebilir. - Varsayılan olarak bu özellik 'devre dışı' şeklindedir. |
Bir Kubernetes çevrimiçi uç noktası oluşturursanız aşağıdaki öznitelikleri belirtmeniz gerekir:
| Anahtar | Açıklama |
|---|---|
compute |
Uç noktanın dağıtılacağı Kubernetes işlem hedefi. |
Uç noktanın daha fazla yapılandırması için bkz. yönetilen çevrimiçi uç nokta şeması.
Önemli
Akışınız Microsoft Entra ID tabanlı kimlik doğrulama bağlantıları kullanıyorsa, sistem tarafından atanan kimliği veya kullanıcı tarafından atanan kimliği kullanmanız fark etmez, yönetilen kimliğe her zaman ilgili kaynakların uygun rollerini vermeniz gerekir; böylece bu kaynağa API çağrıları yapabilir. Örneğin, Azure OpenAI bağlantınız Microsoft Entra ID tabanlı kimlik doğrulaması kullanıyorsa, ilgili Azure OpenAI kaynaklarının uç nokta yönetilen kimliğine Cognitive Services OpenAI Kullanıcısı veya Bilişsel Hizmetler OpenAI Katkıda Bulunanı rolü vermeniz gerekir.
Kullanıcı tarafından atanan kimliği kullanma
Varsayılan olarak, çevrimiçi bir uç nokta oluşturduğunuzda sistem sizin için otomatik olarak sistem tarafından atanan bir yönetilen kimlik oluşturur. Uç nokta için kullanıcı tarafından atanan mevcut bir yönetilen kimlik de belirtebilirsiniz.
Kullanıcı tarafından atanan bir kimliği kullanmak için endpoint.yaml dosyasında aşağıdaki öznitelikleri belirtin:
identity:
type: user_assigned
user_assigned_identities:
- resource_id: user_identity_ARM_id_place_holder
Ayrıca, aşağıdaki örnekte gösterildiği gibi, deployment.yaml dosyasında environment_variables altında kullanıcı tarafından atanan kimliğin Client ID değerini belirtin. Azure portalında yönetilen kimliğin Overview bölümünde Client ID öğesini bulabilirsiniz.
environment_variables:
AZURE_CLIENT_ID: <client_id_of_your_user_assigned_identity>
Önemli
Çıkarım gerçekleştirmek üzere Azure kaynaklarına erişebilmesi için uç noktayı oluşturmadan önce kullanıcı tarafından atanan kimliğe aşağıdaki izinleri vermeniz gerekir. Daha fazla bilgi için bkz. uç nokta kimliğinize nasıl izin verileceği.
| Kapsam | Rolü | Neden gereklidir? |
|---|---|---|
| Azure Machine Learning Çalışma Alanı | Azure Machine Learning Çalışma Alanı Bağlantı Gizli Dizileri Okuyucusu rolü OR "Microsoft. MachineLearningServices/workspaces/connections/listsecrets/action" | Çalışma alanı bağlantılarını alma |
| İş alanı konteyner kayıt deposu | ACR çekme | Konteyner görüntüsünü çek |
| Çalışma alanı varsayılan depolama alanı | Depolama Blobu Veri Okuyucusu | Modeli depolama alanından yükleme |
| (İsteğe bağlı) Azure Machine Learning Çalışma Alanı | Çalışma alanı ölçümleri yazıcısı | Uç noktayı dağıttıktan sonra, CPU/GPU/disk/bellek kullanımı gibi uç noktayla ilgili metrikleri izlemek istiyorsanız bu izni kimliğe vermeniz gerekir. |
Dağıtımı tanımla
Dağıtım, gerçek çıkarım yapan modeli barındırmak için gereken bir kaynak kümesidir.
Aşağıdaki örnekte bir dağıtım tanımı gösterilmektedir. bölümü model kayıtlı akış modeline başvurur. Akış modeli yolunu da satır içinde belirtebilirsiniz.
$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"]'
| Öznitelik | Açıklama |
|---|---|
| Adı | Dağıtımın adı. |
| Uç nokta adı | Dağıtımın oluşturulacağı uç noktanın adı. |
| Modeli | Dağıtım için kullanılacak model. Bu değer, çalışma alanında mevcut bir sürüme sahip modelin referansı veya yerleşik model tanımı olabilir. |
| Ortam | Modeli ve kodu barındıracak ortam. Şu içeriği içerir: - image- inference_config: , liveness routeve readiness_route gibi scoring_routeçevrimiçi dağıtımlar için bir sunum kapsayıcısı oluşturmak için kullanılır. |
| Örnek türü | Dağıtım için kullanılacak VM boyutu. Desteklenen boyutların listesi için bkz. Yönetilen çevrimiçi uç noktalar SKU listesi. |
| Örnek sayısı | Dağıtım için kullanılacak sunucu örneği sayısı. Değeri beklediğiniz iş yüküne dayandırın. Yüksek kullanılabilirlik için değerini en az 3olarak ayarlayın. Hizmet, yükseltmeleri gerçekleştirmek için fazladan 20% ayırır. Daha fazla bilgi için bkz. Çevrimiçi uç noktaların sınırları. |
| Ortam değişkenleri | Bir akıştan dağıtılan uç noktalar için aşağıdaki ortam değişkenlerini ayarlayın: - (gerekli) PRT_CONFIG_OVERRIDE: çalışma alanından bağlantı çekmek için - (isteğe bağlı) PROMPTFLOW_RESPONSE_INCLUDED_FIELDS:: Yanıtta birden çok alan olduğunda, bu env değişkenini kullanarak alanları yanıtta kullanıma sunma amacıyla filtreler. Örneğin, iki akış çıkışı varsa: "answer", "context" ve yalnızca uç nokta yanıtında "answer" olmasını istiyorsanız, bu env değişkenini '["answer"]' olarak ayarlayabilirsiniz. |
Önemli
Akış klasörünüzde akışı yürütmek için gereken bağımlılıkları içeren bir requirements.txt dosya varsa, bağımlılıklar dahil olmak üzere özel ortamı oluşturmak için özel bir ortamla dağıtma adımlarını izleyin.
Bir Kubernetes çevrimiçi dağıtımı oluşturursanız aşağıdaki öznitelikleri belirtin:
| Öznitelik | Açıklama |
|---|---|
| Türü | Dağıtımın türü. değerini olarak kubernetesayarlayın. |
| Örnek türü | Dağıtım için kullanılacak Kubernetes kümenizde oluşturduğunuz örnek türü. Dağıtımın istek ve limit hesaplama kaynaklarını temsil eder. Daha fazla ayrıntı için bkz. Örnek türünü oluşturma ve yönetme. |
Çevrimiçi uç noktanızı Azure'a dağıtın
Uç noktayı bulutta oluşturmak için aşağıdaki kodu çalıştırın:
az ml online-endpoint create --file endpoint.yml
Uç noktanın altında adlı blue dağıtımı oluşturmak için aşağıdaki kodu çalıştırın:
az ml online-deployment create --file blue-deployment.yml --all-traffic
Not
Bu dağıtım 15 dakikadan uzun sürebilir.
Ipucu
CLI konsolunuzu engellememeyi tercih ediyorsanız, komuta --no-wait bayrağını ekleyin. Ancak, bu bayrak dağıtım durumunun etkileşimli görünümünü durdurur.
Önemli
Önceki az ml online-deployment create komutundaki --all-traffic bayrağı, uç nokta trafiğinin %100'ünü yeni oluşturulan blue dağıtımına yönlendirir. Bu ayırma, geliştirme ve test amacıyla yararlı olsa da, üretim için yeni dağıtıma yönelik trafiği açık bir komutla açmak isteyebilirsiniz. Örneğin, az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100".
Uç noktanın ve dağıtımın durumunu denetleme
Uç noktanın durumunu denetlemek için aşağıdaki kodu çalıştırın:
az ml online-endpoint show -n basic-chat-endpoint
Dağıtımın durumunu denetlemek için aşağıdaki kodu çalıştırın:
az ml online-deployment get-logs --name blue --endpoint basic-chat-endpoint
Modelinizi kullanarak verileri puanlamak için uç noktayı çağırın
sample-request.json Dosya oluşturma:
{
"question": "What is Azure Machine Learning?",
"chat_history": []
}
az ml online-endpoint invoke --name basic-chat-endpoint --request-file sample-request.json
Uç noktayı, gibi curlbir HTTP istemcisi kullanarak da çağırabilirsiniz:
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 çalışma alanındaki Endpoints>Kullan>Temel kullanım bilgileri bölümünden uç nokta anahtarınızı ve uç nokta URI'nizi alın.
Gelişmiş yapılandırmalar
Akış geliştirmeden farklı bağlantılarla dağıtma
Dağıtım sırasında akış bağlantılarını değiştirmek isteyebilirsiniz.
Örneğin, flow.dag.yaml dosyanız adlı my_connectionbir bağlantı kullanıyorsa, dağıtım yaml'sinin ortam değişkenlerini aşağıdaki gibi ekleyerek geçersiz kılabilirsiniz:
1. Seçenek: bağlantı adını geçersiz kılma
environment_variables:
my_connection: <override_connection_name>
Bağlantının belirli bir alanını geçersiz kılmak istiyorsanız, adlandırma düzenine <connection_name>_<field_name>sahip ortam değişkenleri ekleyerek geçersiz kılabilirsiniz. Örneğin, akışınız my_connection adlı bir bağlantı ve chat_deployment_name adlı bir yapılandırma anahtarı kullanıyorsa, hizmet veren arka uç varsayılan olarak chat_deployment_name öğesini 'MY_CONNECTION_CHAT_DEPLOYMENT_NAME' ortam değişkeninden almaya çalışır. Ortam değişkeni ayarlanmadıysa akış tanımındaki özgün değeri kullanır.
Seçenek 2: varlığa referans vererek geçersiz kılma
environment_variables:
my_connection: ${{azureml://connections/<override_connection_name>}}
Not
Yalnızca aynı çalışma alanı içindeki bir bağlantıya başvurabilirsiniz.
Özel bir ortamla dağıtma
Bu bölümde Docker ve Azure Machine Learning ortamları hakkında bilginiz olduğu varsayılarak dağıtımınız için ortamı belirtmek üzere Docker derleme bağlamının nasıl kullanılacağı gösterilmektedir.
Yerel ortamınızda, aşağıdaki dosyaları içeren adlı
image_build_with_reqirementsbir klasör oluşturun:|--image_build_with_reqirements | |--requirements.txt | |--Dockerfilerequirements.txtAkış klasöründen devralınan dosya, akışın bağımlılıklarını izler.Dockerfileile içeriği aşağıdaki örneğe benzer:FROM mcr.microsoft.com/azureml/promptflow/promptflow-runtime:latest COPY ./requirements.txt . RUN pip install -r requirements.txt
DAĞıTıM tanımı YAML dosyasındaki ortam bölümünü aşağıdaki içerikle değiştirin:
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 sunum altyapısını kullanma (önizleme)
Varsayılan olarak, prompt flow sunucusu FLASK altyapısını kullanır. İstem akışı SDK'sı sürüm 1.10.0'dan başlayarak, FastAPI tabanlı sunum altyapısı desteklenir.
fastapisunum motorunu, PROMPTFLOW_SERVING_ENGINEbir ortam değişkenini belirterek kullanabilirsiniz.
environment_variables:
PROMPTFLOW_SERVING_ENGINE=fastapi
Dağıtım için eşzamanlılığı yapılandırma
Akışınızı çevrimiçi dağıtıma dağıttığınızda eşzamanlılık için iki ortam değişkeni yapılandırın: PROMPTFLOW_WORKER_NUM ve PROMPTFLOW_WORKER_THREADS.
max_concurrent_requests_per_instance parametresini de ayarlamanız gerekir.
Aşağıdaki örnek, bu ayarların deployment.yaml dosyasında nasıl yapılandırılacağını gösterir.
request_settings:
max_concurrent_requests_per_instance: 10
environment_variables:
PROMPTFLOW_WORKER_NUM: 4
PROMPTFLOW_WORKER_THREADS: 1
PROMPTFLOW_WORKER_NUM: Bu parametre, bir kapsayıcıda başlayan çalışan sayısını (işlem) ayarlar. Varsayılan değer CPU çekirdeği sayısına eşittir ve maksimum değer CPU çekirdeği sayısının iki katıdır.
PROMPTFLOW_WORKER_THREADS: Bu parametre, bir çalışanda başlayan iş parçacığı sayısını ayarlar. Varsayılan değer 1'dir.
Not
PROMPTFLOW_WORKER_THREADSöğesini 1'den büyük bir değere ayarladığınızda, akış kodunuzun iş parçacığı güvenli olduğundan emin olun.max_concurrent_requests_per_instance: Dağıtım için izin verilen örnek başına en fazla eşzamanlı istek sayısı. Varsayılan değer 10'dur.
için
max_concurrent_requests_per_instanceönerilen değer, istek sürenize bağlıdır:- İstek süreniz 200 ms'den uzunsa
max_concurrent_requests_per_instance'uPROMPTFLOW_WORKER_NUM * PROMPTFLOW_WORKER_THREADSolarak ayarlayın. - İstek süreniz 200 ms veya daha az olduğunda,
max_concurrent_requests_per_instanceöğesini(1.5-2) * PROMPTFLOW_WORKER_NUM * PROMPTFLOW_WORKER_THREADSolarak ayarlayın. Bu ayar, bazı isteklerin sunucu tarafında kuyruğa alınabilmesini sağlayarak toplam aktarım hızını iyileştirebilir. - Bölgeler arası istekler gönderiyorsanız eşiği 200 ms'den 1 sn'ye değiştirebilirsiniz.
- İstek süreniz 200 ms'den uzunsa
Bu parametreleri ayarlarken en iyi performansı ve kararlılığı sağlamak için aşağıdaki ölçümleri izleyin:
- Bu dağıtım için örnek CPU ve bellek kullanımı
- 200 dışı yanıtlar (4xx, 5xx)
- 429 yanıtı alırsanız, bu durum kodu genellikle önceki kılavuzu izleyerek eşzamanlılık ayarlarınızı yeniden hazırlamanız veya dağıtımınızı ölçeklendirmeniz gerektiğini gösterir.
- Azure OpenAI hız sınırlama durumu
Uç noktaları izleme
Genel ölçümleri toplama
Çevrimiçi dağıtımın genel ölçümlerini (istek numaraları, istek gecikme süresi, ağ baytları, CPU/GPU/Disk/Bellek kullanımı ve daha fazlası) görüntüleyebilirsiniz.
Çıkarım zamanında izleme verilerini ve sistem ölçümlerini toplama
Dağıtım YAML dosyasına app_insights_enabled: true özelliğini ekleyerek, çıkarım sırasında izleme verilerini ve istem akışı dağıtımına özgü ölçümleri (belirteç tüketimi, akış gecikmesi ve daha fazlası) çalışma alanına bağlı Application Insights'ta toplayabilirsiniz. Daha fazla bilgi için bkz. prompt flow dağıtımının izleme ve ölçümleri.
İstem akışına özgü ölçümler belirtebilir ve çalışma alanı bağlantılı ölçüm yerine diğer Application Insights'a izleyebilirsiniz. Dağıtım yaml dosyasında aşağıdaki gibi bir ortam değişkeni belirtebilirsiniz. Azure portalındaki Genel Bakış sayfasında, sizin Application Insights bağlantı dizginizi bulabilirsiniz.
environment_variables:
APPLICATIONINSIGHTS_CONNECTION_STRING: <connection_string>
Not
Yalnızca app_insights_enabled: true öğesini ayarlarsanız, ancak çalışma alanınızda bağlantılı bir Application Insights yoksa, dağıtımınız başarısız olmaz ancak hiç veri toplanmaz.
app_insights_enabled: true ile önceki ortam değişkeninin her ikisini de aynı anda belirtirseniz, izleme verileri ve ölçümler çalışma alanına bağlı olan Application Insights'a gönderilir. Farklı bir Application Insights belirtmek için yalnızca ortam değişkenini koruyun.
Yaygın hatalar
Uç nokta tüketilirken üst akış isteği zaman aşımı sorunu
Bu hata genellikle zaman aşımı nedeniyle oluşur. Varsayılan olarak request_timeout_ms , değer 5.000 milisaniyedir. 300.000 milisaniye olan 5 dakikaya kadar ayarlayabilirsiniz. Aşağıdaki örnek, dağıtım YAML dosyasında istek zaman aşımının nasıl belirtileceğini gösterir. Dağıtım şeması hakkında daha fazla bilgi için bkz. Yönetilen çevrimiçi dağıtım şeması.
request_settings:
request_timeout_ms: 300000
Önemli
300.000 ms zaman aşımı yalnızca istem akışından yönetilen çevrimiçi dağıtımlar için çalışır. İstem dışı akışla yönetilen çevrimiçi uç nokta için en fazla zaman aşımı 180 saniyedir.
Bu dağıtımın istem akışından geldiğini belirtmek için modelinizin özelliklerini aşağıdaki gibi ekleyin (dağıtım YAML'sinde satır içi model belirtimi veya tek başına model belirtimi YAML).
properties:
# indicate a deployment from prompt flow
azureml.promptflow.source_flow_id: <value>
Sonraki adımlar
- Yönetilen çevrimiçi uç nokta şeması ve yönetilen çevrimiçi dağıtım şeması hakkında daha fazla bilgi edinin.
- Kullanıcı arabiriminde uç noktayı test etme ve uç noktayı izleme hakkında daha fazla bilgi edinin.
- Yönetilen çevrimiçi uç noktaların sorunlarını giderme hakkında daha fazla bilgi edinin.
- İstem akışı dağıtımlarıyla ilgili sorunları giderme.
- Güvenli bir dağıtım stratejisi kullanarak akışınızın geliştirilmiş bir sürümünü dağıtmak için bkz. Çevrimiçi uç noktalar için güvenli dağıtım.
deploy akışlarını yerel geliştirme hizmeti, Docker kapsayıcısı, Azure APP hizmeti vb.