Sorun giderme rehberi
Bu makalede, istem akışı kullanımıyla ilgili sık sorulan sorular ele alır.
Akış yazmayla ilgili sorunlar
Kod öncelikli bir deneyim için akışı güncelleştirdiğinizde "Paket aracı bulunamadı" hatası olur
Kod öncelikli bir deneyim için akışları güncelleştirdiğinizde, akış Faiss Dizin Arama, Vektör Dizini Arama, Vektör Veritabanı Araması veya İçerik Kasa ty (Metin) araçlarını kullanıyorsa aşağıdaki hata iletisiyle karşılaşabilirsiniz:
Package tool 'embeddingstore.tool.faiss_index_lookup.search' is not found in the current environment.
Sorunu çözmek için iki seçeneğiniz vardır:
Seçenek 1
İşlem oturumunuzu en son temel görüntü sürümüne güncelleştirin.
Ham kod görünümüne geçmek için Ham dosya modu'nu seçin. Ardından flow.dag.yaml dosyasını açın.
Araç adlarını güncelleştirin.
Araç Yeni araç adı Faiss Dizin Araması promptflow_vectordb.tool.faiss_index_lookup. FaissIndexLookup.search Vektör Dizini Arama promptflow_vectordb.tool.vector_index_lookup. VectorIndexLookup.search Vektör Veritabanı Araması promptflow_vectordb.tool.vector_db_lookup. VectorDBLookup.search İçerik Güvenliği (Metin) content_safety_text.tools.content_safety_text_tool.analyze_text flow.dag.yaml dosyasını kaydedin.
Seçenek 2
- İşlem oturumunuzu en son temel görüntü sürümüne güncelleştirme
- Eski aracı kaldırın ve yeni bir aracı yeniden oluşturun.
"Böyle bir dosya veya dizin yok" hatası
İstem akışı, akışın anlık görüntüsünü depolamak için bir dosya paylaşımı depolama alanına dayanır. Dosya paylaşımı depolamada bir sorun varsa aşağıdaki sorunla karşılaşabilirsiniz. Deneyebileceğiniz bazı geçici çözümler şunlardır:
Özel depolama hesabı kullanıyorsanız, çalışma alanınızın depolama hesabınıza erişebildiğinden emin olmak için istem akışında ağ yalıtımı bölümüne bakın.
Depolama hesabı genel erişim için etkinleştirildiyse, çalışma alanınızda adlı
workspaceworkingdirectory
bir veri deposu olup olmadığını denetleyin. Bu bir dosya paylaşımı türü olmalıdır.- Bu veri deponuzu almadıysanız çalışma alanınıza eklemeniz gerekir.
- adlı
code-391ff5ac-6576-460f-ba4d-7e03433c68b6
bir dosya paylaşımı oluşturun. - adlı
workspaceworkingdirectory
bir veri deposu oluşturun. Bkz . Veri depoları oluşturma.
- adlı
- Veri deponuz
workspaceworkingdirectory
varsa ancak türü yerinefileshare
iseblob
yeni bir çalışma alanı oluşturun. Çalışma alanı varsayılan depolama hesabı olarak Azure Data Lake Storage 2. Nesil için hiyerarşik ad alanlarını etkinleştirmeyen depolamayı kullanın. Daha fazla bilgi için bkz . Çalışma alanı oluşturma.
- Bu veri deponuzu almadıysanız çalışma alanınıza eklemeniz gerekir.
Akış eksik
Bu sorunun olası nedenleri vardır:
Depolama hesabınıza genel erişim devre dışı bırakıldıysa, IP'nizi depolama güvenlik duvarına ekleyerek veya depolama hesabına bağlı özel uç noktası olan bir sanal ağ üzerinden erişimi etkinleştirerek erişimi sağlamanız gerekir.
Bazı durumlarda, veri deposundaki hesap anahtarı depolama hesabıyla eşitlenmemiştir, bunu düzeltmek için veri deposu ayrıntı sayfasındaki hesap anahtarını güncelleştirmeyi deneyebilirsiniz.
AI Studio kullanıyorsanız depolama hesabının, AI Studio'nun depolama hesabına erişmesine izin vermek için CORS'yi ayarlaması gerekir, aksi takdirde akışta eksik sorun olduğunu görürsünüz. Bu sorunu çözmek için depolama hesabına aşağıdaki CORS ayarlarını ekleyebilirsiniz.
- Depolama hesabı sayfasına gidin, altında öğesini seçin
Resource sharing (CORS)
ve sekmeye tıklayınFile service
.settings
- İzin verilen kaynaklar:
https://mlworkspace.azure.ai,https://ml.azure.com,https://*.ml.azure.com,https://ai.azure.com,https://*.ai.azure.com,https://mlworkspacecanary.azure.ai,https://mlworkspace.azureml-test.net
- İzin verilen yöntemler:
DELETE, GET, HEAD, POST, OPTIONS, PUT
- Depolama hesabı sayfasına gidin, altında öğesini seçin
İşlem oturumuyla ilgili sorunlar
"XXX adlı modül yok" nedeniyle çalıştırma başarısız oldu
İşlem oturumuyla ilgili bu tür hatalarda gerekli paketler eksiktir. Varsayılan bir ortam kullanıyorsanız işlem oturumunuzun görüntüsünün en son sürümü kullandığından emin olun. Özel bir temel görüntü kullanıyorsanız, docker bağlamınıza gerekli tüm paketleri yüklediğinizden emin olun. Daha fazla bilgi için bkz . İşlem oturumu için temel görüntüyü özelleştirme.
İşlem oturumu tarafından kullanılan sunucusuz örneği nerede bulabilirim?
İşlem oturumu tarafından kullanılan sunucusuz örneği, işlem sayfasının altındaki işlem oturumu listesi sekmesinde görüntüleyebilirsiniz. Sunucusuz örneği yönetme hakkında daha fazla bilgi edinin.
Özel temel görüntü kullanarak işlem oturumu hataları
requirements.txt veya özel temel görüntü ile işlem oturumu başlatma hatası
Kullanılacak requirements.txt
işlem oturumu desteği veya görüntüyü özelleştirmek için içinde flow.dag.yaml
özel temel görüntü. Paketleri yüklemek için kullanılacak olan yaygın durum için kullanmanızı requirements.txt
pip install -r requirements.txt
öneririz. Python paketlerinden daha fazla bağımlılığınız varsa, istem akışı temel görüntüsünün üzerinde yeni bir görüntü tabanı oluşturmak için Temel görüntüyü özelleştir'i izlemeniz gerekir. Ardından içinde flow.dag.yaml
kullanın. İşlem oturumunda temel görüntüyü belirtme hakkında daha fazla bilgi edinin.
- İşlem oturumu oluşturmak için rastgele temel görüntü kullanamazsınız, istem akışı tarafından sunulan temel görüntüyü kullanmanız gerekir.
- temel görüntüye zaten eklediğimiz için ve
promptflow-tools
requirements.txt
sürümünüpromptflow
sabitlemeyin. ve'in eski sürümünü kullanmakpromptflow
promptflow-tools
beklenmeyen davranışlara neden olabilir.
Akış çalıştırması ile ilgili sorunlar
Daha fazla araştırma için LLM aracında ham girişlerini ve çıkışlarını bulma
komut istemi akışında, başarılı çalıştırma ve çalıştırma ayrıntıları sayfasının akış sayfasında, LLM aracının ham girişlerini ve çıkışlarını çıkış bölümünde bulabilirsiniz. Tam çıkışı görüntülemek için düğmeyi view full output
seçin.
Trace
bölümünde her istek ve LLM aracına verilen yanıt yer alır. LLM modeline gönderilen ham iletiyi ve LLM modelinden gelen ham yanıtı de kontrol edebilirsiniz.
Azure OpenAI'den 409 hatası nasıl düzeltilir?
Azure OpenAI'den 409 hatasıyla karşılaşabilirsiniz. Bu, Azure OpenAI hız sınırına ulaştığınız anlamına gelir. LLM düğümünün çıkış bölümünde hata iletisini de kontrol edebilirsiniz. Azure OpenAI hız sınırı hakkında daha fazla bilgi edinin.
Hangi düğümün en çok zaman aldığını belirleme
İşlem oturumu günlüklerini denetleyin.
Aşağıdaki uyarı günlüğü biçimini bulmayı deneyin:
{node_name} {duration} saniyedir çalışıyor.
Örneğin:
Olay 1: Python betik düğümü uzun süre çalışır.
Bu durumda, bunun uzun bir süre (neredeyse 300 saniye) çalıştığını bulabilirsiniz
PythonScriptNode
. Ardından sorunun ne olduğunu görmek için düğüm ayrıntılarını de inceleyebilirsiniz.Olay 2: LLM düğümü uzun süre çalışır.
Bu durumda, iletiyi
request canceled
günlüklerde bulursanız, bunun nedeni OpenAI API çağrısının çok uzun sürmesi ve zaman aşımı sınırını aşması olabilir.OpenAI API zaman aşımına bir ağ sorunu veya daha fazla işlem süresi gerektiren karmaşık bir istek neden olabilir. Daha fazla bilgi için bkz . OpenAI API zaman aşımı.
Birkaç saniye bekleyin ve isteğinizi yeniden deneyin. Bu eylem genellikle tüm ağ sorunlarını çözer.
Yeniden deneme işe yaramazsa, gibi
gpt-4-32k
uzun bir bağlam modeli kullanıp kullanmadığınızı ve içinmax_tokens
büyük bir değer ayarlayıp ayarlamadığınızı denetleyin. Bu durumda, isteminiz etkileşimli modun üst eşiğinden daha uzun süren uzun bir yanıt oluşturabileceğinden davranış beklenir. Bu durumda, bu modun zaman aşımı ayarı olmadığından denemeniziBulk test
öneririz.
Günlüklerde belirli bir düğüm sorunu olduğunu belirten bir şey bulamazsanız:
- Günlükleri içeren istem akışı ekibine (promptflow-eng) başvurun. Kök nedeni belirlemeye çalışıyoruz.
Akış dağıtımıyla ilgili sorunlar
"Microsoft.MachineLearningService/workspaces/datastores/read" eylemini gerçekleştirme yetkisi yok
Akışınızda Dizin Arama aracı varsa, akışı dağıtdıktan sonra uç noktanın öbekler ve eklemeler içeren MLIndex yaml dosyasını veya FAISS klasörünü okumak için çalışma alanı veri deposuna erişmesi gerekir. Bu nedenle, bunu yapmak için uç nokta kimliğine el ile izin vermeniz gerekir.
Çalışma alanı kapsamında AzureML Veri Bilimci uç nokta kimliğine veya "MachineLearningService/workspace/datastore/reader" eylemini içeren özel bir rol verebilirsiniz.
Uç nokta kullanılırken yukarı akış isteği zaman aşımı sorunu
Akışı dağıtmak için CLI veya SDK kullanırsanız zaman aşımı hatasıyla karşılaşabilirsiniz. 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. Daha fazla bilgi edinmek için bkz . dağıtım şeması.
request_settings:
request_timeout_ms: 300000
OpenAI API'sinde kimlik doğrulaması hatası oluşuyor
Azure OpenAI anahtarınızı yeniden oluşturur ve istem akışında kullanılan bağlantıyı el ile güncelleştirirseniz" Yetkisiz gibi hatalarla karşılaşabilirsiniz. Erişim belirteci eksik, geçersiz, hedef kitle yanlış veya süresi dolmuş." ifadesi kullanılırken, anahtar yeniden oluşturulmadan önce oluşturulan mevcut bir uç nokta çağrılırken.
Bunun nedeni, uç noktalarda/dağıtımlarda kullanılan bağlantıların otomatik olarak güncelleştirilmeyeceğidir. Dağıtımlardaki anahtar veya gizli diziler için herhangi bir değişiklik, istenmeyen çevrimdışı işlem nedeniyle çevrimiçi üretim dağıtımını etkilemeyi önlemeyi amaçlayan el ile güncelleştirme ile yapılmalıdır.
- Uç nokta stüdyo kullanıcı arabiriminde dağıtıldıysa, aynı dağıtım adını kullanarak akışı mevcut uç noktaya yeniden dağıtabilirsiniz.
- Uç nokta SDK veya CLI kullanılarak dağıtıldıysa, dağıtım tanımında sahte bir ortam değişkeni ekleme gibi bazı değişiklikler yapmanız ve ardından dağıtımınızı güncelleştirmek için kullanmanız
az ml online-deployment update
gerekir.
İstem akışı dağıtımlarındaki güvenlik açığı sorunları
İstem akışı çalışma zamanıyla ilgili güvenlik açıkları için aşağıda, azaltmaya yardımcı olabilecek yaklaşımlar verilmiştir:
- Akış klasörünüzdeki requirements.txt bağımlılık paketlerini güncelleştirin.
- Akışınız için özelleştirilmiş temel görüntü kullanıyorsanız, istem akışı çalışma zamanını en son sürüme güncelleştirmeniz ve temel görüntünüzü yeniden oluşturmanız ve ardından akışı yeniden dağıtmanız gerekir.
Yönetilen çevrimiçi dağıtımların diğer güvenlik açıkları için Azure Machine Learning sorunları aylık olarak düzeltir.
"MissingDriverProgram Hatası" veya "İstekte sürücü programı bulunamadı"
Akışınızı dağıtır ve aşağıdaki hatayla karşılaşırsanız, dağıtım ortamıyla ilgili olabilir.
'error':
{
'code': 'BadRequest',
'message': 'The request is invalid.',
'details':
{'code': 'MissingDriverProgram',
'message': 'Could not find driver program in the request.',
'details': [],
'additionalInfo': []
}
}
Could not find driver program in the request
Bu hatayı düzeltmenin iki yolu vardır.
(Önerilen) Özel ortam ayrıntı sayfanızda kapsayıcı görüntüsü uri'sini bulabilir ve flow.dag.yaml dosyasında akış temel görüntüsü olarak ayarlayabilirsiniz. Akışı kullanıcı arabiriminde dağıttığınızda Geçerli akış tanımının ortamını kullan'ı seçmeniz gerekir. Arka uç hizmeti, bu temel görüntüyü temel alarak ve
requirement.txt
dağıtımınız için özelleştirilmiş ortamı oluşturur. Akış tanımında belirtilen ortam hakkında daha fazla bilgi edinin.Özel ortam tanımınıza ekleyerek
inference_config
bu hatayı düzeltebilirsiniz.Aşağıda özelleştirilmiş ortam tanımı örneği verilmiştir.
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: pf-customized-test
build:
path: ./image_build
dockerfile_path: Dockerfile
description: promptflow customized runtime
inference_config:
liveness_route:
port: 8080
path: /health
readiness_route:
port: 8080
path: /health
scoring_route:
port: 8080
path: /score
Model yanıtı çok uzun sürüyor
Bazen dağıtımın yanıt vermenin çok uzun sürdüğünü fark edebilirsiniz. Bunun gerçekleşmesi için çeşitli olası faktörler vardır.
- Akışta kullanılan model yeterince güçlü değil (örnek: text-ada yerine GPT 3.5 kullanma)
- Dizin sorgusu iyileştirilmemiş ve çok uzun sürüyor
- Flow'un işlemek için birçok adımı vardır
Modelin performansını geliştirmek için uç noktayı yukarıda dikkate alınacak noktalara göre iyileştirmeyi göz önünde bulundurun.
Dağıtım şeması getirilemiyor
Uç noktayı dağıttıktan ve uç nokta ayrıntı sayfasındaki Test sekmesinde test etmek istiyorsanız, Test sekmesinde Dağıtım şeması getirilemiyor gösteriliyorsa, bu sorunu azaltmak için aşağıdaki iki yöntemi deneyebilirsiniz:
- Uç nokta kimliğine doğru izni verdiğinden emin olun. Uç nokta kimliğine izin verme hakkında daha fazla bilgi edinin.
- Bunun nedeni, akışınızı eski bir sürüm çalışma zamanında çalıştırmanız ve ardından akışı dağıtmanız, dağıtımın eski sürümdeki çalışma zamanının ortamını da kullanmanız olabilir. Çalışma zamanını güncelleştirmek için Kullanıcı arabiriminde bir çalışma zamanını güncelleştirme'yi izleyin ve akışı en son çalışma zamanında yeniden çalıştırın ve sonra akışı yeniden dağıtın.
Çalışma alanı gizli dizisini listelemek için erişim reddedildi
"Çalışma alanı gizli dizisini listelemeye erişim reddedildi" gibi bir hatayla karşılaşırsanız uç nokta kimliğine doğru izni verip vermediğinizden emin olun. Uç nokta kimliğine izin verme hakkında daha fazla bilgi edinin.
Kimlik doğrulaması ve kimlikle ilgili sorunlar
İstem akışında kimlik bilgisi olmayan veri deposu Nasıl yaparım??
Veri deposunun kimlik doğrulama türünü Yok olarak değiştirin
Bu bölümdeKimlik tabanlı veri kimlik doğrulamasını izleyerek veri deposu kimlik bilgilerinizin daha az olmasını sağlayabilirsiniz.
Veri deposunun kimlik doğrulama türünü Yok olarak değiştirmeniz gerekir; bu, meid_token tabanlı kimlik doğrulaması anlamına gelir.
Blob/adls 1. nesil/adls 2. nesil tabanlı veri deposu (en azından ve workspaceartifactstore
için) için workspaceblobstore
veri deposu ayrıntı sayfasından veya CLI/SDK'dan değişiklik yapabilirsiniz:https://github.com/Azure/azureml-examples/tree/main/cli/resources/datastore
Dosya paylaşımı tabanlı veri deposu (en azından için) için workspaceworkingdirectory
yalnızca REST API için kimlik doğrulama türünü değiştirebilirsiniz: datastores-create-or-update. Önce datastores-get kullanarak veri deposunun gövde özelliklerini alabilir ve sonra değiştirebilirsiniz"credentialsType": "None"
.
Bunu kullanıcı arabirimi tarafında gerçekleştiremediğiniz için workspaceartifactstore
veri deposu için de , accountName
ve "serviceDataAccessAuthIdentity": "WorkspaceSystemAssignedIdentity"
belirtmeniz subscriptionId
gerekir.
Kullanıcı kimliğine veya yönetilen kimliğe izin verme
bilgi istemi akışında kimlik bilgisi olmayan veri depolarını kullanmak için, veri deposuna erişmek için kullanıcı kimliğine veya yönetilen kimliğe yeterli izin vermeniz gerekir.
- Çalışma alanı sistemi tarafından atanan yönetilen kimliğin depolama hesabında en
Storage File Data Privileged Contributor
azından okuma/yazma (silmeyi de dahil et) iznine sahipStorage Blob Data Contributor
olduğundan emin olun. - İstem akışında bu varsayılan kullanıcı kimliğini kullanıyorsanız, kullanıcı kimliğinin depolama hesabında aşağıdaki role sahip olduğundan emin olmanız gerekir:
Storage Blob Data Contributor
depolama hesabında en azından okuma/yazma (silmeyi de dahil et) izni gerekir.Storage File Data Privileged Contributor
depolama hesabında en azından okuma/yazma (silmeyi de dahil et) izni gerekir.
- Kullanıcı tarafından atanan yönetilen kimlik kullanıyorsanız, yönetilen kimliğin depolama hesabında aşağıdaki role sahip olduğundan emin olmanız gerekir:
Storage Blob Data Contributor
depolama hesabında en azından okuma/yazma (silmeyi de dahil et) izni gerekir.Storage File Data Privileged Contributor
depolama hesabında en azından okuma/yazma (silmeyi de dahil et) izni gerekir.- Bu arada, kullanım istemi akışını yazma ve test akışına göndermek istiyorsanız en azından depolama hesabına kullanıcı kimliği
Storage Blob Data Read
rolü atamanız gerekir.
- Akış ayrıntı sayfasını hala görüntüleyemiyorsanız ve istem akışını ilk kez kullanıyorsanız 2024-01-01'den önceyse, çalışma alanıyla bağlantılı depolama hesabına çalışma alanı MSI'sini
Storage Table Data Contributor
vermeniz gerekir.