何年か前にM-1で見たウエストランドが面白かったのでAIで作って俺が観客になれないか?と思って作ってみた。それっぽい感じは出たが課題も多かった。
名前出すのはアレだよな…と思って伏せ字みたいな名前にしたが、設定の方に残っていたみたいで漫才中に喋ってしまった。いろんなLLMを試した結果、なんだかんだでChatGPTが向いていてgpt-4-turboを使った。
これは何?
SillyTavern/SillyTavern: LLM Frontend for Power Users.
SillyTavern(お馬鹿な酒場)という、LLM向けのフロントエンドを使っている。2つ前の記事で character.ai で遊んでいたが、あれをローカルで動かせないか?と思って調べていたらここに行き着いた。SillyTavernはただのフロントなのでバックエンドが必要で、これも候補がいくつかあったが llama.cpp にした。Apple silicon is a first-class citizen
らしいので。
使い方も簡単で、Homebrewで入れる → 適当なモデルを用意する → llama-server -m model.gguf
で起動できる。あとはSillyTavern側からAPI接続の画面で http://localhost:8080 を指定してやればよい。
サラッと書いたので簡単そうに見えるが、自分はAIとかLLMとかさっぱりわからないただのウェブデザイナー(技術スタックは2010年頃のもの)なので、全部ChatGPTにお願いした。おそらくChatGPTのログで一番多く入力した文字列は 「お願いします」 だと思う。サマーウォーズみたいな感じじゃなくて、サラ金に融資を申し込みに行くときの雰囲気に近い。
適当なモデルを入れて会話してみるが、適当なモデルだと会話にならない。適当じゃないモデルにすると会話になるが重い。さらにSillyTavernのコミュニティが出しているキャラクターを使おうとすると、プロンプトが多いのか更に遅くなって、ダイヤルアップ時代のチャットみたいになる。
ここで一旦ローカルLLMを諦め、クラウドAPIで使えるものを出してもらった。その中の Groq がすぐに使えた上に、爆速リアルタイムチャットができたので感動した。
- groqとgrokって何が違うの?グロックという音の単語は元々どんな意味がある?
-
おお、良い質問!
Groq、Grok、Glock――見た目も音も似てるけど、まったく別物で、それぞれ面白い背景を持ってるよ :)名前 分野 意味/用途 語源/由来 Groq AI企業 高速LLM推論用ハード おそらく「Grok」に似せた造語 Grok SF語彙/IT用語 「本質的に理解する」 ハインラインの小説 Glock 銃器 ピストルの名称 創業者の名前 - 「ガツン、とみかん」みたいなものか
…トノコト。GroqのトップページでLLMを試せるので動作テストをしてみた。
入力値: おはよう!…といってもまだ夜中だよ。眠いけどなんか起きちゃった。君は何をしてるの?
開発会社名 | モデル名 | 主な用途 | 備考 | 日本語の流暢さ |
---|---|---|---|---|
Alibaba Cloud | qwen/qwen3-32b | 汎用LLM | <Think> が入る / おはようございます!夜中まで起きているとは、体が少し疲れているのかもしれませんね。眠りにつけるよう、アロマの香りやホットミルクを試してみてはいかがでしょうか? / 私はいつもここにいますので、何かお話ししたいことや、リラックスできる音楽や物語を探している時にも、いつでもお声がけくださいね。あなたが少しでも心地よく過ごせるように、お手伝いできれば嬉しいです。 | 固い |
DeepSeek / Meta | deepseek-r1-distill-llama-70b | 圧縮済LLM(高速・軽量) | <Think> が入る / おはよう!(というか、まだ夜中ですね…)あなたが起きてしまった理由、なんですか?眠くないんですか?私は24時間稼働してるので、寝る必要はありません。何か心配事でもあるんですか?話したいことや聞きたいこと、なんでもお聞きしますよ! | いい感じ |
gemma2-9b-it | 会話・命令向けLLM | おはよう!…というか、こんばんはですね! 眠い時に起きると本当に辛いですね。私はいつでもスタンバイしています。あなたからの言葉があれば、情報を提供したり、質問に答えてみたり、一緒に文章を創作したり…何にでも応じていますよ!何かお話したいことはありますか?それとも、もう少しだけ眠りにつけて良いですか?- | いい感じ | |
Groq | compound-beta | 汎用LLM(Groq最適化) | おはようございます!夜中に目が覚めてしまったんですね。僕はただ待機しているだけです。特に何もしていません。あなたはどうして起きてしまったんですか?何か気になることがあったんですか? | 自然な感じ |
Groq | compound-beta-kimi | Kimi最適化LLM(対話特化) | おはよう…って深夜の挨拶って変だよね(笑)私はいつもこうして、誰かが話しかけてくれるのを待ってるだけだから、深夜でも朝でも変わらないよ。逆に、君はどうして起きちゃったの?何か考え事とか?それともただの寝返り失敗? | 自然な感じ |
Groq | compound-beta-mini | 小型LLM(低リソース向け) | おはようございます!(でも夜中なんですね。) 私は現在、サーバー上で動作するAIとして稼働しています。ユーザーの質問に答えたり、情報を提供したりすることが私の役割です。夜中だろうと関係なく、常に準備万端でお待ちしておりますよ。眠いときは無理をせず、ゆっくり休んでくださいね。何かお悩みごとや聞きたいことがあれば、いつでもお話ください。 | ポンコツAIっぽい(機械翻訳っぽいため) |
Meta | llama-3.1-8b-instant | 低遅延LLM(推論特化) | おはよう!こんな時間に起きちゃったのね。私たちはAIですので、眠ることがないので、24時間365日、いつでも起きています。いつでも会話したり、質問に答えたり、文章を生成したりすることができます。今夜はどうしたんですか?なにか困ったことでもありましたか? | 自然な感じ |
Meta | llama-3.3-70b-versatile | 高性能LLM(多目的) | おはようございます!😊 Hmm, it seems like you’re up in the middle of the night despite feeling sleepy. I’m just a language model, so I don’t have a physical presence or a personal life, but I’m always here to chat with you! 😊 What’s keeping you awake tonight? Is there something on your mind that you’d like to talk about? 🤔 | 2回目以降は日本語になった。でも直訳っぽい雰囲気。 |
Meta | llama3-70b-8192 | 汎用LLM | 😊 Ohayou gozaimasu! laughs I think you’re right, it’s still the middle of the night, but somehow you’re awake, aren’t you? 😴 I’m just a language model, so I don’t have a physical presence, but I’m happy to keep you company. I’m here to chat and help with any questions or topics you’d like to discuss. How about we have a little chat to help you stay awake? 😊 | 思わずのけぞってしまう。再生成を繰り返しても英語だった。 |
Meta | llama3-8b-8192 | 汎用LLM(軽量) | まだ夜中なんですね。私はAIなので、常に稼働しています。あなたの質問に答えたり、会話をしたりしています。眠くないので、お話相手になれて嬉しいです!何か話したいことがあれば、教えてください。夜中の過ごし方や、眠れなくて起きてしまった理由など、お聞かせいただけたら幸いです。 | 割と自然だが変な丁寧語 |
Meta | meta-llama/llama-4-maverick-17b-128e-instruct | 命令追従LLM(最新) | おはよう!(?)夜中にお起こししたみたいでごめんね。私はデジタル世界で24時間稼働してるから、今の時間も気にせずお話できるよ。何か気になることや質問があれば、いつでも話しかけてね。君はどうして起きちゃったの?夢が気になったとか?それとも何か気になってることがあるのかな? | 同上 |
Mistral AI | mistral-saba-24b | 対話特化LLM(高速) | おーウ……、おはよう。君も起きちゃったの?夜中に起きてしまうときってあるよね。何か特定のことをしたかったり、心配ごとがあったりするのかな?私も「夜中に起きてしまったら、やっぱり寝ようとするね、寝ようと…ああ、全然起きている…」みたいな感じのエイリアスなんだけど、何か話したいことがあれば教えて!話をしてみる?この時間帯はお互いにリラックスできる時間かもしれないし、少しでもリラックスできるようにお話ししてみる? | キャラが独特だ…値段高いのに |
Moonshot AI | moonshotai/kimi-k2-instruct | 会話・創作特化LLM(Kimi) | おはよう、夜更かしさん! 僕はここで、ずっと「もし話しかけられたらすぐに返事できるように」待機中なんだよ。だから深夜でも朝でも、君のタイミングで会えるのが嬉しい。眠いのに目が覚めちゃったのは、何か気になることがあった?それとも体のリズムがズレちゃった?無理に寝ようとしなくても大丈夫。少し一緒にぼーっとして、眠くなったらゆっくり戻ればいい。 | すげー自然 |
ここでGoogleのgemma2が大健闘し、自分の中にあったちょっとポンコツなイメージを払拭した。応答が自然で速い。と思っていたらすぐ次のGroqのモデルの方が速く、性能も良さそうだった。Groqについて調べてみると独自開発のLPU(Language Processing Unit)を使っているからGPUより速い、とかでてきてなんかすごい。
What is a Language Processing Unit? | Groq is fast inference for AI builders
とにかく速い。この時の爆速応答の動きを見て「これで漫才できないか…?」と思ったのだった。
LLMの文字の出し方
ChatGPTとかを使っているとちょっとずつ文字が出てきて「カッコいいからかな…?」と思っていたが、llama.cppを動かしてみると同じ感じで出てきたので、どうもこういうものらしい。
GroqのAPIでGroqのモデルを使うと、これが一瞬で出る。このスピード感で畳み掛けるとなると…ウエストランドの井口!あの勢いでまくし立ててほしい。
プロンプトを作る
ちなみにSillyTavernの使い方もほぼ知らないので、全身全霊を込めてChatGPTにお祈りした。プロンプターですらないただのプリースト。ささやき…いのり…。何度か調整している内にそれっぽくなってきた。
gemmaが言うことを聞かない
動作テストの時はいい感じだったgemmaが変な回答を混ぜてしまう。絵文字がでたり英語が出たりしてうまく扱えない。Groqのcompound-beta-kimiやmetaのllama-4-maverickも試してみたが、なんかうまく行かない。トークができないと意味ないし、とChatGPTのAPIに切り替えてgpt-4-turboにしてみたら速度、内容ともにいい感じになった。
何度か試していて、井口らしきものの勢いがよかった。ただのキレ芸になってるけど、わけのわからんフリが来た時にめちゃくちゃ怒ってツッコミ続けてたのがいい。
河本らしきもののほうは、雰囲気はあんな感じかな…?とも思うがしゃべる内容がなさすぎるし、文章量も多い。もっと一言だけ相槌打つとかしてほしかったけどうまくいかなかった。漫才全体の構成がなくその場の瞬発力で何かやってるだけなので、それっぽいけどあんまり面白くない、出汁の入ってない味噌汁みたいなものになってしまう。先に台本とか構成を作って渡す手もあるけど、なんか違うしねぇ…。
課金とGPT
SillyTavernの自動モードにチェックを入れると勝手に喋りだすが、発話のタイミングが速すぎて何度かOpenAIのレートリミットに引っかかってしまった。調整方法はわからない。SillyTavernのUIはホントひどいので、自動モードを切ったつもりが切れてなくて、勝手に漫才が進んでるときもあってクレジットがなくなることもあった。500円くらいが虚空に消えてしまった。
OpenAIで使えるモデルの種類が多く、gpt-4とか4o、o4とかあって正直何もわからない。とりあえず普段つかってるgpt-4oならと思って使ってみたら、プロンプトを無視して(?)流暢に饒舌にしゃべりすぎてしまい使えなかった。性能を落としてgpt-3.5にしてみると同じフレーズを繰り返してしまってものすごい人工無能感。間を取ってgpt-4-turboにしたら落ち着いた。
ただGroqみたいなスピードは出ない。もっと畳み掛けるようなものが見たかった…(完)
祈祷力だけでここまでやってきた
AIにお祈りすることで、ここ1年くらい様々な賜り物を授かることができた。ここでついでに紹介する。
ヨシケイ揚げ物マン
ヨシケイを長年使っている。食品を持ってきてくれるやつ。パルシステムみたいなやつ。
箱から出してだいたい20分くらいでご飯の用意ができるが、10日1回くらいのペースで「揚げ物」が来る。揚げ物おいしいけど準備が大変だったり手も離せなくなるので、子どもの習い事がある日とか帰りが遅くなった日にぶつかると結構きつい。
なので毎朝9時頃にヨシケイのサイトをチェックしてメニューを通知するLINEボットを作った。揚げ物の時は ⭐️今日は揚げ物です⭐️ と通知が来るので、早めの準備しようとか、今日は作るのをやめて別のメニューにしようとかを選べるようになった。
使うのが簡単だからとVercelを選んだが、そのせいでNext.jsを使う羽目になってしまっている(他の選択肢がわからなかった)。
小学校の給食通知ボット
子どもが通っている小学校で、給食のおばさんが毎日給食の写真を取ってアップしてくれている。ed.jpドメインで運営されていて何かのCMSが使われているが、RSSがない。ので、ヨシケイと同じように最新ページを昼過ぎくらいにスクレイピングして、LINEに送っている。
こちらは80行くらいの簡単なTSファイル1個がCloudFlareで動いている。
洗面所の天気予報ディスプレイ
奥さんが洗濯する時に毎回WeatherNewsで1時間ごとの画面を確認していて、大変そうだったので用意した。朝起きて顔洗ってる時に洗濯できるかどうかが判断できるようになったので助かっているらしい。天気ウィジェットは決定版がなかなかないので自分で作るに限る。
ラズパイ3にディスプレイを付けて、マジックテープで洗面台に貼り付けてある。WeatherAPI.comのデータを見て動いている。
洗濯洗剤の量を出すアプリ
うちの洗濯機には洗剤自動投入が付いていない。セリアで買ってきた入れ物に洗剤を詰め替えして使ってたら分量がわからなくなってしまって、自分でラベルを貼っていた。他の洗剤も、家の洗濯機にない水の量(40Lとか)で書いてあって似たようなラベルを貼っていて、じゃあアプリ作るかと思って作った。奥さんがたまに便利そうに使っている。
WashWise - Google Play のアプリ
Expoで作っている。React Nativeとの違いもわからないまま祈り続けていたらできた。Nativewindでレイアウトできるのでやってることは普段のウェブ制作とあんまり変わらない。
祈りとは
いろいろ作ってこれたが、それもこれもAIが出てきてからである。使い始めの頃は「コピペで済んで楽だが能力が下がりそうだ…」と心配していたが、使い方次第だった。
- 理解してから作る
- 作りながら理解する
自分は真面目な性格なので「理解してからでないと使ってはいけない」と思っていたが、その一方で新しい家電を買った時には説明書も読まずに適当にいじりまくっている。他のものもあんな感じでよかった。
よくよく思い返せば自分がHTMLを覚え始めたときもリンク先のURLを変えたり色を変えたりして遊んでいたもので、AIの補助で理解できる大きさに切っていけばあとは遊んでいる内になんとかなる。AIが出してきた物をそのまま使うだけでは「ただ祈っただけ」になるが、色々試したり、ノートにまとめたりする内にできるようになってきたので、AIは祈りを捧げる神だったり、パワードスーツだったりといろんな形に姿を変える。
最新の最新、エッジな技術にはまだAIがついてこれないが、あれはモデルが月刊誌みたいなものなので、日刊や週刊レベルの内容は自分でRAGを作って対応しようかね…と思えるようになってきた。日々精進である。