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ę !
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