T5 (てゆうか超手軽に強いラッパー作れるんですけど)
本年(度) もいつものやつ、やっていきたいと思います。
昨年(度) はこんなのを作りました。
本年(度) はどうしようかということで、顧問HIPHOP アドバイザーのkenichi 氏との企画会議にて、 HIPHOP には「リアルかフェイクか」という議論があることを教わりました。
確かに調べてみると、様々な考え、解釈がありそうです。
- 俺なりのHIPHOP論
- 「ヒップホップにリアルもクソもない。」ラッパーANARCHY × ダンサーKEITAが対談 | | Dews (デュース)
- Creepy nutsはHIPHOPではないのか?〜KREVAが壊しきれなかった壁〜|ショーペンログ
ヘッズの横好きの域を出ない私にとって、この判断はなかなか難しいものです。
どうすればリアルかどうかを判断できるのでしょうか?
機械学習を活用したいところですが、判断基準が不明なため教師データが用意できず、二値分類(リアル or not) は使えません。
一方、昨今発展の目覚ましい自然言語処理の領域では、AI (機械学習による言語モデル) が文章を生成する精度が飛躍的に向上しています。少し前にはGitHub Copilot がプログラムを自動生成することで話題になりました。
これを応用します。
すなわち、「リアルなラッパーが言いそうなこと言ってるやつはリアル」です。
起点となる「リアルなラッパー」はどうしても選定が必要となるため、kenichi 氏に「この人は文句なし」と思わしきラッパーを選定していただき、そのリリックを学習データとして利用することとしました。
そしてこの怪物級のラッパーたちを超合成して出来上がったのが... コイツだッッ!!
怪獣にも「生き様」がある。それが垣間見えるバースを返してくれます。
最後は槍で攻められたことを逆手に取って、投げやりな態度を取っている様子が伺えます。うーん、リアル。
みなさんも大吉が出るまで何度もおみくじを引いてないで、MC キメラのバースと自分の予想を見比べて、自分の「リアル」を占ってみてはいかがでしょうか?
※ 1回目のメッセージは寝ていることがあります。
@721qnjke
MC キメラのつくり方
ソースはこちらです。
データ
こちらです。
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
こちらを参考にさせていただきました。
今回利用したcolab です。
FastAPI + Line Messenger API
こちらを参考にさせていただきました。
基本構成はこちらをベースにしています
Cloud Run
image をbuild する際、Cloud Build + GitHub でやろうとしたものの、学習済みモデルをそのままGitHub にpush できず、lfs もCloud Build でうまく動かずで苦戦しました。
結局今回はハードコードっぽく、CI でGCS から転送してbuild, image 化しています。
また、pytorch やモデルの読み込みでメモリを食うため、4GB インスタンスが必要です。
TF Lite 化などが気になります。
おわりに
BERT, T5 の流れのおかげで、エンコーダー・デコーダー形式のモデルの実装難易度がかなり下がったように感じました。
一番時間がかかったのは、データを収集する部分と、ブログの記事(文章) を書くところでした。。
良質なデータを集められるプラットフォームの必要性が増していることを感じます。
下記の記事にもある、データ・セントリックにも通ずるものがありそうです。
また、同記事にもあるように、エンコーダー・デコーダー形式の一般化が進んだことにより、画像や音声などの領域にも手が届きそうな状況になってきました。
テキストだけのラップボットは今年で卒業し、来年(度) こそはマルチモーダルな世界に足を踏み入れたいと思います。