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
- Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot. Próbálja ki az Azure Machine Tanulás ingyenes vagy fizetős verzióját
- Azure Machine-Tanulás munkaterület és számítási példány
- A Jupyter-notebookok Azure Machine Tanulás Studióban való használatának alapszintű ismertetése. További információkért tekintse meg a modellfejlesztést egy felhőbeli munkaállomáson .
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.
Bejelentkezés az Azure Machine Tanulás Studióba
Nyissa meg a munkaterületet, ha még nincs megnyitva
A bal oldali navigációs sávon válassza a Jegyzetfüzetek lehetőséget
Ú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
Jelölje ki a jegyzetfüzetet.
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.
A jegyzetfüzet eszköztárán állítsa a kernelt R-re.
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.frame
való beolvasására is példákat tartalmaz.
A csomagok telepítése:
Hozzon létre egy új fájlt a számítási példányon setup.sh néven.
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
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:
pip
azureml-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.
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")
A telepített Conda-környezet
azureml-fsspec
betöltésereticulate
és beállításalibrary(reticulate) use_condaenv("azureml_py310_sdkv2") print("Environment is set")
Keresse meg az adatfájl URI-elérési útját.
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")
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"
Futtassa a kódot az URI lekéréséhez.
py_run_string(py_code) print(paste("URI path is", py$data_uri))
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
.
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ó:
- Navigáljon az R-be beolvasni kívánt fájlhoz/mappához
- Válassza ki a mellette lévő elipszist (...).
- Válassza ki az URI másolása menüt.
- 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>
.
Hozzon létre egy filestore-objektumot a fent említett URI használatával:
fs <- azureml.fsspec$AzureMachineLearningFileSystem(uri, sep = "")
- 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).