Distribuera och använd en djupinlärningsplattform med flera ramar på Kubernetes

Källnod: 1580762

Beskrivning

Som utövare av djupinlärning vill du ha tillförlitlighet och skalbarhet samtidigt som du orkestrerar dina träningsjobb. Dessutom skulle du vilja göra detta på ett konsekvent sätt över flera bibliotek. Med Fabric for Deep Learning (FfDL) på Kubernetes kan du uppnå detta genom att ge användare möjligheten att utnyttja djupinlärningsbibliotek som Caffe, Torch och TensorFlow i molnet på ett motståndskraftigt sätt med minimal ansträngning. Plattformen använder ett distributions- och orkestreringslager som underlättar lärande från en stor mängd data på en rimlig tid över beräkningsnoder. Ett lager för resursförsörjning möjliggör flexibel jobbhantering på heterogena resurser, såsom grafiska processorenheter (GPU) och centrala bearbetningsenheter (CPUs), i ett moln för infrastruktur som en tjänst (IaaS).

Översikt

Att träna djupa neurala nätverk, känt som djupinlärning (en del av maskininlärningsmetoder), är mycket komplex och beräkningsintensiv. En typisk användare av djupinlärning utsätts i onödan för detaljerna i den underliggande hårdvaru- och mjukvaruinfrastrukturen, inklusive konfigurering av dyra GPU-maskiner, installation av djupinlärningsbibliotek och hantering av jobben under körning för att hantera fel och återställning. Trots att det är lätt att skaffa hårdvara från IaaS-moln och betala per timme, måste användaren fortfarande hantera dessa maskiner, installera nödvändiga bibliotek och säkerställa motståndskraften i utbildningsjobben för djupinlärning.

Det är här möjligheten till djupinlärning som en tjänst ligger. I detta kodmönster visar vi dig hur du distribuerar ett djupinlärningstyg på Kubernetes. Genom att använda molnbaserade arkitektoniska artefakter som Kubernetes, mikrotjänster, Helm-diagram och objektlagring visar vi dig hur du distribuerar och använder en djupinlärningsväv. Detta tyg sträcker sig över flera djupinlärningsmotorer som TensorFlow, Caffe och PyTorch. Den kombinerar flexibiliteten, användarvänligheten och ekonomin hos en molntjänst med kraften i djupinlärning. Du kommer att tycka att det är lätt att använda och genom att använda REST API:er kan du anpassa utbildningen med olika resurser per användarkrav eller budget. Låt användarna fokusera på djupinlärning och applikationerna istället för att fokusera på fel.

Flöde

flöda

  1. FfDL-distributören distribuerar FfDL-kodbasen till ett Kubernetes-kluster. Kubernetes-klustret är konfigurerat för använda GPU:er, processorer eller båda och har tillgång till S3-kompatibel objektlagring. Om det inte anges skapas en lokalt simulerad S3-pod.
  2. När dataforskaren har distribuerats laddar den upp modellträningsdata till det S3-kompatibla objektarkivet. FfDL antar att data redan är i det format som krävs enligt olika ramverk för djupinlärning.
  3. Användaren skapar en FfDL Model-manifestfil. Manifestfilen innehåller olika fält som beskriver modellen i FfDL, dess objektlagerinformation, dess resurskrav och flera argument (inklusive hyperparametrar) som krävs för modellexekvering under träning och testning. Användaren interagerar sedan med FfDL genom att använda CLI/SDK eller UI för att distribuera FfDL-modellmanifestfilen med en modelldefinitionsfil. Användaren startar träningsjobbet och övervakar dess framsteg.
  4. Användaren laddar ner den tränade modellen och tillhörande loggar när träningsjobbet är klart.

Instruktioner

Hitta de detaljerade stegen för detta mönster i README. Stegen visar dig hur du:

  1. Kompilera och koda och bygg Docker-bilder.
  2. Installera FfDL-komponenterna med rodretsinstallation.
  3. Kör ett skript för att konfigurera Grafana för övervakning av FfDL.
  4. Skaffa dina Grafana, FfDL Web UI och FfDL REST API-slutpunkter.
  5. Kör några enkla jobb för att träna en konvolutionell nätverksmodell genom att använda TensorFlow och Caffe.

Källa: https://developer.ibm.com/patterns/deploy-and-use-a-multi-framework-deep-learning-platform-on-kubernetes/

Tidsstämpel:

Mer från IBM-utvecklare