狠狠撸
Submit Search
TensorFlowて?訓練したLINE BotをAWS Lambdaて?動かしてみた
?
5 likes
?
4,919 views
Van Huy
Follow
【AWS×BOT】TechTalk #3 で発表した資料です! http://lig.connpass.com/event/41826/
Read less
Read more
1 of 41
Download now
Downloaded 32 times
More Related Content
TensorFlowて?訓練したLINE BotをAWS Lambdaて?動かしてみた
1.
TensorFlowで訓練した LINE BotをAWS Lambdaで動 かしてみた 2016/11/08
Van Huy 株式会社ガラパゴス
2.
About me ● Van
Huy (バン フイ) ● @vanhuyz ● ベトナム出身 ● 東京大学電子情報工学科卒 ● サーバーエンジニア ● 最近はTensorFlow, Elixirに興味がある
3.
ガラパゴスって? ● スマートフォンアプリの受託開発の会社です! ● https://www.glpgs.com ●
技術: ○ 言語:Swift, Java, Ruby, Python, Elixir... ○ ツール: Slack, GitLab, GitLab-CI, Docker, Jenkins, Fastlane, Terraform, Ansible, Vagrant... ○ その他:ディープラーニング, IoT ○ 技術ブログ: http://gtech.hatenablog.com/
4.
自社アプリ Start fit うごく猫 運動習慣支援アプリ iPhone,
AppleWatch 猫好きホイホイアプリ iPhone ひっそり30万DL ニャー
5.
LINEスタンプも作ってます ダイエット 作画崩壊 ゆるゆる
取り急ぎ闯碍
6.
デモ
7.
まずはデモしましょう! LINEで友達を追加!
9.
叠辞迟について
10.
このbotを作るには ● 人工無能 ○ 単語レベルのパターンマッチ
11.
このbotを作るには ● 人工無能 ● 少し知能を育てたい
12.
このbotを作るには ● 人工無能 ● 少し知能を育てたい 訓練します!
13.
Botを訓練するデータ ● おやすみ ● おめでとう
14.
課題 ● いい感じのbotを作るには大量のデータが必要 ○ LINEのチャットデータは持っていない ○
メッセージ1個ずつスタンプラベルをつけるのが 超大変
15.
これを見かけた 絵文字
16.
絵文字からスタンプに変换(手动)
17.
ツイートから訓練データが作れる! ● おやすみ ● おめでとう
18.
Twitterには無限に訓練データがあ る!
19.
現状のデータ ● 3日間でツイートを収集 ● ~23万のツイートを分割?整理して~28万文ができた ○
訓練用:25万文 ○ テスト用:3万文 ● ラベルスタンプ数:46
20.
ある文に適切なスタンプを推定 テキスト分類問題
21.
テキスト分類 ● 応用 ○ スパムフィルタ:スパム/スパムでないメールを分類する ○
新聞をカテゴリに分類する ○ 感情分析 ● 機械学習の古典な手法 ○ ナイーブベイズ ○ サポートベクトルマシン(SVM)
22.
ディープラーニングの登場 ● 機械学習の一部 ● 自然言語処理においてRNN(Recurrent
Neural Network - 再帰 型ニューラルネットワーク)が強い ○ 機械翻訳 ○ 文章自動生成 ○ 音声認識 ○ 画像キャプション生成
23.
流れ ● テキスト前処理 ○ ツイートの固有単語を排除(RT,
URLなど) ○ MeCabで分かち書き ● 単語をRNNに入れる ● RNNの出力からスタンプを推定
24.
誕生日 おめでとう ござい
ます 単語の列 RNNモデル スタンプID 誕生日おめでとうございます 分かち書き
25.
訓練環境 ● GPU GeForce
GTX 1080 8GB ● TensorFlow v0.11 ● Docker経由 ● 訓練時間:8時間程度
26.
訓練結果の可視化 ?近いほど意味が近いという ?「スタンプの意味空間」
27.
問題点と今後の方針 ● 未知の単語に対してはまだ弱い ○ 訓練データを増やす ●
絵文字からスタンプにマッピングは主観的 ● 本物の訓練データ収集機能を実装したい ○ スタンプが間違ったらユーザー指摘できるように
28.
础奥厂构成
29.
大変お世話になった記事 http://qiita.com/hiyuzawa/items/10e7bf2f6ad5d1c7fc9c
35.
感想 ● AWS Lambdaの実行コードのサイズ制限は厳しい ○
MeCabの良い辞書が使えない ○ TensorFlowのモデルの表現能力 (capacity) が上げられない ● Python3系まだ対応していない ● Lambdaの起動タイムラグがある ○ 長い間使わないと自動的停止してしまう ○ 2つのLambdaで合計5秒ぐらいのタイムラグがある ● 料金に関して ○ ほとんど無料枠に収まる ○ VPC NAT Gatewayだけは料金がちょっと高い
36.
最後に ● ガラパゴスではエンジニアを募集中 ○ 最先端の技術に興味がある ○
ものづくりが好きだ ○ 難しい課題に取り組みたい ○ フレックスで自由に働きたい ○ 自動化が好きだ ○ etc ... ● 一つでも当てはまる方!是非一緒に働きましょう!!
37.
ご清聴ありがとうございました!
38.
参考:LINE Botの作り方について ● LINE
Messenging APIを利用 ● LINE Business Centerを登録して、Channel (bot)を管理画面で 作る ● Channel SecretとChannel Access Tokenがもらえる ● Line SDK (Python)を利用する ● サーバーのURLをBotのWebhook URLに登録する (httpsが必 要)
39.
参考:TensorFlowで単純なRNNの実装例 # LSTMを使う cell =
tf.nn.rnn_cell.BasicLSTMCell(LSTM_SIZE, state_is_tuple=True) # RNNの定義 outputs, state = tf.nn.dynamic_rnn(cell, embed_inputs, # 単語ベクトル dtype=tf.float32, sequence_length=sequence_length # 文の長さ )
40.
参考:パラメータチューニング前:overfitting loss test train steps
41.
参考:dropoutを入れた結果:underfitting? loss test train データを増やすべき? steps
Download