10 käsurea retsepti Amazon Web Services sügavaks õppimiseks

10 käsurea retsepti Amazon Web Services sügavaks õppimiseks

Suurte sügavate õppeprotsesside juhtimine Amazon Web Services EC2-s on odav ja tõhus viis mudelite õppimiseks ja arendamiseks.

Vaid mõne dollari eest saate juurdepääsu kümnetele gigabaitidele RAM-ile, kümnetele protsessori südamikele ja mitmele GPU-le. Soovitan soojalt.

Kui olete EC2 või Linuxi käsurea uus kasutaja, on komplekt komplekte käske, mida leiate hindamatuks, kui oma sügava õppimise skripte pilves käivitate.

Selles õpetuses leiate minu privaatse loendi kümnest käsust, mida kasutan iga kord, kui kasutan EC2 suurte sügavate õppemudelite jaoks.

Pärast selle postituse lugemist saate teada:

  • Kuidas oma andmeid EC2 eksemplaridesse kopeerida.
  • Kuidas seadistada skripte ohutuks päevade, nädalate või kuude käitamiseks.
  • Kuidas jälgida protsesse, süsteemi ja GPU jõudlust.

Alustage oma projekti minu uue raamatuga Deep Learning With Python, sh samm-sammult õpetused ja Pythoni lähtekood failid kõigi näidete jaoks.

Alustame.

Märge: Kõik teie tööjaamast täidetud käsud eeldavad, et kasutate Linuxi tüüpi keskkonda (nt Linux, OS X või cygwin).

Kas teil on EC2-s mudelite käitamiseks muid näpunäiteid, nippe või lemmikkäsklusi?
Andke mulle teada allpool toodud kommentaarides.

10 käsurea retsepti Amazon Web Services sügavaks õppimiseks

10 käsurea retsepti Amazon Web Services sügavaks õppimiseks
Foto autor: chascar, mõned õigused kaitstud.

Ülevaade

Selles postituses esitatud käsud eeldavad, et teie AWS EC2 eksemplar juba töötab.

Järjepidevuse tagamiseks tehakse mõned muud eeldused:

  • Teie serveri IP-aadress on 54.218.86.47; muutke see oma serveri eksemplari IP-aadressiks.
  • Teie kasutajanimi on ec2-kasutaja; muutke see oma eksemplari kasutajanimeks.
  • Teie SSH-võti asub ~ / .ssh / ja sellel on failinimi aws-keypair.pem; muutke see oma SSH-võtme asukohaks ja failinimeks.
  • Töötate Pythoni skriptidega.

Kui vajate süvaõppeks abi GPU-põhise AWS EC2 eksemplari seadistamisel ja käitamisel, vaadake õpetust:

1. Logige oma tööjaamast serverisse sisse

Enne kui saate midagi kasulikku teha, peate serverisse sisse logima.

SSH turvalise kesta abil saate hõlpsalt sisse logida.

Soovitan oma SSH-võti oma kausta salvestada ~ / .ssh / kasuliku nimega kataloog. Ma kasutan seda nime aws-keypair.pem. Pidage meeles: failil peavad olema õigused 600.

Järgmine käsk logib teid oma serveri eksemplari. Ärge unustage muuta kasutajanime ja IP-aadressi oma kasutajanimeks ja serveri eksemplari IP-aadressiks.

2. Kopeerige failid oma tööjaamast serverisse

Kopeerite failid tööjaamast serveri eksemplari, kasutades turvalist koopiat (scp).

Allolev näide, töötage oma tööjaamas, kopeerib script.py Pythoni skript teie tööjaama kohalikus kataloogis serveri eksemplari.

3. Käivitage skript taustaprotsessina serveris

Pythoni skripti saate käivitada taustaprotsessina.

Lisaks saate seda käivitada nii, et see ignoreeriks muude protsesside signaale, ignoreeriks mis tahes standardsisendit (stdin) ning edastaks kõik väljundid ja vead logifaili.

Minu kogemuse järgi on see kõik vajalik pikaajaliste skriptide jaoks, mis sobivad suurte sügava õppe mudelitega.

See eeldab, et kasutate script.py Pythoni skript asub / home / ec2-kasutaja / kataloogi ja soovite, et selle skripti väljund edastataks faili script.py.log asuvad samas kataloogis.

Häälesta oma vajadustele.

Kui see on teie esimene kogemus nohupiga, saate lisateavet siin:

Kui see on teie esimene kogemus standardsisendi (stdin), standardväljundi (stout) ja standardvea (sterr) ümbersuunamisel, saate lisateavet siit:

4. Käivitage skript serveri kindlal GPU-l

Soovitan käivitada mitu skripti korraga, kui teie AWS EC2 eksemplar saab sellega teie probleemiga hakkama.

Näiteks võib teie valitud EC2 eksemplaril olla 4 GPU-d ja võite valida, kas käivitada mõlemal üks skript.

CUDA abil saate määrata, millist GPU-seadet keskkonnamuutujaga kasutada CUDA_VISIBLE_DEVICES.

Saame skripti käivitamiseks kasutada sama ülaltoodud käsku ja määratleda konkreetne kasutatav GPU-seade järgmiselt:

Kui teie eksemplaris on 4 GPU-seadet, saate selle täpsustada CUDA_VISIBLE_DEVICES = 0 kuni CUDA_VISIBLE_DEVICES = 3.

Ma arvan, et see töötab Theano taustaprogrammi puhul, kuid olen seda testinud ainult Kerase jaoks mõeldud TensorFlow taustaprogrammiga.

Lisateavet saate CUDA_VISIBLE_DEVICES postituses:

5. Jälgige serveri skripti väljundit

Skripti väljundit saate jälgida selle töötamise ajal.

See võib olla kasulik, kui väljastate skoori igal ajastul või pärast iga algoritmi käivitamist.

Selles näites loetletakse teie skripilogi faili viimased read ja värskendatakse väljundit, kui skripti lisatakse uusi ridu.

Amazon võib teie terminali agressiivselt sulgeda, kui ekraan mõne aja pärast uut väljundit ei saa.

Alternatiiv on kasutada käsku watch. Ma leidsin, et Amazon hoiab seda terminali avatud:

Olen avastanud, et Pythoni skriptide standard välja (stout) ei näi sageli värskendavat.

Ma ei tea, kas see on EC2 või Pythoni asi. See tähendab, et logi väljundit ei pruugi sageli värskendada. See näib olevat puhverdatud ja väljastatud, kui puhver tabab fikseeritud suurusi või jooksu lõpus.

Kas teate sellest rohkem?
Andke mulle teada allpool toodud kommentaarides.

6. Jälgige süsteemi ja protsessi jõudlust serveris

EC2 süsteemi jõudlust on hea jälgida. Eriti palju RAM-i, mida kasutate ja olete lahkunud.

Seda saate teha ülemise käsu abil, mida värskendatakse iga paari sekundi tagant.

Samuti saate jälgida süsteemi ja lihtsalt oma protsessi, kui teate selle protsessitunnust (PID).

7. Jälgige GPU jõudlust serveris

Hea on GPU jõudlusel silma peal hoida.

Jällegi, jälgige GPU kasutamist, millel GPU-d töötavad, kui kavatsete käivitada mitu skripti paralleelselt ja GPU RAM-i kasutamisel.

Võite kasutada nvidia-smi käsk GPU kasutamisel silma peal hoida. Mulle meeldib kasutada vaatama käsk, mis hoiab terminali lahti ja kustutab ekraani iga uue tulemuse jaoks.

8. Kontrollige, millised skriptid veel serveris töötavad

Samuti on oluline jälgida, millised skriptid veel töötavad.

Seda saate teha ps käsk.

Jällegi meeldib mulle terminali avatuna kasutada käsku watch.

9. Redigeerige faili serveris

Soovitan serveris faile mitte redigeerida, kui te seda tõesti ei pea.

Sellest hoolimata saate faili paigas redigeerida, kasutades vi toimetaja.

Allpool olev näide avab teie skripti vi-s.

Muidugi võite kasutada oma lemmik käsurea redaktorit, näiteks emacs; see märkus on tõesti teie jaoks, kui olete Unixi käsurea uus kasutaja.

Kui see on teie esimene kokkupuude vi-ga, saate lisateavet siit:

10. Laadige oma tööjaamast failid serverist alla

Soovitan oma skripti osana oma mudeli ning kõik tulemused ja graafikud otseselt uutesse ja eraldi failidesse salvestada.

Need failid saate turvalise koopia (scp) abil alla laadida oma serveri eksemplarist oma tööjaama.

Allpool toodud näide käitatakse teie tööjaamas ja see kopeerib kõik teie kodukataloogist teie PNG-failid teie tööjaama.

Täiendavad näpunäited ja nipid

Selles jaotises on loetletud mõned täiendavad näpunäited AWS EC2-ga intensiivsel töötamisel.

  • Käivitage korraga mitu skripti. Platvormi täielikuks kasutamiseks soovitan valida riistvara, millel on mitu GPU-d ja käitada korraga mitu skripti.
  • Kirjutage ja redigeerige skripte ainult oma tööjaamas. Käsitlege EC2 pseudotootmise keskkonnana ja kopeerige skripte ja andmeid sinna töötamiseks. Tehke kogu tööjaamas kogu arendus ja kirjutage oma koodile väikesed testid, tagamaks, et see töötab ootuspäraselt.
  • Salvesta skripti väljundid otseselt faili. Salvestage tulemused, graafikud ja mudelid failidesse, mille saab hiljem oma tööjaama analüüsimiseks ja rakendamiseks alla laadida.
  • Kasutage käsku watch. Amazon tapab agressiivselt terminaliseansse, millel puudub aktiivsus. Saate asjadel silma peal hoida, kasutades käsku watch, mis saadab andmeid piisavalt sageli, et terminali lahti hoida.
  • Käivitage käske oma tööjaamast. Kõiki ülal loetletud käske, mis on mõeldud serveris käivitamiseks, saab käivitada ka teie tööjaamas, lisades käsu eesssh -i ~ / .ssh /aws-võtipaar.pem [email protected]”Ja tsiteerides käsu, mida soovite käivitada. See võib olla kasulik protsesside kontrollimiseks kogu päeva jooksul.

Kokkuvõte

Selles õpetuses avastasite 10 käsku, mida kasutan iga kord, kui koolitan GPU-ga AWS EC2 eksemplaridel suuri süvaõppemudeleid.

Täpsemalt õppisite:

  • Kuidas oma andmeid EC2 eksemplaridesse kopeerida.
  • Kuidas seadistada skripte ohutuks päevade, nädalate või kuude käitamiseks.
  • Kuidas jälgida protsesse, süsteemi ja GPU jõudlust.

Kas teil on küsimusi?
Esitage oma küsimused allpool toodud kommentaarides ja annan endast parima, et vastata.

Arendage Pythoni abil süvaõppeprojekte!

Sügav õppimine Pythoniga

Mis siis, kui saaksite mõne minutiga võrgu arendada

... ainult mõne Pythoni reaga

Uurige, kuidas minu uues e-raamatus:
Sügav õppimine Pythoniga

See katab otsast lõpuni projektid järgmistel teemadel:
Mitmekihilised perceptronid, Konvolutsioonilised võrgud ja Korduvad närvivõrgud, ja veel...

Lõpuks viia sügav õppimine
Oma projektid

Jätke akadeemikud vahele. Lihtsalt tulemused.

Vaadake, mis on sees

Samuti võite olla huvitatud