Zasady projektowania obciążeń sztucznej inteligencji na platformie Azure
W tym artykule opisano podstawowe zasady dotyczące obciążeń sztucznej inteligencji na platformie Azure, koncentrując się na aspektach sztucznej inteligencji architektury. Ważne jest, aby wspólnie rozważyć wszystkie filary platformy Azure Well-Architected Framework, w tym ich kompromisy. Zastosuj każdy filar do wymagań funkcjonalnych i niefunkcjonalnych obciążenia.
Niezawodność
Podczas uruchamiania obciążeń sztucznej inteligencji na platformie Azure należy wziąć pod uwagę wiele z tych samych wymagań dotyczących niezawodności, które należy wziąć pod uwagę w przypadku innych typów obciążeń. Jednak szczególne zagadnienia dotyczące trenowania, hostowania i wnioskowania modeli są szczególnie ważne i dotyczą tego artykułu. Ważne jest, aby zintegrować te rozwiązania ze standardowymi najlepszymi rozwiązaniami projektowymi dla aplikacji w chmurze, które mają zastosowanie również do obciążeń sztucznej inteligencji.
Zapoznaj się z zasadami projektowania niezawodności , aby uzyskać podstawową wiedzę na temat pojęć opisanych tutaj.
Zasada projektowania | Kwestie wymagające rozważenia |
---|---|
Eliminowanie pojedynczych punktów awarii. | Poleganie na jednym wystąpieniu krytycznych składników może prowadzić do poważnych problemów. Aby zapobiec tego rodzaju problemom, utwórz redundancję we wszystkich krytycznych składnikach. Używaj platform, które mają wbudowaną odporność na uszkodzenia i funkcje wysokiej dostępności, oraz zaimplementuj nadmiarowość poprzez wdrożenie wielu wystąpień lub węzłów. |
Przeprowadzanie analizy trybu awarii. Skorzystaj z dobrze znanych wzorców projektowych. |
Regularnie analizuj potencjalne tryby awarii w składnikach systemu i twórz odporność na te awarie. Użyj dobrze znanych wzorców projektowych, aby odizolować części systemu i zapobiec awariom kaskadowym. Na przykład wzorzec bulkhead może pomóc wyizolować awarie, a mechanizmy ponawiania i wyłączniki mogą obsługiwać błędy przejściowe, takie jak żądania ograniczania przepustowości. |
Zrównoważ cele niezawodności między składnikami zależniami. | Upewnij się, że punkt końcowy wnioskowania lub model oraz magazyn danych są dopasowane pod względem niezawodności. Składniki aplikacji muszą pozostać dostępne nawet w nieoczekiwanych warunkach, takich jak wzrost liczby współbieżnych użytkowników. Ponadto obciążenie powinno mieć możliwość przełączenia się na systemy kopii zapasowych w przypadku awarii. Jeśli jeden składnik ulegnie awarii, wpłynie to na niezawodność drugiej. Podobnie interfejsy API warstwy usług, które są krytycznymi zasobami produkcyjnymi, powinny być zgodne z tymi samymi standardami niezawodności co inne przepływy obciążeń o wysokim znaczeniu. Jeśli te interfejsy API wymagają wysokiej dostępności, platforma hostingu musi obsługiwać strefy dostępności lub projekt w wielu regionach, aby zapewnić ciągłą operację i odporność. |
Projektowanie pod kątem niezawodności operacyjnej. | Zachowaj niezawodność odpowiedzi modelu, upewniając się, że aktualizacje są częste i terminowe. Zdecyduj, czy używać ostatnich danych, czy nieco starszych, zrównoważyć potrzebę up-to— informacje daty z praktycznością częstotliwości aktualizacji. Należy zautomatyzować szkolenie online ze względu na jego częstotliwość i wymagania dotyczące niezawodności. Trenowanie w trybie offline może być uzasadnione za pomocą analizy kosztów i korzyści. Do trenowania w trybie offline można użyć tańszych zasobów. |
Projektowanie pod kątem niezawodnego środowiska użytkownika. | Użyj testowania obciążenia, aby ocenić sposób obsługi obciążenia i zaprojektować interfejs użytkownika, aby zarządzać oczekiwaniami użytkowników na czasy odpowiedzi. Zaimplementuj elementy interfejsu użytkownika, które informują użytkowników o potencjalnych czasach oczekiwania, przyjmując asynchroniczne zasady projektowania w chmurze w celu rozwiązania sporadyczności, opóźnień lub awarii. |
Zabezpieczenia
Modele często używają poufnych danych produkcyjnych do generowania odpowiednich wyników. Dlatego należy zaimplementować niezawodne środki zabezpieczeń we wszystkich warstwach architektury. Te środki obejmują implementowanie bezpiecznego projektu aplikacji na wczesnym etapie cyklu życia, szyfrowanie danych magazynowanych i przesyłanych oraz przestrzeganie standardów zgodności z branży. Regularne oceny zabezpieczeń mają kluczowe znaczenie dla identyfikowania i ograniczania luk w zabezpieczeniach. Zaawansowane mechanizmy wykrywania zagrożeń pomagają zapewnić szybkie reakcje na potencjalne zagrożenia.
Zasady zabezpieczeń są podstawowe w zakresie ochrony integralności danych, integralności projektu i prywatności użytkowników w rozwiązaniach sztucznej inteligencji. Jako właściciel obciążenia odpowiadasz za budowanie zaufania i ochronę poufnych informacji w celu zapewnienia bezpiecznego środowiska użytkownika.
Zasada projektowania | Kwestie wymagające rozważenia |
---|---|
Uzyskaj zaufanie użytkowników. | Integrowanie bezpieczeństwa zawartości na każdym etapie cyklu życia przy użyciu niestandardowego kodu, narzędzi i skutecznych mechanizmów kontroli zabezpieczeń. Usuń niepotrzebne informacje osobiste i poufne we wszystkich punktach przechowywania danych, w tym zagregowane magazyny danych, indeksy wyszukiwania, pamięci podręczne i aplikacje. Zachowaj ten poziom zabezpieczeń spójnie w całej architekturze. Pamiętaj, aby zaimplementować dokładne moderowanie zawartości, które sprawdza dane w obu kierunkach i filtruje nieodpowiednią i obraźliwą zawartość. |
Ochrona danych magazynowanych, przesyłanych i używanych zgodnie z wymaganiami dotyczącymi poufności obciążenia. | Należy co najmniej używać szyfrowania na poziomie platformy z kluczami zarządzanymi przez firmę Microsoft lub kluczami zarządzanymi przez klienta we wszystkich magazynach danych w architekturze. Określ, gdzie potrzebujesz wyższych poziomów szyfrowania, i w razie potrzeby użyj podwójnego szyfrowania. Upewnij się, że cały ruch używa protokołu HTTPS do szyfrowania. Określ punkty zakończenia protokołu TLS na każdym przeskoku. Sam model musi być chroniony, aby uniemożliwić osobom atakującym wyodrębnianie poufnych informacji używanych podczas trenowania. Model wymaga najwyższego poziomu środków zabezpieczeń. Rozważ użycie szyfrowania homomorficznego, które umożliwia wnioskowanie na zaszyfrowanych danych. |
Zainwestuj w niezawodne zarządzanie dostępem dla tożsamości (użytkowników i systemów), które uzyskują dostęp do systemu. | Zaimplementuj kontrolę dostępu opartą na rolach (RBAC) i/lub kontrolę dostępu opartą na atrybutach (ABAC) dla płaszczyzn kontroli i danych. Zachowaj odpowiednią segmentację tożsamości, aby chronić prywatność. Zezwalaj tylko na dostęp do zawartości, którą mogą przeglądać autoryzowane tożsamości. |
Chroń integralność projektu, implementując segmentację. | Zapewnianie sieci prywatnej w celu uzyskania dostępu do scentralizowanych repozytoriów dla obrazów kontenerów, danych i zasobów kodu. Kiedy udostępnianie infrastruktury innym zastosowaniom powoduje segmentację, na przykład gdy hostujesz serwer wnioskowania w usłudze Azure Kubernetes Service, izoluj pulę węzłów od innych interfejsów API i zastosowań. |
Przeprowadzanie testów zabezpieczeń. | Opracuj szczegółowy plan testu zawierający testy wykrywania nieetycznego zachowania przy każdym wprowadzeniu zmian w systemie. Integrowanie składników sztucznej inteligencji z istniejącymi testami zabezpieczeń. Na przykład uwzględnij punkt końcowy wnioskowania w rutynowych testach wraz z innymi publicznymi punktami końcowymi. Rozważ przeprowadzenie testów w systemie na żywo, takich jak testy penetracyjne lub ćwiczenia zespołu czerwonego, aby skutecznie zidentyfikować potencjalne luki w zabezpieczeniach i rozwiązać problem. |
Zmniejsz obszar ataków, wymuszając rygorystyczny dostęp użytkowników i projekt interfejsu API. | Wymagaj uwierzytelniania dla wszystkich punktów końcowych wnioskowania, w tym wywołań system-system. Unikaj anonimowych punktów końcowych. Preferuj ograniczony projekt interfejsu API kosztem elastyczności po stronie klienta. |
kompromis. Implementowanie najwyższych poziomów zabezpieczeń wiąże się z kompromisami w zakresie kosztów i dokładności, ponieważ możliwość analizowania, inspekcji lub rejestrowania zaszyfrowanych danych jest ograniczona. Sprawdzanie bezpieczeństwa zawartości i osiągnięcie możliwości wyjaśnienia mogą być również trudne w środowiskach o wysokim poziomie bezpieczeństwa.
Następujące obszary projektowania zawierają szczegółowe informacje na temat powyższych zasad i zagadnień:
Optymalizacja kosztów
Celem filaru optymalizacji kosztów jest maksymalizacja inwestycji, niekoniecznie w celu zmniejszenia kosztów. Każdy wybór architektury tworzy zarówno bezpośredni, jak i pośredni wpływ finansowy. Zapoznaj się z kosztami związanymi z różnymi opcjami, w tym decyzjami dotyczącymi kompilacji i zakupu, wyborami technologii, modelami rozliczeniowymi, licencjonowaniem, szkoleniami i kosztami operacyjnymi. Ważne jest, aby zmaksymalizować inwestycję w wybraną warstwę i stale ponownie ocenić modele rozliczeniowe. Stale oceniaj koszty związane ze zmianami architektury, potrzeb biznesowych, procesów i struktury zespołu.
Zapoznaj się z zasadami optymalizacji kosztów , koncentrując się na optymalizacji szybkości i użycia.
Zasada projektowania | Kwestie wymagające rozważenia |
---|---|
Określ czynniki kosztów, wykonując kompleksowe ćwiczenie dotyczące modelowania kosztów. | Weź pod uwagę kluczowe czynniki platformy danych i aplikacji: - Ilość danych. Szacowanie ilości danych, które będą indeksować i przetwarzać. Większe woluminy mogą zwiększyć koszty magazynowania i przetwarzania. - Liczba zapytań. Przewidywanie częstotliwości i złożoności zapytań. Większe woluminy zapytań mogą zwiększyć koszty, zwłaszcza jeśli zapytania wymagają znacznych zasobów obliczeniowych. - Przepływność. Oceń oczekiwaną przepływność, aby określić, której warstwy wydajności potrzebujesz. Wyższe wymagania dotyczące przepływności mogą prowadzić do wyższych kosztów. - Koszty zależności. Dowiedz się, że w zależnościach mogą występować ukryte koszty. Na przykład podczas obliczania kosztu indeksowania uwzględnij koszt zestawu umiejętności, który jest częścią przetwarzania danych, ale poza zakresem indeksu. |
Zapłać za to, czego zamierzasz użyć. | Wybierz rozwiązanie technologiczne spełniające Twoje potrzeby bez ponoszenia niepotrzebnych wydatków. Jeśli nie potrzebujesz zaawansowanych funkcji, rozważ tańsze opcje i narzędzia typu open source. Współczynnik częstotliwości użycia. Preferuj elastyczne opcje obliczeniowe dla narzędzi orkiestracji, aby zminimalizować koszty użycia, ponieważ są one zawsze włączone. Unikaj przetwarzania bezserwerowego na potrzeby operacji pełnoetatowych, ponieważ może eskalować koszty. Nie płać za wyższe poziomy, jeśli nie korzystasz z ich pełnej pojemności. Upewnij się, że wybrany poziom jest zgodny ze wzorcami użycia w środowisku produkcyjnym, aby zoptymalizować wydatki. Użyj standardowych cen dla zwykłych zadań i cen typu spot na potrzeby wysoce przerywalnego trenowania. Aby zmniejszyć koszty, użyj obliczeń opartych na procesorze GPU tylko dla funkcji obciążeń sztucznej inteligencji. Obszernie przetestuj i oceń swoje szkolenie i dostrajanie, aby znaleźć SKU, które najlepiej równoważy wydajność i koszty. |
Użyj tego, za co płacisz. Minimalizuj odpady. | Uważnie monitoruj metryki wykorzystania. Obciążenia robocze sztucznej inteligencji mogą być kosztowne, a koszty mogą szybko eskalować, jeśli zasoby nie są zamykane, zmniejszane lub dezaktywowane, gdy nie są używane. Zoptymalizuj system pod kątem zapisu raz, odczytuj wiele , aby uniknąć nadmiernego nakładu pracy w magazynie danych. Dane szkoleniowe nie wymagają natychmiastowego reagowania produkcyjnej bazy danych. Testowanie obciążenia punktu końcowego wnioskowania usługi Azure OpenAI może być kosztowne, ponieważ każde wywołanie powoduje naliczanie opłat. Aby zmniejszyć koszty, użyj nieużywanych jednostek PTU usługi OpenAI w środowisku testowym lub zasymuluj punkt końcowy wnioskowania. Zadania takie jak eksploracyjna analiza danych (EDA), trenowanie modeli i dostrajanie modeli zwykle nie są uruchamiane w pełnym wymiarze czasu. W przypadku tych zadań preferuj platformę, która może zostać zatrzymana, gdy nie jest używana. Na przykład zadania EDA są zwykle interaktywne, więc użytkownicy muszą mieć możliwość uruchamiania maszyn wirtualnych i zatrzymywania ich podczas uruchamiania zadań. Przypisz odpowiedzialność za koszty zespołom operacyjnym. Zespoły te powinny zapewnić, że koszty pozostają w oczekiwanych parametrach, aktywnie monitorując wykorzystanie zasobów i zarządzając nimi. |
Optymalizowanie kosztów operacyjnych. | Trenowanie online może być kosztowne ze względu na wymagania dotyczące częstotliwości. Automatyzacja tego procesu pomaga zachować spójność i zminimalizować koszty z powodu błędu ludzkiego. Ponadto używanie nieco starszych danych do trenowania i opóźniania aktualizacji, gdy jest to możliwe, może dodatkowo zmniejszyć wydatki bez znacznego wpływu na dokładność modelu. W przypadku trenowania w trybie offline oceń, czy można używać tańszych zasobów, takich jak sprzęt w trybie offline. Ogólnie rzecz biorąc, usuń dane z magazynów funkcji, aby zmniejszyć koszty bałaganu i magazynowania funkcji. |
kompromis: optymalizacja kosztów i wydajność. Równoważenie kosztów z wydajnością zarządzania bazami danych obejmuje kompromisy. Wydajna konstrukcja indeksu przyspiesza wykonywanie zapytań, ale może zwiększyć koszty z powodu zarządzania metadanymi i rozmiaru indeksu. Podobnie partycjonowanie dużych tabel może zwiększyć wydajność zapytań i zmniejszyć obciążenie magazynu, ale wiąże się z dodatkowymi kosztami. Z drugiej strony techniki, które unikają nadmiernego indeksowania, mogą obniżyć koszty, ale mogą mieć wpływ na wydajność, jeśli nie są prawidłowo zarządzane.
kompromis: Optymalizacja kosztów i doskonałość operacyjna. Istnieją kompromisy, które należy wziąć pod uwagę podczas decydowania, które z dwóch podstawowych podejść do użycia na potrzeby trenowania modelu. Trenowanie w środowisku deweloperskim z pełnymi danymi produkcyjnymi może zmniejszyć koszty obliczeniowe, ponieważ model jest trenowany tylko raz i tylko artefakt jest promowany. Jednak takie podejście wymaga rygorystycznych środków zabezpieczeń do obsługi danych produkcyjnych w niższych środowiskach, które mogą być złożone i intensywnie obciążane zasobami. Z drugiej strony trenowanie modelu w każdym środowisku zwiększa stabilność i niezawodność z powodu dokładnego przeglądu kodu i testowania, ale ten model zwiększa koszty obliczeniowe, ponieważ przebiegi trenowania występują wiele razy.
Sprawność operacyjna
Głównym celem doskonałości operacyjnej jest efektywne dostarczanie możliwości w całym cyklu projektowania. Osiągnięcie tego celu polega na ustanowieniu powtarzalnych procesów, które obsługują metodologię projektowania eksperymentów i dają wyniki w celu poprawy wydajności modelu. Doskonałość operacyjna polega również na utrzymywaniu dokładności modeli w czasie, wdrażaniu skutecznych praktyk monitorowania i ładu w celu zminimalizowania ryzyka oraz opracowywaniu procesów zarządzania zmianami w celu dostosowania się do dryfu modelu.
Mimo że wszystkie zasady doskonałości operacyjnej mają zastosowanie do obciążeń sztucznej inteligencji, priorytetem są automatyzacja i monitorowanie jako podstawowe strategie operacyjne.
Zasada projektowania | Kwestie wymagające rozważenia |
---|---|
Wspieranie ciągłego uczenia się i myślenia eksperymentów w całym cyklu życia tworzenia aplikacji, obsługi danych i zarządzania modelami sztucznej inteligencji. | Operacje obciążeń powinny opierać się na sprawdzonych w branży metodologiach, takich jak DevOps, DataOps, MLOps i GenAIOps. Wczesna współpraca między operacjami, opracowywaniem aplikacji i zespołami danych jest niezbędna do ustanowienia wzajemnego zrozumienia akceptowalnej wydajności modelu. Zespoły ds. operacji zapewniają sygnały jakości i alerty z możliwością działania. Zespoły ds. aplikacji i danych pomagają w wydajnym diagnozowaniu i rozwiązywaniu problemów. |
Wybierz technologie, które minimalizują obciążenie operacyjne. | W przypadku wyboru rozwiązań platformowych preferuj platformę jako usługę (PaaS) zamiast opcji samodzielnie hostowanych, aby uprościć projektowanie, zautomatyzować organizację przepływu pracy i ułatwić operacje w drugim dniu. |
Utwórz zautomatyzowany system monitorowania, który obsługuje funkcje alertów, w tym rejestrowanie i inspekcję. | Biorąc pod uwagę nieokreślony charakter sztucznej inteligencji, ważne jest ustalenie pomiarów jakości na początku cyklu życia. Skontaktuj się z analitykami danych, aby zdefiniować metryki jakości. Wizualizowanie bieżących szczegółowych informacji na kompleksowych pulpitach nawigacyjnych. Śledzenie eksperymentów przy użyciu narzędzi, które mogą przechwytywać szczegóły, takie jak wersje kodu, środowiska, parametry, przebiegi i wyniki. Zaimplementuj alerty z możliwością działania, które zapewniają wystarczającą ilość informacji, aby umożliwić operatorom szybkie reagowanie. |
Automatyzowanie wykrywania i ograniczania rozkładu modelu. | Użyj testów automatycznych, aby ocenić dryf w czasie. Upewnij się, że system monitorowania wysyła alerty, gdy odpowiedzi zaczynają odbiegać od oczekiwanych wyników i regularnie to robić. Użyj narzędzi, które mogą automatycznie odnajdywać i aktualizować nowe modele. W razie potrzeby dostosuj się do nowych przypadków użycia, dostosowując przetwarzanie danych i logikę trenowania modelu. |
Implementowanie bezpiecznych wdrożeń. | Wybierz między wdrożeniami równoległymi lub aktualizacjami w miejscu, aby zminimalizować przestoje. Zaimplementuj dokładne testowanie przed wdrożeniem, aby upewnić się, że model jest poprawnie skonfigurowany i spełnia cele, oczekiwania użytkowników i standardy jakości. Zawsze planuj operacje awaryjne, niezależnie od strategii wdrażania. |
Ciągła ocena doświadczenia użytkownika w środowisku produkcyjnym. | Umożliw użytkownikom obciążenia systemu przekazywanie opinii na temat ich doświadczeń. Uzyskaj zgodę na udostępnienie części lub wszystkich konwersacji w skojarzonym dzienniku na potrzeby rozwiązywania problemów. Zastanów się, jak dużo interakcji z użytkownikiem jest opłacalne, zgodne, bezpieczne oraz przydatne do przechwytywania, i użyj danych sumiennie, aby ocenić wydajność obciążenia na podstawie rzeczywistych interakcji użytkownika. |
Następujące obszary projektowania zawierają szczegółowe informacje na temat powyższych zasad i zagadnień:
Efektywność wydajności
Celem oceny wydajności modelu sztucznej inteligencji jest określenie, jak skutecznie model wykonuje zamierzone zadania. Osiągnięcie tego celu obejmuje ocenę różnych metryk, takich jak dokładność, precyzja i sprawiedliwość. Ponadto kluczowe znaczenie ma wydajność składników platformy i aplikacji, które obsługują model.
Wydajność modelu ma również wpływ na wydajność operacji, takich jak śledzenie eksperymentów i przetwarzanie danych. Stosowanie zasad efektywności wydajności pomaga zmierzyć wydajność względem akceptowalnego poziomu jakości. To porównanie jest kluczem do wykrywania degradacji lub rozpadu. Aby utrzymać obciążenie, w tym składniki sztucznej inteligencji, potrzebne są zautomatyzowane procesy do ciągłego monitorowania i oceny.
Zasada projektowania | Kwestie wymagające rozważenia |
---|---|
Ustanów testy porównawcze wydajności. | Przeprowadź rygorystyczne testy wydajnościowe w różnych obszarach architektury i ustaw dopuszczalne cele. Ta ciągła ocena powinna być częścią procesów operacyjnych, a nie jednorazowego testu. Testowanie porównawcze ma zastosowanie do wydajności przewidywania. Zacznij od punktu odniesienia, aby zrozumieć początkową wydajność modelu i stale ponownie oceniać wydajność, aby upewnić się, że spełnia ona oczekiwania. |
Ocena potrzeb zasobów w celu spełnienia celów dotyczących wydajności. | Poznaj charakterystykę obciążenia, aby wybrać odpowiednią platformę i odpowiednie zasoby o odpowiednim rozmiarze. Uwzględnij te dane w celu planowania wydajności w celu działania na dużą skalę. Na przykład użyj testowania obciążenia, aby określić optymalną platformę obliczeniową i jednostkę SKU. Obliczenia zoptymalizowane pod kątem procesora GPU o wysokiej wydajności są często potrzebne do trenowania i dostrajania modeli, ale jednostki SKU ogólnego przeznaczenia są odpowiednie dla narzędzi orkiestracji. Podobnie wybierz platformę danych, która efektywnie obsługuje pozyskiwanie danych, zarządza równoczesnym zapisem i utrzymuje wydajność zapisu indywidualnego bez obniżenia wydajności. Różne serwery wnioskowania mają różne cechy wydajności. Te cechy wpływają na wydajność modelu w czasie działania. Wybierz serwer, który spełnia oczekiwania punktu odniesienia. |
Zbieranie i analizowanie metryk wydajności oraz identyfikowanie wąskich gardeł. |
Oceń dane telemetryczne z potoku danych, aby upewnić się, że są spełnione cele wydajności dotyczące przepływności i operacji odczytu/zapisu. W przypadku indeksu wyszukiwania rozważ metryki, takie jak opóźnienie zapytań, przepływność i dokładność wyników. W miarę zwiększania ilości danych współczynnik błędów nie powinien być zwiększany. Analizuj dane telemetryczne ze składników kodu, takich jak orkiestrator, który zbiera dane z wywołań usługi. Analizowanie tych danych może pomóc zrozumieć czas spędzony na przetwarzaniu lokalnym w porównaniu z wywołaniami sieciowymi i zidentyfikować potencjalne opóźnienia w innych składnikach. Oceń środowisko interfejsu użytkownika przy użyciu metryk zaangażowania, aby określić, czy użytkownicy są pozytywnie zaangażowani, czy sfrustrowani. Dłuższy czas spędzony na stronie może wskazywać na jedno z dwóch. Funkcje wielomodalne, takie jak odpowiedzi głosowe lub wideo, mogą powodować znaczne opóźnienia, co prowadzi do dłuższych czasów odpowiedzi. |
Stale poprawianie wydajności testów porównawczych przy użyciu pomiarów jakości z produkcji. | Zaimplementuj zautomatyzowane zbieranie i analizę metryk wydajności, alertów i ponownego trenowania modelu w celu zachowania skuteczności modelu. |
kompromis. Podczas rozważania możliwości platformy należy równoważyć koszty i wydajność. Na przykład SKU GPU są kosztowne, więc stale monitoruj zasoby pod kątem niedostatecznego wykorzystania i w razie potrzeby dostosuj ich rozmiar. Po korektach użycie zasobów testowych zapewnia równowagę między kosztem zasobów platformy a ich operacjami i oczekiwaną wydajnością, jak wskazano w punkcie odniesienia. Aby zapoznać się ze strategiami optymalizacji kosztów, zobacz Zalecenia dotyczące optymalizowania kosztów składników.
Następujące obszary projektowania zawierają szczegółowe informacje na temat powyższych zasad i zagadnień: