Designprinzipien für KI-Workloads in Azure
In diesem Artikel werden die Kernprinzipien für KI-Workloads in Azure beschrieben, wobei der Schwerpunkt auf den KI-Aspekten einer Architektur liegt. Es ist wichtig, alle Azure Well-Architected Framework-Säulen zusammen zu berücksichtigen, einschließlich ihrer Kompromisse. Wenden Sie jede Säule auf die funktionalen und nicht funktionalen Anforderungen der Workload an.
Zuverlässigkeit
Wenn Sie KI-Workloads auf Azure ausführen, müssen Sie viele der gleichen Zuverlässigkeitsanforderungen berücksichtigen, die Sie für andere Arten von Workloads berücksichtigen. Spezielle Überlegungen zum Training, Hosting und Ableiten von Modellen sind jedoch besonders wichtig und stehen im Mittelpunkt dieses Artikels. Es ist wichtig, diese Methoden in bewährte Standarddesignmethoden für Cloudanwendungen zu integrieren, die auch für KI-Workloads gelten.
Lesen Sie die Prinzipien des Zuverlässigkeitsdesigns, um ein grundlegendes Verständnis der hier beschriebenen Konzepte zu erhalten.
Entwurfsprinzip | Überlegungen |
---|---|
Verringern einzelner Fehlerpunkte. | Die Verwendung einer einzelnen Instanz für kritische Komponenten kann zu erheblichen Problemen führen. Um diese Arten von Problemen zu verhindern, bauen Sie Redundanz in alle kritischen Komponenten ein. Verwenden Sie Plattformen, die über integrierte Fehlertoleranz und Hochverfügbarkeitsfeatures verfügen, und implementieren Sie Redundanz, indem Sie mehrere Instanzen oder Knoten bereitstellen. |
Führen Sie Fehlermodusanalysen durch. Nutzen Sie bekannte Entwurfsmuster. |
Analysieren Sie regelmäßig potenzielle Fehlermodi in Ihren Systemkomponenten, und erstellen Sie Resilienz gegen diese Fehler. Verwenden Sie bekannte Entwurfsmuster, um Teile Ihres Systems zu isolieren und Kaskadierende Fehler zu verhindern. Das Bulkhead-Muster kann zum Beispiel dabei helfen, Fehler zu isolieren, und Wiederholungsmechanismen und Circuit-Breaker können vorübergehende Fehler wie die Drosselung von Anfragen behandeln. |
Ausgewogene Zuverlässigkeitsziele über abhängige Komponenten hinweg. | Stellen Sie sicher, dass der ableitende Endpunkt oder das Modell und der Datenspeicher hinsichtlich der Zuverlässigkeit ausgerichtet sind. Anwendungskomponenten müssen auch unter unerwarteten Bedingungen verfügbar bleiben, z. B. einer Zunahme gleichzeitiger Benutzer. Außerdem sollte der Workload in der Lage sein, bei Ausfällen auf Sicherungssysteme umzuschalten. Wenn eine Komponente fehlschlägt, wirkt sich dies auf die Zuverlässigkeit des anderen aus. In ähnlicher Weise sollten APIs der Dienstschicht, die kritische Ressourcen für die Produktion darstellen, dieselben Zuverlässigkeitsstandards einhalten wie andere Workload Flows mit hoher Kritikalität. Wenn diese APIs eine hohe Verfügbarkeit erfordern, muss die Hostingplattform Verfügbarkeitszonen oder ein Multiregion-Design unterstützen, um einen kontinuierlichen Betrieb und eine Ausfallsicherheit sicherzustellen. |
Design für Betriebssicherheit. | Sorgen Sie für die Zuverlässigkeit von Modellantworten, indem Sie sicherstellen, dass Updates häufig und zeitnah sind. Entscheiden Sie, ob aktuelle Daten oder etwas ältere Daten verwendet werden sollen, und ausgleichen Sie die Notwendigkeit für up-to-Datumsinformationen mit der Praktischkeit der Aktualisierungshäufigkeit. Sie sollten die Onlineschulung aufgrund ihrer Häufigkeits- und Zuverlässigkeitsanforderungen automatisieren. Offlineschulungen können durch eine Kosten-Nutzen-Analyse gerechtfertigt werden. Sie können günstigere Ressourcen für Offlineschulungen verwenden. |
Entwerfen Sie eine zuverlässige Benutzererfahrung. | Verwenden Sie Auslastungstests, um zu bewerten, wie Ihre Workload Stress behandelt, und entwerfen Sie Ihre Benutzeroberfläche, um die Erwartungen der Benutzer für Reaktionszeiten zu verwalten. Implementieren Sie UI-Elemente, die Benutzer über potenzielle Wartezeiten informieren, und übernehmen Sie asynchrone Clouddesignprinzipien, um Unterbrechungen, Latenz oder Fehler zu beheben. |
Sicherheit
Modelle verwenden häufig sensible Produktionsdaten, um relevante Ergebnisse zu erzeugen. Daher müssen Sie robuste Sicherheitsmaßnahmen in allen Ebenen der Architektur implementieren. Diese Maßnahmen umfassen die Implementierung eines sicheren Anwendungsdesigns frühzeitig im Lebenszyklus, das Verschlüsseln von Daten sowohl in Ruhe als auch während der Übertragung sowie die Einhaltung von Branchen-Compliance-Standards. Regelmäßige Sicherheitsbewertungen sind entscheidend für die Identifizierung und Milderung von Sicherheitsrisiken. Erweiterte Bedrohungserkennungsmechanismen tragen dazu bei, schnelle Reaktionen auf potenzielle Bedrohungen zu gewährleisten.
Sicherheitsprinzipien sind grundlegend zum Schutz der Datenintegrität, der Entwurfsintegrität und des Datenschutzes von Benutzern in KI-Lösungen. Als Verantwortlicher für Workload sind Sie dafür verantwortlich, Vertrauen aufzubauen und vertrauliche Informationen zu schützen, um eine sichere Benutzererfahrung zu gewährleisten.
Entwurfsprinzip | Überlegungen |
---|---|
Verdienen Sie die Benutzervertrauensstellung. | Integrieren Sie die Inhaltssicherheit in jeder Phase des Lebenszyklus, indem Sie benutzerdefinierten Code, Tools und effektive Sicherheitskontrollen verwenden. Entfernen Sie nicht benötigte persönliche und vertrauliche Informationen an allen Datenspeicherpunkten, einschließlich aggregierter Datenspeicher, Suchindizes, Caches und Anwendungen. Halten Sie dieses Sicherheitsniveau in der gesamten Architektur konsistent. Achten Sie darauf, eine gründliche Inhaltsmoderation zu implementieren, die Daten sowohl in Richtungen prüft als auch unangemessene und anstößige Inhalte herausfiltert. |
Schützen Sie die Daten im Ruhezustand, bei der Zustellung und bei der Nutzung entsprechend den vertraulichen Anforderungen des Workloads. | Verwenden Sie mindestens die Verschlüsselung auf Plattformebene mit von Microsoft verwalteten oder vom Kunden verwalteten Schlüsseln in allen Datenspeichern in der Architektur. Ermitteln Sie, wo Sie höhere Verschlüsselungsebenen benötigen, und verwenden Sie bei Bedarf doppelte Verschlüsselung. Stellen Sie sicher, dass der gesamte Datenverkehr HTTPS für die Verschlüsselung verwendet. Bestimmen Sie die TLS-Abschlusspunkte bei jedem Hop. Das Modell selbst muss geschützt werden, um angreifer daran zu hindern, vertrauliche Informationen zu extrahieren, die während des Trainings verwendet werden. Das Modell erfordert die höchste Sicherheitsstufe. Erwägen Sie die Verwendung von homomorpher Verschlüsselung, die das Ableiten von verschlüsselten Daten ermöglicht. |
Investieren Sie in eine robuste Zugriffsverwaltung für Identitäten (Benutzer und System), die auf das System zugreifen. | Implementieren Sie rollenbasierte Zugriffssteuerung (RBAC) und/oder attributbasierte Zugriffssteuerung (ABAC) für Steuerungs- und Datenebenen. Sorgen Sie für eine ordnungsgemäße Identitätssegmentierung, um den Datenschutz zu schützen. Lassen Sie nur den Zugriff auf Inhalte zu, für die die Identitäten berechtigt sind. |
Schützen Sie die Integrität des Designs, indem Sie Segmentierung implementieren. | Stellen Sie private Netzwerke für den Zugriff auf zentrale Repositorys für Containerimages, Daten und Coderessourcen bereit. Wenn durch das Teilen der Infrastruktur mit anderen Workloads eine Segmentierung entsteht, zum Beispiel, wenn Sie Ihren Inferenzserver in Azure Kubernetes Service hosten, isolieren Sie den Knotenpool von anderen APIs und Workloads. |
Führen Sie Sicherheitstests durch. | Entwickeln Sie einen detaillierten Testplan, der Tests zum Erkennen des unethischen Verhaltens enthält, wenn Änderungen am System vorgenommen werden. Integrieren Sie KI-Komponenten in Ihre vorhandenen Sicherheitstests. Integrieren Sie beispielsweise den Ableitungsendpunkt zusammen mit anderen öffentlichen Endpunkten in Ihre Routinetests. Erwägen Sie, Tests auf dem Livesystem durchzuführen, z. B. Penetrationstests oder rote Teamübungen, um potenzielle Sicherheitsrisiken effektiv zu identifizieren und zu beheben. |
Reduzieren Sie die Angriffsfläche, indem Sie strengen Benutzerzugriff und API-Design erzwingen. | Erfordern der Authentifizierung für alle Ableitungsendpunkte, einschließlich System-zu-System-Aufrufe. Vermeiden Sie anonyme Endpunkte. Bevorzugen Sie den eingeschränkten API-Entwurf auf Kosten der clientseitigen Flexibilität. |
Kompromiss. Die Implementierung der höchsten Sicherheitsstufen führt zu Kompromissen in Kosten und Genauigkeit, da die Möglichkeit, die verschlüsselten Daten zu analysieren, zu prüfen oder zu protokollieren, eingeschränkt ist. Inhaltssicherheitsprüfungen und die Erklärbarkeit können auch in hochsicheren Umgebungen eine Herausforderung darstellen.
Die folgenden Entwurfsbereiche enthalten Details zu den vorstehenden Grundsätzen und Überlegungen:
Kostenoptimierung
Ziel der Säule "Kostenoptimierung" ist es, Investitionen zu maximieren, nicht unbedingt um Kosten zu senken. Jede architekturbezogene Auswahl schafft sowohl direkte als auch indirekte finanzielle Auswirkungen. Verstehen Sie die Kosten, die mit verschiedenen Optionen verbunden sind, einschließlich Eigenentwicklungs- und Kaufentscheidungen, Technologieauswahl, Abrechnungsmodellen, Lizenzierung, Schulungen und Betriebskosten. Es ist wichtig, Ihre Investition in die ausgewählte Stufe zu maximieren und abrechnungsmodelle kontinuierlich neu zu bewerten. Bewerten Sie kontinuierlich Kosten, die mit Änderungen an Architektur, Geschäftsanforderungen, Prozessen und Teamstruktur verbunden sind.
Prüfen Sie die Grundsätze zur Kostenoptimierung und konzentrieren Sie sich dabei auf die Optimierung von Rate und Nutzung.
Entwurfsprinzip | Überlegungen |
---|---|
Ermitteln Sie die Kostentreiber, indem Sie eine umfassende Kostenmodellierungsübung durchführen. | Berücksichtigen Sie die wichtigsten Faktoren der Daten- und Anwendungsplattform: - Datenvolumen. Schätzen Sie die Datenmenge, die Sie indizieren und verarbeiten möchten. Größere Mengen können die Speicher- und Verarbeitungskosten erhöhen. - Anzahl der Abfragen. Vorhersagen der Häufigkeit und Komplexität von Abfragen. Höhere Abfragevolumen können die Kosten erhöhen, insbesondere, wenn die Abfragen erhebliche Rechenressourcen erfordern. - Durchsatz: Bewerten Sie den erwarteten Durchsatz, um zu bestimmen, welche Leistungsstufe Sie benötigen. Höhere Durchsatzanforderungen können zu höheren Kosten führen. - Abhängigkeitskosten. Verstehen Sie, dass es bei Abhängigkeiten möglicherweise versteckte Kosten gibt. Wenn Sie beispielsweise die Kosten für die Indizierung berechnen, schließen Sie die Kosten des Qualifikationssatzes ein, das Teil der Datenverarbeitung ist, aber außerhalb des Indexbereichs. |
Bezahlen Sie für das, was Sie verwenden möchten. | Wählen Sie eine Technologielösung aus, die Ihren Anforderungen entspricht, ohne unnötige Kosten entstehen zu müssen. Wenn Sie keine erweiterten Features benötigen, sollten Sie kostengünstigere Optionen und Open-Source-Tools in Betracht ziehen. Faktor der Nutzungshäufigkeit. Bevorzugen Sie flexible Berechnungsoptionen für Orchestrierungstools, um die Nutzungskosten zu minimieren, denn sie sind immer eingeschaltet. Vermeiden Sie serverloses Computing für den Dauerbetrieb, da es die Kosten erhöhen kann. Zahlen Sie nicht für höhere Tiers, ohne deren volle Kapazität zu nutzen. Stellen Sie sicher, dass Ihre ausgewählte Ebene ihren Produktionsnutzungsmustern entspricht, um die Ausgaben zu optimieren. Verwenden Sie standardpreise für reguläre Aufgaben und Spotpreise für hochunterbrechbare Schulungen. Um Kosten zu reduzieren, verwenden Sie GPU-basiertes Compute nur für KI-Workloadfunktionen. Testen und benchmarken Sie Ihr Training und Ihre Feinabstimmung ausgiebig, um die SKU zu finden, die das beste Gleichgewicht zwischen Leistung und Kosten bietet. |
Verwenden Sie das, wofür Sie bezahlen. Minimieren Sie Abfälle. | Überwachen Sie die Auslastungsmetriken genau. KI-Workloads können teuer sein, und die Kosten können schnell eskalieren, wenn Ressourcen nicht heruntergefahren, vertikal herunterskaliert oder freigegeben werden, wenn sie nicht genutzt werden. Optimieren Sie das System für einmaliges Schreiben, lesen Sie viele , um zu vermeiden, dass die Datenspeicherung außer Kraft steht. Schulungsdaten erfordern nicht die sofortige Reaktionsfähigkeit einer Produktionsdatenbank. Stresstests für einen Azure OpenAI Service-Ableitungsendpunkt können teuer sein, da für jeden Anruf Gebühren anfallen. Um Kosten zu reduzieren, verwenden Sie nicht verwendete PTUs des OpenAI-Diensts in einer Testumgebung, oder simulieren Sie stattdessen den Ableitungsendpunkt. Aufgaben wie explorative Datenanalyse (EDA), Modellschulungen und Feinabstimmungen werden in der Regel nicht in Vollzeit ausgeführt. Bevorzugen Sie für diese Aufgaben eine Plattform, die beendet werden kann, wenn sie nicht verwendet wird. EDA-Aufträge sind z. B. in der Regel interaktiv, sodass Benutzer virtuelle Computer starten und während der Ausführung von Aufträgen beenden können. Weisen Sie den Betriebsteams Kosten-Verantwortlichkeiten zu. Diese Teams sollten sicherstellen, dass die Kosten in den erwarteten Parametern bleiben, indem sie die Ressourcenauslastung aktiv überwachen und verwalten. |
Optimieren Sie die Betriebskosten. | Onlineschulungen können aufgrund ihrer Häufigkeitsanforderungen teuer sein. Durch die Automatisierung dieses Prozesses wird die Konsistenz beibehalten und die Kosten von menschlichem Fehler minimiert. Darüber hinaus kann die Verwendung von leicht älteren Daten für Schulungen und das Verzögern von Updates nach Möglichkeit die Ausgaben weiter reduzieren, ohne die Modellgenauigkeit erheblich zu beeinträchtigen. Bewerten Sie für Offlineschulungen, ob günstigere Ressourcen verwendet werden können, z. B. Offlinehardware. Löschen Sie im Allgemeinen Daten aus Featurespeichern, um Unübersichtlichkeit und Speicherkosten für Features zu reduzieren. |
Kompromiss: Kostenoptimierung und Leistungseffizienz. Ausgleich der Kosten mit der Leistung in der Datenbankverwaltung umfasst Trade-Offs. Effizientes Indexdesign beschleunigt Abfragen, kann aber die Kosten aufgrund der Metadatenverwaltung und indexgröße erhöhen. Ebenso kann das Partitionieren großer Tabellen die Abfrageleistung verbessern und die Speicherlast verringern, es entstehen jedoch zusätzliche Kosten. Umgekehrt können Techniken, die übermäßige Indizierung vermeiden, Kosten reduzieren, aber die Leistung beeinträchtigen, wenn sie nicht ordnungsgemäß verwaltet werden.
Kompromiss: Kostenoptimierung und Operative Exzellenz. Es gibt Kompromisse, die Sie berücksichtigen sollten, wenn Sie entscheiden, welche der beiden primären Ansätze für die Modellschulung verwendet werden sollen. Die Schulung in der Entwicklungsumgebung mit vollständigen Produktionsdaten kann die Berechnungskosten reduzieren, da das Modell nur einmal trainiert wird und nur das Artefakt gefördert wird. Dieser Ansatz erfordert jedoch strenge Sicherheitsmaßnahmen für die Verarbeitung von Produktionsdaten in niedrigeren Umgebungen, die komplex und ressourcenintensiv sein können. Umgekehrt verbessert das Training des Modells in jeder Umgebung aufgrund gründlicher Codeüberprüfung und -tests Stabilität und Zuverlässigkeit, aber dieses Modell erhöht die Rechenkosten, da schulungen mehrmals ausgeführt werden.
Optimaler Betrieb
Das Hauptziel von Operational Excellence ist die effiziente Bereitstellung von Funktionen während des gesamten Entwicklungslebenszyklus. Zum Erreichen dieses Ziels müssen wiederholbare Prozesse erstellt werden, die die Entwurfsmethodik des Experimentierens unterstützen und Ergebnisse liefern, um die Modellleistung zu verbessern. Operational Excellence geht es auch darum, die Genauigkeit von Modellen im Laufe der Zeit aufrechtzuerhalten, effektive Überwachungspraktiken und Governance zu implementieren, um Risiken zu minimieren und Change Management-Prozesse zu entwickeln, um sich an Modellabweichungen anzupassen.
Obwohl alle Operational Excellence-Prinzipien auf KI-Workloads angewendet werden, priorisieren Sie Automatisierung und Überwachung als grundlegende operative Strategien.
Entwurfsprinzip | Überlegungen |
---|---|
Fördern Sie eine kontinuierliche Lern- und Experimentier-Denkweise während des gesamten Lebenszyklus der Anwendungsentwicklung, der Datenverarbeitung und des KI-Modellmanagements. | Workload-Operationen sollten auf branchenbewährten Methoden wie DevOps, DataOps, MLOps und GenAIOps aufbauen. Eine frühzeitige Zusammenarbeit zwischen Vorgängen, Anwendungsentwicklung und Datenteams ist unerlässlich, um ein gegenseitiges Verständnis der akzeptablen Modellleistung zu schaffen. Betriebsteams bieten Qualitätssignale und umsetzbare Warnungen. Anwendungs- und Datenteams helfen dabei, Probleme effizient zu diagnostizieren und zu beheben. |
Wählen Sie Technologien aus, die den Betriebsaufwand minimieren. | Wenn Sie Plattformlösungen auswählen, bevorzugen Sie Platform as a Service (PaaS) gegenüber selbst gehosteten Optionen, um das Design zu vereinfachen, die Workflow-Orchestrierung zu automatisieren und den Tagesbetrieb zu erleichtern. |
Erstellen Sie ein automatisiertes Überwachungssystem, das Warnungsfunktionen unterstützt, einschließlich Protokollierung und Auditierbarkeit. | Angesichts der nicht deterministischen Natur der KI ist es wichtig, Qualitätsmessungen frühzeitig im Lebenszyklus zu etablieren. Arbeiten Sie mit Datenwissenschaftlern zusammen, um Qualitätsmetriken zu definieren. Visualisieren Sie laufende Insights in umfassenden Dashboards. Verfolgen Sie Experimente mithilfe von Tools, mit denen Details wie Codeversionen, Umgebungen, Parameter, Ausführung und Ergebnisse erfasst werden können. Implementieren Sie umsetzbare Warnhinweise, die ausreichend Informationen liefern, damit die Betreiber schnell reagieren können. |
Automatisieren Sie die Erkennung und Entschärfung des Modellzerfalls. | Verwenden Sie automatisierte Tests, um die Drift im Laufe der Zeit zu bewerten. Stellen Sie sicher, dass Ihr Überwachungssystem Warnungen sendet, wenn die Antworten von den erwarteten Ergebnissen abweichen und beginnen Sie, dies regelmäßig zu tun. Verwenden Sie Tools, mit denen neue Modelle automatisch ermittelt und aktualisiert werden können. Passen Sie sich bei Bedarf an neue Anwendungsfälle an, indem Sie die Datenverarbeitungs- und Modelltrainingslogik anpassen. |
Implementieren Sie sichere Implementierungen. | Wählen Sie zwischen parallelen Bereitstellungen oder direkten Updates aus, um Ausfallzeiten zu minimieren. Implementieren Sie gründliche Tests vor der Bereitstellung, um sicherzustellen, dass das Modell ordnungsgemäß konfiguriert ist und Ziele, Benutzererwartungen und Qualitätsstandards erfüllt. Planen Sie immer Notfalleinsätze, unabhängig von der Bereitstellungsstrategie. |
Bewerten Sie die Benutzererfahrung kontinuierlich in der Produktion. | Ermöglichen Sie Benutzern von Workload, Feedback zu ihrer Erfahrung zu geben. Holen Sie die Zustimmung ein, einen Teil oder die gesamte Konversation in einem zugehörigen Protokoll zur Fehlerbehebung weiterzugeben. Überlegen Sie, wie viel von einer Benutzerinteraktion sinnvoll, konform, sicher und nützlich zu erfassen ist, und nutzen Sie die Daten sorgfältig, um die Leistung Ihres Workloads mit echten Benutzerinteraktionen zu bewerten. |
Die folgenden Entwurfsbereiche enthalten Details zu den vorstehenden Grundsätzen und Überlegungen:
Effiziente Leistung
Ziel der KI-Modell-Leistungsbewertung ist es, zu bestimmen, wie effektiv ein Modell seine beabsichtigten Aufgaben erfüllt. Zur Erreichung dieses Ziels müssen verschiedene Metriken wie Genauigkeit, Präzision und Fairness bewertet werden. Darüber hinaus ist die Leistung der Plattform- und Anwendungskomponenten, die das Modell unterstützen, von entscheidender Bedeutung.
Die Modellleistung wird auch durch die Effizienz von Vorgängen wie Experimentverfolgung und Datenverarbeitung beeinflusst. Das Anwenden von Prinzipien der Leistungseffizienz hilft, die Leistung an einem akzeptablen Qualitätsstandard zu messen. Dieser Vergleich ist der Schlüssel zum Erkennen von Abbau oder Verfall. Um die Arbeitsauslastung einschließlich KI-Komponenten aufrechtzuerhalten, benötigen Sie automatisierte Prozesse zur kontinuierlichen Überwachung und Auswertung.
Entwurfsprinzip | Überlegungen |
---|---|
Legen Sie Leistungs-Benchmarks fest. | Führen Sie strenge Leistungstests in verschiedenen Architekturbereichen durch, und legen Sie akzeptable Ziele fest. Diese laufende Bewertung sollte Teil Ihrer betrieblichen Prozesse sein, nicht ein einmaliger Test. Benchmarking gilt für die Vorhersageleistung. Beginnen Sie mit einer Basislinie, um die anfängliche Modellleistung zu verstehen und die Leistung kontinuierlich zu bewerten, um sicherzustellen, dass sie die Erwartungen erfüllt. |
Bewerten sie die Ressourcenanforderungen für die Erfüllung von Leistungszielen. | Verstehen Sie die Merkmale der Auslastung, um die richtige Plattform zu wählen und die Ressourcen richtig zu dimensionieren. Berücksichtigen Sie diese Daten zur Kapazitätsplanung, um im großen Maßstab arbeiten zu können. Verwenden Sie beispielsweise Auslastungstests, um die optimale Computeplattform und SKU zu ermitteln. Für das Training und die Feinabstimmung von Modellen werden häufig GPU-optimierte Hochleistungsrechner benötigt, aber für Orchestrierungstools eignen sich auch universelle SKUs. Wählen Sie auf ähnliche Weise eine Datenplattform aus, die die Datenaufnahme effizient verarbeitet, gleichzeitige Schreibvorgänge verwaltet und individuelle Schreibleistung ohne Beeinträchtigung aufrecht erhält. Verschiedene Ableitungsserver weisen unterschiedliche Leistungsmerkmale auf. Diese Merkmale wirken sich auf die Modellleistung zur Laufzeit aus. Wählen Sie einen Server aus, der die grundlegenden Erwartungen erfüllt. |
Sammeln und analysieren Sie Leistungsmetriken, und identifizieren Sie Engpässe. |
Evaluieren Sie Telemetrie aus der Datenpipeline, um sicherzustellen, dass Leistungsziele für Durchsatz- und Lese-/Schreibvorgänge erfüllt sind. Berücksichtigen Sie für den Suchindex Metriken wie Abfrage-Latenz, Durchsatz und die Genauigkeit der Ergebnisse. Da das Datenvolumen steigt, sollten fehlerraten nicht erhöht werden. Analysieren Sie die Telemetrie von Code-Komponenten, wie dem Orchestrator, der Daten aus Dienstaufrufen sammelt. Die Analyse dieser Daten kann Ihnen helfen, die für die lokale Verarbeitung aufgewendete Zeit im Vergleich zu Netzwerkaufrufen zu verstehen und potenzielle Latenz in anderen Komponenten zu identifizieren. Bewerten Sie die Benutzeroberfläche mithilfe von Engagement-Metriken, um zu bestimmen, ob Benutzer positiv engagiert oder frustriert sind. Eine höhere Zeit auf einer Seite kann beides angeben. Multimodale Funktionen wie Sprach- oder Videoantworten können zu erheblicher Latenz führen, was zu längeren Reaktionszeiten führt. |
Verbessern Sie die Benchmark-Leistung kontinuierlich, indem Sie Qualitätsmessungen aus der Produktion verwenden. | Implementieren Sie automatisierte Sammlung und Analyse von Leistungsmetriken, Warnungen und Modellumschulungen, um die Modelleffizienz aufrechtzuerhalten. |
Kompromiss. Wenn Sie Plattformfunktionen in Betracht ziehen, müssen Sie Kosten und Leistung ausgleichen. GPU-SKUs sind beispielsweise teuer. Überwachen Sie daher kontinuierlich, ob die Ressourcen nicht ausreichend ausgelastet sind, und passen Sie sie bei Bedarf an. Testen Sie nach den Anpassungen die Ressourcennutzung, um ein Gleichgewicht zwischen den Kosten für die Ressourcen der Plattform und ihre Vorgänge und der erwarteten Leistung, wie in der Baseline angegeben, sicherzustellen. Informationen zu Kostenoptimierungsstrategien finden Sie unter Empfehlungen zur Optimierung der Komponentenkosten.
Die folgenden Entwurfsbereiche enthalten Details zu den vorstehenden Grundsätzen und Überlegungen: