Interaktív R-fejlesztés

ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)

Ez a cikk bemutatja, hogyan használhatja az R-t egy számítási példányon az Azure Machine Tanulás Studióban, amely egy R-kernelt futtat egy Jupyter-jegyzetfüzetben.

A népszerű RStudio IDE is működik. Az RStudio vagy a Posit Workbench egyéni tárolóba telepíthető egy számítási példányon. Ez azonban korlátozza az Azure Machine Tanulás-munkaterületre való olvasást és írást.

Fontos

A cikkben látható kód egy Azure Machine Tanulás számítási példányon működik. A számítási példány rendelkezik egy olyan környezettel és konfigurációs fájllal, amely a kód sikeres futtatásához szükséges.

Előfeltételek

R futtatása jegyzetfüzetben a studióban

Egy jegyzetfüzetet fog használni az Azure Machine Tanulás-munkaterületen egy számítási példányon.

  1. Bejelentkezés az Azure Machine Tanulás Studióba

  2. Nyissa meg a munkaterületet, ha még nincs megnyitva

  3. A bal oldali navigációs sávon válassza a Jegyzetfüzetek lehetőséget

  4. Új, RunR.ipynb nevű jegyzetfüzet létrehozása

    Tipp.

    Ha nem biztos abban, hogyan hozhat létre és használhat jegyzetfüzeteket a stúdióban, tekintse át a Jupyter-jegyzetfüzetek futtatását a munkaterületen

  5. Jelölje ki a jegyzetfüzetet.

  6. A jegyzetfüzet eszköztárán győződjön meg arról, hogy a számítási példány fut. Ha nem, indítsa el most.

  7. A jegyzetfüzet eszköztárán állítsa a kernelt R-re.

    Screenshot: Switch the notebook kernel to use R.

A jegyzetfüzet most már készen áll az R-parancsok futtatására.

Adatok elérése

Feltölthet fájlokat a munkaterület fájltároló-erőforrására, majd hozzáférhet ezekhez a fájlokhoz az R-ben. Az Azure-adategységekben vagy adattárakból származó adatokban tárolt fájlok esetében azonban telepítenie kell néhány csomagot.

Ez a szakasz azt ismerteti, hogyan töltheti be a Pythont és a reticulate csomagot az adategységek és adattárak R-be való betöltéséhez egy interaktív munkamenetből. A Python-csomag azureml-fsspec és az reticulate R-csomag használatával táblázatos adatokat olvashat Pandas DataFrame-ként. Ez a szakasz az adategységek és adattárak R-be data.framevaló beolvasására is példákat tartalmaz.

A csomagok telepítése:

  1. Hozzon létre egy új fájlt a számítási példányon setup.sh néven.

  2. Másolja a kódot a fájlba:

    #!/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. Válassza a Szkript mentése és futtatása a terminálban lehetőséget a szkript futtatásához

A telepítési szkript a következő lépéseket kezeli:

  • pipazureml-fsspec a számítási példány alapértelmezett Conda-környezetében települ
  • Szükség esetén telepíti az R-csomagot reticulate (a verziónak 1.26-os vagy újabbnak kell lennie)

Táblázatos adatok olvasása regisztrált adategységekből vagy adattárakból

Az Azure Machine Tanulás létrehozott adategységben tárolt adatok esetében az alábbi lépésekkel olvassa be a táblázatos fájlt egy Pandas DataFrame-be vagy egy R-bedata.frame:

Feljegyzés

A csak táblázatos adatokkal reticulate rendelkező fájlok olvasása működik.

  1. Győződjön meg arról, hogy a megfelelő verzióval rendelkezik reticulate. Az 1.26-nál kisebb verzió esetén próbáljon meg egy újabb számítási példányt használni.

    packageVersion("reticulate")
    
  2. A telepített Conda-környezet azureml-fsspec betöltése reticulate és beállítása

    library(reticulate)
    use_condaenv("azureml_py310_sdkv2")
    print("Environment is set")
  3. Keresse meg az adatfájl URI-elérési útját.

    1. Először szerezze be a munkaterület fogópontját

      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. Ezzel a kóddal kérje le az objektumot. Mindenképpen cserélje le <MY_NAME><MY_VERSION> az adategység nevét és számát.

      Tipp.

      A studióban válassza az Adatok lehetőséget a bal oldali navigációs sávon az adategység nevének és verziószámának megkereséséhez.

      # 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. Futtassa a kódot az URI lekéréséhez.

      py_run_string(py_code)
      print(paste("URI path is", py$data_uri))
  4. A Pandas olvasási függvényeinek használata a fájl(ok) R-környezetbe való beolvasásához

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

Az adattár URI-ját is használhatja egy regisztrált adattár különböző fájljainak eléréséhez, és ezeket az erőforrásokat beolvassa egy R-be data.frame.

  1. Ebben a formátumban hozzon létre egy Adattár URI-t a saját értékei alapján:

    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)
    

    Tipp.

    Az adattár URI formátumának megjegyzése helyett másolhatja és beillesztheti az adattár URI-ját a Studio felhasználói felületéről, ha ismeri azt az adattárat, ahol a fájl található:

    1. Navigáljon az R-be beolvasni kívánt fájlhoz/mappához
    2. Válassza ki a mellette lévő elipszist (...).
    3. Válassza ki az URI másolása menüt.
    4. Válassza ki az adattár URI-ját a jegyzetfüzetbe/szkriptbe való másoláshoz. Vegye figyelembe, hogy a kódban létre kell hoznia egy változót <path> . Screenshot highlighting the copy of the datastore URI.
  2. Hozzon létre egy filestore-objektumot a fent említett URI használatával:

fs <- azureml.fsspec$AzureMachineLearningFileSystem(uri, sep = "")
  1. Beolvasás R-be 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)

R csomagok telepítése

Egy számítási példány számos előre telepített R-csomaggal rendelkezik.

Más csomagok telepítéséhez explicit módon meg kell adnia a helyet és a függőségeket.

Tipp.

Ha egy másik számítási példányt hoz létre vagy használ, újra kell telepítenie a telepített csomagokat.

Például a csomag telepítéséhez tsibble :

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

Feljegyzés

Ha jupyter-jegyzetfüzetben futó R-munkameneten belül telepít csomagokat, dependencies = TRUE akkor szükség van rá. Ellenkező esetben a függő csomagok nem telepítenek automatikusan. A lib helyre is szükség van a megfelelő számítási példány helyére való telepítéshez.

R-kódtárak betöltése

Hozzáadás /home/azureuser az R-kódtár elérési útjára.

.libPaths("/home/azureuser")

Tipp.

A felhasználó által telepített kódtárak eléréséhez frissítenie kell az .libPaths egyes interaktív R-szkripteket. Adja hozzá ezt a kódot az egyes interaktív R-szkriptek vagy jegyzetfüzetek tetejére.

A libPath frissítése után a szokásos módon töltse be a kódtárakat.

library('tsibble')

R használata a jegyzetfüzetben

A korábban ismertetett problémákon túl használja az R-t, ahogyan bármely más környezetben, beleértve a helyi munkaállomást is. A jegyzetfüzetben vagy a szkriptben a jegyzetfüzet/szkript tárolási útvonalára olvashat és írhat.

Feljegyzés

  • Egy interaktív R-munkamenetből csak a munkaterület fájlrendszerére írhat.
  • Interaktív R-munkamenetben nem használhatja az MLflow-t (például a naplómodellt vagy a lekérdezési beállításjegyzéket).

Következő lépések