Sdílet prostřednictvím


Co je automatické ladění pro konfigurace Apache Sparku v prostředcích infrastruktury?

Automatické ladění automaticky upraví konfiguraci Apache Sparku, aby urychlila spouštění úloh a optimalizovala celkový výkon. Automatické ladění šetří čas a prostředky v porovnání s ručním laděním, což vyžaduje rozsáhlé úsilí, zdroje, čas a experimentování. Automatické ladění používá historická data spouštění z vašich úloh k iterativnímu zjišťování a použití nejúčinnějších konfigurací pro konkrétní úlohu.

Poznámka:

Funkce automatického ladění dotazů v Microsoft Fabric je aktuálně ve verzi Preview.

Ladění dotazů

Automatické ladění konfiguruje pro každý z vašich dotazů zvlášť tři nastavení Sparku:

  • spark.sql.shuffle.partitions – Nastaví počet oddílů pro náhodné prohazování dat během spojení nebo agregací. Výchozí hodnota je 200.
  • spark.sql.autoBroadcastJoinThreshold – Nastaví maximální velikost tabulky v bajtech, které se při spuštění operace spojení vysílají do všech pracovních uzlů. Výchozí hodnota je 10 MB.
  • spark.sql.files.maxPartitionBytes – Definuje maximální počet bajtů, které se mají při čtení souborů zabalit do jednoho oddílu. Funguje pro zdroje souborů Parquet, JSON a ORC. Výchozí hodnota je 128 MB.

Tip

Automatické ladění dotazů zkoumá jednotlivé dotazy a vytváří pro každý dotaz jedinečný model ML. Konkrétně cílí na:

  • Opakované dotazy
  • Dlouhotrvající dotazy (dotazy s více než 15 sekundami provádění)
  • Dotazy rozhraní SPARK SQL API (s výjimkou dotazů napsaných v rozhraní RDD API, které jsou velmi vzácné), ale všechny dotazy optimalizujeme bez ohledu na jazyk (Scala, PySpark, R, Spark SQL).

Tato funkce je kompatibilní s poznámkovými bloky, definicemi úloh Sparku a kanály. Výhody se liší v závislosti na složitosti dotazu, použitých metodách a struktuře. Rozsáhlé testování ukázalo, že největší výhody jsou realizovány pomocí dotazů souvisejících s průzkumnou analýzou dat, jako je čtení dat, spouštění spojení, agregace a řazení.

Snímek obrazovky s časem spuštění s povoleným automatickým laděním

Inteligence založená na umělé inteligenci za automatickým laděním

Funkce automatického ladění využívá iterativní proces k optimalizaci výkonu dotazů. Začíná výchozí konfigurací a využívá model strojového učení k vyhodnocení efektivity. Když uživatel odešle dotaz, systém načte uložené modely na základě předchozích interakcí. Generuje potenciální konfigurace kolem výchozího nastavení s názvem centroid. Použije se nejlepší kandidát predikovaný modelem. Po spuštění dotazu se data o výkonu posílají zpět do systému, aby se model upřesní.

Smyčka zpětné vazby postupně posune centroid směrem k optimálnímu nastavení. V průběhu času zpřesňuje výkon a minimalizuje riziko regrese. Průběžné aktualizace založené na uživatelských dotazech umožňují upřesnění srovnávacích testů výkonu. Kromě toho proces aktualizuje konfigurace centroidu , aby se zajistilo, že model přejde k efektivnějšímu nastavení přírůstkově. Toho dosáhnete vyhodnocením minulých výkonů a jejich použitím k vedení budoucích úprav. Ke zmírnění dopadu anomálií používá všechny datové body.

Z pohledu zodpovědné umělé inteligence zahrnuje funkce Automatické ladění mechanismy transparentnosti navržené tak, aby vás informovaly o využití dat a výhodách. Zabezpečení a ochrana osobních údajů odpovídají standardům Microsoftu. Průběžné monitorování udržuje výkon a integritu systému po spuštění.

Povolení automatického ladění

Automatické ladění je dostupné ve všech produkčních oblastech, ale ve výchozím nastavení je zakázané. Můžete ho aktivovat prostřednictvím nastavení konfigurace Sparku v rámci prostředí. Pokud chcete povolit automatické ladění, vytvořte nové prostředí nebo pro existující prostředí nastavte vlastnost Spark spark.ms.autotune.enabled = true, jak je znázorněno na následujícím snímku obrazovky. Toto nastavení pak dědí všechny poznámkové bloky a úlohy spuštěné v tomto prostředí a automaticky je ladí.

Snímek obrazovky s povolením automatického ladění

Autotune obsahuje integrovaný mechanismus pro monitorování výkonu a zjišťování regresí výkonu. Pokud například dotaz zpracuje neobvykle velké množství dat, autotune automaticky deaktivuje. Obvykle vyžaduje 20 až 25 iterací, aby se naučil a identifikoval optimální konfiguraci.

Poznámka:

Autotune je kompatibilní s modulem Fabric Runtime 1.1 a Runtime 1.2. Automatické ladění nefunguje, pokud je povolený režim vysoké souběžnosti nebo když je povolený privátní koncový bod . Automatické ladění se ale bez ohledu na jeho konfiguraci bezproblémově integruje s automatickým škálováním.

Automatické ladění můžete řídit prostřednictvím Sparku Nastavení pro příslušný poznámkový blok Sparku nebo kód definice úlohy Sparku. Pokud chcete automatické ladění zakázat, spusťte následující příkazy jako první buňku (poznámkový blok) nebo řádek kódu (SJD).

%%sql 
SET spark.ms.autotune.enabled=FALSE 

Případová studie

Při spouštění dotazu Spark vytvoří autotune přizpůsobený model ML vyhrazený pro optimalizaci provádění dotazu. Analyzuje vzory dotazů a potřeby prostředků. Zvažte počáteční dotaz filtrování datové sady na základě konkrétního atributu, například země. I když tento příklad používá geografické filtrování, princip se obecně vztahuje na jakýkoli atribut nebo operaci v dotazu:

%%pyspark
df.filter(df.country == "country-A")

Automatické ladění se učí z tohoto dotazu a optimalizuje následné spuštění. Když se například dotaz změní změnou hodnoty filtru nebo použitím jiné transformace dat, strukturální podstata dotazu často zůstává konzistentní:

%%pyspark
df.filter(df.country == "country-B")

I přes změny autotune identifikuje základní strukturu nového dotazu, implementuje dříve naučené optimalizace. Tato funkce zajišťuje trvalou vysokou efektivitu bez nutnosti ruční rekonfigurace pro každou novou iteraci dotazů.

Protokoly

Pro každý z vašich dotazů automatické ladění určuje nejoptimálnější nastavení pro tři konfigurace Sparku. Navrhovaná nastavení můžete zobrazit tak, že přejdete do protokolů. Konfigurace doporučené automatickým laděním se nacházejí v protokolech ovladačů, konkrétně v těchto položkách začínajících funkcí [Autotune].

Snímek obrazovky s protokoly automatického ladění v centru monitorování

V protokolech najdete různé typy položek. Mezi tyto klíčové patří:

Status Popis
AUTOTUNE_DISABLED Přeskočen. Automatické ladění je zakázáno; brání načítání telemetrických dat a optimalizaci dotazů. Povolte funkci Autotune tak, aby plně využívala své možnosti při zachování ochrany osobních údajů zákazníků.".
QUERY_TUNING_DISABLED Přeskočen. Automatické ladění dotazů je zakázané. Povolte ho k doladění nastavení pro dotazy Spark SQL.
QUERY_PATTERN_NOT_MATCH Přeskočen. Vzor dotazu se neshodoval. Automatické ladění je efektivní pro dotazy jen pro čtení.
QUERY_DURATION_TOO_SHORT Přeskočen. Doba trvání dotazu je příliš krátká k optimalizaci. Automatické ladění vyžaduje pro efektivní ladění delší dotazy. Dotazy by se měly spouštět nejméně na 15 sekund.
QUERY_TUNING_SUCCEED Úspěch Ladění dotazů bylo dokončeno. Byla použita optimální nastavení sparku.

Poznámka k průhlednosti

V souladu se standardem Zodpovědné umělé inteligence má tento oddíl objasnit použití a ověření funkce automatického ladění, podporu transparentnosti a umožnění informovaného rozhodování.

Účel automatického ladění

Autotune je vyvinut tak, aby zvýšil efektivitu úloh Apache Sparku, především pro odborníky na data. Mezi klíčové funkce patří:

  • Automatizace ladění konfigurace Apache Sparku za účelem zkrácení doby provádění
  • Minimalizace ručního ladění.
  • Použití historických dat úlohy k iterativnímu upřesnění konfigurací

Ověření automatického ladění

Autotune prošel rozsáhlým testováním, aby se zajistila jeho účinnost a bezpečnost:

  • Důkladné testy s různorodými úlohami Sparku za účelem ověření účinnosti algoritmu ladění
  • Srovnávací testy oproti standardním metodám optimalizace Sparku, které demonstrují výhody výkonu.
  • Skutečné případové studie zvýrazňují praktickou hodnotu Autotune.
  • Dodržování striktních standardů zabezpečení a ochrany osobních údajů pro ochranu uživatelských dat.

Uživatelská data se používají výhradně k vylepšení výkonu vaší úlohy s robustní ochranou, která brání zneužití nebo vystavení citlivých informací.