Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erfahren Sie, wie Sie Die Modellbereitstellungsendpunkte für Produktionsworkloads optimieren, die hohen Durchsatz, niedrige Latenz und zuverlässige Leistung erfordern.
Optimierungsstrategien sind in drei Kategorien unterteilt:
- Endpunktoptimierungen: Konfigurieren der Endpunktinfrastruktur für eine bessere Leistung
- Modelloptimierungen: Verbessern der Modelleffizienz und des Durchsatzes
- Clientoptimierungen: Optimieren der Interaktion von Clients mit dienstenden Endpunkten
Wann Sie Ihren Endpunkt optimieren sollten
Erwägen Sie die Optimierung Ihres Model Serving-Endpunkts, wenn Sie auf eines der folgenden Szenarien stoßen:
- Hohes Abfragevolumen: Ihre Anwendung sendet mehr als 50k-Abfragen pro Sekunde (QPS) an einen einzelnen Endpunkt.
- Latenzanforderungen: Ihre Anwendung erfordert Unter-100 ms-Antwortzeiten.
- Skalierungsengpässe: Endpunkte stehen in Warteschlangen oder geben HTTP 429-Fehler während Datenverkehrsspitzen zurück.
- Kostenoptimierung: Sie möchten die Kosten senken und gleichzeitig Leistungsziele beibehalten.
- Produktionsvorbereitung: Sie bereiten sich darauf vor, von der Entwicklung zu Produktionsworkloads zu wechseln.
Infrastrukturoptimierungen
Infrastrukturoptimierungen verbessern Netzwerkrouting, Skalierungsverhalten und Computekapazität.
Routenoptimierung
Die Routenoptimierung bietet die wichtigste Infrastrukturverbesserung für Workloads mit hohem Durchsatz. Wenn Sie die Routenoptimierung auf einem Endpunkt aktivieren, verbessert Databricks Model Serving den Netzwerkpfad für Rückschlussanforderungen, was zu einer schnelleren, direkteren Kommunikation zwischen Clients und Modellen führt.
Leistungsvorteile:
| Merkmal | Standardendpunktgrenze | Routenoptimierter Endpunktgrenzwert |
|---|---|---|
| Abfragen pro Sekunde (QPS) pro Arbeitsbereich | 200 | 50.000+ (Kontaktieren Sie Databricks für höhere Limits) |
| Clientkoncurrency pro Arbeitsbereich | 192-1024 (variiert je nach Region) | Kein expliziter Grenzwert (begrenzt durch bereitgestellte Parallelität) |
| Endpunkt bereitgestellte Parallelität pro bediente Entität | 1,024 | 1.024 (Kontaktieren Sie Databricks für höhere Grenzwerte) |
Gründe für die Verwendung der Routenoptimierung:
- Workloads, die mehr als 200 QPS erfordern
- Anwendungen mit strengen Latenzanforderungen (Unter-50 ms Overhead)
- Produktionsbereitstellungen, die mehrere gleichzeitige Benutzer bedienen
Von Bedeutung
Die Routenoptimierung ist nur für benutzerdefinierte Modellbereitstellungsendpunkte verfügbar. Foundation-Modell-APIs und externe Modelle unterstützen keine Routenoptimierung. OAuth-Token sind für die Authentifizierung erforderlich; Persönliche Zugriffstoken werden nicht unterstützt.
Anleitungen zur Einrichtung finden Sie unter Routenoptimierung bei Bereitstellungsendpunkten und Details zum Abfragen unter routeoptimierte Bereitstellungsendpunkte abfragen.
Bereitgestellte Parallelität
Die bereitgestellte Parallelität steuert, wie viele gleichzeitige Anforderungen Ihr Endpunkt verarbeiten kann. Konfigurieren Sie die bereitgestellte Parallelität basierend auf den erwarteten QPS- und Latenzanforderungen.
Konfigurationsrichtlinien:
- Minimale Parallelität: Legen Sie sie hoch genug fest, um den Basisverkehr ohne Warteschlangen zu verarbeiten.
- Maximale Parallelität: So hoch festlegen, dass Datenverkehrsspitzen bewältigt werden können, während die Kosten kontrolliert werden.
- Automatische Skalierung: Automatische Skalierung aktivieren, um die Kapazität basierend auf Bedarf dynamisch anzupassen
Berechnen der erforderlichen Parallelität:
Required Concurrency = Target QPS × Average Latency (seconds)
Wenn Ihr Ziel beispielsweise 100 QPS mit einer durchschnittlichen Latenz von 200 ms beträgt:
Required Concurrency = 100 × 0.2 = 20
Verwenden Sie Auslastungstests , um die tatsächliche Latenz zu messen und optimale Parallelitätseinstellungen zu ermitteln.
Instanztypen
Wählen Sie Instanztypen basierend auf den Computeanforderungen Ihres Modells aus:
| Instanztyp | Am besten geeignet für: | Trade-offs |
|---|---|---|
| CPU (Klein, Mittel, Groß) | Einfache Modelle, einfache Rückschlusslogik | Niedrigere Kosten, langsamer für rechenintensive Modelle |
| GPU (Klein, Mittel, Groß) | Große Modelle, komplexe Berechnungen, Bild-/Videoverarbeitung | Höhere Kosten, optimale Leistung für Deep Learning |
Tipp
Beginnen Sie mit CPU-Instanzen für Entwicklung und Tests. Wechseln Sie nur dann zu GPU-Instanzen, wenn Sie eine hohe Ableitungslatenz beobachten oder ihr Modell eine spezielle Berechnung erfordert (z. B. Deep Learning-Vorgänge).
Modelloptimierungen
Modelloptimierungen verbessern die Ableitungsgeschwindigkeit und die Ressourceneffizienz.
Modellgröße und Komplexität
Modellgröße und Komplexität: Kleinere, weniger komplexe Modelle führen in der Regel zu schnelleren Rückschlüssen und höheren QPS. Berücksichtigen Sie Techniken wie Modellquantisierung oder Beschnitt, wenn Ihr Modell groß ist.
Batchverarbeitung
Wenn Ihre Anwendung mehrere Anforderungen in einem einzigen Aufruf senden kann, aktivieren Sie die Batchverarbeitung auf der Clientseite. Dies kann den Aufwand pro Vorhersage erheblich reduzieren.
Vorverarbeitung und Nachbearbeitungsoptimierung
Lagern Sie komplexe Vorverarbeitungs- und Nachbearbeitungsschritte von den Diensten bereitgestellten Endpunkten aus, um die Last auf die Inference-Infrastruktur zu reduzieren.
Clientseitige Optimierungen
Clientseitige Optimierungen verbessern, wie Anwendungen mit bereitstellenden Endpunkten interagieren.
Verbindungspooling
Durch die Verbindungspooling werden vorhandene Verbindungen wiederverwendet, anstatt neue Verbindungen für jede Anforderung zu erstellen, wodurch der Aufwand erheblich reduziert wird.
- Verwenden des Databricks SDK, das automatisch bewährte Methoden für die Verbindungspooling implementiert
- Wenn Sie benutzerdefinierte Clients verwenden, implementieren Sie den Verbindungspool selbst.
Fehlerbehandlung und Wiederholungsstrategien
Implementieren Sie eine robuste Fehlerbehandlung, um temporäre Fehler ordnungsgemäß zu behandeln, insbesondere bei automatischen Ereignissen oder Netzwerkunterbrechungen.
Optimierung der Nutzlastgröße
Minimieren Sie die Anforderungs- und Antwortnutzlastgrößen, um die Netzwerkübertragungszeit zu reduzieren und den Durchsatz zu verbessern.
Messen und Verbessern der Leistung
Leistungsüberwachung
Überwachen Sie die Endpunktleistung mithilfe der Tools, die von Mosaik AI Model Serving bereitgestellt werden:
| Metric | Was sie misst | Ziel | Maßnahme bei Überschreitung |
|---|---|---|---|
| Latenz (P50, P90, P99) | Antwortzeit für Anforderungen | Anwendungsabhängig (in der Regel <100-500 ms) | Suchen nach Warteschlangen, Optimieren des Modells oder Clients |
| Durchsatz (QPS) | Abgeschlossene Anfragen pro Sekunde | Abhängig von der Arbeitslast | Aktivieren der Routenoptimierung, Erhöhen der bereitgestellten Parallelität |
| Fehlerrate | Prozentsatz der fehlgeschlagenen Anforderungen | <1% | Überprüfen von Dienstprotokollen, Überprüfen auf Kapazitätsprobleme |
| Warteschlangenlänge | Anforderungen, die auf die Verarbeitung warten | 0 (keine Warteschlange) | Erhöhen der bereitgestellten Parallelität oder Aktivieren der automatischen Skalierung |
| CPU-/Arbeitsspeicherauslastung | Ressourcenverwendung | <80% | Instanztyp skalieren oder Parallelität erhöhen |
Weitere Informationen zum Überwachen der Modellqualität und der Endpunktintegrität finden Sie unter "Überwachen der Modellqualität" und "Endpunktintegrität " sowie " Nachverfolgen und Exportieren von Endpunktintegritätsmetriken nach Prometheus" und "Datadog ", um Metriken in Observability-Tools zu exportieren.
Auslastungstests
Load-Tests messen die Endpunktleistung (Performance des Endpunkts) unter realistischen Verkehrsbedingungen und ermöglichen es Ihnen:
- Ermitteln optimal bereitgestellter Parallelitätseinstellungen
- Erkennen von Leistungsengpässen
- Überprüfen der Latenz- und Durchsatzanforderungen
- Verstehen Sie die Beziehung zwischen Clientnebenläufigkeit und Servernebenläufigkeit
Siehe Ladentests für die Bereitstellung von Endpunkten.
Fehlerbehebung bei allgemeinen Leistungsproblemen
Queuing
Die Modellbereitstellung unterstützt die automatische Skalierung, um die Kapazität basierend auf Datenverkehrsmustern anzupassen. Plötzlicher Datenverkehrsanstieg kann jedoch zu Warteschlangen führen, da die automatische Skalierung Zeit erfordert, um erhöhte Last zu erkennen und zusätzliche Kapazität bereitzustellen. Während dieses Zeitraums können eingehende Anforderungen vorübergehend die verfügbare Kapazität überschreiten, was dazu führt, dass Anforderungen in die Warteschlange gestellt werden.
Queuing tritt auf, wenn die Anforderungsrate oder Parallelität die aktuelle Verarbeitungskapazität des Endpunkts übertrifft. Dies geschieht in der Regel bei starken Datenverkehrsspitzen, Arbeitslastspitzen oder wenn der Endpunkt über unzureichende zugewiesene Parallelität verfügt. Mithilfe von Modellbereitstellungsendpunkten können temporäre Warteschlangen zur Handhabung von Anfragenüberlastungen genutzt werden, aber über einen definierten Schwellenwert hinaus gibt der Endpunkt HTTP 429-Fehler (Zu viele Anfragen) zurück, um die Systemstabilität zu schützen.
Warteschlangen erhöhen die Latenz, da in die Warteschlange eingereihte Anforderungen warten, bevor sie verarbeitet werden. So minimieren Sie die Warteschlangen:
- Legen Sie die minimale bereitgestellte Kapazität hoch genug fest, um den Basis-Datenverkehr und typische Spitzenlasten zu bewältigen.
- Aktivieren der Routenoptimierung für höhere Kapazitätsgrenzen
- Implementieren von Wiederholungslogik mit exponentiellem Backoff in Ihren Clientanwendungen
Externe API-Engpässe
Modelle rufen häufig externe APIs für Datenanreicherung, Featureabruf oder andere Aufgaben während der Ableitung auf. Diese externen Abhängigkeiten können zu Leistungsengpässen werden:
- Latenz: Messen Sie die Antwortzeit jedes externen API-Aufrufs. Hohe Latenz bei diesen Aufrufen erhöht direkt die Gesamtlatenz bei der Bereitstellung und reduziert den Durchsatz.
- Durchsatzgrenzwerte: Externe APIs können Geschwindigkeitsbeschränkungen oder Kapazitätsbeschränkungen auferlegen. Das Überschreiten dieser Grenzwerte kann zu Drosselung, Fehlern und Leistungsbeeinträchtigungen führen.
- Fehlerraten: Häufige Fehler von externen APIs können Wiederholungsversuche auslösen und die Last für Den bereitgestellten Endpunkt erhöhen.
- Zwischenspeichern: Implementieren Sie die Zwischenspeicherung für häufig verwendete Daten aus externen APIs, um die Anzahl der Anrufe zu reduzieren und die Reaktionszeiten zu verbessern.
Überwachen Sie diese Faktoren, um Engpässe zu identifizieren und gezielte Optimierungen für Workloads mit hohem Durchsatz zu implementieren.