So skalieren Sie Machine-Learning-Inferenz für Multi-Tenant-SaaS-Anwendungsfälle PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

So skalieren Sie maschinelle Lerninferenz für mandantenfähige SaaS-Anwendungsfälle

Dieser Beitrag wurde gemeinsam mit Sowmya Manusani, Sr. Staff Machine Learning Engineer bei Zendesk, verfasst

Zendesk ist ein SaaS-Unternehmen, das Support-, Vertriebs- und Kundenbindungssoftware für alle entwickelt, wobei Einfachheit die Grundlage bildet. Es lebt davon, dass über 170,000 Unternehmen weltweit ihre Hunderte von Millionen von Kunden effizient bedienen können. Das Machine Learning-Team bei Zendcaesk ist dafür verantwortlich, Customer Experience-Teams zu verbessern, damit sie ihr Bestes geben. Durch die Kombination der Kraft von Daten und Menschen liefert Zendesk intelligente Produkte, die ihre Kunden produktiver machen, indem sie manuelle Arbeit automatisieren.

Zendesk baut seit 2015 ML-Produkte, darunter Antworte Bot, Zufriedenheitsvorhersage, Inhaltshinweise, Vorgeschlagene Makros, und viele mehr. In den letzten Jahren sahen sie mit dem Wachstum von Deep Learning, insbesondere im NLP, viele Möglichkeiten, Arbeitsabläufe zu automatisieren und Agenten bei der Unterstützung ihrer Kunden mit Zendesk-Lösungen zu unterstützen. Zendesk verwendet derzeit TensorFlow und PyTorch, um Deep-Learning-Modelle zu erstellen.

Kunden wie Zendesk haben erfolgreiche, hochskalierte SaaS-Unternehmen (Software as a Service) auf Amazon Web Services (AWS) aufgebaut. Ein wichtiger Faktor für ein erfolgreiches SaaS-Geschäftsmodell ist die Fähigkeit, Mandantenfähigkeit in der Anwendung und Infrastruktur anzuwenden. Dies ermöglicht Kosten- und Betriebseffizienz, da die Anwendung nur einmal erstellt werden muss, aber viele Male verwendet werden kann und die Infrastruktur gemeinsam genutzt werden kann. Wir sehen, dass viele Kunden sichere, kosteneffiziente, mandantenfähige Systeme auf AWS auf allen Ebenen des Stacks aufbauen, von Rechenleistung, Speicherung, Datenbank bis hin zu Netzwerken, und jetzt sehen wir, dass Kunden es auf maschinelles Lernen (ML ).

Der schwierige Kompromiss zwischen Wiederverwendung von Modellen und Hyperpersonalisierung

Mandantenfähigkeit für SaaS-Unternehmen bedeutet in der Regel, dass eine einzelne Anwendung von vielen Benutzern (SaaS-Kunden) wiederverwendet wird. Dies schafft Kosteneinsparungen und senkt den Betriebsaufwand. Modelle für maschinelles Lernen müssen jedoch manchmal mit einem hohen Maß an Spezifität personalisiert (hyperpersonalisiert) werden, um genaue Vorhersagen treffen zu können. Das bedeutet, dass das SaaS-Paradigma „Einmal erstellen, viele Male verwenden“ nicht immer auf ML angewendet werden kann, wenn Modelle eine Spezifität aufweisen. Nehmen Sie zum Beispiel den Anwendungsfall von Kundensupportplattformen. Die Sprache, die Benutzer in einem Support-Ticket angeben, hängt davon ab, ob es sich um ein Problem mit der Mitfahrgelegenheit („Fahrt hat zu lange gedauert“) oder um ein Problem mit dem Kauf von Kleidung („Verfärbung beim Waschen“) handelt. In diesem Anwendungsfall erfordert die Verbesserung der Genauigkeit bei der Vorhersage der besten Abhilfemaßnahme möglicherweise das Training eines NLP-Modells (Natural Language Processing) mit einem Datensatz, der für einen Geschäftsbereich oder eine Branche spezifisch ist. Zendesk steht genau vor dieser Herausforderung, wenn es darum geht, ML in seinen Lösungen zu nutzen. Sie mussten Tausende von hochgradig angepassten ML-Modellen erstellen, die jeweils auf einen bestimmten Kunden zugeschnitten waren. Um diese Herausforderung der kostengünstigen Bereitstellung Tausender von Modellen zu lösen, wandte sich Zendesk an Amazon SageMaker.

In diesem Beitrag zeigen wir, wie Sie einige der neueren Funktionen von verwenden Amazon Sage Maker, ein vollständig verwalteter Dienst für maschinelles Lernen, zum Erstellen einer mandantenfähigen ML-Inferenzfunktion. Wir teilen auch ein Beispiel aus der Praxis, wie Zendesk erfolgreich dasselbe Ergebnis erzielt hat, indem es einen goldenen Mittelweg zwischen der Unterstützung der Hyperpersonalisierung in seinen ML-Modellen und der kosteneffizienten, gemeinsamen Nutzung der Infrastruktur mithilfe von SageMaker-Multimodell-Endpunkten eingeschlagen hat ( MME).

SageMaker-Endpunkte mit mehreren Modellen

SageMaker-Endpunkte mit mehreren Modellen ermöglichen es Ihnen, mehrere Modelle hinter einem einzigen Inferenzendpunkt bereitzustellen, der eine oder mehrere Instanzen enthalten kann. Jede Instanz ist darauf ausgelegt, mehrere Modelle bis zu ihrer Speicher- und CPU-Kapazität zu laden und bereitzustellen. Mit dieser Architektur kann ein SaaS-Unternehmen die linear steigenden Kosten für das Hosten mehrerer Modelle brechen und eine Wiederverwendung der Infrastruktur erreichen, die mit dem Multi-Tenancy-Modell übereinstimmt, das an anderer Stelle im Anwendungsstapel angewendet wird.

Das folgende Diagramm veranschaulicht die Architektur eines SageMaker-Endpunkts mit mehreren Modellen.

So skalieren Sie Machine-Learning-Inferenz für Multi-Tenant-SaaS-Anwendungsfälle PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Der SageMaker-Multimodell-Endpunkt lädt Modelle dynamisch aus Amazon Simple Storage-Service (Amazon S3), anstatt alle Modelle herunterzuladen, wenn der Endpunkt zum ersten Mal erstellt wird. Infolgedessen kann bei einem anfänglichen Aufruf eines Modells eine höhere Inferenzlatenz auftreten als bei den nachfolgenden Inferenzen, die mit geringer Latenz abgeschlossen werden. Wenn das Modell beim Aufrufen bereits in den Container geladen ist, wird der Download-Schritt übersprungen und das Modell gibt die Inferenzen mit geringer Latenz zurück. Angenommen, Sie haben ein Modell, das nur wenige Male am Tag verwendet wird. Es wird automatisch bei Bedarf geladen, während Modelle, auf die häufig zugegriffen wird, im Speicher verbleiben und mit konstant niedriger Latenz aufgerufen werden.

Werfen wir einen genaueren Blick darauf, wie Zendesk SageMaker MME verwendet hat, um eine kostengünstige, hyperskalierbare ML-Bereitstellung mit der ML-Funktion „Suggested Macros“ zu erreichen.

Warum Zendesk hyperpersonalisierte Modelle entwickelt hat

Die Kunden von Zendesk sind weltweit in verschiedenen Branchenvertikalen mit unterschiedlicher Support-Ticket-Semantik verteilt. Um ihren Kunden den besten Service zu bieten, müssen sie daher oft personalisierte Modelle erstellen, die auf kundenspezifischen Support-Ticket-Daten trainiert werden, um Absichten, Makros und mehr korrekt zu identifizieren.

Im Oktober 2021 veröffentlichten sie eine neue NLP ML-Funktion, Suggested Macros, die Makros (vordefinierte Aktionen) auf der Grundlage von Tausenden von kundenspezifischen Modellvorhersagen empfiehlt. Das ML-Team von Zendesk erstellte ein TensorFlow-basiertes NLP-Klassifizierungsmodell, das aus der Vorgeschichte von Ticketinhalten und Makros pro Kunde trainiert wurde. Wenn diese Modelle verfügbar sind, wird eine Makrovorhersage empfohlen, wenn ein Agent das Ticket anzeigt (wie im folgenden Screenshot gezeigt), was den Agenten dabei unterstützt, Kunden schnell zu bedienen. Da Makros kundenspezifisch sind, benötigt Zendesk kundenspezifische Modelle, um genaue Vorhersagen zu liefern.

So skalieren Sie Machine-Learning-Inferenz für Multi-Tenant-SaaS-Anwendungsfälle PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Unter der Haube der vorgeschlagenen Makros von Zendesk

Vorgeschlagene Makromodelle sind NLP-basierte neuronale Netze mit einer Größe von etwa 7–15 MB. Die größte Herausforderung besteht darin, Tausende dieser Modelle mit kosteneffizienten, zuverlässigen und skalierbaren Lösungen in Produktion zu bringen.

Jedes Modell hat unterschiedliche Verkehrsmuster mit mindestens zwei Anforderungen pro Sekunde und einer Spitze von Hunderten von Anforderungen pro Sekunde, die Millionen von Vorhersagen pro Tag mit einer Modelllatenz von etwa 100 Millisekunden liefern, wenn das Modell im Speicher verfügbar ist. SageMaker-Endpunkte werden in mehreren AWS-Regionen bereitgestellt und verarbeiten Tausende von Anfragen pro Minute und Endpunkt.

Mit seiner Fähigkeit, mehrere Modelle auf einem einzigen Endpunkt zu hosten, half SageMaker Zendesk, den Bereitstellungsaufwand zu reduzieren und eine kostengünstige Lösung im Vergleich zur Bereitstellung eines Endpunkts mit einem einzelnen Modell pro Kunde zu erstellen. Der Kompromiss hier ist weniger Kontrolle über die Verwaltung pro Modell; Dies ist jedoch ein Bereich, in dem Zendesk mit AWS zusammenarbeitet, um Endpunkte mit mehreren Modellen zu verbessern.

Eine der Multi-Modell-Funktionen von SageMaker ist das verzögerte Laden von Modellen, dh Modelle werden in den Speicher geladen, wenn sie zum ersten Mal aufgerufen werden. Dies dient der Optimierung der Speicherauslastung; Es verursacht jedoch Reaktionszeitspitzen beim ersten Laden, was als Kaltstartproblem angesehen werden kann. Für vorgeschlagene Makros war dies eine Herausforderung; Zendesk hat dies jedoch überwunden, indem eine Vorabladefunktion zusätzlich zur SageMaker-Endpunktbereitstellung implementiert wurde, um die Modelle in den Arbeitsspeicher zu laden, bevor der Produktionsdatenverkehr bereitgestellt wird. Zweitens entlädt MME selten verwendete Modelle aus dem Speicher. Um also eine konsistent niedrige Latenz bei allen Modellen zu erreichen und zu vermeiden, dass „laute Nachbarn“ andere weniger aktive Modelle beeinträchtigen, arbeitet Zendesk mit AWS zusammen, um neue Funktionen hinzuzufügen, die später in diesem Beitrag besprochen werden, um sie zu ermöglichen explizitere Verwaltung pro Modell. Darüber hinaus hat Zendesk als Zwischenlösung die MME-Flotte richtig dimensioniert, um das Entladen zu vieler Modelle zu minimieren. Damit ist Zendesk in der Lage, allen seinen Kunden Vorhersagen mit geringer Latenz von etwa 100 Millisekunden bereitzustellen und im Vergleich zu dedizierten Endpunkten immer noch 90 % Kosteneinsparungen zu erzielen.

Bei der richtigen Dimensionierung von MME beobachtete Zendesk während Lasttests, dass eine höhere Anzahl kleinerer Instanzen (Schwerpunkt horizontale Skalierung) hinter MME eine bessere Wahl war als weniger größere Speicherinstanzen (vertikale Skalierung). Zendesk beobachtete, dass das Packen von zu vielen Modellen (in ihrem Fall über 500 TensorFlow-Modelle) in eine einzige große Speicherinstanz nicht gut funktionierte, da der Arbeitsspeicher nicht die einzige Ressource auf einer Instanz ist, die einen Engpass darstellen kann. Genauer gesagt stellten sie fest, dass TensorFlow mehrere Threads (3 x Gesamtinstanz-vCPUs) pro Modell erzeugte, sodass das Laden von über 500 Modellen auf einer einzelnen Instanz dazu führte, dass die Beschränkungen auf Kernel-Ebene bei der maximalen Anzahl von Threads, die auf einer Instanz erzeugt werden konnten, überschritten wurden. Ein weiteres Problem bei der Verwendung weniger, größerer Instanzen trat auf, als Zendesk bei einigen Instanzen hinter MME eine Drosselung (als Sicherheitsmechanismus) erlebte, weil die einmalige Rate des Modellaufrufs pro Sekunde das überschritt Multi-Model-Server (MMS) auf einer einzelnen Instanz sicher handhaben könnte, ohne dass die Instanz abstürzt. Dies war ein weiteres Problem, das durch die Verwendung von mehr und kleineren Instanzen behoben wurde.

Aus Sicht der Beobachtbarkeit, die eine entscheidende Komponente jeder Produktionsanwendung ist, Amazon CloudWatch Metriken wie Aufrufe, CPU, Speicherauslastung und mehrere modellspezifische Metriken wie geladene Modelle im Speicher, Modellladezeit, Modellladewartezeit und Modellcachetreffer sind informativ. Insbesondere die Aufschlüsselung der Modelllatenz half Zendesk, das Kaltstartproblem und seine Auswirkungen zu verstehen.

Unter der Haube von MME Auto Scaling

Hinter jedem Endpunkt mit mehreren Modellen befinden sich Modell-Hosting-Instanzen, wie im folgenden Diagramm dargestellt. Diese Instanzen laden und entfernen mehrere Modelle in den und aus dem Speicher, basierend auf den Datenverkehrsmustern zu den Modellen.

So skalieren Sie Machine-Learning-Inferenz für Multi-Tenant-SaaS-Anwendungsfälle PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

SageMaker leitet Inferenzanforderungen für ein Modell weiterhin an die Instanz weiter, in der das Modell bereits geladen ist, sodass die Anforderungen von der zwischengespeicherten Modellkopie bedient werden (siehe folgendes Diagramm, das den Anforderungspfad für die erste Vorhersageanforderung im Vergleich zur zwischengespeicherten Vorhersageanforderung zeigt). Weg). Wenn das Modell jedoch viele Aufrufanforderungen erhält und es zusätzliche Instanzen für den Endpunkt mit mehreren Modellen gibt, leitet SageMaker einige Anforderungen an eine andere Instanz weiter, um der Zunahme Rechnung zu tragen. Um die Vorteile der automatischen Modellskalierung in SageMaker nutzen zu können, stellen Sie sicher, dass Sie dies getan haben automatische Skalierung der Instanz eingerichtet um zusätzliche Instanzkapazität bereitzustellen. Richten Sie Ihre Skalierungsrichtlinie auf Endpunktebene entweder mit benutzerdefinierten Parametern oder mit Aufrufen pro Minute (empfohlen) ein, um der Endpunktflotte weitere Instanzen hinzuzufügen.

So skalieren Sie Machine-Learning-Inferenz für Multi-Tenant-SaaS-Anwendungsfälle PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Anwendungsfälle, die am besten für MME geeignet sind

SageMaker-Endpunkte mit mehreren Modellen eignen sich gut zum Hosten einer großen Anzahl ähnlicher Modelle, die Sie über einen Shared-Serving-Container bereitstellen können und nicht gleichzeitig auf alle Modelle zugreifen müssen. MME eignet sich am besten für Modelle mit ähnlicher Größe und ähnlichen Aufruflatenzen. Einige Abweichungen in der Modellgröße sind akzeptabel; Beispielsweise reichen die Modelle von Zendesk von 10 bis 50 MB, was gut funktioniert, aber Größenvariationen, die um den Faktor 10, 50 oder 100 größer sind, sind nicht geeignet. Größere Modelle können eine höhere Anzahl von Lade- und Entladevorgängen kleinerer Modelle verursachen, um ausreichend Speicherplatz bereitzustellen, was zu zusätzlicher Latenz auf dem Endpunkt führen kann. Unterschiede in den Leistungsmerkmalen größerer Modelle können auch Ressourcen wie CPU ungleichmäßig verbrauchen, was sich auf andere Modelle in der Instanz auswirken könnte.

MME ist auch für Co-Hosting-Modelle konzipiert, die dasselbe ML-Framework verwenden, da sie den gemeinsam genutzten Container zum Laden mehrerer Modelle verwenden. Wenn Sie also eine Mischung aus ML-Frameworks in Ihrer Modellflotte haben (z. B. PyTorch und TensorFlow), sind dedizierte SageMaker-Endpunkte oder Multi-Container-Hosting die bessere Wahl. Schließlich ist MME für Anwendungen geeignet, die eine gelegentliche Kaltstart-Latenzstrafe tolerieren können, da selten verwendete Modelle zugunsten häufig aufgerufener Modelle ausgelagert werden können. Wenn Sie eine lange Reihe von Modellen haben, auf die selten zugegriffen wird, kann ein Endpunkt mit mehreren Modellen diesen Datenverkehr effizient bedienen und erhebliche Kosteneinsparungen ermöglichen.

Zusammenfassung

In diesem Beitrag haben Sie erfahren, wie sich SaaS und Mandantenfähigkeit auf ML beziehen und wie Multi-Modell-Endpunkte von SageMaker Mandantenfähigkeit und Kosteneffizienz für ML-Inferenz ermöglichen. Sie haben von Zendesks mandantenfähigem Anwendungsfall von kundenspezifischen ML-Modellen erfahren und wie sie Tausende von ML-Modellen in SageMaker MME für ihre Funktion „Vorgeschlagene Makros“ gehostet und im Vergleich zu dedizierten Endpunkten 90 % Kosteneinsparungen bei der Inferenz erzielt haben. Anwendungsfälle für Hyperpersonalisierung können Tausende von ML-Modellen erfordern, und MME ist eine kostengünstige Wahl für diesen Anwendungsfall. Wir werden weiterhin Verbesserungen in MME vornehmen, damit Sie Modelle mit geringer Latenz und mit detaillierteren Steuerelementen für jedes personalisierte Modell hosten können. Um mit MME zu beginnen, siehe Hosten Sie mehrere Modelle in einem Container hinter einem Endpunkt.


Über die Autoren

So skalieren Sie Machine-Learning-Inferenz für Multi-Tenant-SaaS-Anwendungsfälle PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Syed Jaffry ist Senior Solutions Architect bei AWS. Er arbeitet mit einer Reihe von Unternehmen zusammen, von mittelständischen Organisationen bis hin zu großen Unternehmen, von Finanzdienstleistern bis hin zu ISVs, um ihnen beim Aufbau und Betrieb sicherer, robuster, skalierbarer und leistungsstarker Anwendungen in der Cloud zu helfen.

So skalieren Sie Machine-Learning-Inferenz für Multi-Tenant-SaaS-Anwendungsfälle PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Sowmya Manusani ist Senior Staff Machine Learning Engineer bei Zendesk. Sie arbeitet an der Produktionsalisierung von NLP-basierten Machine Learning-Funktionen, die sich auf die Verbesserung der Agentenproduktivität für Tausende von Zendesk Enterprise-Kunden konzentrieren. Sie hat Erfahrung mit dem Aufbau automatisierter Trainingspipelines für Tausende von personalisierten Modellen und deren Bereitstellung mit sicheren, robusten, skalierbaren und leistungsstarken Anwendungen. In ihrer Freizeit löst sie gerne Rätsel und versucht sich im Malen.

So skalieren Sie Machine-Learning-Inferenz für Multi-Tenant-SaaS-Anwendungsfälle PlatoBlockchain Data Intelligence. Vertikale Suche. Ai. Saurabh Trikande ist Senior Product Manager für Amazon SageMaker Inference. Er arbeitet leidenschaftlich gerne mit Kunden zusammen und macht maschinelles Lernen zugänglicher. In seiner Freizeit wandert Saurabh gerne, lernt etwas über innovative Technologien, folgt TechCrunch und verbringt Zeit mit seiner Familie.

So skalieren Sie Machine-Learning-Inferenz für Multi-Tenant-SaaS-Anwendungsfälle PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Deepti Ragha ist Software Development Engineer im Amazon SageMaker-Team. Ihre aktuelle Arbeit konzentriert sich auf das Erstellen von Funktionen zum effizienten Hosten von Modellen für maschinelles Lernen. In ihrer Freizeit reist sie gerne, wandert und züchtet Pflanzen.

Zeitstempel:

Mehr von AWS Maschinelles Lernen