Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az oldal bemutatja, hogyan használhat expressz telepítéseket az Ön modellkiszolgálási végpontjain. Az Express üzembe helyezések csökkentik az üzembe helyezési időt, és a modellkiszolgáló környezetet azonosan tartják a modell betanítási környezetével.
Note
Az Express telepítéseket korábban kiszolgáló nélküli működésre optimalizált telepítéseknek nevezték.
Mik azok a gyorstelepítések?
Az Express üzembe helyezések a modell regisztrálása során becsomagolják és előkészítik a modell-artefaktumokat kiszolgáló nélküli jegyzetfüzet-környezetekben. Ez felgyorsítja a végpontok üzembe helyezését, és konzisztensen tartja a betanítási és kiszolgáló környezeteket.
Nem expressz üzemelő példányokban a modellösszetevők és a környezetek tárolókba vannak csomagolva az üzembe helyezéskor, így előfordulhat, hogy a kiszolgáló környezet nem felel meg a modell betanítása során használtnak.
Standard és expressz telepítések
Az alábbi táblázat egy szabványos és egy expressz üzembe helyezést hasonlít össze.
| Tulajdonság | Normál üzembe helyezés | Expressz üzembe helyezés |
|---|---|---|
| Amikor a környezet felépül | A konténerkép az üzembe helyezéskor épül fel. | A rendszer a modell regisztrálásakor csomagolja az összetevőket és a környezetet. |
| Betanítási és kiszolgáló környezet | Előfordulhat, hogy a kiszolgáló környezet nem egyezik a betanítási környezettel. | A kiszolgálókörnyezet megegyezik a regisztrált jegyzetfüzet-környezettel. |
| Üzembe helyezés sebessége | Lassabb. Az üzembe helyezés a konténerkép létrehozására vár. | Gyorsabb. Az üzembe helyezés kihagyja a konténerkép felépítését. |
| Regisztrációs sebesség | Szabvány | A modelltől és a környezet méretétől függően néhány másodperctől akár egy percig terjedő többletidőt ad a csomagolási időhöz. |
| Üzembehelyezési eseménynapló | A konténerkép létrehozási eseményeit jeleníti meg. | Nem jeleníti meg a tárolórendszerkép-létrehozási eseményeket. |
Az expressz telepítések az egyszeri csomagolási feladatot a modell regisztrációjára helyezik át, ami a modell és a környezet méretétől függően néhány másodperccel, legfeljebb egy perccel növeli egy register_model hívás idejét. Cserébe az üzembe helyezés jelentősen gyorsabb: teljesen kihagyja a tárolólemezkép-buildet. Ez a build az üzembehelyezési hibák gyakori forrása is (függőségek feloldása, rendszerkép-összeállítási hibák), ezért a kihagyás a problémák egy teljes csoportját eltávolítja. Az expressz modell üzembehelyezési eseménynaplója nem tartalmaz tárolóépítési eseményeket.
Requirements
Az expressz üzembehelyezési végpontok követelményei megegyeznek a végpontot kiszolgáló modell követelményeivel. Lásd: Követelmények.
Ráadásul:
- A modellnek egyéni modellnek kell lennie
- A modellt egy kiszolgáló nélküli jegyzetfüzetben kell naplózni és regisztrálni a 3. vagy újabb verzióval
- A modellt naplózni és regisztrálni kell a
mlflow>=3.12és adatabricks-sdk>=0.102.0segítségével - A modellt regisztrálni kell a Unity Katalógusban. A kiszolgáló számítási erőforrásnak meg kell egyeznie azzal a számítási erőforrással, amelyről a modellt regisztrálták. Regisztrálhat egy normál kiszolgáló nélküli jegyzetfüzetből, hogy processzoron szolgáljon, vagy kiszolgáló nélküli GPU-számításból , hogy GPU-n szolgáljon.
- A modell maximális környezetmérete 200 GB
Note
Ha egyéni LLM-et szeretne kiszolgálni GPU-s számítási kapacitáson Express üzembe helyezésekkel, tekintse meg az Egyéni LLM-ek kiszolgálása egyéni modellkiszolgálással.
Újrarangsoroló telepítése GPU-n
Ez az útmutató bemutatja a BAAI/bge-reranker-base, egy cross-encoder újrarangsoroló üzembe helyezését, amely az alapján pontozza a dokumentumokat, hogy azok mennyire adnak jó választ egy lekérdezésre. Beállítja a környezetet, naplózza és regisztrálja a modellt expressz csomagolással, üzembe helyezi a végpontot, és lekérdezi azt.
A GPU-telepítések gyakran meghiúsulnak a függőségek verzióütközései miatt, például a torch és a CUDA között. Az Express telepítések ezt kétféleképpen oldják meg:
- A minden szerver nélküli GPU-környezetverzióban előre telepített, rögzített és közzétett kódtárkészlet a kiszolgálás során pontosan ugyanúgy rendelkezésre áll, mint a notebookban – ugyanaz a környezetverzió, ugyanazok a verziók. Ezek a kódtárak nincsenek újracsomagolva.
- A notebook-munkamenetben telepített minden további függőség (például a(z)
%pip installhasználatával) a regisztráció során becsomagolásra kerül, és kiszolgáláskor visszaállításra kerül.
Mindez azt jelenti, hogy a notebookban futó modell a kiszolgálásra történő telepítés után is tovább működik.
1. lépés: Kiszolgáló nélküli GPU-jegyzetfüzet beállítása
Hozzon létre egy notebookot serverless GPU-számítással egy A10 GPU-val, és válassza ki az 5-ös verziójú AI-környezetet. Az AI-környezet tartalmazza a PyTorchot és a gyakori gépi tanulási kódtárakat (torchtransformersstb.). A pontosan rögzített verziókért lásd: Kiszolgáló nélküli GPU-környezet 5. verziója (előzetes verzió).
Telepítse az expressz üzembe helyezéshez szükséges csomagokat:
# Express deployment requires recent MLflow and Databricks SDK versions.
%pip install "mlflow>=3.12" "databricks-sdk>=0.102.0"
# Install the libraries your model needs. transformers is preinstalled in the
# v5 AI environment; install it explicitly because this model depends on it.
%pip install transformers
%restart_python
A függőségeket kiszolgáló nélküli környezetben is deklarálhatja, de a jegyzetfüzetbe való telepítés a legegyszerűbb útvonal. A környezet rögzített verzióit használva fejlesszen, hogy a jegyzetfüzet-környezet megfeleljen a kiszolgálási környezetnek.
Mivel ez a modell GPU-n van kiszolgálva, egy kiszolgáló nélküli GPU-futtatókörnyezetből kell naplóznia és regisztrálnia. Ha véletlenül jelentkezik be a kiszolgáló nélküli CPU-számításból, a modell processzorfüggőségekkel van csomagolva, és a GPU-kiszolgáló végpontja nem indul el. Adja hozzá a következő ellenőrzést, hogy a folyamat azonnal leálljon, ha a notebook nem GPU-s futtatókörnyezetben fut:
import os
# This model is intended to be served on GPU, so we must log and register from a Serverless GPU runtime.
if not os.environ.get("DATABRICKS_ACCELERATOR"):
raise RuntimeError(
"This model MUST be logged+registered from a serverless GPU runtime, otherwise the correct dependencies will not be packaged for serving."
)
Note
Erre az ellenőrzésre csak azért van szükség, mert a reranker GPU-n fut. A CPU-modelleknek nincs rá szükségük.
2. lépés: A modell naplózása az MLflow használatával
Töltse be az újrarangsorolót text-classification folyamatként, és naplózza a natív mlflow.transformers változattal. A natív változat automatikusan rögzíti a modell pip-függőségeit, és GPU-n fut. Nem kell beállítania sem a pip_requirements elemet, sem a task elemet, sem a belépési pontot.
import mlflow
from transformers import pipeline
# BAAI/bge-reranker-base is a cross-encoder reranker: it scores how well a document answers a query.
pipe = pipeline("text-classification", model="BAAI/bge-reranker-base")
model_info = mlflow.transformers.log_model(
transformers_model=pipe,
name="bge_reranker",
input_example={
"text": "What is Databricks?",
"text_pair": "Databricks is a data and AI company.",
},
)
Important
Ne regisztrálja a modellt a registered_model_name következő argumentummal log_model: . Ez az argumentum nem fogadja el env_pack, ezért nem expressz modellt regisztrál. A gyors üzembe helyezés engedélyezéséhez külön lépésben regisztráljon a(z) register_model használatával (3. lépés), amely elfogadja a(z) env_pack elemet.
3. lépés: A modell regisztrálása a Unity Katalógusba expressz csomagolással
Regisztrálja a modellt a Unity Catalogban, és állítsa be a paramétert az env_pack expressz üzembe helyezés engedélyezéséhez. Ez a csomag a modellösszetevőket és a jegyzetfüzet-munkamenethez a regisztráció során hozzáadott függőségeket csomagolja, így a szolgáltatás újra felhasználja őket a környezeti verzió előre telepített kódtárai fölé.
import mlflow
from mlflow.utils.env_pack import EnvPackConfig
mlflow.set_registry_uri("databricks-uc")
model_version = mlflow.register_model(
model_uri=model_info.model_uri,
name="main.default.bge_reranker",
env_pack=EnvPackConfig(name="databricks_model_serving"),
)
A(z) env_pack="databricks_model_serving" karakterlánc-rövid forma használható a(z) EnvPackConfig(name="databricks_model_serving") helyett. Internethozzáférés nélküli vagy egyéni kódtárakat használó munkaterületek esetén állítsa be a install_dependencies=False értéket (lásd: A env_pack paraméter).
A regisztrációhoz databricks-sdk>=0.102.0 szükséges. A korábbi verziók időtúllépést okozhatnak a nagy modellösszetevők feltöltésekor.
4. lépés: Kiszolgálóvégpont létrehozása
Telepítse a regisztrált modellt a Azure Databricks SDK-val. Ez az üzembe helyezési lépés ugyanaz, mint bármely egyéni modell esetében – csak a regisztrációs lépés (3. lépés) különbözik az expressztől.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import (
EndpointCoreConfigInput,
ServedEntityInput,
ServingModelWorkloadType,
)
ENDPOINT_NAME = "bge-reranker-endpoint"
w = WorkspaceClient()
w.serving_endpoints.create_and_wait(
name=ENDPOINT_NAME,
config=EndpointCoreConfigInput(
name=ENDPOINT_NAME,
served_entities=[
ServedEntityInput(
name="bge-reranker",
entity_name=model_version.name,
entity_version=model_version.version,
workload_type=ServingModelWorkloadType.GPU_SMALL,
workload_size="Small",
scale_to_zero_enabled=False,
)
],
),
)
create_and_wait blokkol, amíg a végpont készen nem áll.
GPU_SMALL elegendő ehhez a rangsorolóhoz. Mivel a kiszolgáló ugyanazt a környezeti verziót használja, és visszaállítja a jegyzetfüzetben hozzáadott függőségeket, a kiszolgált modell a GPU típusától függetlenül ugyanazokon a kódtárverziókon fut, mint az ön által kifejlesztett.
Amíg a végpont üzembe van helyezve, nyissa meg a végpont Események lapját a Kiszolgáló felhasználói felületén. Mivel ez egy expressz üzembe helyezés, az eseménynapló nem jeleníti meg a tárolólemezkép létrehozási eseményeit (egy szabványos üzembe helyezésnél a Container image creation initiated után a Container image creation finished successfully következik). Amikor a végpont befejeződik, az állapota Kész állapotú lesz.
5. lépés: A végpont lekérdezése
A keresztkódoló egy lekérdezést egy dokumentummal összevetve pontoz, ezért küldje el a text és text_pair mezőket. Lekérdezés programozott módon a Databricks SDK vagy a curl használatával.
Databricks SDK
w.serving_endpoints.query(
name=ENDPOINT_NAME,
dataframe_records=[
{"text": "What is Databricks?", "text_pair": "Databricks is a data and AI company."},
],
)
curl
curl -X POST \
-u "token:$DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"dataframe_records":[{"text":"What is Databricks?","text_pair":"Databricks is a data and AI company."}]}' \
https://<workspace-url>/serving-endpoints/bge-reranker-endpoint/invocations
A végpont minden lekérdezés-dokumentum párhoz egy relevanciapontot ad vissza; a magasabb pontszámok jobb egyezést jeleznek. Ezekkel a pontszámokkal rangsorolja újra a dokumentumjelölteket.
Példajegyzetfüzet
Importálja a következő jegyzetfüzetet, hogy az útmutatót az elejétől a végéig végrehajthassa.
Express reranker kezdő jegyzetfüzet
A env_pack paraméter
A fenti rövid útmutató egy GPU-modell expressz üzembe helyezését mutatja be. Az expressz üzembe helyezések processzormodellekhez is működnek. A gyors üzembe helyezést minden esetben úgy engedélyezheti, hogy a(z) env_pack elemet átadja a(z) register_model elemnek:
import mlflow
from mlflow.utils.env_pack import EnvPackConfig
mlflow.register_model(
model_info.model_uri,
model_name,
env_pack=EnvPackConfig(name="databricks_model_serving"),
)
env_pack becsomagolja és előkészíti a modellartifaktumokat, valamint a regisztráció időpontjában a jegyzetfüzet munkamenetéhez hozzáadott függőségeket, ezért a regisztráció tovább tart, mint egy env_pack nélküli hívás.
EnvPackConfig elfogad egy paramétert install_dependencies (True alapértelmezés szerint). Amikor True, a modell függőségei az aktuális környezetbe települnek annak megerősítésére, hogy a környezet érvényes.
Note
A regisztráció sikertelen lehet internethozzáférés nélküli munkaterületeken, illetve akkor, ha a modell egyéni függvénytáraktól függ, és a(z) install_dependencies értéke True. Ezekben az esetekben állítsa be install_dependencies:False.
A(z) "databricks_model_serving" karakterláncot a(z) EnvPackConfig(...) helyett használhatja rövidítésként. Ez egyenértékű a EnvPackConfig(name="databricks_model_serving", install_dependencies=True).