Konfigurowanie obszaru zaplecza części Mlflow (SQLite) i magazynów artefaktów (magazynu obiektów blob systemu Azure)

0

Pytanie

Chciałbym skonfigurować Mlflow pod kątem następujących elementów :

  • Magazyn wewnętrzny (lokalny) : lokalne korzystanie z bazy danych SQLite do przechowywania obiektów Mlflow (run_id, parametry, wskaźniki...)
  • Repozytorium artefaktów (zdalne) : korzystanie z magazynu obiektów blob w moim magazyn Azure Data Lake Gen2 do przechowywania plików wyjściowych (версионных zestawów danych, szeregowany modeli, obrazów itp.), związanych z moim modelem
  • Serwer śledzenia : za pomocą czegoś, co wygląda jak ten zespół

z

mlflow server --backend-store-uri sqlite:///C:\sqlite\db\mlruns.db --default-artifact-root wasbs://container-name@storage_account_name.blob.core.windows.net/mlartifacts -h 0.0.0.0 -p 8000

Gdzie mlruns.db-jest to baza danych, którą stworzyłem w SQLite (wewnątrz folderu bazy danych), a mlartifacts-jest to folder, który stworzyłem wewnątrz kontenera obiektów blob w celu uzyskania wszystkich plików wyjściowych.

Uruchamiam tę pozycję, a następnie wykonać i uruchomić mlflow (lub uruchomić kedro, jak używam Kedro), ale prawie nic się nie dzieje. Baza danych jest pełna 12 tabel, ale wszystkie są puste, natomiast w środku jeziora danych nic się nie dzieje.

To, co chcę, powinno to wyglądać jak scenariusz 4 w dokumentacji.

Do sklepu artefaktów nie mogłem znaleźć szczegółowe instrukcje. Próbowałem przejrzeć dokumentację Mlflow tutaj, ale nie jest to bardzo przydatne (nadal jestem początkujący). Mówią, że:

MLflow spodziewa się, że poświadczenia dostępu do magazynu systemu Azure będą podane w wierszu AZURE_STORAGE_CONNECTION_STRING, zmiennych środowiskowych AZURE_STORAGE_ACCESS_KEY lub poświadczenia zostaną skonfigurowane w taki sposób, aby wartość domyślna stwierdzono(). klasa może je odebrać.

Jednak nawet po dodaniu zmiennych env w jeziorze danych, wydaje się, nic nie znajduje. Stworzyłem dwie zmienne env (w Windows 10):

  • AZURE_STORAGE_ACCESS_KEY = wasbs://container-name@storage_account_name.blob.core.windows.net/mlartifacts

  • AZURE_STORAGE_CONNECTION_STRING = DefaultEndpointsProtocol=https;Nazwa konta=przykład magazynu;Klucz konta=. Dostałem to, idąc tą drogą w portalu Azure : Konto przechowywania/klucz/Ciąg połączenia (wziął jeden z kluczy 2).

Twierdzą oni także, że :

Ponadto, aby uzyskać dostęp do magazynu obiektów blob systemu Azure, należy uruchomić pip-instalację systemu azure storage-blob oddzielnie (zarówno na kliencie, jak i na serwerze). Wreszcie, jeśli chcesz korzystać z DefaultAzureCredential, należy zainstalować azure-identity za pomocą pip; MLflow domyślnie nie ogłasza zależność od tych pakietów.

Dodałem je w swoje wymagania do projektu, ale co dokładnie one oznaczają podczas instalacji zarówno na kliencie, jak i na serwerze ? Jak azure-identity pomaga w konfiguracji ?

Nie mógłbyś, proszę mi pomóc z instrukcjami krok po kroku o tym, jak przeprowadzić pełną konfigurację ?

Z góry dziękuję !

azure mlflow mlops python
2021-11-23 16:46:18
1

Najlepsza odpowiedź

2

Musisz po prostu zainstalować AZURE_STORAGE_CONNECTION_STRING, AZURE_STORAGE_ACCESS_KEY jest opcjonalny, jeśli używana jest pierwsza zmienna środowiskowa (w każdym przypadku, AZURE_STORAGE_ACCESS_KEY musi być adres URL, a rzeczywisty klucz dostępu).

Stosunkowo azure-storage-blob pakiet musi być zainstalowany na obu serwerach, na których można uruchomić mlflow serveri na tej samej maszynie, na której uruchamiasz swój trening (klient).

2021-11-27 11:41:33

Dziękuję ci za odpowiedź ! Masz rację co do klucza AZURE_STORAGE_ACCESS_KEY, nie wiem, dlaczego popełniłem ten błąd. Ostatecznie, w moim przypadku to nie było brane pod uwagę, tak jak kiedyś AZURE_STORAGE_CONNECTION_STRING. Mi w końcu udało się zmusić go do pracy przy użyciu podwójnego ukośnika i wykorzystując port 5000 ==> mlflow server --backend-store-uri sqlite:///C:\\sqlite\\db\\mlruns.db --default-artifact-root wasbs://container-name@storage_account_name.blob.core.windows.net/mlartifacts -h 0.0.0.0 -p 5000
Downforu

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................