MTPやTPSを追いかけるのをやめ、24GB VRAMで動作するローカル27Bエージェントを手に入れた

単一プロンプトのベンチマークには興味がない。

私が重視するのは、ループだ。

コーディングエージェントは、数時間にわたって動作し続ける必要がある。編集、ターミナル呼び出し、リトライ、そして増大していくコンテキストを処理できなければならない。もしモデルが10回のプロンプトで失敗するようなら、それは役に立たない。

24GBのGPU 1枚で27Bモデルを動かせるかどうかを試したかった。Qwopus3.6-27B-v2をテストし、新しいバージョンを作成した:XReyRobert/Qwopus3.6-27B-v2-GPTQ-Pro-v1。

安定した24GBエージェントループのための私のセットアップは以下の通りだ:

  • Model: Qwopus3.6-27B GPTQ-Pro 4-bit
  • Engine: vLLM with GPTQ-Marlin
  • Context: 131k tokens
  • KV Cache: FP8 (fp8_e5m2)
  • Strategy: Prefix caching enabled
  • Constraint: max_num_seqs=1

なぜ max_num_seqs=1 なのか?

単一の24GBカードにおいて、並列処理はタダではない。複数のリクエストを実行すると、メモリの奪い合いが発生する。私は一つのリクエストをクリーンに完了させたい。壊れた2つの回答よりも、有用な1つの回答の方が価値がある。

また、投機的デコーディング(MTP)もスキップした。単一の3090では、MTPはメモリへの負荷と複雑さを増すだけで、長いコンテキストにおけるエンドツーエンドの速度向上には繋がらなかった。

本当に重要な指標:

  • Prefix cache ヒット率: ~83%
  • 平均 TTFT: 33k tokens 時で ~5.7s
  • Prefill スループット: ~1917 tok/s
  • Decode 速度: ~43 tok/s

Prefix cache がヒットすると、レイテンシは低下する。タスクを変更すると、キャッシュはコールド(cold)状態になり、レイテンシは上昇する。これは正常な挙動だ。目標は、タスクが安定した後に高いキャッシュ再利用率に戻ることである。

もし単一のプロンプトしかテストしていないなら、テストすべき対象を間違えている。コーディングエージェントにおいては、長期的な安定性をテストしなければならない。

単一のGPUでエージェントループを動かしていますか? KV cache や prefix caching にどのような工夫をしていますか?

Source: https://dev.to/xreyrobertibm/i-stopped-chasing-mtp-tps-and-got-a-local-27b-agent-that-actually-stayed-usable-on-24gb-vram-5897

学習コミュニティ(任意): https://t.me/GyaanSetuAi