Megosztás a következőn keresztül:


Modellkiszolgáló végpontok optimalizálása éles környezetben

Megtudhatja, hogyan optimalizálhatja a modellkiszolgáló végpontjait olyan éles számítási feladatokhoz, amelyek nagy átviteli sebességet, alacsony késést és megbízható teljesítményt igényelnek.

Az optimalizálási stratégiák három kategóriába sorolhatók:

Mikor optimalizálja a végpontot?

Fontolja meg a modellkiszolgáló végpont optimalizálását, amikor az alábbi forgatókönyvek bármelyikével találkozik:

  • Nagy lekérdezési mennyiség: Az alkalmazás másodpercenként több mint 50 ezer lekérdezést (QPS) küld egyetlen végpontnak
  • Késési követelmények: Az alkalmazás 100 ms alatti válaszidőt igényel
  • Skálázási szűk keresztmetszetek: A végpontok a forgalomcsúcsok során torlódást tapasztalhatnak, vagy HTTP 429-es hibákat adhatnak vissza
  • Költségoptimalizálás: Csökkenteni szeretné a szolgáltatási költségeket, miközben fenntartja a teljesítménycélokat
  • Éles környezet előkészítése: A fejlesztésről az éles munkafolyamatokra való áttérésre készül

Infrastruktúra-optimalizálások

Az infrastruktúra optimalizálása javítja a hálózati útválasztást, a skálázási viselkedést és a számítási kapacitást.

Útvonaloptimalizálás

Az útvonaloptimalizálás a legnagyobb infrastruktúra-fejlesztést biztosítja a nagy átviteli sebességű számítási feladatokhoz. Amikor engedélyezi az útvonaloptimalizálást egy végponton, a Databricks Model Serving javítja a következtetési kérelmek hálózati útvonalát, ami gyorsabb, közvetlenebb kommunikációt eredményez az ügyfelek és modellek között.

Teljesítménybeli előnyök:

Tulajdonság Standard végpontkorlát Útvonaloptimalizált végpontkorlát
Lekérdezések másodpercenként (QPS) munkaterületenként 200 50 000+ (magasabb korlátokért forduljon a Databrickshez)
Ügyfél-egyidejűség munkaterületenként 192-1024 (régiónként eltérő) Nincs explicit korlát (a kiosztott egyidejűség korlátozza)
Végpont kiosztott egyidejűsége kiszolgált entitásonként 1,024 1024 (magasabb korlátért forduljon a Databrickshez)

Mikor érdemes az útvonaloptimalizálást használni:

  • Több mint 200 QPS-t igénylő számítási feladatok
  • Szigorú késési követelményekkel rendelkező alkalmazások (kevesebb mint 50 ms-os késleltetés)
  • Több egyidejű felhasználót kiszolgáló éles üzemelő példányok

Fontos

Az útvonaloptimalizálás csak a végpontokat kiszolgáló egyéni modell esetében érhető el. Az alapmodell API-k és a külső modellek nem támogatják az útvonalak optimalizálását. A hitelesítéshez OAuth-jogkivonatok szükségesek; a személyes hozzáférési jogkivonatok nem támogatottak.

A beállítási utasításokért tekintse meg a végpontok kiszolgálására vonatkozó útvonaloptimalizálást és a lekérdezés útvonaloptimalizált kiszolgálóvégpontjait a részletek lekérdezéséhez.

Előfoglalt egyidejűség

A kiépített egyidejűség szabályozza, hogy a végpont hány egyidejű kérést tud feldolgozni. Konfigurálja a kiépített egyidejűséget a várt QPS és késési követelmények alapján.

Konfigurációs irányelvek:

  • Minimális egyidejűség: Állítsa be a megfelelő magas értéket az alapforgalom kezeléséhez sorban állás nélkül
  • Maximális egyidejűség: Állítsa be elég magasra a forgalomcsúcsok kezeléséhez a költségek szabályozása közben
  • Automatikus skálázás: Az automatikus skálázás engedélyezése a kapacitás igény szerinti dinamikus módosításához

A szükséges egyidejűség kiszámítása:

Required Concurrency = Target QPS × Average Latency (seconds)

Ha például a cél 100 QPS 200 ms átlagos késéssel:

Required Concurrency = 100 × 0.2 = 20

A tényleges késés méréséhez és az optimális egyidejűségi beállítások meghatározásához használjon terheléstesztelést .

Példánytípusok

Válassza ki a példánytípusokat a modell számítási követelményei alapján:

Példány típusa A következőkre alkalmas Trade-offs
CPU (kicsi, közepes, nagy) Egyszerűsített modellek, egyszerű következtetési logika Alacsonyabb költség, lassabb számítási igényű modellek esetén
GPU (kicsi, közepes, nagy) Nagy modellek, összetett számítások, kép-/videófeldolgozás Magasabb költség, optimális teljesítmény a mély tanuláshoz

Jótanács

Kezdje a fejlesztéshez és teszteléshez használt CPU-példányokkal. Csak akkor váltson GPU-példányokra, ha nagy következtetési késést észlel, vagy ha a modell speciális számítást igényel (például mélytanulási műveleteket).

Modelloptimalizálások

A modelloptimalizálások növelik a következtetési sebességet és az erőforrás-hatékonyságot.

Modell mérete és összetettsége

Modellméret és összetettség: A kisebb, kevésbé összetett modellek általában gyorsabb következtetési időt és magasabb QPS-t eredményeznek. Fontolja meg az olyan technikákat, mint a modell kvantálása vagy a metszés, ha a modell nagy.

Csoportosítás

Ha az alkalmazás több kérést is küldhet egyetlen hívásban, engedélyezze a kötegelést az ügyféloldalon. Ez jelentősen csökkentheti az előrejelzésenkénti többletterhelést.

Előfeldolgozás és utófeldolgozás optimalizálása

Az összetett előfeldolgozás és az utófeldolgozás kiszervezése a végpontok kiszolgálásából a következtetési infrastruktúra terhelésének csökkentése érdekében.

Ügyféloldali optimalizálás

Az ügyféloldali optimalizálás javítja, hogy az alkalmazások hogyan használják a végpontok kiszolgálását.

Kapcsolatmegosztás

A kapcsolatkészletezés a meglévő kapcsolatokat használja fel ahelyett, hogy minden kéréshez új kapcsolatokat hoz létre, jelentősen csökkentve a többletterhelést.

  • Használja a Databricks SDK-t, amely automatikusan implementálja a kapcsolatkészletezési ajánlott eljárásokat
  • Egyéni kliensek használata esetén maga valósítsa meg a kapcsolatkészletezést.

Hibakezelési és újrapróbálkozési stratégiák

Robusztus hibakezelés implementálása az ideiglenes hibák elegáns kezeléséhez, különösen az automatikus skálázási események vagy hálózati zavarok esetén.

Hasznos adatok méretének optimalizálása

A kérelmek és válaszok hasznos adatmennyiségének minimalizálása a hálózati átviteli idő csökkentése és az átviteli sebesség javítása érdekében.

Teljesítmény mérése és javítása

Teljesítményfigyelés

A végpont teljesítményének monitorozása a Mozaik AI-modell szolgáltatás által biztosított eszközökkel:

Mértékegység Amit mér Target Túllépés esetén intézkedés
Késleltetés (P50, P90, P99) Kérelmek válaszideje Alkalmazásfüggő (általában <100-500 ms) Sorban állás ellenőrzése, modell vagy ügyfél optimalizálása
Átviteli sebesség (QPS) Másodpercenként teljesített kérelmek Terhelésfüggő Útvonaloptimalizálás engedélyezése, kiosztott egyidejűség növelése
Hibaarány Sikertelen kérelmek százalékos aránya <1% Szolgáltatásnaplók áttekintése, kapacitásproblémák keresése
Sor mélysége Feldolgozásra váró kérelmek 0 (nincs várakozás) A kiosztott egyidejűség növelése vagy az automatikus skálázás engedélyezése
PROCESSZOR-/memóriahasználat Erőforrás-felhasználás <80% Példánytípus vertikális felskálázása vagy egyidejűség növelése

A modellminőség és a végpont állapotának figyelése részletes monitorozási útmutatóért, valamint a végpontállapot-metrikák nyomon követése és exportálása a Prometheusba és a Datadogba a metrikák megfigyelhetőségi eszközökbe való exportálásához.

Terheléstesztelés

A terheléstesztelés valós forgalmi körülmények között méri a végpont teljesítményét, és segít:

  • Optimális kiosztott egyidejűségi beállítások meghatározása
  • A teljesítmény szűk keresztmetszeteinek azonosítása
  • Késési és átviteli sebességre vonatkozó követelmények ellenőrzése
  • Az ügyfél egyidejűsége és a kiszolgáló egyidejűsége közötti kapcsolat ismertetése

Lásd a végpontok kiszolgálására vonatkozó terheléstesztelést.

Gyakori teljesítményproblémák hibaelhárítása

Queuing

A modellkiszolgáló támogatja az automatikus skálázást a kapacitás forgalmi minták alapján történő módosításához. A hirtelen forgalomhullámok azonban sorba állítást okozhatnak, mivel az automatikus skálázáshoz időre van szükség a megnövekedett terhelés észleléséhez és a további kapacitás kiépítéséhez. Ebben az időszakban a bejövő kérések ideiglenesen túlléphetik a rendelkezésre álló kapacitást, ami miatt a kérések várólistára kerülnek.

A sorba állítás akkor történik, ha a kérelem sebessége vagy egyidejűsége meghaladja a végpont aktuális feldolgozási kapacitását. Ez általában éles forgalomkiugrások, számítási feladatok kipukkadása vagy a végpont elégtelen kiosztott egyidejűsége esetén fordul elő. A modellkiszolgáló végpontok lehetővé teszik az ideiglenes sorba állítást a kipukkadások kezeléséhez, de egy meghatározott küszöbértéken túl a végpont HTTP 429-es (túl sok kérés) hibát ad vissza a rendszer stabilitásának védelme érdekében.

Az üzenetsor-kezelés növeli a késést, mert a várólistán lévő kérések a feldolgozás előtt várakoznak. A várólisták minimalizálása:

  • Úgy állítsd be a minimális kiosztott egyidejűséget, hogy az elég magas legyen az alapforgalom és a tipikus kiugrások kezeléséhez.
  • Útvonaloptimalizálás engedélyezése magasabb kapacitáskorlátok esetén
  • Újrapróbálkozási logika implementálása exponenciális visszalépéssel az ügyfélalkalmazásokban

Külső API szűk keresztmetszetei

A modellek gyakran külső API-kat neveznek adatdúsításhoz, funkciólekéréshez vagy más feladatokhoz a következtetés során. Ezek a külső függőségek teljesítménybeli szűk keresztmetszetekká válhatnak:

  • Késés: Az egyes külső API-hívások válaszidejének mérése. Ezekben a hívásokban a magas késés közvetlenül növeli az általános kiszolgálási késést, és csökkenti az átviteli sebességet.
  • Átviteli sebességkorlátok: A külső API-k sebességkorlátokat vagy kapacitáskorlátozásokat írhatnak elő. Ezen korlátok túllépése szabályozást, hibákat és teljesítménycsökkenést okozhat.
  • Hibaarányok: A külső API-k gyakori hibái újrapróbálkozások indítását és a kiszolgáló végpont terhelésének növelését eredményezhetik.
  • Gyorsítótárazás: A külső API-kból gyakran használt adatok gyorsítótárazásának implementálása a hívások számának csökkentése és a válaszidő javítása érdekében.

Ezeket a tényezőket figyelve azonosíthatja a szűk keresztmetszeteket, és célzott optimalizálást valósíthat meg a nagy átviteli sebességű számítási feladatokhoz.

További erőforrások