Etkileşimli R geliştirme
ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)
Bu makalede, Jupyter not defterinde R çekirdeği çalıştıran bir işlem örneğinde Azure Machine Learning stüdyosu R'nin nasıl kullanılacağı gösterilmektedir.
Popüler RStudio IDE de çalışır. RStudio veya Posit Workbench'i bir işlem örneğindeki özel bir kapsayıcıya yükleyebilirsiniz. Ancak bunun Azure Machine Learning çalışma alanınızda okuma ve yazmayla ilgili sınırlamaları vardır.
Önemli
Bu makalede gösterilen kod bir Azure Machine Learning işlem örneğinde çalışır. İşlem örneğinde kodun başarıyla çalışması için gereken bir ortam ve yapılandırma dosyası vardır.
Önkoşullar
- Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. Azure Machine Learning'in ücretsiz veya ücretli sürümünü bugün deneyin
- Azure Machine Learning çalışma alanı ve işlem örneği
- Azure Machine Learning stüdyosu'da Jupyter not defterlerini kullanmanın temel bir anlaması. Daha fazla bilgi için bulut iş istasyonu kaynağında model geliştirme bölümünü ziyaret edin.
Studio'da bir not defterinde R çalıştırma
Azure Machine Learning çalışma alanınızda bir işlem örneğinde bir not defteri kullanacaksınız.
Azure Machine Learning stüdyosu oturum açma
Henüz açık değilse çalışma alanınızı açın
Sol gezinti bölmesinde Not Defterleri'ni seçin
RunR.ipynb adlı yeni bir not defteri oluşturma
Not defterini seçin.
Not defteri araç çubuğunda işlem örneğinizin çalıştığından emin olun. Aksi takdirde hemen başlatın.
Not defteri araç çubuğunda çekirdeği R olarak değiştirin.
Not defteriniz artık R komutlarını çalıştırmaya hazırdır.
Verilere erişme
Dosyaları çalışma alanı dosya depolama kaynağınıza yükleyebilir ve ardından bu dosyalara R'de erişebilirsiniz. Ancak, Azure veri varlıklarında depolanan dosyalar veya veri depolarındaki veriler için bazı paketler yüklemeniz gerekir.
Bu bölümde, etkileşimli bir oturumdan veri varlıklarınızı ve reticulate
veri depolarınızı R'ye yüklemek için Python ve paketin nasıl kullanılacağı açıklanmaktadır. Tablo verilerini Pandas DataFrames olarak okumak için Python paketini ve reticulate
R paketini kullanırsınızazureml-fsspec
. Bu bölüm ayrıca veri varlıklarını ve veri depolarını R'ye data.frame
okuma örneği içerir.
Bu paketleri yüklemek için:
İşlem örneğinde setup.sh adlı yeni bir dosya oluşturun.
Bu kodu dosyaya kopyalayın:
#!/bin/bash set -e # Installs azureml-fsspec in default conda environment # Does not need to run as sudo eval "$(conda shell.bash hook)" conda activate azureml_py310_sdkv2 pip install azureml-fsspec conda deactivate # Checks that version 1.26 of reticulate is installed (needs to be done as sudo) sudo -u azureuser -i <<'EOF' R -e "if (packageVersion('reticulate') >= 1.26) message('Version OK') else install.packages('reticulate')" EOF
Betiği çalıştırmak için Betiği terminalde kaydet ve çalıştır'ı seçin
Yükleme betiği şu adımları işler:
pip
azureml-fsspec
işlem örneği için varsayılan conda ortamına yükler- Gerekirse R
reticulate
paketini yükler (sürüm 1.26 veya üzeri olmalıdır)
Kayıtlı veri varlıklarından veya veri depolarından tablosal verileri okuma
Azure Machine Learning'de oluşturulan bir veri varlığında depolanan veriler için, bu tablolu dosyayı Pandas DataFrame'e veya R'ye data.frame
okumak için şu adımları kullanın:
Not
Ile bir dosyayı reticulate
okumak yalnızca tablosal verilerle çalışır.
doğru sürümüne sahip olduğunuzdan
reticulate
emin olun. 1.26'dan küçük bir sürüm için daha yeni bir işlem örneği kullanmayı deneyin.packageVersion("reticulate")
Yüklendiği conda ortamını
azureml-fsspec
yüklemereticulate
ve ayarlamalibrary(reticulate) use_condaenv("azureml_py310_sdkv2") print("Environment is set")
Veri dosyasının URI yolunu bulun.
İlk olarak, çalışma alanınıza bir tanıtıcı alın
py_code <- "from azure.identity import DefaultAzureCredential from azure.ai.ml import MLClient credential = DefaultAzureCredential() ml_client = MLClient.from_config(credential=credential)" py_run_string(py_code) print("ml_client is configured")
Varlığı almak için bu kodu kullanın. ve
<MY_VERSION>
değerini veri varlığınızın adı ve numarasıyla değiştirdiğinden<MY_NAME>
emin olun.İpucu
Studio'da, sol gezinti bölmesinde Veri'yi seçerek veri varlığınızın adını ve sürüm numarasını bulun.
# Replace <MY_NAME> and <MY_VERSION> with your values py_code <- "my_name = '<MY_NAME>' my_version = '<MY_VERSION>' data_asset = ml_client.data.get(name=my_name, version=my_version) data_uri = data_asset.path"
URI'yi almak için kodu çalıştırın.
py_run_string(py_code) print(paste("URI path is", py$data_uri))
Dosyayı veya dosyaları R ortamına okumak için Pandas okuma işlevlerini kullanın.
pd <- import("pandas") cc <- pd$read_csv(py$data_uri) head(cc)
Kayıtlı bir Datastore'daki farklı dosyalara erişmek ve bu kaynakları R data.frame
olarak okumak için datastore URI'sini de kullanabilirsiniz.
Bu biçimde, kendi değerlerinizi kullanarak bir Datastore URI'sini oluşturun:
subscription <- '<subscription_id>' resource_group <- '<resource_group>' workspace <- '<workspace>' datastore_name <- '<datastore>' path_on_datastore <- '<path>' uri <- paste0("azureml://subscriptions/", subscription, "/resourcegroups/", resource_group, "/workspaces/", workspace, "/datastores/", datastore_name, "/paths/", path_on_datastore)
İpucu
Veri deposu URI biçimini anımsamak yerine, dosyanızın bulunduğu veri depolarını biliyorsanız, Veri deposu URI'sini Studio kullanıcı arabiriminden kopyalayıp yapıştırabilirsiniz:
- R'ye okumak istediğiniz dosya/klasöre gidin
- Yanındaki üç noktayı (...) seçin.
- URI Kopyala menüsünden öğesini seçin.
- Not defterinize/betiğinize kopyalamak için Datastore URI'sini seçin.
Kodda için
<path>
bir değişken oluşturmanız gerektiğini unutmayın.
Daha önce bahsedilen URI'yi kullanarak bir dosya deposu nesnesi oluşturun:
fs <- azureml.fsspec$AzureMachineLearningFileSystem(uri, sep = "")
- R'ye
data.frame
okuma:
df <- with(fs$open("<path>)", "r") %as% f, {
x <- as.character(f$read(), encoding = "utf-8")
read.csv(textConnection(x), header = TRUE, sep = ",", stringsAsFactors = FALSE)
})
print(df)
R paketlerini yükleme
İşlem örneğinde önceden yüklenmiş birçok R paketi vardır.
Diğer paketleri yüklemek için konumu ve bağımlılıkları açıkça belirtmeniz gerekir.
İpucu
Farklı bir işlem örneği oluşturduğunuzda veya kullandığınızda, yüklediğiniz paketleri yeniden yüklemeniz gerekir.
Örneğin, paketi yüklemek tsibble
için:
install.packages("tsibble",
dependencies = TRUE,
lib = "/home/azureuser")
Not
Paketleri Jupyter not defterinde çalışan bir R oturumuna yüklerseniz gereklidir dependencies = TRUE
. Aksi takdirde, bağımlı paketler otomatik olarak yüklenmez. Doğru işlem örneği konumuna yüklemek için lib konumu da gereklidir.
R kitaplıklarını yükleme
R kitaplığı yoluna ekleyin /home/azureuser
.
.libPaths("/home/azureuser")
İpucu
Kullanıcı tarafından yüklenen kitaplıklara erişmek için her etkileşimli R betiğinde öğesini güncelleştirmeniz .libPaths
gerekir. Bu kodu her etkileşimli R betiğinin veya not defterinin en üstüne ekleyin.
LibPath güncelleştirildikten sonra kitaplıkları her zamanki gibi yükleyin.
library('tsibble')
Not defterinde R kullanma
Daha önce açıklanan sorunların ötesinde, yerel iş istasyonunuz da dahil olmak üzere diğer tüm ortamlarda olduğu gibi R kullanın. Not defterinizde veya betiğinizde, not defterinin/betiğin depolandığı yolu okuyabilir ve yazabilirsiniz.
Not
- Etkileşimli R oturumundan yalnızca çalışma alanı dosya sistemine yazabilirsiniz.
- Etkileşimli R oturumundan MLflow ile (günlük modeli veya sorgu kayıt defteri gibi) etkileşim kuramazsınız.