Bagikan melalui


Pengembangan R interaktif

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)

Artikel ini memperlihatkan cara menggunakan R di studio Azure Pembelajaran Mesin pada instans komputasi yang menjalankan kernel R di buku catatan Jupyter.

RStudio IDE populer juga berfungsi. Anda dapat menginstal RStudio atau Posit Workbench dalam kontainer kustom pada instans komputasi. Namun, ini memiliki batasan dalam membaca dan menulis ke ruang kerja Azure Pembelajaran Mesin Anda.

Penting

Kode yang ditampilkan dalam artikel ini berfungsi pada instans komputasi Azure Pembelajaran Mesin. Instans komputasi memiliki lingkungan dan file konfigurasi yang diperlukan agar kode berhasil dijalankan.

Prasyarat

Menjalankan R di buku catatan di studio

Anda akan menggunakan buku catatan di ruang kerja Azure Pembelajaran Mesin, pada instans komputasi.

  1. Masuk ke Studio Azure Machine Learning

  2. Buka ruang kerja Anda jika belum dibuka

  3. Di navigasi kiri, pilih Buku Catatan

  4. Membuat buku catatan baru, bernama RunR.ipynb

    Tip

    Jika Anda tidak yakin cara membuat dan bekerja dengan buku catatan di studio, tinjau Menjalankan buku catatan Jupyter di ruang kerja Anda

  5. Pilih buku catatan.

  6. Pada toolbar notebook, pastikan instans komputasi Anda berjalan. Jika tidak, mulai sekarang.

  7. Pada toolbar notebook, alihkan kernel ke R.

    Cuplikan layar: Alihkan kernel notebook untuk menggunakan R.

Notebook Anda sekarang siap untuk menjalankan perintah R.

Mengakses data

Anda dapat mengunggah file ke sumber daya penyimpanan file ruang kerja Anda, lalu mengakses file tersebut di R. Namun, untuk file yang disimpan di aset data Azure atau data dari datastore, Anda harus menginstal beberapa paket.

Bagian ini menjelaskan cara menggunakan Python dan reticulate paket untuk memuat aset data dan datastore Anda ke R, dari sesi interaktif. Anda menggunakan azureml-fsspec paket Python dan reticulate paket R untuk membaca data tabular sebagai Pandas DataFrames. Bagian ini juga mencakup contoh membaca aset data dan datastore ke dalam R data.frame.

Untuk menginstal paket ini:

  1. Buat file baru pada instans komputasi, yang disebut setup.sh.

  2. Salin kode berikut ke dalam file:

    #!/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
    
  3. Pilih Simpan dan jalankan skrip di terminal untuk menjalankan skrip

Skrip penginstalan menangani langkah-langkah berikut:

  • pip menginstal di lingkungan conda default untuk instans azureml-fsspec komputasi
  • Menginstal paket R reticulate jika perlu (versi harus 1,26 atau lebih tinggi)

Membaca data tabular dari aset data atau datastore terdaftar

Untuk data yang disimpan dalam aset data yang dibuat di Azure Pembelajaran Mesin, gunakan langkah-langkah ini untuk membaca file tabular tersebut ke dalam Pandas DataFrame atau R data.frame:

Catatan

Membaca file hanya berfungsi dengan reticulate data tabular.

  1. Pastikan Anda memiliki versi yang benar dari reticulate. Untuk versi kurang dari 1.26, coba gunakan instans komputasi yang lebih baru.

    packageVersion("reticulate")
    
  2. Muat reticulate dan atur lingkungan conda tempat azureml-fsspec diinstal

    library(reticulate)
    use_condaenv("azureml_py310_sdkv2")
    print("Environment is set")
  3. Temukan jalur URI ke file data.

    1. Pertama, dapatkan handel ke ruang kerja Anda

      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")
    2. Gunakan kode ini untuk mengambil aset. Pastikan untuk mengganti <MY_NAME> dan <MY_VERSION> dengan nama dan jumlah aset data Anda.

      Tip

      Di studio, pilih Data di navigasi kiri untuk menemukan nama dan nomor versi aset data Anda.

      # 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"
    3. Untuk mengambil URI, jalankan kode.

      py_run_string(py_code)
      print(paste("URI path is", py$data_uri))
  4. Gunakan fungsi baca Pandas untuk membaca file atau file ke lingkungan R.

    pd <- import("pandas")
    cc <- pd$read_csv(py$data_uri)
    head(cc)

Anda juga dapat menggunakan URI Datastore untuk mengakses file yang berbeda di Datastore terdaftar, dan membaca sumber daya ini ke dalam R data.frame.

  1. Dalam format ini, buat URI Datastore, menggunakan nilai Anda sendiri:

    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)
    

    Tip

    Alih-alih mengingat format URI datastore, Anda dapat menyalin dan menempelkan URI datastore dari Studio UI, jika Anda mengetahui datastore tempat file Anda berada:

    1. Navigasi ke file/folder yang ingin Anda baca ke R
    2. Pilih elipsis (...) di sampingnya.
    3. Pilih dari menu Salin URI.
    4. Pilih URI Datastore untuk disalin ke buku catatan/skrip Anda. Perhatikan bahwa Anda harus membuat variabel untuk <path> dalam kode. Cuplikan layar menyoroti salinan URI datastore.
  2. Buat objek filestore menggunakan URI yang disebutkan sebelumnya:

fs <- azureml.fsspec$AzureMachineLearningFileSystem(uri, sep = "")
  1. Baca ke dalam R data.frame:
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)

Menginstal paket R

Instans komputasi memiliki banyak paket R yang telah diinstal sebelumnya.

Untuk menginstal paket lain, Anda harus secara eksplisit menyatakan lokasi dan dependensi.

Tip

Saat membuat atau menggunakan instans komputasi yang berbeda, Anda harus menginstal ulang paket apa pun yang telah Anda instal.

Misalnya, untuk menginstal tsibble paket:

install.packages("tsibble", 
                 dependencies = TRUE,
                 lib = "/home/azureuser")

Catatan

Jika Anda menginstal paket dalam sesi R yang berjalan di notebook Jupyter, dependencies = TRUE diperlukan. Jika tidak, paket dependen tidak akan diinstal secara otomatis. Lokasi lib juga diperlukan untuk menginstal di lokasi instans komputasi yang benar.

Muat pustaka R

Tambahkan /home/azureuser ke jalur pustaka R.

.libPaths("/home/azureuser")

Tip

Anda harus memperbarui .libPaths di setiap skrip R interaktif untuk mengakses pustaka yang diinstal pengguna. Tambahkan kode ini ke bagian atas setiap skrip atau notebook R interaktif.

Setelah libPath diperbarui, muat pustaka seperti biasa.

library('tsibble')

Menggunakan R di buku catatan

Di luar masalah yang dijelaskan sebelumnya, gunakan R seperti yang Anda lakukan di lingkungan lain, termasuk stasiun kerja lokal Anda. Di buku catatan atau skrip, Anda bisa membaca dan menulis ke jalur tempat buku catatan/skrip disimpan.

Catatan

  • Dari sesi R interaktif, Anda hanya dapat menulis ke sistem file ruang kerja.
  • Dari sesi R interaktif, Anda tidak dapat berinteraksi dengan MLflow (seperti model log atau registri kueri).

Langkah berikutnya