【llama.cpp】黒い画面から卒業!リアルタイム監視ダッシュボード「llama.cpp Monitor」を作ってみた

その他
スポンサーリンク

はじめに

ローカルLLMを動かすための定番ツール「llama.cpp」。軽量で非常に便利なのですが、一つだけ不満がありました。

黒い画面

そう、黒いターミナル画面に流れるテキストログです。
ただ文字が流れていくだけで、現在の生成スピードがどれくらいなのか、コンテキストがどれくらい溜まっているのかを直感的に把握するのは難しいですよね。

そこで今回、AIと二人三脚(Antigravity IDE)でコーディングを行い、リアルタイムで情報を可視化するダッシュボードツール 「llama.cpp Monitor」 を自作しました!

llama.cpp Monitor画面

この記事では、ツールの主な機能や、開発の中で苦労したポイントをご紹介します。

このツールのメリット

llama.cpp Monitor には、ただカッコいいだけでなく、実用的な機能がいくつか備わっています。

1. コンテキスト上限の可視化

Claude Codeや長文タスクを処理していると、どんどんコンテキストが蓄積していきます。

コンテキスト上限の可視化

本ツールでは、蓄積していくコンテキストサイズを棒グラフで表示し、さらに限界サイズ(ctx-size)を赤い破線で示します。
これを見れば、「そろそろ compact(コンテキストの圧縮・リセット)をした方がいいかな?」というタイミングが一目で判断できます。

2. トレンドのMTP(Speculative Decoding)効率分析

最近話題の MTP (Speculative Decoding) についても、ドラフト受容率を全タスク横断で表示する Analytics ダッシュボードを搭載しています。

MTP効率の分析

3. リロードしても消えない堅牢な設計(ステート・ハイドレーション)

開発の中でぶつかった大きな壁の一つが「ログの揮発問題」でした。
せっかくのグラフも、ブラウザをリロードすると白紙に戻ってしまいます。

ステート・ハイドレーション

そこで、バックエンドに最大5000件の履歴を保持させ、接続した瞬間に一瞬で画面を復元する「ステート・ハイドレーション」の仕組みを取り入れました。これで間違えてリロードしても安心です。
(ちなみに、5000行をすべてDOMに描画するとChromeがクラッシュしてしまったため、直近200行に絞るという工夫もしています!)

インストールと使い方

「難しそう…」と思うかもしれませんが、誰でも簡単に使えるように工夫しました。

1クリック起動

公式リポジトリからダウンロードし、付属の start.bat(1クリック起動スクリプト)を実行するだけで、フロントエンドとバックエンドが自動で立ち上がります。

▼ 公式リポジトリはこちら
https://github.com/ukkeyHG/llama.cpp-Monitor

動作環境・使用コマンド

私の検証環境と、llama-server の起動例は以下の通りです。

  • 動作環境 (PCスペック)
  • GPU: GeForce RTX 5060Ti 16GB
  • RAM: 32GB
  • CPU: Ryzen 7 7700
  • SSD: 1TB NVMe

  • 起動コマンド例
    ツールを利用するには、llama-server 側で標準出力が出るように起動します。(通常の起動で問題ありません)
    bash
    # llama-server の起動例
    llama-server -m <モデルのパス> --ctx-size 8192 --port 8080

まとめ

世の中には似たような監視ツールがすでにあるかもしれませんが、「自分が欲しいものを自分で作る」 のはやっぱり最高に楽しいです!
ぜひ皆さんの環境でも、この「llama.cpp Monitor」を試してみてください。

動画でさらに詳しく見る

本記事の内容は、YouTube動画でもさらに詳しく、実際の画面の動きと共にお届けしています。ぜひ合わせてご覧ください!

コメント