Egyéni Python-kódtárak használata a Modellkiszolgálóval
Ebből a cikkből megtudhatja, hogyan vehet fel egyéni kódtárakat vagy tárakat egy privát tükrözési kiszolgálóról a modell naplózásakor, hogy a modellszolgáltatás-modell üzembe helyezésével használhassa őket. Az ebben az útmutatóban ismertetett lépéseket akkor kell elvégeznie, ha már rendelkezik üzembe helyezésre kész betanított ml-modellel, de mielőtt létrehoz egy Azure Databricks-modellkiszolgáló végpontot.
A modellfejlesztéshez gyakran szükség van olyan egyéni Python-kódtárak használatára, amelyek függvényeket tartalmaznak az előzetes vagy utólagos feldolgozáshoz, az egyéni modelldefiníciókhoz és más megosztott segédprogramokhoz. Emellett számos nagyvállalati biztonsági csapat támogatja a privát PyPi-tükrözések, például a Nexus vagy az Artifactory használatát az ellátási lánc támadásainak kockázatának csökkentése érdekében. Az Azure Databricks natív támogatást nyújt az egyéni kódtárak és tárak privát tükörből való telepítéséhez az Azure Databricks-munkaterületen.
Követelmények
- MLflow 1.29 vagy újabb
1. lépés: Függőségfájl feltöltése
A Databricks azt javasolja, hogy töltse fel a függőségi fájlt a Unity Catalog köteteibe. Másik lehetőségként feltöltheti a Databricks fájlrendszerbe (DBFS) az Azure Databricks felhasználói felületével.
Annak érdekében, hogy a tár elérhető legyen a jegyzetfüzet számára, telepítenie kell a jegyzetfüzetet %pip%
. A használatával %pip
telepíti a tárat az aktuális jegyzetfüzetben, és letölti a függőséget a fürtre.
2. lépés: A modell naplózása egyéni kódtár használatával
Fontos
Az ebben a szakaszban található útmutatás nem szükséges, ha a magántárat egy egyéni PyPi-tükörre mutatva telepíti.
Miután telepítette a kódtárat, és feltöltötte a Python-kerékfájlt Unity Catalog-kötetekre vagy DBFS-ekre, adja meg a következő kódot a szkriptben. Adja meg a extra_pip_requirements
függőségi fájl elérési útját.
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/volume/path/to/dependency.whl"])
A DBFS-hez használja a következőket:
mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/dbfs/path/to/dependency.whl"])
Ha egyéni kódtárral rendelkezik, a naplózás konfigurálásakor meg kell adnia a modellhez társított összes egyéni Python-kódtárat. Ezt a extra_pip_requirements
conda_env
log_model() paraméterrel teheti meg.
Fontos
A DBFS használata esetén mindenképpen adjon meg egy perjelet az /
elérési út előtt dbfs
naplózáskor extra_pip_requirements
. További információ a DBFS-útvonalakról az Azure Databricks fájljaival való munkában.
from mlflow.utils.environment import _mlflow_conda_env
conda_env = _mlflow_conda_env(
additional_conda_deps= None,
additional_pip_deps= ["/volumes/path/to/dependency"],
additional_conda_channels=None,
)
mlflow.pyfunc.log_model(..., conda_env = conda_env)
3. lépés: MLflow-modell frissítése Python-kerékfájlokkal
Az MLflow biztosítja a add_libraries_to_model() segédprogramot, amellyel a modell minden függőségét előre Python-kerékfájlként csomagolja. Ez az egyéni kódtárakat a modell mellett a modell függőségeiként megadott összes többi kódtár mellett csomagolja. Ez garantálja, hogy a modell által használt kódtárak pontosan azok, amelyek elérhetők a betanítási környezetből.
Az alábbi példában model_uri
a modellregisztrációs adatbázisra hivatkozik a szintaxis models:/<model-name>/<model-version>
használatával.
A modellregisztrációs adatbázis URI-ja használatakor ez a segédprogram létrehoz egy új verziót a meglévő regisztrált modell alatt.
import mlflow.models.utils
mlflow.models.utils.add_libraries_to_model(<model-uri>)
4. lépés: A modell kiszolgálása
Ha a modellregisztrációs adatbázisban elérhető a csomagokat tartalmazó új modellverzió, ezt a modellverziót hozzáadhatja egy végponthoz a Modellkiszolgálóval.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: