Azure Machine Learning stüdyosu'da istem akışı işlem oturumlarını yönetme
İstem akışı işlem oturumu, tüm gerekli bağımlılık paketlerini içeren bir Docker görüntüsü de dahil olmak üzere uygulamanın çalışması için gereken bilgi işlem kaynaklarını sağlar. Bu güvenilir ve ölçeklenebilir ortam, sorunsuz bir kullanıcı deneyimi için istem akışının görevlerini ve işlevlerini verimli bir şekilde yürütmesini sağlar.
İşlem oturumu yönetimi için izinler ve roller
Rolleri atamak için kaynak üzerinde veya Microsoft.Authorization/roleAssignments/write
iznine sahip owner
olmanız gerekir.
İşlem oturumunun kullanıcıları için çalışma alanında rolü atayın AzureML Data Scientist
. Daha fazla bilgi edinmek için bkz . Azure Machine Learning çalışma alanına erişimi yönetme.
Rol atamanın etkili olması birkaç dakika sürebilir.
Studio'da işlem oturumu başlatma
İşlem oturumu başlatmak için Azure Machine Learning stüdyosu kullanmadan önce şunları yaptığınızdan emin olun:
- Çalışma alanında bu role sahipsiniz
AzureML Data Scientist
. - Çalışma alanınızdaki varsayılan veri deposu (genellikle
workspaceblobstore
) blob türüdür. - Çalışma dizini (
workspaceworkingdirectory
) çalışma alanında bulunur. - İstem akışı için bir sanal ağ kullanıyorsanız, istem akışında ağ yalıtımı ile ilgili dikkat edilmesi gerekenleri anlarsınız.
Akış sayfasında işlem oturumu başlatma
Bir akış, bir işlem oturumuna bağlanır. Akış sayfasında işlem oturumu başlatabilirsiniz.
Başlat'ı seçin. Akış klasöründe tanımlanan
flow.dag.yaml
ortamı kullanarak işlem oturumu başlatın; çalışma alanında yeterli kotanız olan sunucusuz işlemin sanal makine (VM) boyutunda çalışır.Gelişmiş ayarlarla başlat'ı seçin. Gelişmiş ayarlarda şunları yapabilirsiniz:
- İşlem türü'nü seçin. Sunucusuz işlem ve işlem örneği arasında seçim yapabilirsiniz.
Sunucusuz işlem'i seçerseniz aşağıdaki ayarları ayarlayabilirsiniz:
- İşlem oturumunun kullandığı VM boyutunu özelleştirin. D ve üzeri VM serisini tercih edin. Daha fazla bilgi için Desteklenen VM serisi ve boyutları bölümüne bakın
- Boşta kalma süresini özelleştirin. İşlem oturumu bir süre kullanımda değilse otomatik olarak silinir.
- Kullanıcı tarafından atanan yönetilen kimliği ayarlayın. İşlem oturumu bu kimliği kullanarak bir temel görüntü çeker, bağlantıyla kimlik doğrulaması yapar ve paketleri yükler. Kullanıcı tarafından atanan yönetilen kimliğin yeterli izne sahip olduğundan emin olun. Bu kimliği ayarlamazsanız, kullanıcı kimliğini varsayılan olarak kullanırız.
- Kullanıcı tarafından atanan yönetilen kimliği çalışma alanına atamak için aşağıdaki CLI komutunu kullanabilirsiniz. Çalışma alanı için kullanıcı tarafından atanan kimlikleri oluşturma ve güncelleştirme hakkında daha fazla bilgi edinin.
az ml workspace update -f workspace_update_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>
workspace_update_with_multiple_UAIs.yml içeriği aşağıdaki gibidir:
identity: type: system_assigned, user_assigned user_assigned_identities: '/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<uai_name>': {} '<UAI resource ID 2>': {}
İpucu
Azure Machine Learning çalışma alanınızın çalışma alanıyla ilişkili kaynaklardaki verilere erişebilmesi için kullanıcı tarafından atanan yönetilen kimliğinizde aşağıdaki Azure RBAC rol atamaları gereklidir.
Kaynak İzin Azure Machine Learning çalışma alanı Katılımcı Azure Depolama Katkıda Bulunan (denetim düzlemi) + Depolama Blob Veri Katkıda Bulunanı + Depolama Dosya Verileri Ayrıcalıklı Katkıda Bulunanı (veri düzlemi, dosya paylaşımında akış taslağını ve blobdaki verileri kullanma) Azure Key Vault (RBAC izin modeli kullanılırken) Katkıda bulunan (kontrol düzlemi) + Key Vault Yönetici istrator (veri düzlemi) Azure Key Vault (erişim ilkeleri izin modeli kullanılırken) Katkıda bulunan + temizleme işlemlerinin yanı sıra tüm erişim ilkesi izinleri Azure Container Registry Katılımcı Azure Application Insights Katılımcı İşlem türü olarak işlem örneğini seçerseniz, yalnızca boşta kapatma süresini ayarlayabilirsiniz.
Mevcut bir işlem örneğinde çalıştığından VM boyutu sabittir ve oturum tarafında değiştirilemez.
Bu oturum için kullanılan kimlik, işlem örneğinde de tanımlanır ve varsayılan olarak kullanıcı kimliğini kullanır. İşlem örneğine kimlik atama hakkında daha fazla bilgi edinin
Boşta kapatma süresi için işlem oturumunun yaşam döngüsünü tanımlamak için kullanılır; oturum ayarladığınız süre boyunca boşta kalırsa otomatik olarak silinir. İşlem örneğinde boşta kapatma özelliğini etkinleştirdiğinizde işlem düzeyinden etkin olur.
İşlem örneği oluşturma ve yönetme hakkında daha fazla bilgi edinin
- İşlem türü'nü seçin. Sunucusuz işlem ve işlem örneği arasında seçim yapabilirsiniz.
CLI/SDK'da akış çalıştırması göndermek için işlem oturumu kullanma
Studio'ya ek olarak, akış çalıştırması gönderirken CLI/SDK'da işlem oturumunu da belirtebilirsiniz.
Kaynak bölümü altında örnek türünü veya işlem örneği adını da belirtebilirsiniz. Örnek türünü veya işlem örneği adını belirtmezseniz Azure Machine Learning kota, maliyet, performans ve disk boyutu gibi faktörlere göre bir örnek türü (VM boyutu) seçer. Sunucusuz işlem hakkında daha fazla bilgi edinin.
$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json
flow: <path_to_flow>
data: <path_to_flow>/data.jsonl
# specify identity used by serverless compute.
# default value
# identity:
# type: user_identity
# use workspace first UAI
# identity:
# type: managed
# use specified client_id's UAI
# identity:
# type: managed
# client_id: xxx
column_mapping:
url: ${data.url}
# define cloud resource
resources:
instance_type: <instance_type> # serverless compute type
# compute: <compute_instance_name> # use compute instance as compute type
Bu çalıştırmayı CLI aracılığıyla gönderin:
pfazure run create --file run.yml
Not
Akış çalıştırması göndermek için CLI/SDK kullanıyorsanız boşta kapatma bir saattir. İşlemi serbest bırakmak için işlem sayfasına gidebilirsiniz
Akış klasörünün dışındaki başvuru dosyaları
Bazen akış klasörünün dışındaki bir requirements.txt
dosyaya başvurmak isteyebilirsiniz. Örneğin, birden çok akış içeren karmaşık bir projeniz olabilir ve bunlar aynı requirements.txt
dosyayı paylaşır. Bunu yapmak için, bu alanı additional_includes
içine flow.dag.yaml
ekleyebilirsiniz. Bu alanın değeri, akış klasörünün göreli dosya/klasör yolunun listesidir. Örneğin, requirements.txt akış klasörünün üst klasöründeyse, alana ekleyebilirsiniz ../requirements.txt
additional_includes
.
inputs:
question:
type: string
outputs:
output:
type: string
reference: ${answer_the_question_with_context.output}
environment:
python_requirements_txt: requirements.txt
additional_includes:
- ../requirements.txt
...
Dosya requirements.txt
akış klasörüne kopyalanır ve işlem oturumunuzu başlatmak için bu dosyayı kullanın.
Studio akış sayfasında işlem oturumunu güncelleştirme
Akış sayfasında, işlem oturumunu yönetmek için aşağıdaki seçenekleri kullanabilirsiniz:
- İşlem oturumu ayarlarını değiştirirseniz, sunucusuz işlem için VM boyutu ve e kullanıcı tarafından atanan yönetilen kimlik gibi işlem ayarlarını değiştirirsiniz. İşlem örneği kullanıyorsanız başka bir örneği kullanmak üzere değiştirebilirsiniz. Ayrıca,
- sunucusuz işlem için kullanıcı tarafından atanan yönetilen kimliği de değiştirebilir. VM boyutunu değiştirirseniz işlem oturumu yeni VM boyutuyla sıfırlanır. Bu öğe çok
- requirements.txt İstem akışında aç
requirements.txt
kullanıcı arabiriminden paketleri yükleyin; içine paket ekleyebilirsiniz. - Yüklü paketleri görüntüleme işlemi, işlem oturumunda yüklü olan paketleri gösterir. Temel görüntüye yüklenen paketleri ve akış klasöründeki
requirements.txt
dosyada belirtilen paketleri içerir. - İşlem oturumunu sıfırla geçerli işlem oturumunu siler ve aynı ortama sahip yeni bir oturum oluşturur. Paket çakışması sorunuyla karşılaşırsanız bu seçeneği deneyebilirsiniz.
- İşlem oturumunu durdur geçerli işlem oturumunu siler. Temel alınan işlemde etkin işlem oturumu yoksa sunucusuz işlem kaynağı da silinir.
Akış klasöründeki dosyaya paketler requirements.txt
ekleyerek bu akışı çalıştırmak için kullandığınız ortamı da özelleştirebilirsiniz. Bu dosyaya daha fazla paket ekledikten sonra şu seçeneklerden birini belirleyebilirsiniz:
- Tetikleyicileri
pip install -r requirements.txt
akış klasörüne kaydedin ve yükleyin. Yüklediğiniz paketlere bağlı olarak işlem birkaç dakika sürebilir. - Kaydet yalnızca dosyayı kaydeder
requirements.txt
. Paketleri daha sonra kendiniz yükleyebilirsiniz.
Not
konumunu ve hatta dosya adını requirements.txt
değiştirebilirsiniz, ancak akış klasöründeki dosyada da değiştirdiğinizden flow.dag.yaml
emin olun.
oturum temel görüntüsüne zaten eklediğimiz için ve requirements.txt
promptflow-tools
sürümünü promptflow
sabitlemeyin.
requirements.txt
yerel tekerlek dosyalarını desteklemez. Bunları görüntünüzde oluşturun ve içindeki özelleştirilmiş temel görüntüyü güncelleştirin flow.dag.yaml
. Özel temel görüntü oluşturma hakkında daha fazla bilgi edinin.
Azure DevOps'ta özel akışa paket ekleme
Azure DevOps'ta özel akış kullanmak istiyorsanız şu adımları izleyin:
Yönetilen kimliği çalışma alanına veya işlem örneğine atayın.
İşlem oturumu olarak sunucusuz işlem kullanın; kullanıcı tarafından atanan yönetilen kimliği çalışma alanına atamanız gerekir.
Kullanıcı tarafından atanan bir yönetilen kimlik oluşturun ve bu kimliği Azure DevOps kuruluşuna ekleyin. Daha fazla bilgi edinmek için bkz . Hizmet sorumlularını ve yönetilen kimlikleri kullanma.
Not
Kullanıcı Ekle düğmesi görünmüyorsa, büyük olasılıkla bu eylemi gerçekleştirmek için gerekli izinlere sahip değilsinizdir.
Çalışma alanına kullanıcı tarafından atanan kimlikleri ekleyin veya güncelleştirin.
Not
Lütfen kullanıcı tarafından atanan yönetilen kimliğin
Microsoft.KeyVault/vaults/read
çalışma alanı bağlantılı anahtar kasası üzerinde olduğundan emin olun.
İşlem örneğini işlem oturumu olarak kullanın; bir işlem örneğine kullanıcı tarafından atanan yönetilen kimlik atamanız gerekir.
Özel akış URL'nize ekleyin
{private}
. Örneğin, Azure DevOps'tan yüklemektest_package
istiyorsanız, öğesini ekleyin-i https://{private}@{test_feed_url_in_azure_devops}
requirements.txt
:test_feed
-i https://{private}@{test_feed_url_in_azure_devops} test_package
İşlem oturumu yapılandırmasında kullanıcı tarafından atanan yönetilen kimliği kullanarak belirtin.
Sunucusuz işlem kullanıyorsanız, İşlem oturumu çalışmıyorsa Gelişmiş ayarlarla başla bölümünde kullanıcı tarafından atanan yönetilen kimliği belirtin veya işlem oturumu çalışıyorsa İşlem oturumu ayarlarını değiştir düğmesini kullanın.
İşlem örneği kullanıyorsanız, işlem örneğine atadığınız kullanıcı tarafından atanan yönetilen kimliği kullanır.
Not
Bu yaklaşım temel olarak akış geliştirme aşamasında hızlı teste odaklanır. Bu akışı uç nokta olarak dağıtmak istiyorsanız lütfen bu özel akışı görüntünüzde derleyin ve içindeki temel görüntüyü özelleştir'i güncelleştirin flow.dag.yaml
. Özel temel görüntü oluşturma hakkında daha fazla bilgi edinin
İşlem oturumu için temel görüntüyü değiştirme
Varsayılan olarak en son istem akış tabanı görüntüsünü kullanırız. Farklı bir temel görüntü kullanmak istiyorsanız, özel bir görüntü oluşturabilirsiniz.
- Studio'da, işlem oturumu ayarları altındaki temel görüntü ayarlarında temel görüntüyü değiştirebilirsiniz.
Akış klasöründeki dosyada
flow.dag.yaml
altındakienvironment
yeni temel görüntüyü de belirtebilirsiniz.environment: image: <your-custom-image> python_requirements_txt: requirements.txt
Yeni temel görüntüyü kullanmak için işlem oturumunu sıfırlamanız gerekir. Bu işlem, yeni temel görüntüyü çeker ve paketleri yeniden yüklerken birkaç dakika sürer.
İşlem oturumu tarafından kullanılan sunucusuz örneği yönetme
İşlem oturumu olarak sunucusuz işlem kullandığınızda sunucusuz örneği yönetebilirsiniz. İşlem sayfasındaki işlem oturumu listesi sekmesinde sunucusuz örneği görüntüleyin.
Ayrıca, Etkin akışlar ve çalıştırmalar sekmesinin altında işlem üzerinde çalışan akışlara ve çalıştırmalara da erişebilirsiniz. Örneğin silinmesi akışı etkiler ve üzerinde çalışır.
İşlem oturumu, işlem kaynağı, akış ve kullanıcı arasındaki ilişki
- Tek bir kullanıcının birden çok işlem kaynağı (sunucusuz veya işlem örneği) olabilir. Farklı gereksinimler nedeniyle tek bir kullanıcının birden çok işlem kaynağı olabilir. Örneğin, bir kullanıcının farklı VM boyutuna veya kullanıcı tarafından atanan farklı yönetilen kimliğe sahip birden çok işlem kaynağı olabilir.
- Tek bir işlem kaynağı yalnızca tek bir kullanıcı tarafından kullanılabilir. İşlem kaynağı, tek bir kullanıcının özel geliştirme kutusu olarak kullanılır. Birden çok kullanıcı aynı işlem kaynaklarını paylaşamaz.
- Bir işlem kaynağı birden çok işlem oturumu barındırabilir. İşlem oturumu, temel alınan işlem kaynağında çalışan bir kapsayıcıdır. Örneğin, istem akışı yazma işleminin çok fazla işlem kaynağına ihtiyacı yoktur, bu nedenle tek bir işlem kaynağı aynı kullanıcıdan birden çok işlem oturumu barındırabilir.
- Bir işlem oturumu aynı anda yalnızca tek bir işlem kaynağına aittir. Ancak işlem oturumlarını silebilir veya durdurabilir ve başka bir işlem kaynağına yeniden dağıtabilirsiniz.
- Bir akışın yalnızca bir işlem oturumu olabilir. Her akış bağımsızdır ve işlem oturumu için akış klasöründeki temel görüntüyü ve gerekli python paketlerini tanımlar.
Çalışma zamanını işlem oturumuna değiştirme
İşlem oturumları, işlem örneği çalışma zamanlarına göre aşağıdaki avantajlara sahiptir:
- Oturumun ve temel alınan işlem yaşam döngüsünü otomatik olarak yönetin. Artık bunları el ile oluşturmanız ve yönetmelisiniz.
- Özel ortam oluşturmak yerine akış klasöründeki
requirements.txt
dosyaya paket ekleyerek paketleri kolayca özelleştirin.
Aşağıdaki adımları kullanarak işlem örneği çalışma zamanını işlem oturumuna geçirin:
- Akış klasöründe dosyanızı
requirements.txt
hazırlayın. temel görüntüye zaten eklediğimiz için vepromptflow-tools
requirements.txt
sürümünüpromptflow
sabitlemediğinizden emin olun. İşlem oturumu başlatıldığında paketleri dosyayarequirements.txt
yükler. - İşlem örneği çalışma zamanı oluşturmak için özel bir ortam oluşturursanız, görüntüyü ortam ayrıntı sayfasından alabilir ve akış klasöründeki dosyada belirtebilirsiniz
flow.dag.yaml
. Daha fazla bilgi edinmek için bkz . İşlem oturumu için temel görüntüyü değiştirme. Çalışma alanında sizin veya ilgili kullanıcı tarafından atanan yönetilen kimliğin görüntü için izni olduğundanacr pull
emin olun.
- İşlem kaynağı için, yaşam döngüsünü el ile yönetmek istiyorsanız mevcut işlem örneğini kullanmaya devam edebilir veya yaşam döngüsü sistem tarafından yönetilen sunucusuz işlemi deneyebilirsiniz.