10 komentorivireseptiä syvälliseen oppimiseen Amazon Web Services -palvelussa

10 komentorivireseptiä syvälliseen oppimiseen Amazon Web Services -palvelussa

Suurten syvällisten oppimisprosessien suorittaminen Amazon Web Services EC2: lla on halpa ja tehokas tapa oppia ja kehittää malleja.

Vain muutamalla dollarilla saat käyttöösi kymmeniä gigatavuja RAM-muistia, kymmeniä suorittimen ytimiä ja useita grafiikkasuoritimia. Suosittelen sitä.

Jos olet uusi EC2: n tai Linux-komentorivin käyttäjä, on joukko komentoja, jotka löydät korvaamattomiksi, kun suoritat syvien oppimisen komentosarjoja pilvessä.

Tästä opetusohjelmasta löydät yksityisen luetteloni 10 komennosta, joita käytän joka kerta, kun käytän EC2: ta sovittamaan suuria syvällisiä oppimismalleja.

Luettuasi tämän viestin tiedät:

  • Kuinka kopioida tietosi EC2-ilmentymiin ja niistä.
  • Kuinka asettaa komentosarjat toimimaan turvallisesti päiviä, viikkoja tai kuukausia.
  • Kuinka seurata prosesseja, järjestelmää ja näytönohjaimen suorituskykyä.

Käynnistä projekti uudella kirjallani Deep Learning With Python, mukaan lukien vaiheittaiset oppaat ja Python-lähdekoodi tiedostot kaikille esimerkeille.

Aloitetaan.

Huomautus: Kaikissa työasemasi komennoissa oletetaan, että käytät Linux-tyyppistä ympäristöä (esim. Linux, OS X tai cygwin).

Onko sinulla muita vinkkejä, temppuja tai suosikkikomentoja mallien ajamiseksi EC2: lla?
Kerro minulle alla olevissa kommenteissa.

10 komentorivireseptiä syvälliseen oppimiseen Amazon Web Services -palvelussa

10 komentorivireseptiä syvälliseen oppimiseen Amazon Web Services -palvelussa
Kuva chascar, joitain oikeuksia pidätetään.

Yleiskatsaus

Tässä viestissä esitetyt komennot olettavat, että AWS EC2 -esiintymäsi on jo käynnissä.

Johdonmukaisuuden vuoksi tehdään muutamia muita oletuksia:

  • Palvelimesi IP-osoite on 54.218.86.47; vaihda tämä palvelimesi instanssin IP-osoitteeksi.
  • Käyttäjänimesi on ec2-käyttäjä; muuta tämä käyttäjänimesi ilmentymässäsi.
  • SSH-avain sijaitsee paikassa ~ / .ssh / ja sillä on tiedostonimi aws-keypair.pem; muuta tämä SSH-avaimen sijainniksi ja tiedostonimeksi.
  • Työskentelet Python-komentosarjojen kanssa.

Jos tarvitset apua GPU-pohjaisen AWS EC2 -esiintymän määrittämisessä ja suorittamisessa syvälle oppimiselle, katso opetusohjelma:

1. Kirjaudu sisään työasemalta palvelimelle

Sinun on kirjauduttava palvelimeen, ennen kuin voit tehdä mitään hyödyllistä.

Voit kirjautua sisään helposti SSH-suojatun kuoren avulla.

Suosittelen, että tallennat SSH-avaimen omaan ~ / .ssh / hakemisto, jolla on hyödyllinen nimi. Käytän nimeä aws-keypair.pem. Muista: tiedostolla on oltava käyttöoikeudet 600.

Seuraava komento kirjaa sinut palvelinesiintymään. Muista vaihtaa käyttäjänimi ja IP-osoite asiaankuuluvaksi käyttäjänimeksi ja palvelimen esiintymän IP-osoitteeksi.

2. Kopioi tiedostot työasemalta palvelimelle

Kopioit tiedostoja työasemastasi palvelinesiintymään käyttämällä suojattua kopiota (scp).

Alla oleva esimerkki, ajaa työasemallasi, kopioi script.py Työasemasi paikallishakemistossa oleva Python-komentosarja palvelinesiintymään.

3. Suorita komentosarja palvelimen taustaprosessina

Voit suorittaa Python-komentosarjan taustaprosessina.

Lisäksi voit suorittaa sen siten, että se ohittaa muiden prosessien signaalit, ohittaa kaikki vakiotulot (stdin) ja välittää kaikki lähdöt ja virheet lokitiedostoon.

Kokemukseni mukaan tätä kaikkea tarvitaan pitkäkestoisille skripteille suurten syvällisten oppimismallien sovittamiseksi.

Tämä olettaa, että käytät script.py Python-komentosarja, joka sijaitsee / koti / ec2-käyttäjä / hakemistosta ja että haluat tämän komentosarjan lähdön edelleenlähetettävän tiedostoon script.py.log samassa hakemistossa.

Viritä tarpeisiisi.

Jos tämä on ensimmäinen kokemuksesi nohupista, voit oppia lisää täältä:

Jos tämä on ensimmäinen kokemuksesi vakiotulon (stdin), vakiolähdön (stout) ja standardivirheen (sterr) uudelleenohjaamisesta, voit oppia lisää täältä:

4. Suorita komentosarja tietyllä palvelimen GPU: lla

Suosittelen useiden komentosarjojen suorittamista samanaikaisesti, jos AWS EC2 -esiintymäsi pystyy käsittelemään sen ongelmallesi.

Esimerkiksi valitsemassasi EC2-ilmentymässä voi olla 4 grafiikkasuoritinta, ja voit halutessasi suorittaa yhden komentosarjan kussakin.

CUDA: n avulla voit määrittää, mitä GPU-laitetta käytetään ympäristömuuttujan kanssa CUDA_VISIBLE_DEVICES.

Voimme käyttää samaa komentoa yllä komentosarjan suorittamiseksi ja määritellä käytettävä GPU-laite seuraavasti:

Jos ilmentymässäsi on 4 GPU-laitetta, voit määrittää sen CUDA_VISIBLE_DEVICES = 0 että CUDA_VISIBLE_DEVICES = 3.

Uskon, että tämä toimisi Theano-taustalla, mutta olen testannut sitä vain Kerasin TensorFlow-taustalla.

Voit oppia lisää CUDA_VISIBLE_DEVICES postissa:

5. Seuraa palvelimen komentosarjojen lähtöä

Voit seurata komentosarjan tulosta sen ollessa käynnissä.

Tästä voi olla hyötyä, jos annat pistemäärän jokaiselle aikakaudelle tai jokaisen algoritmiajon jälkeen.

Tässä esimerkissä luetellaan komentosarjojen lokitiedoston viimeiset rivit ja päivitetään tuloste, kun komentosarjaan lisätään uusia rivejä.

Amazon voi sulkea päätelaitteesi aggressiivisesti, jos näyttö ei saa uutta lähtöä hetken kuluttua.

Vaihtoehto on käyttää watch-komentoa. Olen havainnut, että Amazon pitää tämän terminaalin auki:

Olen havainnut, että python-komentosarjojen vakio (stout) ei näytä päivittyvän usein.

En tiedä onko tämä EC2-asia vai Python-asia. Tämä tarkoittaa, että et näe lokin tulostetta usein päivitettynä. Se näyttää olevan puskuroitu ja tuotettu, kun puskuri osuu kiinteisiin kooihin tai ajon lopussa.

Tiedätkö tästä enemmän?
Kerro minulle alla olevissa kommenteissa.

6. Seuraa järjestelmän ja prosessin suorituskykyä palvelimella

EC2-järjestelmän suorituskykyä on hyvä seurata. Varsinkin käyttämäsi ja jäljellä olevan RAM-muistin määrä.

Voit tehdä tämän käyttämällä ylintä komentoa, joka päivitetään muutaman sekunnin välein.

Voit myös seurata järjestelmää ja vain prosessiasi, jos tiedät sen prosessitunnisteen (PID).

7. Seuraa GPU: n suorituskykyä palvelimella

On hyvä pitää silmällä GPU: n suorituskykyä.

Jälleen, pidä silmällä GPU: n käyttöä, jossa GPU: t ovat käynnissä, jos aiot käyttää useita komentosarjoja rinnakkain ja GPU: n RAM-käytössä.

Voit käyttää nvidia-smi komento pitää silmällä GPU: n käyttöä. Haluan käyttää katsella komento, joka pitää päätelaitteen auki ja tyhjentää ruudun jokaisesta uudesta tuloksesta.

8. Tarkista, mitä komentosarjoja vielä suoritetaan palvelimella

On myös tärkeää pitää silmällä, mitkä komentosarjat ovat edelleen käynnissä.

Voit tehdä tämän ps komento.

Jälleen haluan käyttää watch-komentoa pitämään päätelaite auki.

9. Muokkaa tiedostoa palvelimella

Suosittelen, ettet muokkaa tiedostoja palvelimella, ellet todellakaan tarvitse.

Siitä huolimatta voit muokata paikallaan olevaa tiedostoa vi toimittaja.

Alla oleva esimerkki avaa komentosarjan vi.

Tietenkin voit käyttää suosikki komentorivieditoriasi, kuten emacs; tämä huomautus on todella sinulle, jos olet uusi Unix-komentorivillä.

Jos tämä on ensimmäinen altistumisesi vi: lle, voit oppia lisää täältä:

10. Lataa työasemalta tiedostot palvelimelta

Suosittelen, että tallennat mallisi ja kaikki tulokset ja kaaviot nimenomaisesti uusiin ja erillisiin tiedostoihin osana komentosarjaasi.

Voit ladata nämä tiedostot palvelimen ilmentymästä työasemallesi käyttämällä suojattua kopiota (scp).

Alla oleva esimerkki suoritetaan työasemalta, ja se kopioi kaikki PNG-tiedostot kotihakemistostasi työasemallesi.

Muita vinkkejä

Tässä osassa on joitain lisävinkkejä työskenneltäessä kovasti AWS EC2: n kanssa.

  • Suorita useita komentosarjoja kerrallaan. Suosittelen, että valitset laitteiston, jossa on useita grafiikkasuoritimia, ja ajetaan useita komentosarjoja kerrallaan, jotta alustaa voidaan hyödyntää täysimääräisesti.
  • Kirjoita ja muokkaa komentosarjoja vain työasemallesi. Käsittele EC2: tä näennäistuotantona ja kopioi skriptejä ja tietoja sinne vain suoritettavaksi. Suorita kaikki työaseman kehitys ja kirjoita koodisi pienet testit varmistaaksesi, että se toimii odotetulla tavalla.
  • Tallenna skriptilähdöt nimenomaisesti tiedostoon. Tallenna tulokset, kaaviot ja mallit tiedostoihin, jotka voidaan ladata myöhemmin työasemallesi analysointia ja sovellusta varten.
  • Käytä katselukomentoa. Amazon tappaa aggressiivisesti päätelaitteet, joilla ei ole aktiivisuutta. Voit seurata asioita katselukomennolla, joka lähettää tietoja tarpeeksi usein pitääkseen päätelaitteen auki.
  • Suorita komennot työasemalta. Mikä tahansa yllä luetelluista komennoista, jotka on tarkoitettu suoritettavaksi palvelimella, voidaan suorittaa myös työasemalta lisäämällä komentoon "ssh -i ~ / .ssh /aws-avainpari.pem [email protected]”Ja lainaamalla komennon, jonka haluat suorittaa. Tämä voi olla hyödyllistä tarkistaa prosessit koko päivän.

Yhteenveto

Tässä opetusohjelmassa olet löytänyt 10 komentoa, joita käytän joka kerta, kun koulutan suuria syvällisiä oppimismalleja AWS EC2 -esiintymissä GPU: illa.

Erityisesti opit:

  • Kuinka kopioida tietosi EC2-ilmentymiin ja niistä.
  • Kuinka asettaa komentosarjat toimimaan turvallisesti päiviä, viikkoja tai kuukausia.
  • Kuinka seurata prosesseja, järjestelmää ja näytönohjaimen suorituskykyä.

Onko sinulla kysymyksiä?
Esitä kysymyksesi alla olevissa kommenteissa ja teen parhaani vastata.

Kehitä syvällisiä oppimisprojekteja Pythonilla!

Syvä oppiminen Pythonin kanssa

Entä jos voisit kehittää verkon muutamassa minuutissa

... vain muutamalla rivillä Pythonia

Tutustu uuteen e-kirjaani:
Syvä oppiminen Pythonin kanssa

Se kattaa päästä päähän -hankkeet seuraavista aiheista:
Monikerroksiset perceptronit, Konvoluutioverkot ja Toistuvat hermoverkot, ja enemmän...

Lopuksi tuo syvällinen oppiminen
Omat projektisi

Ohita akateemikot. Vain tulokset.

Katso mitä sisällä

Saatat myös olla kiinnostunut