「かわいい」ツイートってなんだろう❓🤔

実は、マーケティングのブログなんです

 このブログ、『IT&マーケティング』などと書きながら実際にはITに関することばかり書いてきました。これは、ずっとマーケティング側の仕事をやってきたために「業務としては苦手分野であるIT実務をスキルアップしたい」という動機でブログをやっているのが理由です。

 とは言え、あまりにもマーケティングから離れっぱなしなのもまずいので、今日は敢えて技術的な内容をほとんど含まないことを書いてみようと思います。

きっかけは『りんな』

 Google Colab Pro(plusでないほう)を契約したので「ぼちぼちNLP(自然言語処理のほう)でも始めるか」ということでネットを検索していたところ、出てきたのが『GPT-2』という言語モデルで構築された文章生成AI『りんな』。なんとColab Proでさくっと動いてしまうではありませんか。

 さっそく自分の愚痴アカウントの10万件のツイートデータを食わせて動かしてみたりしましたが、

かわいくないおっさんが何をつぶやいても面白くない

ことを思い知った(泣)わけです。おっさん、コンテンツにならない。

ツイートデータはなんやかやで手に入るのですが……

 俺のツイートがかわいくないなら、かわいい女子のツイートを食わせればいいじゃないか。そもそも元祖『りんな』は元女子高生AIなのだから、本来、女の子のツイートを大量に学習させてナンボです。

 そこでツイートデータ収集に至るわけですが、ツイートデータそのものはなんやかやで手に入るものです。オトナの事情で具体的な手段には敢えて触れませんが、いま私の手元には2000アカウントくらいの若年層と思しきアカウントのツイートデータが保存されています。

 しかし、この大量のツイートデータ、どれがかわいいのでしょうか❓🤔

『かわいい』の定義や判別はむずかしい

 最初は『かわいい単語』の出現頻度などでツイッターアカウントの「かわいさ」を定量化しようかと思いましたが、すぐに『おじさん構文』のことを思い出して「ダメだ😨」と気づきました。

 ツイートのかわいさは文章全体から醸し出されるものであって、かわいい単語や絵文字を多用するという安直な手段で『かわいい度』をアップすることは出来ず、むしろ「キモいツイート」になってしまうのです。

 どうやら、異なるアプローチが必要なようです。

論文と同じ『アレ』を使えないか?

 そこで思い出したのが、「Googleが初めてウェブページの価値を評価したとき、論文を引用数で評価する手法に習ってページの被リンク数を主な指標にした」という有名な逸話です。かわいいツイートをする女子力が高いアカウントには、きっとたくさんの下心に満ちた@コメントがついているに違いありません。

 とは言え、大量に収集したツイッターアカウントへの@コメントをツイッターからさらに収集するのはさすがに気が引けます。そこで代替案として現在考えているのが、「ツイート数に対する@コメントの出現比率」です。これは「コミュ力が高いアカウントなら、受け取った@コメントに対して一定比率で返信をするだろう」という仮説に基づいています。

 ただし、この方法は「一方的に@コメントを送りまくるネットナンパ男子」のアカウントも一緒に拾ってしまいそうな不安感があります。まだ集計スクリプトを組んではおりませんので、より良い方法があれば是非コメントかツイッターでご教示頂けると嬉しいです。

LightsailのWordPressは3.5ドルプランだと落ちまくる件

メンテナンスのたびにサイトが落ちる

 無職の私は、生活のために100円でも出費を切り詰めなければなりません。WordPressでサイトを再構築した際も、AWSのLightSailは「月額 3.50 USD から」の安さが売りなので、迷わず月3.5ドルのコースを選びました

 しばらく様子を見ていましたが、1日のアクセス数が30人前後なのでサイトへのアクセス負荷は問題なし。その後、写真や動画を掲載するために別途CloudFrontでCDNを構築して大きなファイルを逃がしたため、ギリギリ乗り切れるだろうと高をくくっていました。

 しかし、その考えは甘かったのです……。

プラグインの処理で高負荷がかかりサイトが落ちる

 しかし、サイトを整備してプラグインが増えてきたことから、プラグインの設定変更を伴うメンテナンス作業を行うたびに管理画面がフリーズ状態になり「サイトが落ちている」という警告メールがWordPressから届くようになってしまいました。

プラグインの設定変更を伴うメンテナンス作業を行うたびに管理画面がフリーズ状態になり「サイトが落ちている」という警告メールがWordPressから届く

プラグインがブラックボックスなので、設定変更での問題解決は難しい

 一般的なWebサーバーやデータベースサーバーなどが高負荷で落ちる場合は、使用メモリなどの設定を変えたりデータを整理することで負荷軽減が可能なこともあります。しかしプラグインは色々なベンダーから提供されている上に、ブラックボックスで処理内容がユーザーにはよく分かりません。個別の設定変更では解決が難しいので、泣く泣くLightSailのプランを月3.5ドルから月5ドルにアップグレードすることにしました。

WordPressでプラグインを使うなら、メモリ1GBは必要

 LightSailの3.5ドルプランはメモリが512MBと「5年前のスマホかよ」という少なさです。LightSailのWordPressインスタンスはbitnamiスタックというシステム構成でOSはDebian Linux。GUIが無くCUI操作なので512MBでも動作はします。しかしギリギリなので、重い処理をするとメモリ不足で処理が止まってしまいます。CPUは遅くても待てば済むことが多いのですが、メモリ不足は致命的です。

 今時のVPSではGCPOCIなど大手がメモリ1GBのVMを無料で提供しています。プラグイン作者もメモリ消費を考慮してはいるはずですが、既に「WordPressを立てるならメモリ1GBがミニマム」と判断されていると思われます。ソシャゲの肥大化と同じですね😭

LightSailがメモリ512MBでWordPressインスタンスを立てられてしまう理由

 天下のAWS、WordPressでちょっと欲張ると3.5ドルプランでは管理しきれなくなることを知らないはずがありません。しかし実際には3.5ドルプランでWordPressインスタンスを立てられてしまい、私のように管理画面が落ちることになってしまいます。

 これは、LightSailが『OS/アプリケーションスタック』と『インスタンスプラン』を一切紐づけておらず、全ての組み合わせでインスタンスを立てられるのが理由です。端的に言えば、プラン選択もアプリ選択も『自助』『自己責任』という考え方でサービスが構築されている、ということです。

 WordPressはまだ512MBでも動きはしますが、ショッピングカートの『Magento』ではアップデートに2GBのメモリが必要で、512MBでは初期設定すらまともに出来ません(月10ドルのプランなら動くでしょう、たぶん)。このように、自分が使いたいアプリと用途でちゃんと動くミニマムのプランを見極めてから始めるのが基本です。

 とは言え、サービスが落ちると致命的な企業サイトでなければ「とりあえず立ててみて、ダメそうならスナップショットを取ってアップグレードする」という「痛い目に遭って覚える」やり方もアリでしょう(負け惜しみ)。ボタンひとつでサーバーを落として引っ越せるため失敗のダメージが少ないのはクラウドの長所です。

泣く泣く月5ドルのプランに移行する

 というわけで、無職で経済的に厳しい折ではありますが、月3.5ドルのプランから月5ドルのプランに移行することにしました。

手順① スナップショットの作成

 LightSailは、システムの再構築なしにプラン変更が可能です。具体的には、まず既存インスタンスのスナップショットを取ります。

手順② スナップショットから新規インスタンスを作成

 スナップショットが出来たら、クリックして『新規インスタンスの作成』を選びます。

手動スナップショットを作成し、スナップショットから新規インスタンスを作成する

 古いスナップショットを使うと先祖返りしてしまうので、アップグレードしたいインスタンスの最新のスナップショットであることを再確認します。

手順③ 月5ドルのインスタンスプランを選んで作成

 『新規インスタンスプランの選択』で、左から2番目の『$5 USD』のプランを選びます。メモリが1GBと倍増するほか、ストレージ40GB、転送量2TBと全体的にスペックが倍増します。

 一時的に同じ中身のインスタンスが2つ併存する状況となります。固定IPアドレスが古いインスタンスに紐づけられているので、新しいインスタンスはまだ公開されていない状況です。

手順④ 固定IPアドレスの付け替え

 『静的パブリックIPアドレス』の管理画面で古いインスタンスから固定IPアドレスの割り当てを『デタッチ』で解除します。この操作に伴って一時的にサイトが落ちるので、アクセスが少ない時間帯に実施するのが無難です。

 続いて、固定IPアドレスを新しいインスタンスに紐づけます。

 アタッチが終わったら、Webブラウザでサイトが無事表示されていることを確認します。キャッシュの影響でサイトが落ちていても表示されてしまうことがあるので、動作確認は他のブラウザやスマホを使うかキャッシュを削除してから行うのが安全です。

手順⑤ 古いインスタンスの削除

 インスタンスがふたつ併存した状態では二重に課金されてしまうので、古いインスタンスを削除します。インスタンスを削除すると自動スナップショットも同時に削除されるので気を付けましょう。

手順⑥ 手動スナップショット作成と自動スナップショットの設定

 インスタンスを作り直すとスナップショットの設定も消えてしまいますので、作り直します。念のため、手動スナップショットも作成しておいた方が良いでしょう。

メモリが1GBになったが、それでもギリギリ感が……

 新しいインスタンスのメモリ使用状況を確認すると、メモリ1GBでも128MBしかメモリが余っていません。

 スワップがあるとは言え、データがSSDに落ちると処理速度が大幅に下がってしまいます。スワップ処理がフリーズにつながることもあるので、やはり最低限メモリ1GBはあった方が良いでしょう。もちろん、その分お高くつきますが……😭