Freigeben über


Optimieren von Modellbereitstellungsendpunkten für die Produktion

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:

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.

Weitere Ressourcen