Upgrade to Pro — share decks privately, control downloads, hide ads and more …

バカが取ったバイキングの皿を持ってきたよ!!

 バカが取ったバイキングの皿を持ってきたよ!!

This slide describe Twitter bot 'ujimaru', which says words like uzimaru.

Avatar for Hayato Tsukagoshi

Hayato Tsukagoshi

June 01, 2020
Tweet

More Decks by Hayato Tsukagoshi

Other Decks in Programming

Transcript

  1. うじまる生誕LT会 
 - Ujimaru Reformer (不採用) - Ujimaru Markov Model

    - Ujimaru Twitter Crawler - Ujimaru Twitter Client - Ujimaru API
  2. うじまる生誕LT会 
 Ujimaru Reformer
 Reformer :
 NLP分野でSOTAな結果を出しまくったTransformerの高効率版
 
 - うじまるくんのツイートを収集、8000文ほどを元データに(ごめん)


    - Google Colaboratory で6時間ほど訓練
 - 著者実装を参考にTPU(はやいやつ)で
 - 訓練したモデルから文生成をする(予定だった)
 - 生成結果は次のページ

  3. うじまる生誕LT会 
 Ujimaru Reformer
 反省点
 - データが少なすぎる(最低でも100,000文くらいは欲しい...)
 
 解決策
 -

    うじまるくんが1日4000ツイートくらいする
 - 日本語Wikiのデータを混ぜる(全然関係ないモデルに...)
 - データ数が少なくても大丈夫な言語モデルに変更する

  4. うじまる生誕LT会 
 Ujimaru Markov Model
 マルコフ連鎖 :
 以前に出現した系列を元に次の出力を確率的に生成する
 
 -

    うじまるくんの以前のツイートを元にモデルを作成
 - ライブラリとして使えるように、JSONでモデルを出力
 - 他の人のツイートも同じく収集して似た傾向の語彙を増強
 - PyPIに登録したので`pip install ujimaru-markov-model`して
 `ujimaru`をするとうじまるくんが喋ります

  5. うじまる生誕LT会 
 Ujimaru Twitter Crawler
 実装: GO
 - データ収集に利用
 -

    anacondaを使用(超便利)
 - Standard Search APIじゃ足りなかったので
 Premium Search API (無料枠)も使用
 - anacondaにPremium APIを触るメソッドが生えてなかったのでforkして生や した

  6. うじまる生誕LT会 
 Ujimaru Twitter Client
 実装: Rust
 
 - ツイートの定期投稿に利用


    - ツイートするテキストはAPIから取得
 - Twitter API を叩くいい感じのライブラリがなかったので自作↓
 
 - Kuonという名前のOSSとして公開しました(めっちゃWIP)

  7. うじまる生誕LT会 
 Ujimaru API
 実装: Python (flask)
 
 - Cloud

    Run でデプロイ (https://ujimaru-api-l3qfihnisq-an.a.run.app/tweet)
 - アクセスすると生成したテキストを返す
 - Docker imageをポイするだけなので超簡単