1. からあげ帝国放送局
  2. #165 トルネコAI実況の遅延で..
#165 トルネコAI実況の遅延で学んだKVキャッシュの基本
2026-09-17 15:15

#165 トルネコAI実況の遅延で学んだKVキャッシュの基本

トルネコの大冒険で初めて挑戦したAIゲーム実況について、xangi-avatarとローカルLLMを組み合わせた仕組みを紹介します。画面理解や音声での反応は動いた一方、長時間の会話履歴を単純に切り詰めたことでKVキャッシュが効かなくなり、実況が遅れていった原因を振り返ります。AIが修正を助けてくれる時代でも、基礎を知ることが問題発見と解決につながるという話をしました。


目次

オープニングと秋の気配

トルネコの大冒険でAIゲーム実況に挑戦

borotを実況役にした仕組み

ローカルLLMを選んだ理由

実況で見えた手応えと深刻な遅延

TransformerとKVキャッシュの基本

会話履歴の切り詰めで遅くなった原因

コンパクションと基礎知識の大切さ

AI実況への再挑戦とxangi-avatarの公開方針

お知らせとエンディング


リンク

トルネコの大冒険 AI実況テスト

https://www.youtube.com/live/2V6ULUjCbxk


▼コミュニティ「からあげ帝国」への参加はこちら(Discord)

https://discord.com/invite/PWpEB7KUsN


感想

まだ感想はありません。最初の1件を書きましょう!

00:00
からあげ帝国放送局、始まります。 この配信では、AI関係の会社で働きながら、作家として本を書いたり、個人でメーカーとしてものづくりを楽しむ私からあげが、技術の話であったり、個人のスモールビジネス、その他雑多なことをお話ししていく配信です。
今日はですね、いつもの公園で散歩しながら収録をしています。 なんか急に涼しくなった感じがありますね。昨日とかはちょっと雨気味だったので、あの久しぶりに近所の公園まで来たんですけれども、なんか秋の気配をだいぶ感じるようになってきたかなと思います。
最近というかですね、昨日はですね、実はゲーム実況ですね。久しぶりにやってみました。唐突にですね、私たまにゲーム実況をやるんですけれども、昨日はですね、トルネコの大冒険というゲームの実況をしていました。
で、いつもとですね、少し違うところとして、AIゲーム実況にですね、初めてチャレンジしてみました。で、この動画はですね、アーカイブで一応誰でも見れる形にしていますので、多分突然始めたので、ほとんどライブで見れた人はいないと思いますが、それでもですね、なんか10人くらいの方は見ていただけたみたいですね。
で、コメントとかもいただいたりしてありがたかったんですけれども、アーカイブでも見れますので、よろしければというところですね。
で、まずゲームの方に言いますと、これトルネコの大冒険というですね、リマスターですね。昔出たゲームをリメイクしたものがですね、最近出て話題になっていて、私はですね、こういういわゆるローグライクゲームと呼ばれるものですね。
毎回ダンジョンの構成が変わってですね、何度でも楽しめるようなゲームのことをローグライクって言って、昔のローグっていうゲームをリスペクトしてそう呼ばれてるんですけれども、トルネコはですね、ほとんど実はやったことがなかったんですけれども、その後発売された風雷の試練とかは結構プレイしてですね、何度かクリアしたりしていたっていうところですね。
そういう意味でこの手のゲームはかなり元々好きだったっていうのはあります。
あとはこれから派生してですね、ローグライトゲームっていうのも最近は話題で、そのバンパイアサバイバーとかちょっとアクション要素の強いゲームとかも面白くてですね、これは昔の配信で詳しく話しているので、興味ある方はそっちを聞いていただければと思うんですけれども、話を戻すとですね、そのトルネコの大冒険をですね、リマスター版をいろいろなプラットフォーム系に出ているんですけれども、
私はですね、iOS版を買ってですね、iPadでプレイしているっていう感じですね。
それ以外にもSteamとかですね、あとはSwitchとかでも出ているようなので、いろいろ好みのプラットフォームで遊べるという感じですね。
操作性がですね、オリジナルに比べてすごい悪いってことでですね、結構ネガティブな意見を聞いていたので買うのも迷っていたんですけれども、
03:06
私にとってはですね、全然思ったほど悪くないというか、普通に快適に遊べましたね。
これはiOS版がiPadだとそこまで悪くなくて、他のSwitchとかだと悪いっていうことなのか、それかですね、私がそこまで細かいことを気にしない性格だからなのかはちょっとあまりわかっていないんですけれども、
少なくとも私にとってはそこまで致命的になるほどのですね、インターフェースの悪さはなかったかなという印象です。
プレイしたトルネコの大冒険はそんなゲームですね。
要は、ダンジョウに潜って行って、拾ったアイテムとかを駆使しながら敵を倒して行って、お宝をゲットして帰ってくるという、そういったですね、基本的にはシンプルなゲームです。
それをですね、AIのアバターというかですね、AIアシスタントのボロット君というキャラクターを自分作っているんですけれども、それにですね、実況させたという形になっています。
少しですね、仕組みの方を説明しますとですね、まずベースとしてですね、私が作っているAIアシスタントソフトのザンギってものがあるんですね。
これはですね、コーデックスとかクロードコードとか、そういったですね、AIコーディングツールをですね、AIのアシスタントとして便利に使える、普通はですね、そのディスコードというチャットソフトだったりとかですね、
スラックだったりからですね、手軽に呼び出せるような機能を持ったですね、ソフトなんですけれども、このソフトはローカルLLMとかにも対応していて、いわゆるオープンなモデルですね。
自分の家のですね、DGXパークというですね、エノビリアさんの小型のAIスーパーコンピューターを持っているんですけれども、そこで動かしているですね、あのAIのモデルも動かしたりできるっていう、そういったソフトになっています。
で、それのですね、拡張機能としてZangierアバターというソフトを作ってですね、その子にですね、アバターの機能をですね、Zangierは基本的にですね、テキストで出力するだけなんですけれども、それをですね、音声合成して声を乗せたりですね、その喋っている声に合わせてですね、キャラクターをですね、口パクさせたりみたいな、よりですね、キャラクター性を高めるようなですね、拡張機能を作っていてですね、
これ実はゲーム実況をやる前から作っていて、これなんかゲーム実況とかにも応用できるなと思って、それにですね、ゲーム実況する機能を追加したという形ですね。
で、具体的にはですね、あの画面をですね、キャプチャーできるようにして、その、例えばiPadでプレイするときですと、Macだとですね、QuickTimeっていうソフトであのムービー収録をするとですね、iPadと繋いでですね、iPadの画面をですね、キャプチャーできるようになっています。
というような機能があるんですね。で、それをですね、画面をキャプチャーして、あと私の声ですね、音声入力も音声認識したテキストとして受け取ってですね、反応するみたいなことをすると、要はですね、画面と私のコメントをもとにですね、ゲームのですね、コメントとかですね、アドバイスをしてくれて、いわゆるAIのアシスタントっぽく実況をしてですね、
06:23
一人でプレイするよりも結構面白い効果が生まれるんじゃないか、いわゆるツッコミ役みたいなのができていいんじゃないかなっていうのを思って作ってみたっていうところですね。
で、AIのモデルですね、LLMの方はですね、今回はローカルのLLMを使っていまして、クエン3.8ってやつですね。
それなりに性能のいいモデルですけれども、いわゆるですね、オープンAIとかアンソロピックのフロンティアモデルではなくてですね、ローカルで動くようなものを使っています。
これはシンプルにですね、ずっと実況し続けるのでお金がちょっともったいないなっていうところと、このローカルなLLMがどれだけ使えるかなみたいなのを個人的に試してみたかったっていうところでやったっていう感じですね。
実際にやってみた感想ですけれども、まずですね、一応機能としては一通り問題なく動いたかなと思いますし、画面を理解してですね、なんかそれっぽいことを喋ったりっていうのはできたから、そこら辺はある程度満足かなっていうところですが、やっぱりレスポンスがですね、結構遅くてですね。
最初の方はまだ良かったんですけれども、続けているうちにですね、どんどん遅くなってきてですね、最後の方はですね、ダンジョンのですね、帰ってくる時にですね、6階ぐらいにいるのに、7階とか8階での出来事を喋ってるみたいなですね、かなりの致命的なラグが出るようになってしまっていてですね、ここら辺はかなり問題だなというところですね。
で、これなんでこんなに遅くなるんだろうと思ってですね、後で調べたというかですね、ちょっとAIに助けてもらったんですけれども、調べたらですね、これはソフトがあんまり良くなかったってことがわかりましたね。
詳しく話すとですね、こういったLLMですね、大規模言語モデルはトランスフォーマーっていうGoogleさんのアルゴリズムがベースになっているんですね。
これの中の仕組みがですね、QKVっていうですね、Query Key Valueかな、そういったですね概念を持っていまして、要は言葉のですね、検索するワードとその検索されるワードとその値みたいな感じなんですけれども、ちょっと詳細な説明は省きますけれども、
このQKVのですね、いわゆる行列演算ですね、すごい大量の計算をすることでですね、言葉同士の関連性を理解というかですね、学習して、次の言葉をですね、どんどん生成していく。
例えば、我が輩は猫であるっていうですね、納米漱石の一文だったら、我が輩はからですね、次は猫っていうですね、一文字を出力して、次はですね、その猫をくっつけて、我が輩は猫の次のですね、でを出力してっていう感じでですね、一文字というか、一トークンっていう単位になるんですけれども、これをどんどん出力していって、くっつけて文章を生成していくみたいなのが、このLLMの基本的な仕組みなんですけれども、
09:27
これですね、何も考えずに作ると文章が長くなるほどですね、指数関数的にですね、この計算時間が増加しちゃうんですね。なぜなら、さっき話したQKVの計算をですね、毎回毎回しないといけないからっていうところです。
それをですね、KVキャッシュって呼ばれる方法で、このKとVをですね、さっきの我が輩は猫であるのですね、最後のあるを出力するときは、我が輩は猫でとかの部分は、さっき計算したやつをですね、そのまま取っておけば使えるよねみたいな考え方があってですね、計算を省略できるんですね。
それを使うとですね、かなり計算が早くなるみたいなですね、テクニックがあったりしますと。それをですね、基本的には使っていたんですけれども、私がですね、ソフトをとちってですね、その出力するトークンが増えてくるとですね、いわゆるそのモデルのですね、限界みたいなところがあるんですね。
そうするとどうするかというとですね、前の方をですね、単純に切っちゃっていたんですね。ただそうするとですね、あのさっき言ってたですね、我が輩は猫であるのですね、関係性が崩れちゃう。
そうするとどうなるかというと、そのKVのキャッシュがですね、効かなくなって、また最初から1から計算し直さないといけないからめちゃくちゃ時間がかかっちゃうみたいな問題があって、それが出ていたっていうところですね。
なので普通のというかですね、いわゆるコーデックスとかクロードコードとかどうしてるかっていうと、コンパクションって言ってですね、今までの会話をある程度要約して、要約したのを最初につけて過去のですね、流れを引き継いでまた会話を続けていくみたいなことをしているんですね。
そうするとこの要約の時は時間がかかるんですけれども、その後の会話はまたKVキャッシュが効くようになるので、非常にですね、スムーズに動きますみたいなところがあったりしますね。
なのでですね、KVキャッシュとかですね、理屈上はわかっていてですね、もちろんそれをやらないと遅くならないよみたいな、もう本当基本中の基本ではあるんですけれども、なんかそれをですね、完全に考えられていなかったというところで、AI関係の仕事をしている者にとってはですね、ちょっと非常に恥ずかしいことではあるんですけれども、こういったのもですね、貴重な体験談ということで恥をしのんで、ここでお話をさせていただいたっていうところですね。
ここらへんもですね、最近はAIがですね、遅くなったよっていうのを言うといい感じにですね、直しておきますねってやってくれるんですけれども、中のことをですね、知っておくと楽しめるってぐらいかもしれないですね。
12:09
結局AIが賢く直しちゃうので、結果としては変わらないかもしれないんですけれども、あれですね、今回はわかる問題だったらいいんですけれども、もうちょっと根深い問題とかですね、たまにしか発生しない問題だったりするとですね、
また基本のところを知っておくと、やはり解決できるかできないかとかですね、あと未知の問題に気づけるか気づけないかみたいなところが変わってくるはずなので、基礎知識っていうのはまだ必要にはなってくるのかなと思いますし、
知っておくということで、こういった現象をより楽しめるということでですね、基礎を学ぶということは重要なんじゃないかなと思います。
ちょっとここらへんの話ですね、どれだけの人が興味を持って聞いてくださっているかわかりませんが、こういったこともですね、続けて話していければよいかなと思います。
それで昨日はですね、まずチュートリアルの残像ですね、10回までですね、行ってですね、王様の宝箱を取ってくるっていうところまでをやったんですけれども、それ無事クリアできたんですけれども、ここからがですね、トルネコの大冒険の本番になるので、また機会があったらですね、ソフトも改良してですね、リベンジというかですね、再度ゲーム実況とかやろうかなと思っていますので、
まあよかったらですね、ちょっと突然始めるか予告できるかわからないんですけれども、やってみようかなと思いますので、よかったらですね、SNSとかフォローしてチェックしていただけると嬉しく思いますというところですね。
あと今回のですね、ザンギアバターっていうソフトは今のところは公開はしていなくてですね、ちょっとまだ完成度に難があったりですね、さすがにマニアックすぎるソフトかなという気もしているんですけれども、ただこのアバター機能ですね、結構ザンギを改造してですね、あのアバター機能つけてる人もちょくちょく見かけるので、ひょっとしたら需要あるのかもしれないなとは思ったりしているので、
そこらへん公開するかは悩んでいるというところですね。当面はですね、例えばツイッターのサブスク限定で公開するみたいなこともやってみようかなとか考えているので、まあ興味ある人はですね、ちょっとサブスクの方でですね、リクエストするとかいただけたらですね、なんかそっちでとりあえず限定で先行で公開するみたいなことも考えてみようかなと思ったりしていますが、
ただまあ無理にサブスクとか入る必要はないので気軽に楽しんでいただければと思いますといったところですね。ちょっと明日はですね、多分出張の関係で配信お休みになるかなと思いますというお知らせです。
今日はコメント返しは省略してですね、唐揚げ帝国放送局ではお便り大募集中です。SNSのハッシュタグの唐揚げ帝国放送局であったり、無料のコミュニティの唐揚げ帝国のお便りチャンネルでコメントをいただいたらですね、この配信でも積極的に取り上げていきますので、ぜひどしどしコメントの方を寄せくださいといったところで本日は以上になります。それではまた。
15:15

コメント

スクロール