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 にどのような工夫をしていますか?
学習コミュニティ(任意): https://t.me/GyaanSetuAi