Przejście do głównej treści

Wymagania dotyczace zasobów dla analiz AI opartych na R

Na tej stronie uzyskają Państwo informacje pomocne przy szacowaniu ilosci pamieci RAM, jaka powinna byc dostepna dla srodowiska uruchomieniowego R w ramach rozwiązań AI dostarczanych przez dab.

Wazne

Na tej stronie przez dataset rozumiane sa dane wyjsciowe jednej analizy uruchomionej przez dab Nexus. Calosc tego datasetu musi zmiescic sie w pamieci dostepnej dla srodowiska R.

Szybkie wskazówki

  • Prosze wykorzystac ponizsze macierze do oszacowania ilosci RAM potrzebnego srodowisku R podczas pojedynczego uruchomienia analizy.
  • Podane wartosci w macierzy nie oznaczaja calej pamieci SQL Server lub RAM na Azure SQL Managed Instance.
  • Jesli kilka analiz jest wykonywanych jednoczesnie, nalezy zsumowac zapotrzebowanie na pamiec R dla kazdej z nich.
  • W srodowisku Azure SQL Managed Instance srodowisko R domyslnie wykorzystuje ok. 20% zasobów tej instancji.

RAM wymagany przez srodowisko R

Wazne

Poniższe tabele pokazuja ilosc RAM wymagana przez srodowisko R dla jednego uruchomienia analizy. Nie odzwierciedlają one calej dostepnej pamieci serwera lub instancji.

Jesli w komórce macierzy wystepuje wartosc 16 GB, srodowisko R potrzebuje ok. 16 GB podczas tego uruchomienia.

Nie oznacza to, ze 16 GB SQL Server ani Managed Instance automatycznie spelnia te wymagania.

Nalezy wybrac odpowiedni zakres wierszy oraz kolumn odpowiadający datasetowi przekazanemu z dab Nexus do analityki. Następnie prosze siegnac po wlasciwa macierz obciazen.

Instrukcja korzystania z tabel:

  1. W dab Nexus nalezy otworzyc podglad uruchomienia analizy i sprawdzic liczbe wierszy, jaka obejmuje.
  2. Prosze zweryfikowac liczbe kolumn w Content Studio. Jeśli dokładna wartość nie jest znana, proszę przyjąć typową wartość z poniższej tabeli obciążeń.
  3. W tabeli poniżej proszę odszukać analizę, którą planują Państwo uruchomić.
  4. Następnie należy otworzyć odpowiednią macierz i wybrać pole łączące zakres wierszy z zakresem kolumn.
  5. Odczytana wartość oznacza ilość pamięci RAM, jaka powinna być dostępna dla R dla tego uruchomienia.

Podane wartości są konserwatywnym oszacowaniem na podstawie typowej pracy rozwiązań AI dostarczanych przez dab w R. Rzeczywiste maksymalne zużycie zależy dodatkowo od typów danych, liczby unikalnych wartości w kolumnach, tymczasowych obiektów tworzonych przez analizę oraz liczby analiz uruchamianych równolegle.

Typy obciążeń i typowa liczba kolumn

Kategoria analizy AIAnalizyTypowa liczba kolumnWlasciwa macierz
DEAN / Detekcja odstającychAI_Outliers, *_OutliersZazwyczaj 15–20, konfigurowalneStandardowe obciążenia AI
Market Basket AnalysisAI_MarketBasketAnalysis, GL_MarketBasketZazwyczaj 6–15, konfigurowalneStandardowe obciążenia AI
Root Cause*_RootCauseZwykle 10–20Ciezkie obciążenia AI
Duplicate Payments / Credit Note AIAP_DuplicatePaymentsEnhancedOkoło 40Ciezkie obciążenia AI
Master Data AICU_DuplicatesEnhanced, CU_Outliers, VE_DuplicatesEnhanced, VE_OutliersOkoło 15Ciezkie obciążenia AI

Standardowe obciążenia AI: RAM wymagany przez srodowisko R

Przyklady: AI_Outliers, *_Outliers, AI_MarketBasketAnalysis, GL_MarketBasket

Liczba wierszyDo 10 kolumn11-20 kolumn21-40 kolumn41-60 kolumn
Do 100 tys.4 GB4 GB8 GB12 GB
100 tys.–500 tys.4 GB8 GB12 GB16 GB
500 tys.–1 mln8 GB12 GB24 GB32 GB
1 mln–2 mln12 GB24 GB48 GB64 GB
2 mln–3 mln16 GB32 GB64 GB96 GB

Ciezkie obciążenia AI: RAM wymagany przez srodowisko R

Przyklady: *_RootCause, AP_DuplicatePaymentsEnhanced, CU_DuplicatesEnhanced, CU_Outliers, VE_DuplicatesEnhanced, VE_Outliers

Liczba wierszyDo 10 kolumn11-20 kolumn21-40 kolumn41-60 kolumn
Do 100 tys.4 GB8 GB8 GB12 GB
100 tys.–500 tys.8 GB12 GB16 GB24 GB
500 tys.–1 mln12 GB16 GB32 GB48 GB
1 mln–2 mln16 GB32 GB64 GB96 GB
2 mln–3 mln24 GB48 GB96 GB128 GB+

Jeśli rozmiar obciążenia przekracza podane zakresy, wartości z macierzy należy traktować jako dolną granicę i uwzględnić dodatkowy zapas pamięci przy wymiarowaniu środowiska.

SQL Server on-premises lub Azure Virtual Machine

Tę platformę warto wybrać, gdy istotna jest pełna kontrola nad przydziałem pamięci.

  • Powyższe macierze przedstawiają ilość pamięci RAM, jaka musi pozostać dostępna dla srodowiska R.
  • Całkowita pamięć komputera powinna być wyższa niż wartość z macierzy, ponieważ system Windows oraz SQL Server również wymagają zasobów.
  • Minimalny praktyczny rozmiar hosta: 16 GB RAM ogółem
  • Typowy punkt początkowy: 32 GB RAM ogółem
  • Duże, szerokie lub równoległe obciążenia: 64 GB RAM ogółem lub więcej
  • Minimalna liczba CPU: 2 rdzenie
  • Zalecany CPU: nowoczesny procesor x64 o wysokiej wydajności pojedynczego wątku

Ważne: SQL Server może wykorzystać większość pamięci maszyny, jeśli nie zostanie odpowiednio ograniczony. Konieczne jest pozostawienie wystarczającej ilości pamięci operacyjnej dla systemu oraz R, a do kontroli przyznanych zasobów dla skryptów zewnętrznych warto wykorzystać Resource Governor. Po każdej zmianie ustawień należy ponownie uruchomić SQL Server Launchpad.

Sprawdzenie i konfiguracja Resource Governor

W przypadku samodzielnie zarządzanej SQL Server można sprawdzić lub ustawić przydział pamięci dla R za pomocą poniższych poleceń.

W celu sprawdzenia aktualnej konfiguracji należy wykonać następujące zapytania:

SELECT is_enabled FROM sys.resource_governor_configuration;

SELECT name, max_memory_percent, max_cpu_percent
FROM sys.resource_governor_external_resource_pools;
  • Pierwsze zapytanie weryfikuje, czy Resource Governor jest aktywny.
  • Kolejne prezentuje bieżące limity pamięci i CPU dla zewnętrznych środowisk wykonawczych, takich jak R.

Aby zwiększyć domyślny zewnętrzny pool, jeśli R wymaga więcej pamięci:

ALTER EXTERNAL RESOURCE POOL "default"
WITH (
MAX_CPU_PERCENT = 100,
MAX_MEMORY_PERCENT = 40
);

ALTER RESOURCE GOVERNOR RECONFIGURE;

W powyższym przykładzie skryptom zewnętrznym pozwolono wykorzystać do 40% dostępnej pamięci SQL Server zamiast domyślnych 20%.

To ustawienie należy stosować łącznie z max server memory, aby środowisko R faktycznie mogło wykorzystać ilość RAM podaną w powyższych macierzach.

Azure SQL Managed Instance

To platforma odpowiednia, jeśli zależy Państwu na zarządzanym środowisku SQL w Azure i możliwa jest praca w narzuconych limitach usługi Machine Learning Services.

  • Zalecane: Warianty Memory optimized w serii premium
  • Odpowiednia dla mniejszych datasetów: Premium-series
  • Tylko dla małych, budżetowych zadań: Standard-series (Gen5)

W przypadku tych obciążeń liczy się ilość pamięci na każdy vCore, nie sama liczba vCore.

SprzętPamięć na vCoreRekomendacja
Standard-series (Gen5)5.1 GBNiewskazane dla poważnych zadań AI
Premium-series7 GBDobra dla mniejszych zbiorów danych
Memory optimized premium-series13.6 GBNajlepszy wybór dla obciążeń wymagających dużej ilości RAM

Ważne: Azure SQL Managed Instance nie obsługuje zewnętrznych poolów Resource Governor dla R. Domyślnie R może wykorzystywać maksymalnie 20% zasobów Managed Instance.

Wartości z macierzy dotyczą wyłącznie pamięci R. Całkowita pamięć instancji musi być znacznie wyższa.

Przybliżona wymagana całkowita pamięć instancji = wymagany RAM R / 0.20

Przykład:

  • Jesli w macierzy widnieje 16 GB, R wymaga ok. 16 GB.
  • Nie oznacza to, ze 16 GB Managed Instance automatycznie wystarczy.
  • Ponieważ R korzysta jedynie z ok. 20%, 16 GB dla R oznacza około 80 GB całkowitej pamięci instancji.
RAM wymagany przez RPrzybliżona całkowita pamięć instancji
4 GB20 GB
8 GB40 GB
12 GB60 GB
16 GB80 GB
24 GB120 GB
32 GB160 GB
48 GB240 GB
64 GB320 GB
96 GB480 GB
128 GB640 GB

W razie pojawienia się błędów braku pamięci należy zmniejszyć dataset, powiększyć instancję lub otworzyć zgłoszenie do pomocy Azure dotyczące limitu zasobów rozszerzalności.

Ograniczenie zużycia pamięci

Jeżeli dostępna pamięć jest ograniczona, proszę odpowiednio zmniejszyć ilość danych przekazywanych z dab Nexus do analizy:

  • Należy ograniczyć liczbę kolumn w Content Studio. Mniejsza liczba kolumn przekłada się na węższy dataset, a tym samym mniejsze zapotrzebowanie na pamięć RAM.
  • Przy zakładaniu zadania w dab Nexus warto wybrać mniejszy zakres kodów firmowych oraz krótsze okresy czasowe, aby ograniczyć liczbę wierszy przekazywanych do analizy.
  • W przypadku tych obciążeń należy unikać jednoczesnego uruchamiania zbyt wielu zadań w Nexus. Równolegle wykonywane zadania zwiększają całkowite zapotrzebowanie na pamięć w środowisku SQL.

Powyższe działania są najskuteczniejsze w przypadku dużych zbiorów danych, szerokich tabel oraz środowisk, w których działa kilka zadań AI jednocześnie.