MARGO

Aktualności

Uruchamianie aplikacji Jupyter notebook w Google Cloud do wyzwania Kaggle

Autor: Hao Chen Data Scientist

20/04/2018

Kiedy rozpoczynasz wyzwanie Kaggle, potrzebny jest zazwyczaj komputer do przechowywania w pamięci całego zestawu danych i przyspieszenia szkolenia za pomocą procesora. Zamiast kupować nowy komputer wolę zrobić to za darmo dzięki środkom o wartości 300 dol. oferowanym przez Google Cloud Platform.

 

Krok 1: Utwórz darmowe konto w Google Cloud

W tym kroku możesz utworzyć nowe konto Google Account lub zalogować się na istniejące konto na stronie https://cloud.google.com/. Następnie należy wprowadzić informacje dotyczące płatności i zweryfikować konto.

 

Krok 2: Utwórz nowy projekt w GCP

Kliknij trzy kropki pokazane na poniższym obrazku i kliknij znak +, aby utworzyć nowy projekt.

Margo - Create a new project on GCP

Krok 3: Utwórz instancję VM

Kliknij trzy linie w górnym lewym rogu, potem z menu Compute (Obliczenia) wybierz opcję Compute Engine (Silnik obliczeniowy).

Margo - Create a VM instance

Kliknij opcję Create new instance (Utwórz nową instancję). Nazwij instancję, wybierz swój region. W moim przypadku jest to „europe-west1-b”. Wybierz swój rodzaj urządzenia (Machine type). (U mnie to „8v CPUs 52 GB memory”, bo mam bardzo duży zestaw danych). GCP poda szacunkową cenę zgodnie z Twoją konfiguracją.

Możesz także dostosować maszynę wirtualną, jeśli potrzebujesz procesorów GPU. Uwaga, procesory GPU są dostępne tylko w kilku regionach. Upewnij się, że wybrana została strefa z poniższej listy:

  • us-west1-b
  • us-central1-c
  • us-central1-f
  • us-east1-c
  • europe-west1-b
  • europe-west1-d
  • asia-east1-a
  • asia-east1-c
  • europe-west4-a

Margo machine type

W menu Boot disk (Dysk rozruchowy) wybierz jako OS „Ubuntu 16.04 LTS” i potrzebny rozmiar dysku. W moim przypadku to 50 GB.

Przy opcjach zapory zaznacz zarówno „http”, jak i „https” (bardzo ważne). Następnie przejdź do karty dysku i odznacz pole Delete boot disk when instance is deleted (Usuń dysk rozruchowy, kiedy instancja zostanie usunięta).

Kliknij opcję Create (Utwórz). Twoja instancja jest gotowa!

WAŻNE: NIE ZAPOMNIJ ZATRZYMAĆ INSTANCJI GPU PO ZAKOŃCZENIU, KLIKAJĄC TRZY KROPKI NA POWYŻSZYM OBRAZKU I WYBIERAJĄC OPCJĘ STOP. W PRZECIWNYM WYPADKU GCP BĘDZIE NADAL NALICZAŁ OPŁATY GODZINOWE.

 

Krok 4: Ustaw zewnętrzy adres IP na statyczny

Domyślnie zewnętrzny adres IP jest dynamiczny. Aby uprościć całą procedurę potrzebujemy, aby był statyczny. Kliknij trzy poziome linie u góry po lewej stronie i z menu Networking (Sieć) wybierz sieć VPC, a następnie External IP addresses (Zewnętrzne adresy IP).

Zmień typ z Ephemeral (Krótkotrwały) na Static (Statyczny).

Następnie kliknij ustawienie Firewall rules (Zasady zapory) w menu VPC network (Sieć VPC). Kliknij opcję Create Firewall Rules (Utwórz zasady zapory) zgodnie z poniższym obrazkiem:

W ustawieniu Protocols and ports (Protokoły i porty) możesz wybrać dowolny port. Mój numer portu to tcp:5000. Kliknij przycisk Save (Zapisz).

 

Krok 5: Zainstaluj Google Cloud SDK

W zależności od Twojego systemu operacyjnego zapoznaj się z odpowiednim dokumentem na stronie https://cloud.google.com/sdk/docs/quickstarts.

Następnie uruchom gcloud init. Postępuj zgodnie z instrukcjami na stronie internetowej, aby zainicjować Google Cloud SDK.

 

Krok 6: Zainstaluj Jupyter notebook i inne pakiety

Otwórz terminal, połącz się z instancją VM:

gcloud compute --project <project name> ssh --zone <zone name> <instance name>

Następnie zainstaluj anaconda3 na maszynie wirtualnej,

wget http://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh
bash Anaconda3-4.0.0-Linux-x86_64.sh

bash Anaconda3-4.0.0-Linux-x86_64.sh

i postępuj zgodnie z wyświetlanymi na ekranie instrukcjami. Ustawienia domyślne zazwyczaj działają dobrze, ale odpowiedz Tak na ostatnie pytanie dotyczące dołączania lokalizacji instalacji do ŚCIEŻKI:

Do you wish the installer to prepend the
Anaconda3 install location to PATH
in your /home/haroldsoh/.bashrc ?
[yes|no][no] >>> yes

Aby od razu korzystać z programu Anaconda, umieść odnośnik do pliku bashrc:

source ~/.bashrc

Teraz zainstaluj inne aplikacje, np.

conda install -c conda-forge lightgbm

 

Krok 7: Skonfiguruj serwer VM

Otwórz sesję SSH w maszynie wirtualnej. Sprawdź, czy masz plik konfiguracyjny Jupyter:

ls ~/.jupyter/jupyter_notebook_config.py

Jeśli nie istnieje, utwórz nowy:

jupyter notebook --generate-config

Dodamy kilka wierszy do pliku konfiguracyjnego Jupyter. Jeśli plik jest czysto tekstowy, można to zrobić za pomocą ulubionego edytora (np. vim, emacs). Upewnij się, że numer portu został zamieniony na ten, który pozwala na dostęp zapory w kroku 4.

c = get_config()
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = <Port Number>

Powinno to wyglądać mniej więcej tak:

Krok 8: Uruchomienie notatnika Jupyter

Aby uruchomić notatnik jupyter, wpisz następujące polecenie w oknie ssh, w którym się znajdujesz:

jupyter notebook --ip=0.0.0.0 --port=<port-number> --no-browser &

Po uruchomieniu polecenia otrzymasz następujący token:

Teraz, aby uruchomić swój notatnik jupyter, wystarczy wpisać w przeglądarce:

http://<External Static IP Address>:<Port Number> gdzie zewnętrzny adres IP jest adresem IP, który wprowadziliśmy statycznie, a numer portu to ten, do którego mamy dostęp firewall. Wprowadź token, który otrzymałeś w ostatnim kroku:  

Następnie masz notebooka jowery działającego na GCP.

Materiały referencyjne

  1. Running Jupyter Notebook on Google Cloud Platform in 15 min
  2. Google Cloud Quickstarts

Autor: Hao Chen Data Scientist
Chmura
Google