Share via


CLI ile gerçek zamanlı çıkarım için çevrimiçi uç noktaya akış dağıtma

Bu makalede, Azure Machine Learning v2 CLI ile gerçek zamanlı çıkarımda kullanılmak üzere akışınızı 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 emin olun ve üretime dağıtılmaya hazır olduğundan 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ı öğreneceksiniz.

  • Bu makalede CLI deneyiminin nasıl kullanılacağı ele alınacaktır.
  • Python SDK'sı bu makalede ele alınmıyor. Bunun yerine GitHub örnek not defterine bakın. Python SDK'sını kullanmak için Azure Machine Learning için Python SDK v2'ye sahip olmanız gerekir. 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 desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

Önkoşullar

  • Azure CLI ve Azure Machine Learning'in Azure CLI uzantısı. Daha fazla bilgi için bkz . CLI'yi (v2) yükleme, ayarlama ve kullanma.
  • Azure Machine Learning çalışma alanı. Yoksa, oluşturmak için Hızlı Başlangıç: Çalışma alanı kaynakları oluşturma makalesindeki adımları kullanın.
  • Azure Machine Learning’deki işlemlere erişim vermek için Azure rol tabanlı erişim denetimleri (Azure RBAC) kullanılır. Bu makaledeki adımları gerçekleştirmek için kullanıcı hesabınıza Azure Machine Learning çalışma alanı için sahip veya katkıda bulunan rolü ya da "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/" izin veren özel bir rol atanmalıdır. Çevrimiçi uç noktaları/dağıtımları oluşturmak/yönetmek için Studio kullanıyorsanız, kaynak grubu sahibinden ek bir "Microsoft.Resources/deployments/write" iznine sahip olmanız gerekir. 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 dağıtabilir veya Docker gibi diğer platformlara dağıtabilirsiniz.

Dağıtım için sanal makine kotası ayırma

Yönetilen çevrimiçi uç noktalar için Azure Machine Learning, işlem kaynaklarınızın %20'sini yükseltmeleri gerçekleştirmek için 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ım için hazırlama

Her akış kod/istem, tanım ve akışın diğer yapıtlarını içeren bir klasöre sahip olur. Akışınızı kullanıcı arabirimiyle geliştirdiyseniz akış klasörünü akış ayrıntıları sayfasından indirebilirsiniz. Akışınızı CLI veya SDK ile geliştirdiyseniz akış klasörünüz zaten olmalıdır.

Bu makalede, Azure Machine Learning yönetilen çevrimiçi uç noktasına dağıtmak için örnek akış "basic-chat" kullanılacaktır.

Önemli

Akışınızda kullandıysanız additional_includes , önce flow klasörünün çözümlenmiş bir sürümünü almak için kullanmanız pf flow build --source <path-to-flow> --output <output-path> --format docker gerekir.

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çinde belirtebilirsiniz. Modelin kaydedilmesi ve dağıtım tanımında model adı ve sürümünün belirtilmesi önerilir. formunu model:<model_name>:<version>kullanın.

Sohbet akışı için model tanımı örneği aşağıda verilmiştir.

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 şunları belirtmeniz gerekir:

  • 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 Azure Machine Learning belirteç tabanlı kimlik doğrulaması 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 ekleyebilirsiniz.
  • İsteğe bağlı olarak, uç noktanıza bir açıklama ve etiketler ekleyebilirsiniz.
  • Çalışma alanınıza ekli bir Kubernetes kümesine (AKS veya Arc özellikli küme) dağıtmak istiyorsanız, akışı bir Kubernetes çevrimiçi uç noktası olacak şekilde dağıtabilirsiniz.

Aşağıda, varsayılan olarak sistem tarafından atanan kimliği kullanan bir uç nokta tanımı örneği verilmiştir.

$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
Tuş 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 kullanın aml_token . En son belirteci almak için komutunu kullanın az ml online-endpoint get-credentials .
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ı gizli dizileri okuyucu iznine sahipseniz uç nokta sistem tarafından atanan kimliğin çalışma alanının Azure Machine Learning Çalışma Alanı Bağlan ion Gizli Dizi Okuyucusu rolüne otomatik olarak atanacağı ve böylece uç noktanın çıkarım yaparken bağlantılara doğru şekilde erişebileceği anlamına gelir.
- Varsayılan olarak bu özellik 'devre dışı' şeklindedir.

Bir Kubernetes çevrimiçi uç noktası oluşturursanız aşağıdaki ek öznitelikleri belirtmeniz gerekir:

Tuş 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 ilgili kaynakların ilgili rolleri 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 Bilişsel Hizmetler 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 uç nokta oluşturduğunuzda sistem tarafından atanan yönetilen kimlik sizin için otomatik olarak oluşturulur. Uç nokta için kullanıcı tarafından atanan mevcut bir yönetilen kimlik de belirtebilirsiniz.

Kullanıcı tarafından atanan kimliği kullanmak istiyorsanız, içinde endpoint.yamlaşağıdaki ek öznitelikleri belirtebilirsiniz:

identity:
  type: user_assigned
  user_assigned_identities:
    - resource_id: user_identity_ARM_id_place_holder

Ayrıca, aşağıdaki gibi altında environment_variablesdeployment.yaml kullanıcı tarafından atanan kimliği de belirtmeniz Client ID gerekir. öğesini Azure portalında Overview yönetilen kimliğin içinde bulabilirsinizClient ID.

environment_variables:
  AZURE_CLIENT_ID: <client_id_of_your_user_assigned_identity>

Önemli

Çıkarım gerçekleştirmek için 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. Uç nokta kimliğinize izin verme hakkında daha fazla bilgi edinin.

Kapsam Rol Neden gereklidir?
Azure Machine Learning Çalışma Alanı Azure Machine Learning Çalışma Alanı Bağlantı Gizli Dizi Okuyucusu rolü VEYA "Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action" ile özelleştirilmiş bir rol Çalışma alanı bağlantılarını alın
Çalışma alanı kapsayıcı kayıt defteri ACR çekme Kapsayıcı görüntüsünü çekme
Çalışma alanı varsayılan depolama alanı Depolama Blob Verileri 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ığınızda CPU/GPU/Disk/Bellek kullanımı gibi uç noktayla ilgili ölçümleri izlemek istiyorsanız kimlik için bu izni vermeniz gerekir.

Dağıtımı tanımlama

Dağıtım, gerçek çıkarım yapan modeli barındırmak için gereken bir kaynak kümesidir.

Aşağıda, bölümün model kayıtlı akış modeline başvurduğu bir dağıtım tanımı örneği verilmiştir. 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:

  # "compute" mode is the default mode, if you want to deploy to serving mode, you need to set this env variable to "serving"
  PROMPTFLOW_RUN_MODE: serving

  # 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 Tanım
Ad Dağıtımın adı.
Uç nokta adı Altında dağıtımın oluşturulacağı uç noktanın adı.
Model Dağıtım için kullanılacak model. Bu değer, çalışma alanında var olan bir sürüme sahip modelin başvurusu veya satır içi model belirtimi olabilir.
Ortam Modeli ve kodu barındıracak ortam. Şu içeriği içerir:
- image
- inference_config: , readiness_routeve scoring_route gibi liveness 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 örnek sayısı. Değeri beklediğiniz iş yüküne dayandırın. Yüksek kullanılabilirlik için değerini en az 3olarak ayarlamanızı öneririz. Yükseltmeleri gerçekleştirmek için fazladan %20 ayırıyoruz. Daha fazla bilgi için bkz . Çevrimiçi uç noktaların sınırları.
Ortam değişkenleri Akıştan dağıtılan uç noktalar için aşağıdaki ortam değişkenlerinin ayarlanması gerekir:
- (gerekli) PROMPTFLOW_RUN_MODE: serving: sunum modunu belirtin
- (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şkeni kullanıldığında alanlar yanıtta kullanıma sunulacak şekilde filtrelenir.
Ö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ı izlemeniz gerekir.

Bir Kubernetes çevrimiçi dağıtımı oluşturursanız aşağıdaki ek öznitelikleri belirtmeniz gerekir:

Öznitelik Açıklama
Tür Dağıtımın türü. Değeri kubernetes olarak ayarlayı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/sınır işlem kaynağı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ğıtma

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.

İpucu

CLI konsolunuzu engellememek isterseniz komutuna bayrağını --no-wait ekleyebilirsiniz. Ancak bu, dağıtım durumunun etkileşimli görünümünü durdurur.

Önemli

Yukarıdaki az ml online-deployment create bayrak, --all-traffic uç nokta trafiğinin %100'unu yeni oluşturulan mavi dağıtıma ayırır. Bu, 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 puan eklemek için uç noktayı çağırma

Aşağıdaki gibi bir sample-request.json dosyası oluşturabilirsiniz:

{
  "question": "What is Azure Machine Learning?",
  "chat_history":  []
}
az ml online-endpoint invoke --name basic-chat-endpoint --request-file sample-request.json

Bunu bir HTTP istemcisiyle de çağırabilirsiniz, örneğin curl ile:

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":  []}'

Uç Nokta Kullanımı>Temel tüketim bilgileri'ndeki Azure Machine Learning çalışma alanından uç nokta anahtarınızı ve uç nokta>URI'nizi alabilirsiniz.

Gelişmiş yapılandırmalar

Akış geliştirmeden farklı bağlantılarla dağıtma

Dağıtım sırasında akışın bağlantılarını geçersiz kılmak 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>

Seçenek 2: varlığa başvurarak 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.

  1. Yerel ortamınızda aşağıdaki dosyaları içeren adlı image_build_with_reqirements bir klasör oluşturun:

    |--image_build_with_reqirements
    |  |--requirements.txt
    |  |--Dockerfile
    
    • , requirements.txt akışın bağımlılıklarını izlemek için kullanılan akış klasöründen devralınmalıdır.

    • İçerik Dockerfile aşağıdaki gibidir:

      FROM mcr.microsoft.com/azureml/promptflow/promptflow-runtime:latest
      COPY ./requirements.txt .
      RUN pip install -r requirements.txt
      
  2. 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 istem akışı sunma, FLASK sunum altyapısını kullanır. İstem akışı SDK'sı sürüm 1.10.0'dan başlayarak FastAPI tabanlı hizmet altyapısı desteklenir. Bir ortam değişkeni PROMPTFLOW_SERVING_ENGINEbelirterek hizmet altyapısını kullanabilirsinizfastapi.

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ğıtırken, eşzamanlılık için yapılandırdığınız iki ortam değişkeni vardır: PROMPTFLOW_WORKER_NUM ve PROMPTFLOW_WORKER_THREADS. Ayrıca parametresini max_concurrent_requests_per_instance de ayarlamanız gerekir.

Aşağıda, dosyada yapılandırma örneği verilmiştir deployment.yaml .

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şlatılacak çalışan sayısını (işlem) belirler. 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şlatılacak iş parçacığı sayısını belirler. Varsayılan değer 1 şeklindedir.

    Not

    1'den büyük bir değere ayarlarken PROMPTFLOW_WORKER_THREADS akış kodunuzun iş parçacığı açısından 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 olarak ayarlayın max_concurrent_requests_per_instancePROMPTFLOW_WORKER_NUM * PROMPTFLOW_WORKER_THREADS.
    • İstek süreniz 200 ms'den küçük veya buna eşitse olarak ayarlayın max_concurrent_requests_per_instance(1.5-2) * PROMPTFLOW_WORKER_NUM * PROMPTFLOW_WORKER_THREADS. Bu, bazı isteklerin sunucu tarafında kuyruğa alınmasına izin vererek 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.

Yukarıdaki parametreleri ayarlarken en iyi performansı ve kararlılığı sağlamak için aşağıdaki ölçümleri izlemeniz gerekir:

  • Bu dağıtımın örnek CPU/Bellek kullanımı
  • 200 dışı yanıtlar (4xx, 5xx)
    • 429 yanıtı alırsanız, bu genellikle yukarıdaki kılavuzu izleyerek eşzamanlılık ayarlarınızı yeniden ayarlamanız veya dağıtımınızı ölçeklendirmeniz gerektiğini gösterir.
  • Azure OpenAI azaltma 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

Ayrıca dağıtım yaml dosyasına bir özellik app_insights_enabled: true ekleyerek çalışma alanına bağlı Uygulama Analizler çıkarım süresi boyunca izleme verilerini toplayabilir ve akış dağıtımına özgü ölçümleri (belirteç tüketimi, akış gecikmesi vb.) toplayabilirsiniz. İstem akışı dağıtımının izlemesi ve ölçümleri hakkında daha fazla bilgi edinin.

İstem akışına özgü ölçümler ve izleme, çalışma alanı bağlantılı ölçüm dışındaki diğer Uygulama Analizler belirtilebilir. Dağıtım yaml dosyasında aşağıdaki gibi bir ortam değişkeni belirtebilirsiniz. Uygulama Analizler bağlantı dizesi Azure portalındaki Genel Bakış sayfasında bulabilirsiniz.

environment_variables:
  APPLICATIONINSIGHTS_CONNECTION_STRING: <connection_string>

Not

Yalnızca ayarlarsanız app_insights_enabled: true ancak çalışma alanınızda bağlı bir Uygulama Analizler yoksa dağıtımınız başarısız olmaz, ancak toplanan veri olmaz. Hem hem de app_insights_enabled: true yukarıdaki ortam değişkenini aynı anda belirtirseniz, izleme verileri ve ölçümler çalışma alanına bağlı Uygulama Analizler gönderilir. Bu nedenle, farklı bir Uygulama Analizler belirtmek istiyorsanız, yalnızca ortam değişkenini tutmanız gerekir.

Sık karşılaşılan hatalar

Uç nokta kullanılırken yukarı akış isteği zaman aşımı sorunu

Bu tür bir hataya genellikle zaman aşımı neden olur. Varsayılan olarak request_timeout_ms 5000'dir. En fazla 5 dakika (300.000 ms) belirtebilirsiniz. Aşağıda, dağıtım yaml dosyasında istek zaman aşımının nasıl belirtileceğini gösteren örnek verilmiştir. Dağıtım şeması hakkında daha fazla bilgiyi burada bulabilirsiniz.

request_settings:
  request_timeout_ms: 300000

Sonraki adımlar