Rock Book

history | grep `future`

T5 (てゆうか超手軽に強いラッパー作れるんですけど)

本年(度) もいつものやつ、やっていきたいと思います。

昨年(度) はこんなのを作りました。

masaki925.hatenablog.com

本年(度) はどうしようかということで、顧問HIPHOP アドバイザーのkenichi 氏との企画会議にて、 HIPHOP には「リアルかフェイクか」という議論があることを教わりました。

確かに調べてみると、様々な考え、解釈がありそうです。

ヘッズの横好きの域を出ない私にとって、この判断はなかなか難しいものです。

どうすればリアルかどうかを判断できるのでしょうか?

機械学習を活用したいところですが、判断基準が不明なため教師データが用意できず、二値分類(リアル or not) は使えません。

一方、昨今発展の目覚ましい自然言語処理の領域では、AI (機械学習による言語モデル) が文章を生成する精度が飛躍的に向上しています。少し前にはGitHub Copilot がプログラムを自動生成することで話題になりました。

これを応用します。

すなわち、「リアルなラッパーが言いそうなこと言ってるやつはリアル」です。

f:id:masaki925_8107:20220106053859p:plain
リアルなラッパーが言いそうなこと言ってるやつはリアル

起点となる「リアルなラッパー」はどうしても選定が必要となるため、kenichi 氏に「この人は文句なし」と思わしきラッパーを選定していただき、そのリリックを学習データとして利用することとしました。

f:id:masaki925_8107:20220106054133p:plain:w200
厳正なる審査の様子

そしてこの怪物級のラッパーたちを超合成して出来上がったのが... コイツだッッ!!

f:id:masaki925_8107:20220106055425p:plain:w300
MC キメラ

怪獣にも「生き様」がある。それが垣間見えるバースを返してくれます。

f:id:masaki925_8107:20220106055800p:plain:w300

f:id:masaki925_8107:20220106055826p:plain:w300

生まれながらにして怪獣であるキメラの生き様

最後は槍で攻められたことを逆手に取って、投げやりな態度を取っている様子が伺えます。うーん、リアル。

みなさんも大吉が出るまで何度もおみくじを引いてないで、MC キメラのバースと自分の予想を見比べて、自分の「リアル」を占ってみてはいかがでしょうか?

※ 1回目のメッセージは寝ていることがあります。

f:id:masaki925_8107:20220106060314p:plain:w200
MC キメラ

@721qnjke

line.me

MC キメラのつくり方

ソースはこちらです。

github.com

データ

こちらです。

MCキメラ 学習用データ - Google スプレッドシート

train するときの中身はこんなかんじです。最後の数字はrapper_id です。分類タスクを試したときに利用しました。

❯ head train.tsv
革命家でrapの松尾芭蕉 かましてるwavy毎日fosho   woooこりゃ荒波 マジな話でこのremixはヤバすぎるlook look look  8
そこは情報過多な競争社会 俺が居なくなりゃ頂上が無いも同然   俺はここらじゃイケてるほう ol、ショウガールにモデルも  2
まだ駆け出してギャラは三万円 ライブの後に消えるシャンパンで    あなたの才能は特別よ 君の言葉だけを信じれたよ 6
this is no flavor syndrome お前らじゃ味がしないんだよ,hey  help me doctor変なんです 味がしない死にそうです 9
funky flowで熱伝導 最新章のlet it flow  年中年中エンドレス シビレきらすファンクネス    1
世界一microphoneが 似合うプリンセスはだあれ i'm coming back yo you can't forget me yo   9
2、3日後体が空く 家まで迎えに行くからよまた会おう    降ろすrhyme災いや偽りはいらない 耳に入るその飛び偽物は効かない  5
いつでもどんなシチュエーションにも すぐに馴染んでいくでしょ?不思議  お前みたいなヤツは全然いない 変幻自在my baby  2
いらねえ警察 達麻の傑作  いくらつければ拭えるパクられる命落ちたか いつも居る崖の淵押すなバビロンこちら側  5
声パクリそしてフローパクリ ステージでの振る舞いも超パクリ   マジ神経疑うぜまるでモノマネ歌合戦 親子で出にゃつまらんぜ   3

たくさん改良の余地があると思います。

  • 曲の選定基準 (順位)
    • 人によって量が違うので偏りが出そう
  • バースの切り方
  • 重複(サビなど) の扱い
  • バトルなどでのパンチラインをデータに入れる
  • etc...

日本語事前学習済みT5

こちらを参考にさせていただきました。

qiita.com

今回利用したcolab です。

Google Colab

FastAPI + Line Messenger API

こちらを参考にさせていただきました。

qiita.com

基本構成はこちらをベースにしています

github.com

Cloud Run

image をbuild する際、Cloud Build + GitHub でやろうとしたものの、学習済みモデルをそのままGitHub にpush できず、lfs もCloud Build でうまく動かずで苦戦しました。

https://git-lfs.github.com/

結局今回はハードコードっぽく、CI でGCS から転送してbuild, image 化しています。

また、pytorch やモデルの読み込みでメモリを食うため、4GB インスタンスが必要です。

TF Lite 化などが気になります。

qiita.com

おわりに

BERT, T5 の流れのおかげで、エンコーダーデコーダー形式のモデルの実装難易度がかなり下がったように感じました。

一番時間がかかったのは、データを収集する部分と、ブログの記事(文章) を書くところでした。。

良質なデータを集められるプラットフォームの必要性が増していることを感じます。

下記の記事にもある、データ・セントリックにも通ずるものがありそうです。

ja.stateofaiguides.com

また、同記事にもあるように、エンコーダーデコーダー形式の一般化が進んだことにより、画像や音声などの領域にも手が届きそうな状況になってきました。

テキストだけのラップボットは今年で卒業し、来年(度) こそはマルチモーダルな世界に足を踏み入れたいと思います。