Machine Learning-Rückschlüsse während der BereitstellungMachine learning inference during deployment

Bei der Bereitstellung Ihres KI-Modells in der Produktion sollten Sie bedenken, wie es Vorhersagen trifft.When deploying your AI model during production, you need to consider how it will make predictions. Die zwei Hauptprozesse von KI-Modellen sind:The two main processes for AI models are:

  • Batchrückschlüsse: Ein asynchroner Vorgang, der Vorhersagen anhand einer Reihe von Beobachtungen trifft.Batch inference: An asynchronous process that bases its predictions on a batch of observations. Die Vorhersagen werden als Dateien oder in einer Datenbank für Endbenutzer oder Geschäftsanwendungen gespeichert.The predictions are stored as files or in a database for end users or business applications.

  • Echtzeitrückschlüsse (oder interaktive Rückschlüsse): Ermöglicht es dem Modell, jederzeit Vorhersagen zu treffen und eine sofortige Reaktion auszulösen.Real-time (or interactive) inference: Frees the model to make predictions at any time and trigger an immediate response. Dieses Muster kann zum Analysieren von Streamingdaten und interaktiven Anwendungsdaten verwendet werden.This pattern can be used to analyze streaming and interactive application data.

Berücksichtigen Sie bei der Bewertung des Modells die folgenden Fragen, vergleichen Sie die beiden Prozesse, und wählen Sie den für das Modell passenden Prozess aus:Consider the following questions to evaluate your model, compare the two processes, and select the one that suits your model:

  • Wie oft sollten Vorhersagen generiert werden?How often should predictions be generated?
  • Wie schnell werden die Ergebnisse benötigt?How soon are the results needed?
  • Sollten Vorhersagen einzeln, in kleinen Batches oder in großen Batches generiert werden?Should predictions be generated individually, in small batches, or in large batches?
  • Ist Latenz vom Modell zu erwarten?Is latency to be expected from the model?
  • Wie viel Computeleistung ist für die Ausführung des Modells erforderlich?How much compute power is needed to execute the model?
  • Hat die Wartung des Modells operative Auswirkungen und Kosten?Are there operational implications and costs to maintain the model?

Mithilfe der folgenden Entscheidungsstruktur können Sie ermitteln, welches Bereitstellungsmodell am besten zu Ihrem Anwendungsfall passt:The following decision tree can help you to determine which deployment model best fits your use case:

Ein Diagramm der Entscheidungsstruktur mit Echtzeit- und BatchrückschlüssenA diagram of the real-time or batch inference decision tree.

BatchrückschlussBatch inference

Batchrückschlüsse, manchmal auch Offlinerückschlüsse genannt, sind ein einfacher Rückschlussprozess, der die Ausführung von Modellen in festgelegten Intervallen und Geschäftsanwendungen beim Speichern von Vorhersagen unterstützt.Batch inference, sometimes called offline inference, is a simpler inference process that helps models to run in timed intervals and business applications to store predictions.

Beachten Sie die folgenden bewährten Methoden für Batchrückschlüsse:Consider the following best practices for batch inference:

  • Auslösen der Batchbewertung: Verwenden Sie Azure Machine Learning-Pipelines und das Feature ParallelRunStep in Azure Machine Learning, um eine zeitplan- oder ereignisbasierte Automatisierung einzurichten.Trigger batch scoring: Use Azure Machine Learning pipelines and the ParallelRunStep feature in Azure Machine Learning to set up a schedule or event-based automation. Navigieren Sie zu AI Show, um Batchrückschlüsse mit Azure Machine Learning-ParallelRunStep auszuführen, und informieren Sie sich über den Vorgang.Navigate to the AI show to perform batch inference using Azure Machine Learning ParallelRunStep and learn more about the process.

  • Computeoptionen für Batchrückschlüsse: Da Batchrückschlüsse nicht kontinuierlich ausgeführt werden, wird empfohlen, wiederverwendbare Cluster, die eine Reihe von Workloads verarbeiten können, automatisch zu starten, zu beenden und zu skalieren.Compute options for batch inference: Since batch inference processes don't run continuously, it's recommended to automatically start, stop, and scale reusable clusters that can handle a range of workloads. Für verschiedene Modelle sind unterschiedliche Umgebungen erforderlich, und Ihre Lösung muss in der Lage sein, eine bestimmte Umgebung bereitzustellen und nach einem Rückschlussvorgang wieder zu entfernen, um die Computeressourcen für das nächste Modell verfügbar zu machen.Different models require different environments, and your solution needs to be able to deploy a specific environment and remove it when inference is over for the compute to be available for the next model. Anhand der folgenden Entscheidungsstruktur können Sie die geeignete Compute-Instanz für Ihr Modell ermitteln:See the following decision tree to identify the right compute instance for your model:

    Ein Diagramm der ComputeentscheidungsstrukturA diagram of the compute decision tree.

  • Implementieren von Batchrückschlüssen: Azure unterstützt mehrere Features für Batchrückschlüsse.Implement batch inference: Azure supports multiple features for batch inference. Eines davon ist das Feature ParallelRunStep in Azure Machine Learning, das es Kunden ermöglicht, aus mehreren Terabyte von strukturierten oder unstrukturierten Daten in Azure Erkenntnisse zu gewinnen.One feature is ParallelRunStep in Azure Machine Learning, which allows customers to gain insights from terabytes of structured or unstructured data stored in Azure. ParallelRunStep bietet sofort verfügbare Parallelität und funktioniert innerhalb Azure Machine Learning-Pipelines.ParallelRunStep provides out-of-the-box parallelism and works within Azure Machine Learning pipelines.

  • Herausforderungen von Batchrückschlüssen: Obwohl Batchrückschlüsse eine einfachere Möglichkeit darstellen, Ihr Modell in der Produktionsumgebung zu verwenden und bereitzustellen, gehen sie mit bestimmten Herausforderungen einher:Batch inference challenges: While batch inference is a simpler way to use and deploy your model in production, it does present select challenges:

    • In Abhängigkeit von der Häufigkeit, mit der Rückschlüsse ausgeführt werden, können die erzeugten Daten zum Zeitpunkt des Zugriffs bereits irrelevant sein.Depending on the frequency at which inference runs, the data produced could be irrelevant by the time it's accessed.

    • Es kann zu einer Variante des Kaltstartproblems kommen, wenn unter Umständen keine Ergebnisse für neue Daten verfügbar sind.A variation of the cold-start problem; results might not be available for new data. Wenn ein neuer Benutzer z. B. ein neues Konto erstellt und zum Einkaufen ein Empfehlungssystem nutzt, sind Produktempfehlungen erst nach der nächsten Ausführung von Batchrückschlüssen verfügbar.For example, if a new user creates and account and starts shopping with a retail recommendation system, product recommendations won't be available until after the next batch inference run. Wenn dies ein Hindernis für Ihren Anwendungsfall darstellt, sollten Sie Echtzeitrückschlüsse in Erwägung ziehen.If this is an obstacle for your use case, consider real-time inference.

    • Die Bereitstellung in vielen Regionen und Hochverfügbarkeit sind in Batchrückschlussszenarios nicht von kritischer Wichtigkeit.Deploying to many regions and high availability aren't critical concerns in a batch inference scenario. Das Modell muss nicht regional bereitgestellt werden, und der Datenspeicher muss möglicherweise mit einer Hochverfügbarkeitsstrategie an mehreren Standorten bereitgestellt werden.The model doesn't need to be deployed regionally, and the data store might need to be deployed with a high-availability strategy in many locations. Diese richtet sich normalerweise nach der Entwurfsstrategie für die Anwendungshochverfügbarkeit.This will normally follow the application HA design and strategy.

EchtzeitrückschlussReal-time inference

Echtzeitrückschlüsse oder interaktive Rückschlüsse basieren auf einer Architektur, in der Modellrückschlüsse jederzeit ausgelöst werden können und eine sofortige Reaktion erwartet wird.Real-time, or interactive, inference is architecture where model inference can be triggered at any time, and an immediate response is expected. Dieses Muster kann zum Analysieren von Streamingdaten, interaktiven Anwendungsdaten und mehr verwendet werden.This pattern can be used to analyze streaming data, interactive application data, and more. In diesem Modus können Sie das Machine Learning-Modell in Echtzeit nutzen und das zuvor in Bezug auf die Batchrückschlüsse beschriebene Kaltstartproblem lösen.This mode allows you to take advantage of your machine learning model in real time and resolves the cold-start problem outlined above in batch inference.

Die folgenden Überlegungen und bewährten Methoden gelten, wenn Echtzeitrückschlüsse für Ihr Modell das Richtige sind:The following considerations and best practices are available if real-time inference is right for your model:

  • Herausforderungen von Echtzeitrückschlüssen: Aufgrund der Latenz- und Leistungsanforderungen fällt die Architektur für Echtzeitrückschlüsse für Ihr Modell komplexer aus.The challenges of real-time inference: Latency and performance requirements make real-time inference architecture more complex for your model. Angenommen, ein System muss in 100 Millisekunden oder weniger reagieren. In dieser Zeit müssen die Daten abgerufen, Rückschlüsse ausgeführt, die Modellergebnisse überprüft und gespeichert, sämtliche erforderliche Geschäftslogik ausgeführt und die Ergebnisse an das System oder die Anwendung zurückgegeben werden.A system might need to respond in 100 milliseconds or less, during which it needs to retrieve the data, perform inference, validate and store the model results, run any required business logic, and return the results to the system or application.

  • Computeoptionen für Echtzeitrückschlüsse: Die beste Implementierungsmethode für Echtzeitrückschlüsse ist, das Modell als Container in einem Docker- oder AKS-Cluster bereitzustellen und es als Webdienst mit einer REST-API verfügbar zu machen.Compute options for real-time inference: The best way to implement real-time inference is to deploy the model in a container form to Docker or AKS cluster and expose it as a web-service with REST API. Auf diese Weise wird das Modell in seiner eigenen isolierten Umgebung ausgeführt und kann wie jeder andere Webdienst dort verwaltet werden.This way, the model executes in its own isolated environment and can be managed like any other web service there. Für die Verwaltung, Überwachung, Skalierung usw. können Sie die Docker-/AKS-Funktionen verwenden.Docker/AKS capabilities can then be used for management, monitoring, scaling, and more. Das Modell kann lokal, in der Cloud oder am Edge bereitgestellt werden.The model can be deployed on-premises, in the cloud, or on the edge. Die vorangehende Computeentscheidung beschreibt Echtzeitrückschlüsse.The preceding compute decision outlines real-time inference.

  • Multiregionale Bereitstellung und Hochverfügbarkeit: Regionale Bereitstellungen und Hochverfügbarkeitsarchitekturen müssen in Echtzeitszenarios berücksichtigt werden, da die Latenz und die Leistung des Modells von kritischer Wichtigkeit sind.Multiregional deployment and high availability: Regional deployment and high availability architectures need to be considered in real-time inference scenarios, as latency and the model's performance will be critical to resolve. Zur Verringerung der Latenz in multiregionalen Bereitstellungen empfiehlt es sich, das Modell so nah wie möglich am Verbrauchspunkt zu platzieren.To reduce latency in multiregional deployments, it's recommended to locate the model as close as possible to the consumption point. Das Modell und die unterstützende Infrastruktur müssen an den Prinzipien und der Strategie des Unternehmens für Hochverfügbarkeit und Notfallwiederherstellung ausgerichtet sein.The model and supporting infrastructure should follow the business' high availability and DR principles and strategy.

Multi-Modell-SzenarioMany-models scenario

Ein einzelnes Modell ist möglicherweise nicht in der Lage, die komplexe Natur realer Probleme zu erfassen, z. B. das Vorhersagen von Verkäufen für einen Supermarkt, bei dem die Demografie, Marken, SKUs und andere Faktoren zu starken Schwankungen im Kundenverhalten führen können.A singular model might not be able to capture the complex nature of real-world problems, such as predicting sales for a supermarket where demographics, brand, SKUs, and other features could cause customer behavior to vary significantly. Regionen können bewirken, dass die sich entwickelnde Predictive Maintenance für intelligente Zähler ebenfalls erheblich variiert.Regions could cause developing predictive maintenance for smart meters to also vary significantly. In solchen Szenarios zahlt es sich aus, viele Modelle zu haben, um regionale Daten oder Beziehungen auf Speicherebene zu erfassen, denn diese können eine höhere Genauigkeit als ein einzelnes Modell erzielen.Having many models for these scenarios to capture regional data or store-level relationships could produce higher accuracy than a single model. Bei dieser Vorgehensweise wird davon ausgegangen, dass für diese Granularitätsebene genügend Daten verfügbar sind.This approach assumes that enough data is available for this level of granularity.

Im Allgemeinen umfasst ein Multi-Modell-Szenario die folgenden drei Phasen: Datenquelle, Data Science und viele Modelle.At a high level, a many-models scenario occurs in three stages: data source, data science, and many models.

Ein Diagramm eines Multi-Modell-SzenariosA diagram of a many-models scenario.

Datenquelle: Es ist wichtig, Daten ohne zu viele Kardinalitäten in der Datenquellenphase zu segmentieren.Data source: It's important to segment data without too many cardinalities in the data source stage. Die Produkt-ID oder der Barcode sollte nicht in die Hauptpartition einbezogen werden, da dadurch zu viele Segmente erzeugt werden. Dies kann wiederum die Aussagekraft von Modellen einschränken.The product ID or barcode shouldn't be factored into the main partition, as this will produce too many segments and could inhibit meaningful models. Die Marke, die SKU oder die Lokalität könnten passendere Features sein.The brand, SKU, or locality could be more fitting features. Zudem ist es wichtig, die Daten zu homogenisieren, indem Sie Anomalien entfernen, die die Datenverteilung verzerren.It's also important to homogenize the data by removing anomalies that would skew data distribution.

Data Science: In der Data-Science-Phase werden mehrere Experimente parallel zu jeder Datenpartition ausgeführt.Data science: Several experiments run parallel to each data partition in the data science stage. Dies ist in der Regel ein iterativer Prozess, bei dem die Modelle aus den Experimenten ausgewertet werden, um das beste Modell zu ermitteln.This is a typically iterative process where models from the experiments are evaluated to determine the best one.

Viele Modelle: Die besten Modelle für die einzelnen Segmente oder Kategorien sind in der Modellregistrierung vermerkt.Many models: The best models for each segment or category are registered in the model registry. Weisen Sie den Modellen aussagekräftige Namen zu, sodass sie für den Rückschluss leichter erkennbar sind.Assign meaningful names to the models, which will make them more discoverable for inference. Verwenden Sie Tagging, falls notwendig, um das Modell in bestimmte Kategorien zu gruppieren.Use tagging where necessary to group the model into specific categories.

Batchrückschlüsse für viele ModelleBatch inference for many models

Während Batchrückschlussvorgängen für viele Modelle werden Vorhersagen in der Regel geplant und wiederholt und können große Datenmengen verarbeiten, die gleichzeitig ausgeführt werden.During batch inference for many models, predictions are typically scheduled, recurring, and they can handle large volumes of data running at the same time. Anders als bei Einzelmodellszenarios treffen viele Modelle gleichzeitig Vorhersagen, und es ist wichtig, die richtigen auszuwählen.Unlike in a single-model scenario, many models inference at the same time, and it's important to select the correct ones. Das folgende Diagramm zeigt das Referenzmuster von Batchrückschlüssen für viele Modelle:The following diagram shows the reference pattern for many-models batch inference:

Ein Diagramm des Verweismusters von Batchrückschlüssen für viele ModelleA diagram of the reference pattern for many-models batch inference.

Der Hauptzweck dieses Musters besteht darin, das Modell zu beobachten und mehrere Modelle gleichzeitig auszuführen, um eine hochgradig skalierbare Rückschlusslösung zu erzielen, die große Datenmengen verarbeiten kann.The core purpose of this pattern is to observe the model and run multiple models simultaneously to achieve a highly scalable inference solution that can handle large data volumes. Für hierarchische Modellrückschlüsse können viele Modelle in Kategorien aufgeteilt werden.To achieve hierarchical model inference, many models can be split into categories. Jede Kategorie kann einen eigenen Rückschlussspeicher wie einen Azure-Data-Lake haben.Each category can have its own inference storage, like an Azure data lake. Bei der Implementierung dieses Musters muss die horizontale und vertikale Skalierung dieser Modelle ausgeglichen werden, da sich dies sonst auf die Kosten und die Leistung auswirken würde.When implementing this pattern, one needs to balance scaling the models horizontally and vertically, as this would impact the cost and performance. Das Ausführen von zu vielen Modellinstanzen kann zwar die Leistung erhöhen, jedoch auch die Kosten steigern.Running too many model instances might increase performance but impact the cost. Zu wenige Instanzen mit Knoten mit hoher Spezifikation können kostengünstiger sein, jedoch auch Probleme bei der Skalierung verursachen.Too few instances with high spec nodes might be more cost effective but could cause issues with scaling.

Echtzeitrückschlüsse für viele ModelleReal-time inference for many models

Echtzeitrückschlüsse für viele Modelle erfordern eine geringe Latenz und bedarfsgesteuerte Anforderungen (in der Regel über einen REST-Endpunkt).Real-time many-models inference requires low latency and on-demand requests, typically via a REST endpoint. Dies ist nützlich, wenn externe Anwendungen oder Dienste eine Standardschnittstelle für die Interaktion mit dem Modell benötigen. In der Regel ist dies eine REST-Schnittstelle mit JSON-Nutzdaten.This is useful when external applications or services require a standard interface to interact with the model, typically via a REST interface with a JSON payload.

Ein Diagramm von Echtzeitrückschlüssen für viele ModelleA diagram of many-models real-time inference.

Der Hauptzweck dieses Musters ist, mithilfe des Ermittlungsdiensts eine Liste der Dienste und ihrer Metadaten zu identifizieren.The core purpose of this pattern is to use the discovery service to identify a list of services and their metadata. Es kann als Azure-Funktion implementiert werden und ermöglicht es Clients, relevante Details zum Dienst abzurufen, der mit einem sicheren REST-URI aufgerufen werden kann.This can be implemented as an Azure function and enables clients to obtain relevant service details of service, that can be invoked with a secure REST URI. JSON-Nutzdaten werden an den Dienst gesendet, wodurch das relevante Modell ausgelöst und eine JSON-Antwort an den Client zurückgegeben wird.A JSON payload be sent to the service, which would summon the relevant model and provide a JSON response back to the client.

Jeder Dienst ist ein zustandsloser Microservice, der mehrere Anforderungen gleichzeitig verarbeiten kann und auf die physische VM-Ressource beschränkt ist.Each service is stateless microservice that can handle multiple requests simultaneously and is limited to the physical virtual machine resource. Der Dienst kann mehrere Modelle bereitstellen, wenn mehrere Gruppen ausgewählt sind. Hierfür werden homogene Gruppierungen wie die Kategorie oder die SKU empfohlen.The service can deploy multiple models if multiple groups are selected; homogeneous groupings like the category, SKU, and more are recommended for this. Der Abgleich zwischen der Dienstanforderung und dem Modell, das für einen bestimmten Dienst ausgewählt wurde, muss in der Rückschlusslogik integriert werden (in der Regel über das Scoreskript).The mapping between the service request and model selected for a given service needs to be baked into the inference logic, typically via the score script. Wenn die Größe der Modelle relativ klein ausfällt (wenige Megabyte), empfiehlt es sich, diese aus Leistungsgründen in den Arbeitsspeicher zu laden. Andernfalls kann jedes Modell dynamisch pro Anforderung geladen werden.If the size of models is relatively small (a few megabytes), it's recommended to load them in memory for performance reasons; otherwise, each model can be loaded dynamically per request.

Nächste SchritteNext steps

Weitere Informationen über das Ziehen von Rückschlüssen mit Azure Machine Learning finden Sie in den folgenden Ressourcen:Explore the following resources to learn more about inferencing with Azure Machine Learning: