プログラマーじゃない自分が、家庭用PC2台で118B LLMを実用速度で動かすGUIをAIと一緒に作った話
はじめに
最初にはっきり言っておくと、私はコードが一切書けません。
PowerShellが何かも知らなかったし、プログラミング言語を勉強したこともありません。このGUIに含まれるコードで、自分がゼロから書いた行は一行もないです。全部AIが書きました。
そんな人間が、家庭用PC2台で118BクラスのローカルLLMを実用速度で動かすGUIを完成させた、という話です。
動機
普段からClaudeをかなり活用しているのですが、コードの下書きや設計の壁打ちだけでAPIのトークン消費がそれなりに大きくなります。
「下書きくらいローカルLLMでまかなえないか?」
そう思って手元のPC2台でllama.cppを試してみたところ、設定項目が多すぎて正直よく分かりませんでした。RPC、GPU Layer、tensor split……調べても「ある程度分かっている人向け」の記事ばかりで、毎回コマンドラインで起動・管理するのも面倒です。
なら、GUIを作ってしまえばいい。自分では書けないので、Claudeに全部書かせました。
完成したもの
できあがったのは、llama.cppの2台分散構成をGUIだけで管理できるツールです。
主な機能はこんな感じです。
- ノード(PC)の一覧管理と状態表示
- RPCサーバーのワンクリック起動・停止
- GPU Layer・tensor splitなどのパラメータ設定
- CPU・RAM・VRAMのリアルタイムリソースモニター
llama.cppのコマンドラインオプションを覚えなくても、画面上のボタンとスライダーだけで分散推論が動きます。
環境
ノートPC
| 項目 | スペック |
|---|---|
| RAM | 64GB |
| GPU | RTX 3060 Laptop(6GB) |
| 接続 | Wi-Fi(実測 約100Mbps) |
デスクトップ
| 項目 | スペック |
|---|---|
| RAM | 64GB |
| GPU | RTX 5050(8GB) |
| 接続 | 有線LAN(実測 約100Mbps) |
合計でRAM 128GB、VRAM 約14GB。どちらも普通に買える家庭用PCです。
使用モデル
Laguna-S 2.1 UD-Q3_K_XL(GGUF)
118Bクラス、GGUFファイルは約55GB。
ベンチマーク
旧構成(ノートPC単体)
| 項目 | 速度 |
|---|---|
| Prompt処理 | 3.39 tok/s |
| 生成 | 0.56 tok/s |
新構成(2台分散・GUI経由)
| 項目 | 速度 |
|---|---|
| Prompt処理 | 13.5 tok/s |
| 生成 | 6.5〜6.8 tok/s |
Prompt処理が約4倍、生成速度が約12倍。家庭用PC2台でも118Bモデルが十分実用的な速度で動きます。
じゃあ「Claudeの下書き担当」は務まるのか?
速度が出たところで、そもそもの目的を検証してみます。
このLLMを「Claudeに投げる前の設計・下書き担当」として使いたかったわけなので、実際にGUIの一部をLaguna-S自身に書かせてみました。
結果
| 部品 | 判定 |
|---|---|
| テーマ配色 | ✅ 合格 |
| 状態取得関数 | ✅ 合格 |
| リソースバー | ❌ 文法エラー |
| ワーカー状態配信 | ❌ 文法エラー |
不合格の2つは、どちらもPowerShell特有の文字列展開が原因でした。
# こう書いてしまう(動かない)
"$title: エラー"
"http://$BindIp:$Port/"
# 正しくはこう
"$($title): エラー"
"http://$($BindIp):$Port/"
ロジックも設計も正しい。ただPowerShell固有の文法の罠を踏んだだけです。
| 項目 | 評価 |
|---|---|
| UI設計 | ◎ |
| ロジック | ◎ |
| 関数設計 | ◎ |
| PowerShell文法 | △ |
人間がPowerShellの文法だけレビューすれば、十分「下書き担当」として使えるレベルでした。
まとめ
コードが一切書けない人間でも、AIに全部書かせることでここまでのツールが作れました。
また、家庭用PC2台・合計128GB RAM・約14GB VRAMという環境でも、118BクラスのLLMを実用速度で回せることが分かりました。ローカルLLMは「ハイエンドGPUがないと無理」というイメージがありましたが、分散構成なら意外と現実的です。
現在は自分用として使っていますが、もう少し整理できたらGitHubで公開する予定です。
「llama.cppの設定が難しい」「ローカルLLMをもっと手軽に使いたい」と感じている方の参考になれば。
なお、まだ完成はしていないので、完成した暁にはgitに公開しようと考えています。