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.
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:
- Végpontoptimalizálások: Végpontinfrastruktúra konfigurálása a jobb teljesítmény érdekében
- Modelloptimalizálások: A modell hatékonyságának és átviteli sebességének javítása
- Ügyféloptimalizálások: Optimalizálja, hogy az ügyfelek hogyan használják a végpontok kiszolgálását
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.