ディスカッション (11件)
LLMのパフォーマンス指標としてよく目にする「Nトークン/秒」という数字。これって実際の使用感において、どのくらいの速度感になるのでしょうか?実用性を左右するトークン生成速度のリアルな基準について深掘りします。
Token/sec(トークン毎秒)って、以下の3〜4つのことを考慮に入れないと意味がないよ。
- デコード時のt/s。つまりモデルが自己回帰的にテキストを生成している時。
- プリフィル時のt/s。つまりプロンプトの処理速度。
- コンテキストサイズが増えるにつれて、それら2つの数値がどう変化するか。2kコンテキストで50t/sでも、100kコンテキストで7t/sになる実装だと、現実の多くのユースケースでは見た目ほど使い物にならない。
- ユースケースは何?膨大なテキストを読んで「不正確率=12%」みたいな短い出力を出すのか、それとも短い質問から大量のテキストを生成するのか。これによって、プリフィル/デコード速度が実用的かどうかが大きく変わる。
例えば、DGX Sparkで動かしている私のDS4F推論だと、プリフィルは350 t/s、大きなコンテキストでも200 t/s出るけど、デコードは13 t/sなんだ。
Mac Ultraだとプリフィルが約400 t/sでデコードが35 t/s。
ユースケース次第でこの2つのシステムは劇的に性能が違ったり、ほとんど同じだったりする。一般的にローカル推論が許容範囲内になるには、遅くてもプリフィル100 t/s、生成10 t/sは欲しい。まあまあ快適ならプリフィル200〜400 t/s、生成15〜25 t/s。素晴らしい体験を得るならプリフィル数千t/s、生成100 t/sは必要だね。
まさに今はGenAIにおけるダイヤルアップ接続時代って感じだな。
デモにはもっと現実的な思考ログが必要だと思うよ。だって思考プロセスって通常、コード生成の少なくとも2〜3倍のトークンを消費するし、難しいタスクならもっと増えるからね。
世界が28.8kモデムを使っていた頃に1200ボーのモデムを使っていた時の記憶が蘇るよ。もっとも、モデムの方は各文字がそのまま文字として送られていたから、もっと規則的だったけど。色の変更とかをカウントしなければの話だけど、それって1200ボーでしか気づかないようなことだしね…
コードをストリーミングしてるだけなら30tok/sで十分に見えるけど、問題はツール呼び出しの規則とかメタデータ、「思考」プロセスみたいな背景ノイズが大量に含まれていることなんだよね。
面白いのが、5 tok/sでも普通の人間がタイピングするよりずっと速いのに、エージェントとしては驚くほど遅く感じるってことだ。
一方で、最近MimoやMinimaxをよく使ってるんだけど、こいつらは100-150 tokens/sを安定して出す。正直「速すぎる」と感じるくらいで、実際に何をしてるのか追いかけるのが難しいほど。サブエージェント用途には最高だけどね。
クールな可視化だね。でも、自分のセッションにおけるトークン生成の大半は、出力コードや目に見えるテキストには使われてないんだ。出力の大部分を占めるのは推論トークンで、それは入力ファイルやコンテキストを処理した後でしか発生しないから。
それなりの作業をしようとすると、役に立つテキストが出力される前に(プリフィルと生成を合わせて)数十万トークンを消費することになる。
自分はLLMを主に調査や勉強に使っていて、コード生成にはめったに使わない。だからプリフィル速度はすごく重要。たとえプリフィルが数百から数千トークンというレートでも、結局LLMの処理待ちでかなりの時間を費やしているよ(その間、他の作業をしていてボーッとしてるわけじゃないけどね)。
すごくいいね!
実際にそのレートでトークンがストリームされるのを見ない限り、数値を理解するのは難しい。これがそのレンダリングだ。
私も同じ理由で似たようなものを作ったよ: https://modal.com/llm-almanac/token-timing-simulator
今の出力レンダリングが、コードモードのシンタックスハイライトやツール呼び出し、薄いイタリックの推論表示など、一般的なUIに近づいているのはいいね。
私の実装には一つ特徴があって、作者やこれを真似して作る人が取り入れると良さそうな機能が「出力レイテンシの分布のモデリング」なんだ。私の実装はハッキーなやり方(p50, p90, p99の値から対数正規分布を概算)だけど、これをリアルな値に設定すると、多くのLLM UIで見られる「ジッター(ゆらぎ)」を再現できるよ。
antirezが言っている通り、生成tok/sはコンテキスト長の関数としてフラットにはならないから、両方のシミュレーターにとっての弱点だね。
トークンを消費するのは「思考」の部分じゃないの?あなたはただトークンを出力しているだけだし。
いいね。エージェントにサイトを「ライトモード」にするよう指示するか、ライト/ダークの切り替えオプションを追加してもらえるかな。