最近は古いモバイルGPUでもかなりのことができる

Reddit r/LocalLLaMA / 2026/3/26

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

要点

  • 開発者が、単一のRTX 3080 Mobile(16GB VRAM)上で動作する、完全ローカルの会話型LLMチャットボット(音声認識→LLM→テキスト読み上げ)を実演します。最小限のシステムRAM使用で、かつPythonへの依存はありません。
  • 構成は、対話生成にQwen 3.5 9Bを使用し(カスタムの talk-llama.cpp によりKVキャッシュの量子化を設定可能)、音声認識にはWhisper-small、感情表現を伴うテキスト読み上げにはOrpheus-3B-finetunedを組み合わせています。
  • TTSトークンを効率よく音声へ変換するために、ONNX Runtimeを介して最適化されたSNACデコーダを利用するカスタムC++ツールが用いられます。これにより、音声をチャンク(断片)生成してRAMから直接ストリーミング再生できるようにしています。
  • このデモは、豊富なA/Bテスト済みのシステムプロンプトと調整された生成パラメータによって、会話のリアリティ最大化を狙っています。2021年当時の古いモバイルGPUを使っているにもかかわらず、妥当なレイテンシを達成しています。
  • 全体として、この投稿は、量子化、C++実装、そして実行時の密な統合によって、現代のローカルAIボイスアシスタントが古い一般向けGPU環境でも現実的になりつつあることを示唆しています。
You can do a lot with an old mobile GPU these days

私が作ったものです。音声認識(speech-to-text)と音声合成(text-to-speech)のインターフェースを使った会話型LLMチャットボットです。設計目標は、リソースに制約のある環境でも最大限の会話のリアリティと没入感を実現することでした。

このデモでは、すべてが1つの RTX 3080 Mobile GPU(合計16 GBのVRAM)で動作しています。システムRAMの使用量は最小限で、Python依存関係もありません。すべてのコンポーネントは速度のためにC++で作られています。

コンポーネントは以下を含みます:

1) Qwen3.5-9B UD-Q6_K_XL(GGUF)— GGML.orgのwhisper.cppからのtalk-llama.cppの(わずかに)カスタマイズ版で動作するLLM。カスタマイズとして、KVキャッシュの量子化レベルを設定できる機能に加え、テキスト生成を最適化するための追加のQwen3.5生成パラメータ(repeat-penalty, presence-penalty)があります。コンテキストは49152トークンで、会話のターンを数時間分行うのに十分です。
2) Whisper-small(GGUF)— 正確なSTT(音声認識)のためのモデル。talk-llama.cppで動作します。
3) Orpheus-3B-ft UD-Q4_K_XL(GGUF)— 人気の「Tara」ボイスを備えた、主要なローカル向けテキスト読み上げ(TTS)モデル。GGML.orgのllama.cppのllama-serverで動作します。笑い、くすぐるような笑い、ため息などの感情タグを生成する機能が含まれています。
4) OrpheusのTTSによって生成された音声トークンを、ONNXランタイム上で最適化されたsnac24_dynamic_fp16(コミュニティ由来)のデコーダで高速に音声へ変換するための、カスタムで書いた「orpheus-speak」C++アプリ。デコーダは発話間でウォーム状態を維持し、音声WAVデータは3文チャンクでRAMに直接書き込み、そのまま再生します。これにより、長いテキストブロックに対しても正確で(比較的)迅速な音声生成が可能になります。
5) 徹底的に A/Bテストされたシステムプロンプトで、自然で聞き応えのある会話を可能にし、talk-llama.cppにコンパイルされています。
6) GPU上で動作するすべてのニューラルネット(LLM、STT、TTS、デコーダ)に対して、コンテキストと生成パラメータを最適化するランチャー用シェルスクリプト。

ユーザーの音声入力からシステムの音声出力までのレイテンシは、システムがより長いテキストブロックを生成するときにはまだやや高めですが、それでも2021年にリリースされたGPUとしてはかなり良い部類です(!)。

投稿者 /u/Responsible_Fig_1271
[link] [comments]