Megosztás a következőn keresztül:


Ajánlott eljárások az Azure Databricksben végzett mély tanuláshoz

Ez a cikk tippeket tartalmaz az Azure Databricks mély tanulásához, valamint a mélytanulási számítási feladatok optimalizálására tervezett beépített eszközökkel és kódtárokkal kapcsolatos információkat, például az alábbiakat:

A Databricks Mozaik AI előre összeállított mélytanulási infrastruktúrát biztosít a Databricks Runtime for Machine Learning szolgáltatással, amely tartalmazza a leggyakoribb mélytanulási kódtárakat, mint a TensorFlow, a PyTorch és a Keras. Beépített, előre konfigurált GPU-támogatással is rendelkezik, beleértve az illesztőprogramokat és a támogató kódtárakat.

A Databricks Runtime ML az Azure Databricks-munkaterület összes funkcióját tartalmazza, például a fürtök létrehozását és kezelését, a kódtár- és környezetkezelést, a Databricks Git-mappákkal végzett kódkezelést, az automatizálási támogatást, beleértve a Databricks-feladatokat és API-kat, valamint integrált MLflow-t a modellfejlesztés nyomon követéséhez és a modellek üzembe helyezéséhez és kiszolgálásához.

Erőforrás- és környezetkezelés

Az Azure Databricks segít a mélytanulási környezet testreszabásában és a környezet konzisztensen tartásában a felhasználók számára.

A fejlesztési környezet testreszabása

A Databricks Runtime használatával testre szabhatja a fejlesztési környezetet a jegyzetfüzet, a fürt és a feladat szintjén.

Fürtszabályzatok használata

Fürtszabályzatokat hozhat létre, amelyek az adattudósokat a megfelelő lehetőségekhez irányítják, például egyetlen csomópontos fürtöt használnak fejlesztésre, és automatikus skálázási fürtöt használnak nagy feladatokhoz.

A100 GPU-k használata mélytanulási számítási feladatokhoz

Az A100 GPU-k hatékony választás számos mélytanulási feladathoz, például a nagy nyelvi modellek betanításához és finomhangolásához, a természetes nyelvi feldolgozáshoz, az objektumészleléshez és -besoroláshoz, valamint a javaslatmotorokhoz.

  • A Databricks minden felhőben támogatja az A100 GPU-kat. A támogatott GPU-típusok teljes listáját támogatott példánytípusokcímű témakörben találja.
  • Az A100 GPU-k általában korlátozott rendelkezésre állással rendelkeznek. Lépjen kapcsolatba a felhőszolgáltatóval az erőforrás-kiosztásért, vagy fontolja meg a kapacitás előzetes lefoglalását.

GPU-ütemezés

A GPU-k elosztott mélytanulási betanításhoz és következtetéshez való maximalizálásához optimalizálja a GPU-ütemezést. Lásd a GPU ütemezését.

Ajánlott adatbetöltési eljárások

A felhőalapú adattárolás általában nem I/O-ra van optimalizálva, ami kihívást jelenthet a nagy adathalmazokat igénylő mélytanulási modellek számára. A Databricks Runtime ML tartalmazza a Delta Lake és a Mosaic Streaming szolgáltatásokat az adatátviteli sebesség mélytanulási alkalmazásokhoz való optimalizálása érdekében.

A Databricks a Delta Lake-táblák használatát javasolja az adattároláshoz. A Delta Lake leegyszerűsíti az ETL-t, és lehetővé teszi az adatok hatékony elérését. Különösen képek esetén a Delta Lake segít optimalizálni a bevitelt mind a modell betanításához, mind a következtetésekhez. A képalkalmazások referenciamegoldása példaként szolgál az ETL optimalizálására a Delta Lake-t használó képekhez.

A Databricks a Mozaik streamelést javasolja a PyTorch vagy a Mosaic Composer adatbetöltéséhez, különösen akkor, ha elosztott számítási feladatokat tartalmaz. A rendelkezésre álló StreamingDataset és StreamingDataLoader API-k megkönnyítik a nagy adathalmazok betanítását, miközben maximalizálják a helyességi garanciákat, a teljesítményt, a rugalmasságot és a könnyű használatot egy elosztott környezetben. További részletekért tekintse meg az adatok betöltése a Mozaik streameléssel című témakört.

Ajánlott eljárások a mélytanulási modellek betanításához

A Databricks a Databricks Runtime for Machine Learning és az MLflow nyomon követését és automatikus használatát javasolja minden modellbetanításhoz.

Első lépés egy csomópontos fürttel

Az egycsomópontos (csak illesztőprogramokkal rendelkező) GPU-fürtök általában a leggyorsabbak és költséghatékonyak a mélytanulási modellek fejlesztéséhez. Egy 4 GPU-val rendelkező csomópont valószínűleg gyorsabb lesz a mélytanulás betanításához, amely 4 munkavégző csomópont 1 GPU-val. Ennek az az oka, hogy az elosztott betanítás hálózati kommunikációs többletterhelést okoz.

Az egycsomópontos fürt jó választás a gyors, iteratív fejlesztés és a kis- és közepes méretű adatok betanításához. Ha az adatkészlet elég nagy ahhoz, hogy egy gépen lassú legyen a betanítás, fontolja meg a több GPU-ra való áttérést, és akár az elosztott számítást is.

A TensorBoard és a fürt metrikáinak használata a betanítási folyamat figyeléséhez

A TensorBoard előre telepítve van a Databricks Runtime ML-ben. Használhatja egy jegyzetfüzetben vagy egy külön lapon. Részletekért lásd a TensorBoardot .

A fürtmetrikák minden Databricks-futtatókörnyezetben elérhetők. A szűk keresztmetszetek vizsgálatához megvizsgálhatja a hálózat, a processzor és a memóriahasználatot. Részletekért tekintse meg a fürtmetrikákat .

Teljesítmény optimalizálása mély tanuláshoz

A Databricks mélytanulási teljesítményoptimalizálási technikáit használhatja és érdemes is használnia.

Korai leállítás

A korai leállítás figyeli az érvényesítési készletre számított metrikák értékét, és leállítja a betanítást, ha a metrika nem javul. Ez jobb megközelítés, mint a jó számú befejezendő korszak kitalálása. Minden mélytanulási kódtár natív API-t biztosít a korai leállításhoz; Lásd például a TensorFlow/Keras earlyStopping visszahívási API-jait és a PyTorch Lightningot. Példajegyzetfüzetet a TensorFlow Keras-példajegyzetfüzetben talál.

Batch-méret finomhangolása

A kötegméret finomhangolása segít optimalizálni a GPU-kihasználtságot. Ha a köteg mérete túl kicsi, a számítások nem tudják teljes mértékben kihasználni a GPU-képességeket. A GPU-metrikák megtekintéséhez fürtmetrikákat használhat.

Állítsa be a köteg méretét a tanulási sebességgel együtt. Jó hüvelykujjszabály, ha a köteg méretét n-rel növeli, sqrt(n) használatával növeli a tanulási arányt. Manuális finomhangoláskor próbálja meg módosítani a köteg méretét 2 vagy 0,5 tényezővel. Ezután folytassa a finomhangolást a teljesítmény optimalizálásához manuálisan vagy különböző hiperparaméterek tesztelésével egy automatizált eszközzel, például Optuna.

Transzfertanulás

Az átadási tanulással egy korábban betanított modellel kell kezdenie, és szükség szerint módosítania kell azt az alkalmazáshoz. A tanulás átvitele jelentősen csökkentheti az új modellek betanításához és finomhangolásához szükséges időt. További információért és egy példáért tekintse meg a featurization for transfer learning című témakört.

Áthelyezés elosztott betanításra

A Databricks Runtime ML tartalmazza a TorchDistributort, a DeepSpeedet és a Rayt, hogy megkönnyítse az egycsomópontosról az elosztott betanításra való áttérést.

TorchDistributor

A TorchDistributor egy nyílt forráskódú modul a PySparkban, amely lehetővé teszi a PyTorch és a Spark-fürtök elosztott betanítását, amely lehetővé teszi a PyTorch-betanítási feladatok Spark-feladatokként való elindítását. Lásd: Elosztott betanítás a TorchDistributor használatával.

Optuna

Az Optuna adaptív hiperparaméter-finomhangolást biztosít a gépi tanuláshoz.

A következtetés ajánlott eljárásai

Ez a szakasz általános tippeket tartalmaz a modellek Azure Databricks-lel való következtetéséhez.

  • A költségek minimalizálása érdekében vegye figyelembe a processzorokat és a következtetésre optimalizált GPU-kat, például az NC T4_v3-sorozatot. Nincs egyértelmű javaslat, mivel a legjobb választás a modell méretétől, az adatmérettől és más változóktól függ.

  • Az MLflow használatával egyszerűsítheti az üzembe helyezést és a modell kiszolgálását. Az MLflow bármilyen mélytanulási modellt naplózhat, beleértve az egyéni előfeldolgozási és utófeldolgozási logikát is. A Unity Catalogban lévő modellek vagy a Munkaterület Modellregisztrációs adatbázisába regisztrált modellek tételes, folyamatos vagy online következtetésre is telepíthetők.

Online kiszolgálás

Az alacsony késésű kiszolgáláshoz a legjobb megoldás az online szolgáltatás a REST API mögött. A Databricks modellkiszolgálót biztosít az online következtetéshez. A Modellkiszolgáló egységes felületet biztosít az AI-modellek üzembe helyezéséhez, szabályozásához és lekérdezéséhez, és támogatja a következőket:

  • Egyéni modellek. Ezek MLflow formátumban csomagolt Python-modellek. Ilyenek például a scikit-learn, az XGBoost, a PyTorch és az Ölelés Arc transzformátormodellek.
  • A Foundation Model API-k által elérhetővé tett korszerű nyílt modellek. Ezek a modellek olyan válogatott alapmodell-architektúrák, amelyek támogatják az optimalizált következtetést. Az olyan alapmodellek, mint például a Llama-2-70B-chat, a BGE-Large és a Mistral-7B, azonnali használatra érhetők el a jogkivonatonkénti díjszabással. Teljesítménygaranciát és finomhangolt modellvariánsokat igénylő számítási feladatok esetén üzembe helyezheti őket kiosztott átviteli sebességgel.
  • Külső modellek. Ezek a Databricksen kívül üzemeltetett modellek. Például a generatív AI-modellek, például az OpenAI GPT-4, az antropikus Claude és mások. Az ezeket a modelleket kiszolgáló végpontok központilag szabályozhatók, és az ügyfelek sebességkorlátokat és hozzáférési vezérlőket hozhatnak létre számukra.

Alternatív megoldásként az MLflow API-kat biztosít a különböző felügyelt szolgáltatásokban való üzembe helyezéshez az online következtetéshez, valamint API-kat a Docker-tárolók egyéni kiszolgálási megoldásokhoz való létrehozásához.

Az online következtetéshez használt egyéb gyakori felügyelt szolgáltatások a következők:

Kötegelt és streamelési következtetés

A Batch és a streamelési pontozás támogatja a magas átviteli sebességet, az alacsony költségű pontozást akár percek alatt is. További információ: Modellek telepítése kötegelt következtetéshez és előrejelzéshez.

  • Ha a következtetési adatokhoz többször is hozzá szeretne férni, érdemes lehet létrehozni egy előfeldolgozási feladatot, hogy az adatokat ETL-ként egy Delta Lake-táblába bontsa a következtetési feladat futtatása előtt. Így az adatok betöltésének és előkészítésének költsége az adatok több olvasása között oszlik meg. Az előfeldolgozás és a következtetés elkülönítése azt is lehetővé teszi, hogy az egyes feladatokhoz különböző hardvereket válasszon a költségek és a teljesítmény optimalizálása érdekében. Az ETL-hez és a GPU-khoz például cpu-kat használhat a következtetéshez.
  • A Spark Pandas UDF-ekkel skálázhatja a kötegeket és a streamelési következtetést egy fürtben.
    • Amikor naplóz egy modellt az Azure Databricksből, az MLflow automatikusan következtetési kódot biztosít a modell pandas UDF-ként való alkalmazásához.
    • A következtetési folyamatot tovább optimalizálhatja, különösen nagy mélytanulási modellekhez. Példaként tekintse meg a kép ETL-jének referenciamegoldását.