Aracılığıyla paylaş


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.

    Akış sayfasında işlem oturumu başlatmak için varsayılan ayarları içeren istem akışının ekran görüntüsü.

  • 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.

        Akış sayfasında işlem oturumu başlatmak için sunucusuz işlem kullanan gelişmiş ayarlara sahip istem akışının ekran görüntüsü.

        • 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.

          Akış sayfasında işlem oturumu başlatmak için işlem örneğini kullanan gelişmiş ayarlara sahip istem akışının ekran görüntüsü.

        • İşlem örneği oluşturma ve yönetme hakkında daha fazla bilgi edinin

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.yamlekleyebilirsiniz. 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.txtadditional_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ış sayfasındaki işlem oturumuna yönelik eylemlerin ekran görüntüsü.

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.

Akış sayfasında işlem oturumu için paketleri kaydetme ve yükleme seçeneğinin ekran görüntüsü.

Not

konumunu ve hatta dosya adını requirements.txtdeğ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.txtpromptflow-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:

  1. Yönetilen kimliği çalışma alanına veya işlem örneğine atayın.

    1. İşlem oturumu olarak sunucusuz işlem kullanın; kullanıcı tarafından atanan yönetilen kimliği çalışma alanına atamanız gerekir.

      1. 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.

      2. Ç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.

    2. İş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.

  2. Özel akış URL'nize ekleyin {private} . Örneğin, Azure DevOps'tan yüklemek test_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
    
  3. İşlem oturumu yapılandırmasında kullanıcı tarafından atanan yönetilen kimliği kullanarak belirtin.

    1. 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.

      Çalışma alanı kullanıcı tarafından atanan yönetilen kimliği kullanma geçişini gösteren ekran görüntüsü.

    2. İş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ış sayfasındaki işlem oturumunun temel görüntüsünü değiştirme işleminin ekran görüntüsü.

  • Akış klasöründeki dosyada flow.dag.yaml altındaki environment yeni temel görüntüyü de belirtebilirsiniz.

    Akış sayfasındaki bir işlem oturumu için temel görüntüyü özelleştirmeye yönelik eylemlerin ekran görüntüsü.

    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.

Sunucusuz örnek listesinin ekran görüntüsü.

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.

Sunucusuz örneğin işlem ayrıntıları sayfasının ekran görüntüsü.

İş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 ve promptflow-toolsrequirements.txtsürümünü promptflow sabitlemediğinizden emin olun. İşlem oturumu başlatıldığında paketleri dosyaya requirements.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ğundan acr pull emin olun.

Ortam ayrıntı sayfasında görüntü bulma ekran görüntüsü.

  • İş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.

Sonraki adımlar