åºæã®ä»£ããã«
ãã®èšäºãå¯èœã«ããŠãããç§ã®ãããã³ã«æè¬ããŸããã¢ã¬ã¯ãµã³ãã«ã»ã·ã§ããªãšããã»ã«ã²ã€ã»ãã³ãã¢ã¬ã¯ã»ã€ã»ããªãšã¿ã€ãšãããããŒã¿ã»ãã³ãžã³ãã¢ã³ãã¬ã€ã»ã«ã«ããŠããããããŽã§ãšãã»ãšãã²ããŒãã¢ã³ãã³ã»ããã§ã ãã³ã
ãã®èšäºãèªçµŠèªè¶³ã®ã¬ã€ãã«ããããšããŸããããã³ãã³ããã¹ãããããšã«ã³ããŒã¢ã³ãããŒã¹ãããã®ã§ã¯ãªããåãªã³ã¯ãèŠãŠãå éšã§äœãèµ·ãã£ãŠããã®ããç解ããããšã匷ããå§ãããŸãã
åææ¡ä»¶
èšäºã§èª¬æãããŠãããã¹ãŠã®æé ãå®è¡ããããã«èªè ãæºããå¿ èŠãããèŠä»¶ã¯1ã€ã ãã§ããæææ©èœã䜿çšããããã課éãæå¹ã«ãªã£ãŠããGoogle Cloudã¢ã«ãŠã³ããæã€ããã§ãã
2ã€ã®äž»èŠãªè³ªåã«å¯Ÿããçãããæ ãå§ããŸãããã
- Google Cloud MLãšã¯äœã§ããïŒ
- Google Cloud Shellãšã¯äœã§ããïŒ
Google Cloud MLãšã¯äœã§ããïŒ
å ¬åŒã®å®çŸ©ã§ã¯æ¬¡ã®ããã«æžãããŠããŸãïŒ
Google Cloud Machine Learningã¯ãTensorFlowã®ãã¯ãŒãšæè»æ§ãã¯ã©ãŠãã«ãããããŸãã ãã®ã³ã³ããŒãã³ãã䜿çšããŠãããŒã¿ããæ©èœãéžæããã³æœåºããæ©æ¢°åŠç¿ã¢ãã«ããã¬ãŒãã³ã°ããGoogle Cloud Platformã®ç®¡çãªãœãŒã¹ã䜿çšããŠäºæž¬ãååŸã§ããŸãã
ããªãã«ã€ããŠã¯ç¥ããŸãããããã®å®çŸ©ã¯ç§ã«ã¯ã»ãšãã©äœãèšããŸããã Google Cloud MLã§äœãåŸããããã説æããŸãã
- TensorFlowã¢ãã«ããã¬ãŒãã³ã°ããããã«å¿ èŠãªãã¹ãŠãåãããã·ã³äžã®ã¯ã©ãŠãã«ã³ãŒãããããã€ããŸãã
- ã¯ã©ãŠãå ã®ãã·ã³äžã®ã³ãŒãã®Google Cloud Storageãã±ãããžã®ã¢ã¯ã»ã¹ãæäŸããŸãã
- ãã¬ãŒãã³ã°ãæ åœããã³ãŒããå®è¡ããŠå®è¡ããŸãã
- ã¹ãã¬ãŒãžçšã«ã¯ã©ãŠãã«ã¢ãã«ãé 眮ããŸãã
- èšç·Žãããã¢ãã«ã䜿çšããŠãå°æ¥ã®ããŒã¿ãäºæž¬ããŸãã
ãã®èšäºã®çŠç¹ã¯ãæåã®3ã€ã®ãã€ã³ãã«ãªããŸãã åŸã§ãä»åŸã®èšäºã§ãGoogle Cloud MLã§ãã¬ãŒãã³ã°ãããã¢ãã«ãå±éããæ¹æ³ãšãã¯ã©ãŠãã¢ãã«ã䜿çšããŠããŒã¿ãäºæž¬ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
Google Cloud Shellãšã¯äœã§ããïŒ
ãããŠåã³ã å ¬åŒã®å®çŸ© ïŒ
Google Cloud Shellã¯ãGoogle Cloud Platformã§ãã¹ãããããªãœãŒã¹ã管çããããã®ã·ã§ã«ç°å¢ã§ãã
ç¹°ãè¿ããŸãããGoogle Cloud Shellã¯æ¬¡ã®ãšããã§ãã
- æäŸãããã¯ã©ãŠãã€ã³ã¹ã¿ã³ã¹ïŒã¿ã€ãïŒïŒ
- Debian OSãæèŒããŠããå Žåã
- Webããã¢ã¯ã»ã¹ã§ããã·ã§ã«ã
- Google Cloudã§ã®äœæ¥ã«å¿ èŠãªãã®ããã¹ãŠæã£ãŠããŸãã
ã¯ããæ£ããç解ããŸãããShellã«ã¢ã¯ã»ã¹ã§ããå®å šã«ç¡æã®ã€ã³ã¹ã¿ã³ã¹ããããWebã³ã³ãœãŒã«ããã¢ã¯ã»ã¹ã§ããŸãã
ãã ããç¡æã§ã¯ãããŸãããCloudShellã®å Žåãæ»æçãªå¶éãããã€ããããŸããsshã§ã¯ãªããWebã³ã³ãœãŒã«ããã®ã¿ã¢ã¯ã»ã¹ã§ããŸãïŒå人çã«ã¯ãiTerm以å€ã®ç«¯æ«ã¯äœ¿çšããŸããïŒã StackOverflowã§ã sshãä»ããŠCloud Shellã䜿çšããããšã¯å¯èœãã©ããããŸããããã¯äžå¯èœãã©ããã«ã€ããŠè³ªåããŸããã ããããå°ãªããšããç¹å¥ãªChromeãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããããšã§ãããªãã®ç掻ã楜ã«ããæ¹æ³ããããŸããããã«ãããå°ãªããšããéåžžã®ããŒãã€ã³ãã£ã³ã°ã䜿çšããŠãã¿ãŒããã«ããã©ãŠã¶ãŒãŠã£ã³ããŠïŒãã®æŒé=ïŒã®ããã§ã¯ãªããã¿ãŒããã«ã®ããã«åäœã§ããããã«ãªããŸãïŒ
Cloud Shellæ©èœã®è©³çŽ°ã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
å®è¡ããå¿ èŠãããæé ïŒ
- åŠç¿ã®ããã®Cloud Shellã®æºå
- ã¯ã©ãŠãã¹ãã¬ãŒãžã®æºå
- ãã¬ãŒãã³ã°ããŒã¿ã®æºå
- ãã¬ãŒãã³ã°ã¹ã¯ãªããã®æºå
- åŠç¿ããã»ã¹ãããŒã«ã«ã§ãã¹ããã
- ãã¬ãŒãã³ã°
- ããããšã®äŒè©±
Cloud ShellåŠç¿ç°å¢ã®æºå
Cloud ShellãéããŸãã ããããŸã è¡ã£ãŠããªãå Žåãéåžžã«ç°¡åã§ããã³ã³ãœãŒã«console.cloud.google.comã³ã³ãœãŒã«ãéããå³äžé ã®ã·ã§ã«ã¢ã€ã³ã³ãã¯ãªãã¯ããå¿ èŠããããŸãã
åé¡ãçºçããå Žåã¯ãã³ã³ãœãŒã«ã詳现ã«èµ·åããæ¹æ³ã説æããçãæ瀺ããããŸãã
以éã®ãã¹ãŠã®äŸã¯ãCloud Shellã§å®è¡ãããŸãã
ãŸããCloud Shellã§Cloud MLã䜿çšããã®ããããåããŠã®å Žåã¯ãå¿ èŠãªãã¹ãŠã®äŸåé¢ä¿ãæºåããå¿ èŠããããŸãã ãããè¡ãã«ã¯ãã·ã§ã«ã§çŽæ¥1è¡ã®ã³ãŒãã®ã¿ãå®è¡ããå¿ èŠããããŸãã
curl https://raw.githubusercontent.com/GoogleCloudPlatform/cloudml-samples/master/tools/setup_cloud_shell.sh | bash
圌ã¯ãã¹ãŠã®å¿ èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
ãã®æ®µéã§æã®åãä»ãã«ãã¹ãŠãã€ãŸãããå ŽåïŒ
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-urImDr/olefile/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=fr ead().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" build_ext --disable-jpeg install --record /tmp/pip-GHGxvS-record/install-record.txt - -single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-urImDr/olefile/
次ã«ãæåã€ã³ã¹ããŒã«ãæ¯æŽããŸãã
pip install --user --upgrade pillow
ãã³ã@ Sp0tted_0wlãããããšãã 次ã«ãPATHå€æ°ãæŽæ°ããå¿ èŠããããŸãã
export PATH=${HOME}/.local/bin:${PATH}
çŸåšã®ãããžã§ã¯ãã§Cloud MLãåããŠäœ¿çšããå Žåã¯ãMLã¢ãžã¥ãŒã«ãåæåããå¿ èŠããããŸãã ããã¯1è¡ã§å®è¡ã§ããŸãã
â gcloud beta ml init-project Cloud ML needs to add its service accounts to your project (ml-lab-123456) as Editors. This will enable Cloud Machine Learning to access resources in your project when running your training and prediction jobs. Do you want to continue (Y/n)? Added serviceAccount:cloud-ml-service@ml-lab-123456-1234a.iam.gserviceaccount.com as an Editor to project 'ml-lab-123456'.
ãã¹ãŠãæ£åžžã«ã€ã³ã¹ããŒã«ããããã©ããã確èªããã«ã¯ã1ã€ã®ç°¡åãªã³ãã³ããå®è¡ããå¿ èŠããããŸãã
â curl https://raw.githubusercontent.com/GoogleCloudPlatform/cloudml-samples/master/tools/check_environment.py | python ... You are using pip version 8.1.1, however version 9.0.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. You are using pip version 8.1.1, however version 9.0.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Your active configuration is: [cloudshell-12345] Success! Your environment is configured
次ã«ããããã¯ãŒã¯ã®ãã¬ãŒãã³ã°ã«äœ¿çšããGoogle Cloudãããžã§ã¯ãã決å®ããŸãã ç§ã¯MLã§ã®ãã¹ãŠã®å®éšã®ããã®ç¹å¥ãªãããžã§ã¯ããæã£ãŠããŸãã ãããã«ãããããã¯ããªã次第ã§ããããããžã§ã¯ããåãæ¿ããããã«äœ¿çšããã³ãã³ãã玹ä»ããŸãã
â gprojects PROJECT_ID NAME PROJECT_NUMBER ml-lab-123456 ml-lab 123456789012 ... â gproject ml-lab-123456 Updated property [core/project].
åãéæ³ã䜿ãããå Žåã¯ã次ã.bashrc / .zshrc / other_rcãã¡ã€ã«ã«è¿œå ããå¿ èŠããããŸãã
function gproject() { gcloud config set project $1 } function gprojects() { gcloud projects list }
æ¢ã«ããã«ããå Žåã¯ãCloud Shellãæºåããç®çã®ãããžã§ã¯ãã«ç§»åããããšãæå³ããŸããCloudShellãæºåãããèªä¿¡ãæã£ãŠæ¬¡ã®ã¹ãããã«é²ãããšãã§ãããšèªä¿¡ãæã£ãŠèšããŸãã
ã¯ã©ãŠãã¹ãã¬ãŒãžã®æºå
ãŸããã¯ã©ãŠãã¹ãã¬ãŒãžãå¿ èŠãªçç±ã説æããå¿ èŠããããŸããïŒ ã¯ã©ãŠãã§ã¢ãã«ããã¬ãŒãã³ã°ããããããã¬ãŒãã³ã°ããã»ã¹ã§ã¯çŸåšã®ãã·ã³ã®ããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ã«ã¢ã¯ã»ã¹ã§ããŸããã ã€ãŸããå¿ èŠãªãã¹ãŠã®ãœãŒã¹ããŒã¿ãã¯ã©ãŠãã®ã©ããã«ä¿åããå¿ èŠããããŸãã èšç·Žãããã¢ãã«ãšåæ§ã«ãã©ããã«ä¿åããå¿ èŠããããŸãã ããã¯ã©ããã§ãã¬ãŒãã³ã°ãè¡ããããã·ã³ã«ãªãããšã¯ã§ããŸããããªããªããããªãã¯ããã«ã¢ã¯ã»ã¹ã§ããªãããã§ãã ãŸããåŠç¿ããã»ã¹ã¯ã¢ã¯ã»ã¹ã§ããªãããããã·ã³ã¯ã¢ã¯ã»ã¹ã§ããŸããã ãã®ãããªæªåŸªç°ã¯ãããŒã¿ãžã®ã¯ã©ãŠãã¹ãã¬ãŒãžãšããæ°ãããªã³ã¯ãå°å ¥ããããšã§ç Žãããšãã§ããŸãã
ãã¬ãŒãã³ã°ã«äœ¿çšããæ°ããã¯ã©ãŠããã±ãããäœæããŸãããã
â PROJECT_NAME=chatbot_generic â TRAIN_BUCKET=gs://${PROJECT_NAME} â gsutil mb ${TRAIN_BUCKET} Creating gs://chatbot_generic/...
ããã§ç§ã¯ããªãã«äœããèšããªããã°ãªããŸãããããªããå ¬åŒã®ã¬ã€ããèŠãã°ãããªãã¯ããã«æ¬¡ã®ããã¹ããèŠã€ããã§ãããïŒ
èŠåïŒãã«ããªãŒãžã§ã³ã®å ŽæïŒusãªã©ïŒã§ã¯ãªãããã±ããã®ãªãŒãžã§ã³ïŒus-central1ãªã©ïŒãæå®ããå¿ èŠããããŸãã
ç¡æ翻蚳ïŒ
泚ïŒãã±ããã®å°åïŒus-central1ïŒãæå®ããå¿ èŠããããŸããåœãšããŠã®è€æ°å°åã®å ŽæïŒäŸïŒusïŒã§ã¯ãããŸããã
ããã§ãããã®ã¢ããã€ã¹ã䜿çšããŠå°åãã±ãããäœæãããšãã¹ã¯ãªããã¯0_oãæžã蟌ãããšãã§ããŸããïŒãããµãŒã«ã«ã€ããŠã¯é»ã£ãŠãããŠãã ããã ãã°ã¯ãã§ã«ä¿®æ£ãããŠããŸã ïŒã
ãã¹ãŠãæ©èœããçæ³çãªäžçã§ã¯ãå°åã確ç«ããããšãéåžžã«éèŠã§ããããã¬ãŒãã³ã°äžã«äœ¿çšãããå°åã«å¯Ÿå¿ããŠããå¿ èŠããããŸãã ããããªããšãåŠç¿é床ã«æªåœ±é¿ãåãŒãå¯èœæ§ããããŸãã
ããã§ãä»åŸã®ãã¬ãŒãã³ã°ã®æºåãæŽããããšãã§ããŸãã
ãã¬ãŒãã³ã°ããŒã¿ã®æºå
ç¬èªã®ãããã¯ãŒã¯ã䜿çšããŠããå Žåããããããã®éšåãçç¥ãããããã®ããŒã¿ãããŠã³ããŒãããå¿ èŠãããå Žæãèšè¿°ãããŠããéšåã®ã¿ãéžæçã«èªã¿åãããšãã§ããŸãã
ä»åã¯ïŒ åã®èšäºãšæ¯èŒããŠïŒå ¥åããŒã¿ãæºåããã¹ã¯ãªããã®ãããã«å€æŽãããããŒãžã§ã³ã䜿çšããŸãã READMEãã¡ã€ã«ã§ã¹ã¯ãªããã®ä»çµã¿ãèªãããšããå§ãããŸãã ãã ãã次ã®æ¹æ³ã§å ¥åãæºåã§ããŸãïŒãtd srcãããmkdir src; cd srcãã«çœ®ãæããããšãã§ããŸãïŒã
â td src â ~/src$ git clone https://github.com/b0noI/dialog_converter.git Cloning into 'dialog_converter'... remote: Counting objects: 63, done. remote: Compressing objects: 100% (4/4), done. remote: Total 63 (delta 0), reused 0 (delta 0), pack-reused 59 Unpacking objects: 100% (63/63), done. Checking connectivity... done. â ~/src$ cd dialog_converter/ â ~/src/dialog_converter$ git checkout converter_that_produces_test_data_as_well_as_train_data Branch converter_that_produces_test_data_as_well_as_train_data set up to track remote branch converter_that_produces_test_data_as_well_as_train_data from origin. Switched to a new branch 'converter_that_produces_test_data_as_well_as_train_data' â ~/src/dialog_converter$ python converter.py â ~/src/dialog_converter$ ls converter.py LICENSE movie_lines.txt README.md test.a test.b train.a train.b
äžèšã®ã³ãŒããèŠããšããtdããšã¯äœããå°ãããããããŸããã..ããã¯ãto dirãã®çã圢åŒã§ãããããã¯ç§ãæãé »ç¹ã«äœ¿çšããã³ãã³ãã®1ã€ã§ãã ãã®éæ³ã䜿çšããã«ã¯ã次ãè¿œå ããŠrcãã¡ã€ã«ãæŽæ°ããå¿ èŠããããŸãã
function td() { mkdir $1 cd $1 }
ä»åã¯ãããŒã¿ã2ã€ã®ãµã³ãã«ïŒãã¬ãŒãã³ã°ãµã³ãã«ãšãã¹ããµã³ãã«ïŒã«åå²ããããšã«ãããã¢ãã«ã®å質ãæ¹åããŸãã ååã®ããã«ã2ã€ã§ã¯ãªã4ã€ã®ãã¡ã€ã«ã衚瀺ãããã®ã¯ãã®ããã§ãã
çŽ æŽããããã€ãã«ããã€ãã®ããŒã¿ãã§ããã®ã§ãããããã±ããã«ã¢ããããŒãããŸãããïŒ
â ~/src/dialog_converter$ gsutil cp test.* ${TRAIN_BUCKET}/input Copying file://test.a [Content-Type=application/octet-stream]... Copying file://test.b [Content-Type=chemical/x-molconn-Z]... \ [2 files][ 2.8 MiB/ 2.8 MiB] 0.0 B/s Operation completed over 2 objects/2.8 MiB. â ~/src/dialog_converter$ gsutil cp train.* ${TRAIN_BUCKET}/input Copying file://train.a [Content-Type=application/octet-stream]... Copying file://train.b [Content-Type=chemical/x-molconn-Z]... - [2 files][ 11.0 MiB/ 11.0 MiB] Operation completed over 2 objects/11.0 MiB. â ~/src/dialog_converter$ gsutil ls ${TRAIN_BUCKET} gs://chatbot_generic/input/ â ~/src/dialog_converter$ gsutil ls ${TRAIN_BUCKET}/input gs://chatbot_generic/input/test.a gs://chatbot_generic/input/test.b gs://chatbot_generic/input/train.a gs://chatbot_generic/input/train.b
ãã¬ãŒãã³ã°ã¹ã¯ãªããã®æºå
ããã§ããã¬ãŒãã³ã°ã¹ã¯ãªãããæºåã§ããŸãã translate.pyã䜿çšããŸãã ãã ããçŸåšã®å®è£ ã§ã¯Cloud MLã§ã®äœ¿çšãèš±å¯ãããŠããªããããå°ããªãã¡ã¯ã¿ãªã³ã°ãå¿ èŠã§ãã ãã€ãã®ããã«ã æ©èœãªã¯ãšã¹ããäœæããå¿ èŠãªãã¹ãŠã®å€æŽãå«ããã©ã³ããæºåããŸããã ã ããããèŸåããå§ããŸãããïŒ
â ~/src/dialog_converter$ cd .. â ~/src$ git clone https://github.com/b0noI/models.git Cloning into 'models'... remote: Counting objects: 1813, done. remote: Compressing objects: 100% (39/39), done. remote: Total 1813 (delta 24), reused 0 (delta 0), pack-reused 1774 Receiving objects: 100% (1813/1813), 49.34 MiB | 39.19 MiB/s, done. Resolving deltas: 100% (742/742), done. Checking connectivity... done. â ~/src$ cd models/ â ~/src/models$ git checkout translate_tutorial_supports_google_cloud_ml Branch translate_tutorial_supports_google_cloud_ml set up to track remote branch translate_tutorial_supports_google_cloud_ml from origin. Switched to a new branch 'translate_tutorial_supports_google_cloud_ml' â ~/src/models$ cd tutorials/rnn/translate/
ãã¹ã¿ãŒãã©ã³ãã䜿çšããŠããªãããšã«æ³šæããŠãã ããïŒ
åŠç¿ãã¹ã-ããŒã«ã«
éä¿¡æè²ã«ã¯è²»çšããããããããã¹ãã®ããã«ãããŒã«ã«ã§åŠç¿ããã»ã¹ãã·ãã¥ã¬ãŒãã§ããŸãã ããã§ã®åé¡ã¯ãCloud Shellãå®è¡ãããã·ã³äžã§ã®ãããã¯ãŒã¯ã®ããŒã«ã«ãã¬ãŒãã³ã°ããæ³¥ã®äžã«ç¢ºå®ã«æŒãã€ã¶ããæŒãã€ã¶ããšããäºå®ã§ãã ãããŠãçµæãèŠãããšãªãã€ã³ã¹ã¿ã³ã¹ããªãŒããŒããŒãããå¿ èŠããããŸãã ãããããã®å Žåã§ãäœã倱ãããªãã®ã§ãå¿é ããªãã§ãã ããã 幞ããªããšã«ãã¹ã¯ãªããã«ã¯äœ¿çšã§ããã»ã«ããã¹ãã¢ãŒãããããŸãã 䜿çšæ¹æ³ã¯æ¬¡ã®ãšããã§ãã
â ~/src/models/tutorials/rnn/translate$ cd .. â ~/src/models/tutorials/rnn$ gcloud beta ml local train \ > --package-path=translate \ > --module-name=translate.translate \ > -- \ > --self_test Self-test for neural translation model.
ã³ãã³ããå®è¡ãããã©ã«ããŒã«æ³šæããŠãã ããïŒ
ã»ã«ããã¹ãã¯æ£åžžã«å®äºããããã§ãã ããã§äœ¿çšããããŒã«ã€ããŠè©±ããŸãããã
- package-path-ãã¬ãŒãã³ã°ãå®äºããããã«ãªã¢ãŒããã·ã³ã«ãããã€ããå¿ èŠãããpythonããã±ãŒãžãžã®ãã¹ã
- ã-ã-åŸç¶ã®ãã¹ãŠãå ¥ååŒæ°ãšããŠã¢ãžã¥ãŒã«ã«éä¿¡ãããŸãã
- self_test-å®éã®ãã¬ãŒãã³ã°ãªãã§ã»ã«ããã¹ããå®è¡ããããã¢ãžã¥ãŒã«ã«æ瀺ããŸãã
ãã¬ãŒãã³ã°
æåŸã«ãããã»ã¹ã®æãèå³æ·±ãéšåã«å°éããŸãããå®éããã®ãã¹ãŠãéå§ããŸããã ãããããŸã 现ããéšåããããŸããåŠç¿ããã»ã¹ã§äœ¿çšãããå¿ èŠãªãã±ããããã¹ãŠæºåãããã¹ãŠã®ããŒã«ã«å€æ°ãèšå®ããå¿ èŠããããŸãã
â ~/src/models/tutorials/rnn$ INPUT_TRAIN_DATA_A=${TRAIN_BUCKET}/input/train.a â ~/src/models/tutorials/rnn$ INPUT_TRAIN_DATA_B=${TRAIN_BUCKET}/input/train.b â ~/src/models/tutorials/rnn$ INPUT_TEST_DATA_A=${TRAIN_BUCKET}/input/test.a â ~/src/models/tutorials/rnn$ INPUT_TEST_DATA_B=${TRAIN_BUCKET}/input/test.b â ~/src/models/tutorials/rnn$ JOB_NAME=${PROJECT_NAME}_$(date +%Y%m%d_%H%M%S) â ~/src/models/tutorials/rnn$ echo ${JOB_NAME} chatbot_generic_20161224_203332 â ~/src/models/tutorials/rnn$ TRAIN_PATH=${TRAIN_BUCKET}/${JOB_NAME} â ~/src/models/tutorials/rnn$ echo ${TRAIN_PATH} gs://chatbot_generic/chatbot_generic_20161224_203332
ããã§ããªã¢ãŒãã¯ãŒã¯ã®ååïŒJOB_NAMEïŒã¯ããã¬ãŒãã³ã°ãéå§ãããã³ã«äžæã§ãªããã°ãªããªãããšã«æ³šæããŠãã ããã 次ã«ã翻蚳ã®ããã«çŸåšã®ãã©ã«ããŒãå€æŽããŸãããïŒå°ããªãã§ãã ãã=ïŒïŒïŒ
â ~/src/models/tutorials/rnn$ cd translate/
ããã§ããã¬ãŒãã³ã°ãéå§ããæºåãæŽããŸããã æåã«ã³ãã³ããèšè¿°ããŠïŒãã ããå®è¡ããŸããïŒããã®äž»ãªããŒã«ã€ããŠèª¬æããŸãã
gcloud beta ml jobs submit training ${JOB_NAME} \ --package-path=. \ --module-name=translate.translate \ --staging-bucket="${TRAIN_BUCKET}" \ --region=us-central1 \ -- \ --from_train_data=${INPUT_TRAIN_DATA_A} \ --to_train_data=${INPUT_TRAIN_DATA_B} \ --from_dev_data=${INPUT_TEST_DATA_A} \ --to_dev_data=${INPUT_TEST_DATA_B} \ --train_dir="${TRAIN_PATH}" \ --data_dir="${TRAIN_PATH}" \ --steps_per_checkpoint=5 \ --from_vocab_size=45000 \ --to_vocab_size=45000
ãŸãããã¬ãŒãã³ã°ããŒã ã®ããã€ãã®æ°ãããã©ã°ã«ã€ããŠèª¬æããŸãã
- staging-bucket-å±éäžã«äœ¿çšããããã±ããã ãã¬ãŒãã³ã°ãšåããã±ããã䜿çšããããšã¯çã«ããªã£ãŠããŸãã
- å°å-åŠç¿ããã»ã¹ãéå§ããå°åã
ãŸããã¹ã¯ãªããã«æž¡ãããæ°ãããã©ã°ã«è§ŠããŠã¿ãŸãããã
- from_train_data / to_train_dataã¯ä»¥åã®en_train_data / fr_train_dataã§ã詳现ã¯åã®èšäºã«èšèŒãããŠããŸã ã
- from_dev_data / to_dev_data-from_train_data / to_train_dataãšåãã§ããããã¬ãŒãã³ã°åŸã®æ倱ãæšå®ããããã«äœ¿çšããããã¹ãïŒãŸãã¯ã¹ã¯ãªããã§åŒã³åºããããdevãïŒããŒã¿çšã
- train_dir-åŠç¿çµæãä¿åããããã©ã«ããŒã
- steps_per_checkpoint-äžæçãªçµæãä¿åããåã«å®è¡ããå¿ èŠã®ããã¹ãããæ°ã 5-å€ãå°ããããŸããåŠç¿ããã»ã¹ãåé¡ãªãé²è¡ããŠããããšã確èªããããã«ã®ã¿èšå®ããŸãã åŸã§ã倧ããªå€ïŒããšãã°200ïŒã§ããã»ã¹ãåèµ·åããŸãã
- from_vocab_size / to_vocab_size-å 容ãç解ããã«ã¯ã åã®èšäºãèªãå¿ èŠããããŸãã ããã§ãããã©ã«ãå€ïŒ40kïŒããã€ã¢ãã°å ã®äžæã®åèªã®æ°ãããå°ãªãããšãããããŸãããããã£ãŠãä»åã¯èŸæžã®ãµã€ãºãå¢ãããŸããã
ãã¹ãŠããã¬ãŒãã³ã°ãéå§ããæºåãã§ããŠããããã§ãã®ã§ãå§ããŸãããïŒããã»ã¹ã«ã¯æéãããããããå°ãã®å¿èãå¿ èŠã§ãïŒ...
â ~/src/models/tutorials/rnn/translate$ gcloud beta ml jobs submit training ${JOB_NAME} \ > --package-path=. \ > --module-name=translate.translate \ > --staging-bucket="${TRAIN_BUCKET}" \ > --region=us-central1 \ > -- \ > --from_train_data=${INPUT_TRAIN_DATA_A} \ > --to_train_data=${INPUT_TRAIN_DATA_B} \ > --from_dev_data=${INPUT_TEST_DATA_A} \ > --to_dev_data=${INPUT_TEST_DATA_B} \ > --train_dir="${TRAIN_PATH}" \ > --data_dir="${TRAIN_PATH}" \ > --steps_per_checkpoint=5 \ > --from_vocab_size=45000 \ > --to_vocab_size=45000 INFO 2016-12-24 20:49:24 -0800 unknown_task Validating job requirements... INFO 2016-12-24 20:49:25 -0800 unknown_task Job creation request has been successfully validated. INFO 2016-12-24 20:49:26 -0800 unknown_task Job chatbot_generic_20161224_203332 is queued. INFO 2016-12-24 20:49:31 -0800 service Waiting for job to be provisioned. INFO 2016-12-24 20:49:36 -0800 service Waiting for job to be provisioned. ... INFO 2016-12-24 20:53:15 -0800 service Waiting for job to be provisioned. INFO 2016-12-24 20:53:20 -0800 service Waiting for job to be provisioned. INFO 2016-12-24 20:53:20 -0800 service Waiting for TensorFlow to start. ... INFO 2016-12-24 20:54:56 -0800 master-replica-0 Successfully installed translate-0.0.0 INFO 2016-12-24 20:54:56 -0800 master-replica-0 Running command: python -m translate.translate --from_train_data=gs://chatbot_generic/input/train.a --to_train_data=gs://chatbot_generic/input/train.b --from_dev_data=gs://chatbot_generic/input/test.a --to_dev_data=gs://chatbot_generic/input/test.b --train_dir=gs://chatbot_generic/chatbot_generic_20161224_203332 --steps_per_checkpoint=5 --from_vocab_size=45000 --to_vocab_size=45000 INFO 2016-12-24 20:56:21 -0800 master-replica-0 Creating vocabulary /tmp/vocab45000 from data gs://chatbot_generic/input/train.b INFO 2016-12-24 20:56:21 -0800 master-replica-0 processing line 100000 INFO 2016-12-24 20:56:21 -0800 master-replica-0 Tokenizing data in gs://chatbot_generic/input/train.b INFO 2016-12-24 20:56:21 -0800 master-replica-0 tokenizing line 100000 INFO 2016-12-24 20:56:21 -0800 master-replica-0 Tokenizing data in gs://chatbot_generic/input/train.a INFO 2016-12-24 20:56:21 -0800 master-replica-0 tokenizing line 100000 INFO 2016-12-24 20:56:21 -0800 master-replica-0 Tokenizing data in gs://chatbot_generic/input/test.b INFO 2016-12-24 20:56:21 -0800 master-replica-0 Tokenizing data in gs://chatbot_generic/input/test.a INFO 2016-12-24 20:56:21 -0800 master-replica-0 Creating 3 layers of 1024 units. INFO 2016-12-24 20:56:21 -0800 master-replica-0 Created model with fresh parameters. INFO 2016-12-24 20:56:21 -0800 master-replica-0 Reading development and training data (limit: 0). INFO 2016-12-24 20:56:21 -0800 master-replica-0 reading data line 100000
ãã¬ãŒãã³ã°ã®ç¶æ ãç£èŠã§ããŸãã ãããè¡ãã«ã¯ãCloud ShellïŒãŸãã¯tmuxãŠã£ã³ããŠïŒã§å¥ã®ã¿ããéããå¿ èŠãªå€æ°ãäœæããŠã³ãã³ããå®è¡ããŸãã
â JOB_NAME=chatbot_generic_20161224_213143 â gcloud beta ml jobs describe ${JOB_NAME} ...
ããã§ããã¹ãŠãããŸãããã°ããžã§ããåæ¢ããŠãããã«å€ãã®ã¹ãããïŒããšãã°200ïŒã§åéã§ããŸããããã¯ããã©ã«ãã®æ°å€ã§ãã æ°ããã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
â ~/src/models/tutorials/rnn/translate$ gcloud beta ml jobs submit training ${JOB_NAME} \ > --package-path=. \ > --module-name=translate.translate \ > --staging-bucket="${TRAIN_BUCKET}" \ > --region=us-central1 \ > -- \ > --from_train_data=${INPUT_TRAIN_DATA_A} \ > --to_train_data=${INPUT_TRAIN_DATA_B} \ > --from_dev_data=${INPUT_TEST_DATA_A} \ > --to_dev_data=${INPUT_TEST_DATA_B} \ > --train_dir="${TRAIN_PATH}" \ > --data_dir="${TRAIN_PATH}" \ > --from_vocab_size=45000 \ > --to_vocab_size=45000
ããããšã®äŒè©±
ããããããã¬ãŒãã³ã°äžã«Cloud Storageã䜿çšããŠäžéã¢ãã«ã®ç¶æ ãä¿æããæ倧ã®å©ç¹ã¯ãåŠç¿ããã»ã¹ãäžæããã«éä¿¡ãéå§ã§ããããšã§ãã
次ã«ãããšãã°ãããã1600åã®ãã¬ãŒãã³ã°ãç¹°ãè¿ããåŸãããããšãã£ãããéå§ããæ¹æ³ã瀺ããŸãã ã¡ãªã¿ã«ãããã¯ããŒã«ã«ãã·ã³ã§å®è¡ããå¯äžã®æé ã§ãã çç±ã¯æããã ãšæã=ïŒ
æ¹æ³ã¯æ¬¡ã®ãšããã§ãã
mkdir ~/tmp-data gsutil cp gs://chatbot_generic/chatbot_generic_20161224_232158/translate.ckpt-1600.meta ~/tmp-data ... gsutil cp gs://chatbot_generic/chatbot_generic_20161224_232158/translate.ckpt-1600.index ~/tmp-data ... gsutil cp gs://chatbot_generic/chatbot_generic_20161224_232158/translate.ckpt-1600.data-00000-of-00001 ~/tmp-data ... gsutil cp gs://chatbot_generic/chatbot_generic_20161224_232158/checkpoint ~/tmp-data TRAIN_PATH=... python -m translate.translate \ --data_dir="${TRAIN_PATH}" \ --train_dir="${TRAIN_PATH}" \ --from_vocab_size=45000 \ --to_vocab_size=45000 \ --decode Reading model parameters from /Users/b0noi/tmp-data/translate.ckpt-1600 > Hi there you ? . . . . . . . . > What do you want? i . . . . . . . . . > yes, you i ? . . . . . . . . > hi you ? . . . . . . . . > who are you? i . . . . . . . . . > yes you! what ? . . . . . . . . > who are you? i . . . . . . . . . > you ' . . . . . . . .
TRAIN_PATHå€æ°ã¯ãtmp_dataããã©ã«ããŒã«ã€ãªãããçŸåšã®ãã£ã¬ã¯ããªã¯ãmodels / tutorials / rnnãã«ãªããŸãã
ã芧ã®ãšããããã£ãããããã¯ããã1,600ã¹ãããã§ãŸã å®ç§ã«ã¯ã»ã©é ãç¶æ ã§ãã 5äžåã®å埩åŸã«åœŒãã©ã®ããã«éä¿¡ã§ãããã確èªãããå Žåãç®æšã¯çæ³çãªãã£ãããããããã¬ãŒãã³ã°ããããšã§ã¯ãªããGoogle Cloud MLã䜿çšããŠã¯ã©ãŠãå ã®ãããã¯ãŒã¯ããã¬ãŒãã³ã°ããæ¹æ³ãåŠã¶ããšãªã®ã§ãæåŸã®èšäºãå床åç §ããŸãã
äºåŸ
ç§ã®èšäºãCloud MLãšCloud Shellã®æäœã®è€éããåŠã¶ã®ã«åœ¹ç«ã¡ããããã䜿çšããŠãããã¯ãŒã¯ããã¬ãŒãã³ã°ã§ããããšãé¡ã£ãŠããŸãã ãŸããããªãããããæžããŠæ°ã«å ¥ã£ãŠãããããšãé¡ã£ãŠããŸãããããããªããããªãã¯ç§ã®patreonããŒãžã§ç§ããµããŒãããããšãã§ããŸãã
æé ã®ããããã§åé¡ã«æ°ä»ããå Žåã¯ãããã«ä¿®æ£ã§ããããã«ãç¥ãããã ããã