태그 보관물: GCP

GCP 노트북 인스턴스에서 virtualenv 사용하기

구글 클라우드의 AI 플래폼에서 제공하는 노트북 인스턴스를 사용하면 주피터 노트북 기반의 연구나 실험을 편리하게 수행할 수 있습니다. 이따금 한 인스턴스에서 여러 개의 virtualenv 운영하고 싶을 때가 있습니다. 이 글에서 virtualenv 환경을 만들어 주피터 노트북과 연결하는 간단한 방법을 안내하겠습니다.

노트북 인스턴스를 만든 다음 OPEN JUPYTERLAB을 클릭하면 다음과 같은 화면이 새창으로 열립니다.

default_jupyterhub.png

노트북 인스턴스는 기본적으로 파이썬 2와 파이썬 3의 노트북 환경을 제공합니다. 시스템 전역에 설치된 파이썬을 그대로 두고 가상 환경을 만들어 연결해 보겠습니다.

먼저 인스턴스에 접속해야 합니다. jupyterlab의 Terminal이나 cloud shell을 사용해 인스턴스에 접속할 수 있습니다. 이 jupyterlab은 jupyter 계정에 연결되어 있습니다. cloud shell에서 인스턴스의 jupyter 계정으로 접속하세요. 기본 계정으로 접속했다면 jupyter 계정으로 전환하세요.

가상 환경을 만들 프로젝트 디렉토리로 이동한 후 파이썬 3 기반의 가상 환경을 만들기 위해 다음과 같은 virtualenv 명령을 실행합니다.

$ virtualenv --python python3 env

이제 다음 명령으로 가상 환경을 활성화합니다. 환경을 활성화한 후에는 시스템에 독립적으로 원하는 파이썬 패키지를 마음껏 설치할 수 있습니다.

$ source env/bin/activate

이제 만든 환경을 주피터에 연결할 차례입니다. 시스템에서 기본적으로 제공하는 주피터 커널은 다음과 같습니다.

/usr/local/share/jupyter/kernels/python2/kernel.json
/usr/local/share/jupyter/kernels/python3/kernel.json

앞에서 만든 가상 환경을 커널에 추가하는 방법은 간단합니다. 먼저 루트로 계정을 바꾼 후 kernels 디렉토리로 이동하여 원하는 이름의 디렉토리를 하나 만듭니다.

# cd /usr/local/share/jupyter/kernels
# mkdir gdl

기존 커널의 kernel.json 파일 하나를 위에서 만든 디렉토리 아래로 복사합니다.

# cp python3/kernel.json ./gdl/

복사한 kernel.json 파일에서 display_name을 원하는 이름으로 바꾸어 줍니다. argv 키 아래 리스트의 첫 번째 항목을 앞에서 만든 가상 환경의 파이썬 실행 경로로 바꿉니다.

{
  "display_name": "gdl",
  "language": "python",
  "argv": [
    "/home/jupyter/your_project/env/bin/python3",
    "-m",
    "ipykernel_launcher",
    "-f",
    "{connection_file}"
  ]
}

kernel.json 파일을 저장한 다음 jupyterlab 창을 닫고 다시 OPEN JUPYTERLAB을 클릭하여 새 페이지를 엽니다. 이제 다음처럼 gdl 환경으로 실행할 수 있는 노트북과 콘솔 메뉴가 보일 것입니다.

add_new_env

노트북 인스턴스를 바꿔가며 작업하기 번거로운 경우 간단한 설정만으로 한 인스턴스 내에서 여러 개의 파이썬 가상 환경을 실험해 보세요! 🙂

AWS New Instance for AI

오늘 블룸버그에 아마존이 뉴럴 네트워크를 위한 새로운 인스턴스 타입을 테스트 중에 있다고 기사를 게재했습니다. 아마존의 입장에서는 계속 인기가 올라가고 있는 구글의 클라우드 플랫폼(GCP)에 대응하지 않을 수 없을 것 같습니다. 특히 구글의 클라우드 머신러닝 플랫폼이 이미 알파 서비스를 하고 있습니다. 하지만 아마존이 구글 클라우드 플랫폼이 제공하는 Vision API, Prediction API, Translate API 같은 API 서비스를 제공할 것 같지는 않습니다.

새로운 타입의 인스턴스는 최대 8개까지의 GPU가 탑재되었고 몇몇 고객을 대상으로 테스트 중에 있다고 합니다. 아마도 보다 최신의 Nvidia GPU가 탑재될 것으로 생각됩니다. 이 인스턴스에 아마존이 발표한 딥러닝 프레임워크인 데스트니(DSSTNE)만 운영할 수 있는 것은 아니고 당연히 텐서플로우를 포함한 다른 딥러닝 프레임워크도 사용할 수 있습니다. 새로운 인스턴스 타입에서 데스트니를 사용했을 때 성능상의 장점외에 다른 편리함을 줄 수 있다면 더욱 기대가 될 것 같습니다.

Google Cloud Vision API

cloud-vision-api

구글 GCP NEXT 2016 컨퍼런스에서 Jeff Dean이 데모로 보여주었던 클라우드 비전 익스플로러(Cloud Vision Explorer)가 공개 되었습니다. 약 8만여개의 이미지를 분석해 주는 데모입니다. 클라우드 비전 API의 가격은 1,000개의 이미지당 $2 라고 합니다. 한달에 1,000개 까지는 무료라고 하네요. 자세한 가격 정보는 여기에서 확인하실 수 있습니다.

이 데모는 클라우드 비전 API, 텐서플로우, WebGL 등을 이용해서 구현되었습니다. 먼저 클라우드 비전 API로 이미지의 레이블과 스코어를 얻은 후 GloVe 라이브러리를 이용해서 300차원의 벡터로 만듭니다. 그 다음 t-SNE 방식을 사용하여 차원을 3차원으로 축소한 후 유클리디안 거리를 사용한 k-Means 알고리즘을 이용하여 클러스터링 했다고 합니다. 조금 더 자세한 설명은 구글 클라우드 플랫폼의 블로그 페이지를 참고하실 수 있습니다.

galaxy-vision-api-1b

출처: 구글 클라우드 플랫폼 블로그