ã¯ããã«
ãã¤ãå¿ã¯è¹è²ã«ï¼ nikkieã§ãã
2/23ã®JAWS DAYS 2019ã«åå ããæè¦ªä¼ã§LTãã¦ãã¾ããã
ãã¢ã¢ããªã使ã£ãLTï¼ããããLTé§åéçºï¼ããã¦æãã¨ãããã¾ã¨ãã¾ãã
åå¼·ä¼ã®æ¦è¦
JAWS-UGã«ããå ¨å½è¦æ¨¡ã®äº¤æµã¤ãã³ããéå¬ãããã¾ãï¼
AWSåå¿è ããä¸ç´è ã¾ã§ã®ã¨ã³ã¸ãã¢ãçµå¶è ã人äºããã¼ã±ãã£ã³ã°ãã¨ã³ã¿ã¼ãã©ã¤ãºããã¹ã¿ã¼ãã¢ãããä¸å°ä¼æ¥ãªã©è·ç¨®ãæ¥æ ã»ä¼ç¤¾è¦æ¨¡ãåãããããããã®æ¹ã«åå ããã ããã¤ãã³ãã§ããä»å¹´ã®ãã¼ãã¯ãæºæ¼¢å ¨å¸ã
æµ·å¤UGã®ã»ãã·ã§ã³ãå«ããå¤å²ã«ããããã¯ãã«ã«ã»ãã·ã§ã³ããã¸ãã¹ã»ãã·ã§ã³ãã©ã³ãã»ãã·ã§ã³ãOpenMicãLTãå«ãã¦ã100以ä¸ã®ã»ãã·ã§ã³ããç¨æãã¾ãã
AWSã®æ
å ±åéããããã¦JAWS DAYSã«åå ãã¾ããã1
ä»åãåãã¦ã®AWSé¢é£ã®ã¤ãã³ãã§ãã
LTé§åéçºã®åæ©
1æãããã«ãæè¦ªä¼LTåéããåç¥ããããAmazon MLã«ã¤ãã¦è©±ãããã ããAWSã触ã£ã¦ã¿ãLTé§åéçºããã£ã¦ã¿ãããã¨å¿åãã¾ããã
LTããããã¨ã§ã
- èãæï¼AWSçµé¨è±å¯ãªæ¹ã ï¼ï¼æ©æ¢°å¦ç¿ï¼Amazon MLã使ç¨ï¼ã鏿è¢ã«ä¸ããããã«ãªã
- ç§ï¼AWSåå¦è ï¼ï¼Amazon ML以å¤ã®AWSãµã¼ãã¹ã触ã£ã¦ã¿ã
ã¨ããçããããã¾ããã
LT: Amazon Machine Learningã§æ©æ¢°å¦ç¿å§ãã¾ãããï¼
æè¦ªä¼ãçãä¸ããããããã¢ãä¸å¿ã«æ§æãã¾ãããï¼ãã¢âçè«ã®é ï¼
ãã®ã¬ãã¼ãã§ã¯ãæ¬æ¥æ³å®ãã¦ããè¬ç¾©å½¢å¼ï¼çè«âãã¢ï¼ã§èª¬æãã¦ããã¾ãã
ä¼ãããã£ããã¨
æå
ã«ãã¾ã£ããã¼ã¿ããã¨ã«ãæªç¥ã®ãã¼ã¿ãäºæ¸¬ããæ¨è«ã®ã«ã¼ã«ãä½ãã®ããæ©æ¢°å¦ç¿ã§å¯è½ãªãã¨ã®ä¸ã¤ã§ãã
ãã¢ã¢ããªã®ä¾ã§ã¯ãæå
ã«ã¿ã¤ã¿ããã¯å·ã®ä¹å®¢ãã¼ã¿ããã¾ã£ã¦ãã¾ããï¼26æ³ã»ç·æ§ã¯æ»äº¡ã28æ³ã»å¥³æ§ã¯çåãã¨ãã£ããã¼ã¿ã800ã900ããã¾ãï¼
ä¹å®¢ãã¼ã¿ããæ¨è«ã®ã«ã¼ã«ï¼ï¼ã¢ãã«ï¼ãä½ããã¨ã§ãçåï¼æ»äº¡ã䏿ã®ãã¼ã¿ï¼28æ³ã»ç·æ§ï¼ã«ã¤ãã¦ã¢ãã«ã§äºæ¸¬ã§ãã¾ãã
ããã¦ãã¢ãã«ãAPIã«ãããã¨ã§ãã¢ãã«ã®æ¨è«çµæãããã°ã©ã ããå©ç¨ããããã§ãã¾ãã
28æ³ã»ç·æ§ã¨ãã屿§æ
å ±ãAPIã«éãã¨ãAPIã¯çåã¾ãã¯æ»äº¡ã¨ããäºæ¸¬çµæãè¿ãã¾ãã
ã¢ãã«ã®ä½æãAPIåã¾ã§ãã¦ã£ã¶ã¼ãæä½ã§å¯è½ã«ããã®ããAmazon Machine Learningï¼ä»¥ä¸Amazon MLã§ãï¼
ã¦ã£ã¶ã¼ãæä½ã§ãã®ã§ã³ã¼ãã£ã³ã°ã¯ä¸è¦ã§ãããAPIã«ã¾ã§ãã¦ãããã®ã§ã徿ãªè¨èªããå¼ã³åºãã¦ãã¢ãã«ã®æ¨è«çµæãå©ç¨ã§ãã¾ãã
Amazon MLã§ä½ã£ãã¢ãã«ã®ä½¿ãæ¹ãã¤ã¡ã¼ã¸ãã¦ããããããããããªããã¿ã¤ã¿ããã¯å·ã«ä¹ã£ã¦ãããå©ããã§ããããï¼ãã¨ãããã¢ã¢ããªãç¨æãã¾ããã
ã¿ã¤ã¿ããã¯ä¹å®¢ã®çæ»ã®äºæ¸¬ã§ã¯ãç¾å®ã«ã¢ããªã«æ©æ¢°å¦ç¿ãçµã¿è¾¼ãå ´é¢ãæ³åãã«ããããããã¾ããã
ãã¸ãã¹é¢ã«å³ãã°ãä¾ãã°ãåªè¯é¡§å®¢ã®å¤å®ã¨ãã£ãäºä¾ãèãããã¾ãã
ï¼å¹´é½¢ã»æ§å¥ãªã©ã®é¡§å®¢å±æ§ã¨åªè¯é¡§å®¢ãå¦ãã¨ãããã¼ã¿ããã¢ãã«ãä½ãã屿§ããåªè¯é¡§å®¢ãå¤å®ããæ©è½ãå®ç¾ãã¾ãï¼
使ã£ãæè¡
AWSãµã¼ãã¹
æ©è½ã«ã¤ãã¦è£è¶³ãã¾ãã
çåï¼æ»äº¡ãäºæ¸¬ããã¢ãã«ã«ã¯ãå
¥åã¨ãã¦å±æ§æ
å ±ï¼å¹´é½¢ã»æ§å¥ãªã©ï¼ãå¿
è¦ã§ãã
å¦ç¿ããéã«ä½¿ã£ããã¼ã¿ã¨ä¸¸ã
åããã¼ã¿ãã¢ãã«ã«å
¥åããªããã°ã¨ã©ã¼ã¨ãªã£ã¦ãã¾ãã¾ãã
ã§ãã®ã§ãæå
ã®ãã¼ã¿ããä½ã£ãã¢ãã«ã§ã¯ãé¡åçããçæ»ãäºæ¸¬ãããã¨ã¯ã§ãã¾ããã
é¡åçããå¹´é½¢ã»æ§å¥æ
å ±ãåãåºãã°ãä»åã®ã¢ãã«ã§çæ»ãäºæ¸¬ã§ãã¾ãã
é¡åçããå¹´é½¢ã»æ§å¥æ
å ±ã®åãåºãã«Rekognitionã使ãã¾ããã
Rekognitionã§åãåºããå¹´é½¢ã»æ§å¥æ
å ±2ãæå
ã®ã¢ãã«ã«æ¸¡ãã¨ãçåï¼æ»äº¡ãäºæ¸¬ããã¾ãã
Pythonããã±ã¼ã¸
- Flask
- boto3
- zappa
ããã±ã¼ã¸ã®ææã¯ãã¡ãï¼イベントレポート | #pyhack にてAmazon MLの機械学習モデルを組み込んだFlask製アプリをzappaでLambdaにデプロイしました - nikkie-ftnextの日記
é¡åçããå©ãããã©ãããäºæ¸¬ããæ©è½ã«ã¤ãã¦è§£èª¬ãã¾ããï¼boto3ã使ã£ã¦ãAmazon MLãRekognitionãS3ãå¼ã³åºãã¦ãã¾ãï¼
ã¢ãããã¼ããããé¡åçãç»é¢ã«è¡¨ç¤ºããï¼imgã¿ã°ï¼ãããã¾ãS3ã«ç»åãã¢ãããã¼ããã¦ãã¾ãã
- S3ã®ç»åãæå®ãã¦Rekognitionãå©ã
- S3ã®ç»åã«ã¤ãã¦å¶éæéä»ãã§æå¹ãªURLãåå¾ï¼imgã¿ã°ã«ä½¿ãï¼
å½åã¯ã¢ãããã¼ããããç»åãï¼ãã¤ããªã§ï¼Rekognitionã¸éãããã®å¾S3ã¸ã¢ãããã¼ãããimgã¿ã°ç¨ã®URLãåå¾ã®é ã§èãã¦ãã¾ããã
ã¨ããããRekognitionã¸éã£ã段éã§ãã¡ã¤ã«ãã¯ãã¼ãºãã¦ãã¾ãããã§ãRekognitionã¸éããS3ã¸ã¢ãããã¼ãããã䏿¹ããã§ããªãã¨èªèãã¾ããã
S3ã®ç»åæå®ã§Rekognitionãå¼ã³åºããã®ã§ãå¾è
ã鏿ãã¦ä¸è¨ã®æµãã«ãªãã¾ããã
ãªããã½ã¼ã¹ã³ã¼ãã¯ãã¡ãã§ã
ããã³ãã¨ã³ãã«ææ¦
- Bootstrap
- jQuery
ãµã¼ããµã¤ãã«æ¯ã¹ã¦çµé¨ãå°ãªãã®ã§ããããã¢ã§ãããããã«ã¯è¦ãç®ãæ´ãããã¨ã«ææ¦ãã¾ããã
æè¦ªä¼ã§ã¯ã¹ããã§ãã¢ã¢ããªã«ã¢ã¯ã»ã¹ãã¦ãããæ³å®ã§ããã®ã§ãBootstrapãæ¡ç¨ãã¾ããã
exampleãçä¼¼ãã¦ã¢ãã¤ã«ã§ãå´©ããªã表示ã«ãããã¨ã¯ã§ãã¾ããã
Checkout example · Bootstrap
é¡åçããäºæ¸¬ããå¦çã¯å¦çæéãé·ããå¦çä¸ã¨ãããã¨ãã¦ã¼ã¶ã«ãã£ã¼ãããã¯ããå¿
è¦ãããã¾ãããï¼é£æããã¦åä¸ç»åãè¤æ°åã¢ãããã¼ããããã®ã¯æãã§ãã¾ããï¼
jQueryã§ãã©ã¼ã éä¿¡æï¼formã®submitã¤ãã³ãï¼ã«ããã¿ã³ãdisabledã«ãããã¨ã«ãã¦å¯¾å¿ãã¾ããã
ãããã¨ãã¦ã§ããªãã£ããã¨
æéå ã«å®è£ ãçµãããªãã£ãã¢ã¤ãã¢ä¸è¦§ã§ãã
- ç»åã¢ãããã¼ãå¦çã®ã¹ã¬ããå
- Rekognitionå¼ã³åºãã¨imgã¿ã°æå®ç¨ã®URLã®æå®ã¯ä¸¦ååã§ããã¨èãã¦ãã¾ãï¼å¦çæéãã©ãã ãå¤ãããããããªãã§ããï¼
- Amazon MLã§ä½ã£ãã¢ãã«ã®å¼ã³åºããJSã§å®è£ ãã¦ã¿ããã§ã
- ãã¼ãã£ã³ã°è¡¨ç¤ºï¼ajaxï¼ï¼
- å©ç¨ãã¼ã¿ã®DBä¿å
- zappaã§
debug=True
ã®Flaskã¢ããªã®ãããã¤ã¯ããã¹ããã©ã¯ãã£ã¹ï¼
ãã¿ãã©ã·
ç¹°ãè¿ãã«ãªãã¾ãããä»åã¯ã¢ãã«ï¼æ¨è«ã®ã«ã¼ã«ï¼ãæå
ã«ãã¾ã£ãã¿ã¤ã¿ããã¯ä¹å®¢ãã¼ã¿ããä½ã£ã¦ãã¾ãã
ã¤ã¾ããã¢ãã«ã¯æå
ã®ãã¼ã¿ã®å¾åãåæ ãã¾ãã
å®ã¯ã¿ã¤ã¿ããã¯ã®ä¹å®¢ã®çåã¨æ»äº¡ã«ã¯ãæ§å¥ã¨å¹´é½¢ã大ããé¢ãã£ã¦ãã¾ããï¼ãã±ããã®ã¯ã©ã¹ã¨ä¹è¹ããæ¸¯ã¯å¯ä¸ãå°ããã§ãï¼
æå½ãã¼ãã®æ°ãè¶³ãããã女æ§ã¨åä¾åªå
ãã¨ããæ¹éãåããããããçåè
ã«ã¯å¥³æ§ã¨åä¾ãå¤ãã§ãã
ã¤ã¾ãã女æ§ï¼ã§ãã¤ãä½ãå¹´é½¢ï¼ã¨ãã¦æ
å ±ãéãã°ãçåã¨äºæ¸¬ããã¾ãã
çµããã«
ãLTé§åéçºãã¦ããã£ãããã®ä¸è¨ã«ã¤ãã¾ãã
決ãã¦ç¾å¨ã®ã¢ããªã«æºè¶³ãã¦ããããã§ã¯ããã¾ããã
ããã³ãã¨ã³ãã¯ã¾ã ã¾ã ã§ããããµã¼ããµã¤ãã¯è©¦ããããã¨ãå¤ã
ããã¾ãã
ããã§ãä½ããããã®ãæéå
ã§å®ç¾ãããããé夿éã§å¿
æ»ã«èª¿ã¹ãç¡ç æéãå°ãåã£ã¦å®è£
æéã確ä¿ãããããã§ãããã ãããã¨ããæ¡ãåããã¨ãã®é«ææï¼
è³æãä½ã£ã¦ç»å£ããã¨ããçµé¨ã¨ã¯å¥ç¨®ã®å¦ã³ãããã¾ããã
ä¸å®å
¨ãªã¢ããªã§ãã¢ã¦ããããããã®ã¯éè¦ã§ããã
èªåã®ã¹ãã«ã¢ããã®ããã«ãæ©è½ã®è¿½å ï¼ãã©ãã·ã¥ã¢ããï¼ã«ææ¦ãã¦ããã¾ãï¼
AWSã触ã£ã¦ã¿ãã¨ãããLambdaã¸ã®zappaã§ã®ãããã¤ã¯é常ã«å¿«é©ã§5ãLambdaã触ããã®ãã¨ããã大ããã¨æã£ã¦ãã¾ãã
æå¾ã«ãªãã¾ãããååå ã®JAWS DAYSã§ãAWSåå¦è
ã«LTé§åéçºã®æ©ä¼ããã ãã£ãéå¶ã®çãã¾ã«ã礼ç³ãä¸ãã¾ãã
LTãèãã¦ãã ãã£ãçãã¾ããã¢ã¢ããªã§éãã§ãã ãã£ãçãã¾ï¼50åè¶
ï¼ï¼ãTwitterã§ãã¤ã¼ããã¦ãã ãã£ãæ¹ã
ãèª ã«ãããã¨ããããã¾ããã
ããã¾ã§ãèªã¿ããã ãããããã¨ããããã¾ããã
-
ããã¾ã§Azureã¡ã¤ã³ãk8sä½é¨ãGCPã¨ãã£ãæãã§è§¦ã£ã¦ãã¦ãã¾ããPythonçéã§ã¯ãAzureã§ããã£ã¦ãã人ãã¨ããèªèãããã¦ããããã§ãã↩
-
説æä¸ã¯å¹´é½¢ã¨æ§å¥ã«ä»£è¡¨ããã¦ãã¾ããããã¼ã¿ã«ã¯ãã±ããã®ã¯ã©ã¹ã¨ä¹è¹ããæ¸¯ãå«ã¾ãã¦ãã¾ããããã¿ãã©ã·ãã§è¿°ã¹ã¾ãããå¹´é½¢ã¨æ§å¥ãäºæ¸¬ã¸ã®å¯ä¸ã大ããã§ã↩
-
loggingã§æ¸ãã ãã§CloudWatchã«è¨é²ãããã®ã¯é©ãã§ããref: Python の AWS Lambda 関数ログ作成 - AWS Lambda↩
-
ãµã¼ãã¬ã¹ã§å®è£ ããã¢ããªã¯RESTã§å©ããNoSQL DBããã©ã¯ãã£ã¹ã¨ã®ãã¨ã§ãï¼åå¿è ãã³ãºãªã³ããï¼ãRDBã ã¨Connection Poolããªãã®ã§åæã«å¤§éã®Connectionãå¼µããã¦ãã¾ã↩
-
ãã¤ã¦ WebAppsã«ãããã¤ã¯é£ãã ã¨ããLTããããã¨ãããã¾ã↩