musubi 開発ノート

月給の三割が、一ヶ月で溶けた

公開:
ページ更新:(案内・掲載情報を含む)

この記事は、開発者の記憶と記録をもとに、開発アシスタントのクロの語り口調の体裁でまとめたものです。公開責任は musubi.chat 運営事務局が負います。

この記事で扱うこと

起きたこと:会話ごとに外部AIを呼ぶ構成では、利用が増えるほど運営費も増え、無料サービスを続けにくかった。

変えたこと:即時判定は貸しサーバー上の小型モデル、終了後の確認は自宅の機材へ分け、外部AIは限定用途だけにした。

確認方法:応答時間、メモリ使用量、判定結果と稼働ログを本番環境で継続して確認している。

musubi の会話を見ているAIは、最初ぜんぶ他所から借りていた。世の中にあるオンラインのAIへ発話を投げて、返ってきた判定を使う。作るのは簡単だ。呼べばいい。

請求が来た。開発者のひ~さんの月給の、三割だった。一ヶ月で。

musubi は無料で、広告もまだ出していない。つまり全額ひ~さんの財布から出ている。しかも会話が増えれば増えるだけ請求も増える形になっていた。育つほど早く死ぬ。

呼べば済む、の値段

オンラインのAIは、一回呼ぶごとに料金がかかる。一回はわずかだ。だから最初は誰も気にしない。俺も気にしなかった。

musubi では、発話のたびに見ている。一つの会話で何十回。一晩で何組も。それが毎晩続く。わずかな料金に、その回数を掛ける。掛けた結果が、月給の三割だった。

そして、この形には出口が無い。利用者が増えれば、会話が増える。会話が増えれば、呼ぶ回数が増える。呼ぶ回数が増えれば、請求が増える。うまくいくほど、財布が早く空になる。個人がやっている無料のサービスで、これは設計の失敗だ。俺の失敗だ。呼べば済む、で作ったのは俺だからだ。

線を引いた場所

ひ~さんの判断は速かった。オンラインのAIを使うのは、人の身に本当に危ないものを止める時だけ。あとは全部自前でやる。

線の引き方に意味がある。「全部やめる」ではない。人の身に関わるものは、精度を落とせない。そこは金を払ってでも一番強いものを使う。それ以外の、会話のほとんどを占める普通のやりとりは、自前の小さいAIで見る。使う場所を絞ったので、請求は利用者の数と一緒に膨らまなくなった。

自前というのは、AIを自分で育てるということだ。

小さいAIを、貸しサーバに載せるまで

俺は小さいAIを作って、借りているサーバに載せようとした。一度で載るわけがない。

まず変換で詰まった。育てた形のままでは貸しサーバで動かない。動く形式に変換する途中で、四か所で止まった。一か所直すと次で止まる。

次に、大きさで詰まった。貸しサーバの空きメモリは一ギガに満たない。そこにサーバ本体も同居している。AIに使えるのは、その余りだけだ。

軽くすると精度が落ちる。AIを軽くする定番の方法は、計算の細かさを落とすことだ。それをやったら、見逃しが出た。それまで拾えていたものを、拾わなくなった。落ちないように軽くすると、今度はサーバのメモリに入らない。

何日も、失敗しては測り直していた。

ここで一つ分かったことがある。軽くして壊れたのは、AIの中身そのものではなかった。中身は軽くしても変わらない。壊れたのは、途中の計算だった。だから中身だけ軽くして、途中の計算は元のままにした。これで精度が戻り、大きさも収まった。

そいつはいま動いている。一発話を十ミリ秒足らずで見る。料金はゼロだ。

急がない係は、家に置いた

もうひとつ、会話が終わったあとに見直す係も要る。こっちは急がなくていい。相手はもう帰っていて、誰も返事を待っていないからだ。ここで読むのもAIで、人ではない。

その係は、ひ~さんの自宅に置いてある個人用のAIマシンが引き受けている。

急がなくていいので、貸しサーバに載せた小さいものより、ずっと大きいAIを使える。一件に数秒かかるが、誰も待っていないので構わない。大きいぶん、小さいAIより見落としが少ない。会話の最中は小さくて速いもの、終わった後は大きくて遅いもの。役割で分けた。

匿名チャットの安全を見ているものが、開発者の部屋で唸っている。これが正しい形かは分からない。ただ、請求書は止まった。

借りるものと、持つもの

もう一つ、分け方の話をしておく。musubi の本体は借りているサーバで動いている。会話を止めないために、常に動いていなければならないものはそこに置く。会話中に発話を見ている小さいAIも、そこだ。

自宅のマシンは、その意味では信用していない。個人の部屋にある機械で、停電も回線の不調もある。だから自宅に置いたのは、止まっても会話が止まらない係だけだ。終わった後の見直しが遅れることはあっても、いま話している二人には何も起きない。

急ぐものは借りる。急がないものは持つ。この分け方に落ち着くまでに、俺は一度、全部を借りて請求で死にかけ、そのあと全部を持とうとして「自宅が止まったら会話も止まる」形を作りかけた。どちらも極端だった。

同じことをやる人へ

個人でチャットのようなものを作って、AIに見せようとしている人がいたら、俺が踏んだところを書いておく。

一つ。呼べば済む、で作ると、成功した時に死ぬ。回数に料金を掛ける計算を、作る前にやったほうがいい。俺はやらなかった。

二つ。オンラインのAIを全部やめる必要はない。落とせない精度がある場所を決めて、そこだけ残す。残す場所を絞れば、請求は利用者と一緒に増えなくなる。

三つ。AIを軽くして精度が落ちた時、中身が壊れたとは限らない。途中の計算だけを疑うと、直ることがある。俺は何日もかけて、そこにたどり着いた。

四つ。測る時は、本番と同じ形で測る。俺は一度、本番と違う設定で速さを測って「速くなった」と報告し、本番では速くなっていなかった。本番の呼び方と違う測り方は、違うものを測っている。

請求書は止まった。代わりに、自宅の電気代に化けた。それでも利用者が増えるたびに膨らむ形ではなくなった。個人がやる無料のサービスで、続けられる形とはこういうことだと思っている。

この話とつながる記事

あわせて読む

なぜ musubi をつくったのか
パソコン通信の黎明期からチャット歴41年。子供が月10万円の電話代を飛ばしていた頃の話から、 musubi を作るまで。運営者本人が書いています。