Share via


Visual Studio Code'da çevrimiçi uç noktalarda yerel olarak hata ayıklama

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)

Çevrimiçi uç noktaları Azure'a dağıtmadan önce yerel olarak test etmek ve hatalarını ayıklamak için Microsoft Visual Studio Code hata ayıklayıcısını kullanmayı öğrenin.

Azure Machine Learning yerel uç noktaları puanlama betiğinizi, ortam yapılandırmanızı, kod yapılandırmanızı ve makine öğrenmesi modelinizi yerel olarak test edip hatalarını ayıklamanıza yardımcı olur.

Önemli

Bu özellik şu anda genel önizlemededir. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için bu sürümü önermeyiz. 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ı.

Uç noktaları buluta dağıtmadan önce yerel olarak hata ayıklamak, kod ve yapılandırmanızdaki hataları daha önce yakalamanıza yardımcı olabilir. Visual Studio Code ile uç noktalarda yerel olarak hata ayıklamak için farklı seçenekleriniz vardır.

Bu kılavuz yerel uç noktalara odaklanır.

Aşağıdaki tabloda, sizin için en uygun olanı seçmenize yardımcı olacak senaryolara genel bir bakış sağlanmaktadır.

Senaryo Çıkarım HTTP sunucusu Yerel uç nokta
Docker görüntüsünü yeniden derlemeden yerel Python ortamını güncelleştirme Yes Hayır
Puanlama betiğini güncelleştirme Yes Yes
Dağıtım yapılandırmalarını güncelleştirme (dağıtım, ortam, kod, model) Hayır Evet
Visual Studio Code hata ayıklayıcısı tümleştirmesi Yes Yes

Önkoşullar

Bu kılavuzda, bilgisayarınızda aşağıdaki öğelerin yerel olarak yüklü olduğu varsayılır.

Daha fazla bilgi için sisteminizi çevrimiçi uç noktaları dağıtmak üzere hazırlama kılavuzuna bakın.

Bu makaledeki örnekler, azureml-examples GitHub deposunda yer alan kod örneklerini temel alır. YAML ve diğer dosyaları kopyalamak/yapıştırmak zorunda kalmadan komutları yerel olarak çalıştırmak için depoyu kopyalayın ve ardından dizinleri azureml-examples/cli olarak değiştirin:

git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli

Azure CLI için varsayılan ayarları henüz ayarlamadıysanız varsayılan ayarlarınızı kaydedin. Aboneliğinizin, çalışma alanınızın ve kaynak grubunuzun değerlerini birden çok kez geçirmekten kaçınmak için aşağıdaki komutları kullanın. Aşağıdaki parametreleri kendi yapılandırmanıza yönelik değerlerle değiştirin:

  • <subscription> öğesini Azure abonelik kimliğinizle değiştirin.
  • değerini Azure Machine Learning çalışma alanı adınızla değiştirin <workspace> .
  • değerini, çalışma alanınızı içeren Azure kaynak grubuyla değiştirin <resource-group> .
  • değerini, çalışma alanınızı içeren Azure bölgesiyle değiştirin <location> .
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>

İpucu

komutunu kullanarak az configure -l geçerli varsayılanlarınızın ne olduğunu görebilirsiniz.

Geliştirme kapsayıcısı başlatma

Azure Machine Learning yerel uç noktaları, yerel hata ayıklama ortamı oluşturmak ve yapılandırmak için Docker ve Visual Studio Code geliştirme kapsayıcılarını (geliştirme kapsayıcıları) kullanır. Geliştirme kapsayıcılarıyla, Docker kapsayıcısının içinden Visual Studio Code özelliklerinden yararlanabilirsiniz. Geliştirme kapsayıcıları hakkında daha fazla bilgi için bkz . Geliştirme kapsayıcısı oluşturma.

Visual Studio Code'da çevrimiçi uç noktalarda yerel olarak hata ayıklamak için, oluştururken veya güncelleştirirken ve Azure Machine Learning çevrimiçi dağıtımında bayrağını kullanın --vscode-debug . Aşağıdaki komut örnek deposundan bir dağıtım örneği kullanır:

az ml online-deployment create --file endpoints/online/managed/sample/blue-deployment.yml --local --vscode-debug

Önemli

Linux için Windows Alt Sistemi'da (WSL), PATH ortam değişkeninizi Visual Studio Code yürütülebilir dosyasının yolunu içerecek şekilde güncelleştirmeniz veya WSL birlikte çalışma özelliğini kullanmanız gerekir. Daha fazla bilgi için bkz . Linux ile Windows birlikte çalışabilirliği.

Docker görüntüsü yerel olarak oluşturulur. Tüm ortam yapılandırması veya model dosyası hataları, işlemin bu aşamasında ortaya çıkar.

Not

Yeni veya güncelleştirilmiş bir geliştirme kapsayıcısını ilk kez başlattığınızda bu işlem birkaç dakika sürebilir.

Görüntü başarıyla derledikten sonra geliştirme kapsayıcınız bir Visual Studio Code penceresinde açılır.

Geliştirme kapsayıcısında dağıtımlarınızda hata ayıklamak için birkaç Visual Studio Code uzantısı kullanacaksınız. Azure Machine Learning bu uzantıları geliştirme kapsayıcınıza otomatik olarak yükler.

Önemli

Hata ayıklama oturumunuzu başlatmadan önce Visual Studio Code uzantılarının geliştirme kapsayıcınıza yüklenmesinin tamamlandığından emin olun.

Hata ayıklama oturumunu başlatma

Ortamınız ayarlandıktan sonra, dağıtımınızı yerel olarak test etmek ve hatalarını ayıklamak için Visual Studio Code hata ayıklayıcısını kullanın.

  1. Puanlama betiğinizi Visual Studio Code'da açın.

    İpucu

    Daha önce dağıtılan uç nokta tarafından kullanılan score.py betiği, kopyaladığınız depoda azureml-samples/cli/endpoints/online/managed/sample/score.py bulunur. Ancak, bu kılavuzdaki adımlar puanlama betiğiyle birlikte çalışır.

  2. Puanlama betiğinizin herhangi bir yerinde kesme noktası ayarlayın.

    • Başlangıç davranışında hata ayıklamak için kesme noktalarınızı işlevin init içine yerleştirin.
    • Puanlama davranışında hata ayıklamak için kesme noktalarınızı işlevin run içine yerleştirin.
  3. Visual Studio Code İş görünümünü seçin.

  4. Çalıştır ve Hata Ayıkla açılan listesinde AzureML: Yerel Uç Noktada Hata Ayıkla'yı seçerek uç noktanızda yerel olarak hata ayıklamaya başlayın.

    Çalıştırma görünümünün Kesme Noktaları bölümünde şunları denetleyin:

    • Yükseltilmiş Özel Durumlarişaretlenmemiş
    • Yakalanmayan Özel Durumlar denetlendi

    Azure Machine Learning Hata Ayıklama Yerel Ortamda hata ayıklama profilini yapılandırmayı gösteren ekran görüntüsü.

  5. Hata ayıklama oturumunuzu başlatmak için Çalıştır ve Hata Ayıkla açılan listesinin yanındaki yürüt simgesini seçin.

    Bu noktada, işlevinizdeki init kesme noktaları yakalanmış durumdadır. Hata ayıklama eylemlerini kullanarak kodunuzda adım adım ilerleyin. Hata ayıklama eylemleri hakkında daha fazla bilgi için hata ayıklama eylemleri kılavuzuna bakın.

Visual Studio Code hata ayıklayıcısı hakkında daha fazla bilgi için bkz . Hata Ayıklama.

Uç noktanızda hata ayıklama

Uygulamanız hata ayıklayıcıda çalıştığına göre puanlama betiğinizde hata ayıklamak için bir tahminde bulunmayı deneyin.

ml Yerel uç noktanıza istekte bulunmak için uzantı invoke komutunu kullanın.

az ml online-endpoint invoke --name <ENDPOINT-NAME> --request-file <REQUEST-FILE> --local

Bu durumda, <REQUEST-FILE> aşağıdaki JSON'a benzer tahminlerde bulunmak için modelin giriş veri örneklerini içeren bir JSON dosyasıdır:

{"data": [
    [1,2,3,4,5,6,7,8,9,10], 
    [10,9,8,7,6,5,4,3,2,1]
]}

İpucu

Puanlama URI'si, uç noktanızın istekleri dinlediği adrestir. ml Puanlama URI'sini almak için uzantıyı kullanın.

az ml online-endpoint show --name <ENDPOINT-NAME> --local

Çıkış aşağıdakine benzer görünmelidir:

{
 "auth_mode": "aml_token",
 "location": "local",
 "name": "my-new-endpoint",
 "properties": {},
 "provisioning_state": "Succeeded",
 "scoring_uri": "http://localhost:5001/score",
 "tags": {},
 "traffic": {},
 "type": "online"
}

Puanlama URI'sini özelliğinde scoring_uri bulabilirsiniz.

Bu noktada, işlevinizdeki run kesme noktaları yakalanmış durumdadır. Hata ayıklama eylemlerini kullanarak kodunuzda adım adım ilerleyin. Hata ayıklama eylemleri hakkında daha fazla bilgi için hata ayıklama eylemleri kılavuzuna bakın.

Uç noktanızı düzenleme

Uygulamanızda hata ayıklarken ve sorun giderirken puanlama betiğinizi ve yapılandırmalarınızı güncelleştirmeniz gereken senaryolar vardır.

Kodunuzda değişiklik uygulamak için:

  1. Kodunuzu güncelleştirin.
  2. Komut paletindeki Developer: Reload Window komutu kullanarak hata ayıklama oturumunuzu yeniden başlatın. Daha fazla bilgi için komut paleti belgelerine bakın.

Not

Kodunuzu ve uç nokta varlıklarınızı içeren dizin geliştirme kapsayıcısına bağlandığından, geliştirme kapsayıcısında yaptığınız tüm değişiklikler yerel dosya sisteminizle eşitlenir.

Ortamınızda ve uç nokta yapılandırmanızda yapılan güncelleştirmeleri içeren daha kapsamlı değişiklikler için uzantı update komutunu kullanınml. Bunun yapılması, değişikliklerinizle birlikte tam bir görüntü yeniden oluşturmayı tetikler.

az ml online-deployment update --file <DEPLOYMENT-YAML-SPECIFICATION-FILE> --local --vscode-debug

Güncelleştirilmiş görüntü derlenip geliştirme kapsayıcınız başlatıldıktan sonra, güncelleştirilmiş uç noktanızı test etmek ve sorunlarını gidermek için Visual Studio Code hata ayıklayıcısını kullanın.