Baseten、Kimi K3向けに同社が18倍高速だというRustトークナイザーを出荷

Michael Feilの新しいパッケージは、エージェントのプロンプトがKimi K3の100万トークンの上限に近づくにつれて増大するCPUのボトルネックを対象としている。

By · Published

Primary source: X

Why it matters

Million-token agent workloads can move latency away from the GPU and into prompt preparation. Baseten is competing by optimizing that overlooked CPU path and releasing the code for engineers to test.

Illustration of Baseten's Rust tokenizer speeding token processing for the Kimi K3 model, shown as streams of data feeding a CPU labeled Kimi K3.

Baseten のモデルパフォーマンスエンジニア Michael Feil (@feilsystem) は、Xのスレッドで 7月27日に、Moonshot AI の Kimi K3 モデル向けの長いプロンプトを準備するために必要な CPU 時間を削減する目的で構築された Rust 対応パッケージ、Baseten Tokenizer を出荷したと述べた。

パッケージは basetenkenizer という名前で、Baseten が結果を公開した時点で PyPI と Hugging Face 上の Kimi K3 tokenizer repository で入手可能だった。PyPI には Feil が検証済みメンテナとして記載されており、7月27日にアップロードされたバージョン 0.2.8 が表示されている。これは7月26日の2回のリリースに続くものだ。

Feil はサンフランシスコ在住の機械学習エンジニアで、Technical University of Munich のコンピュータサイエンス修士号を持つ。彼の個人サイト によれば、以前は Gradient.ai でモデルのトレーニングに携わり、埋め込み推論のためのオープンソースフレームワーク Infinity を作成した。Baseten の著者ページは彼を model performance engineer として紹介しており、以前の業績には埋め込みスループット、キャッシュ対応ルーティング、Kimi K2.5 のサービングが含まれる。

Baseten は CEO Tuhin Srivastava、CTO Amir Haghighat、chief scientist Phil Howes、Pankaj Gupta により2019年に設立された。創業者たちは機械学習システムをデプロイする際に直面した問題を基に Baseten を構築した:有用なモデルをトレーニングすることは、本番トラフィック下でそれを運用するよりも容易な場合がある。Baseten は現在、マネージドインファレンス、ポストトレーニング、モデル最適化を販売しており、Feil のトークナイザ作業は同社(サンフランシスコ)の中核的なプロダクト仮説の中に直接組み込まれている。

トークナイゼーションは100万トークンで目に見えるようになる

Tokenizers はテキストや構造マーカーをモデルが処理する数値トークン ID に変換する。そのステップは通常、プロンプトを GPU にロードして応答を生成する作業に比べてほとんど時間を消費しなかった。Kimi K3 はバランスを変える。というのもMoonshot AI のモデルカード はコンテキストウィンドウを1,048,576トークン、語彙数を160,000トークン、Mixture-of-Experts アーキテクチャを総パラメータ2.8兆、アクティブパラメータ1040億で仕様としているからだ。

エージェントワークロードはドキュメント、ツール出力、コード、中間状態をそのコンテキストに繰り返し追加することがある。プレフィックスキャッシュはモデルが既に見た素材を処理するために必要な GPU 作業を減らすことができるため、CPU 側のトークナイゼーションが最初のトークンまでの時間におけるより大きな割合を占めることになる。

Baseten は7月27日に公開した技術記事の中で、Basetenkenizer が短いシーケンスで OpenAI の tiktoken よりも完全な Kimi K3 サービングパスを6倍以上高速化し、100万トークンの入力では最大18倍速くしたと述べた。これらの数字は Baseten のベンチマークによるもので、独立した結果ではない。

Baseten の実装は、プロンプトセグメントを Python でループして処理していたパスを、ネイティブの Rust 呼び出し1回に置き換えるものだ。トークナイザは型付きの (text, allow_special) セグメントを受け取り、プレトークナイゼーションとバイトペアエンコーディングを実行し、最大で100万個に及ぶ整数を含む Python リストを先に作成することなく、NumPy 互換のトークン配列を返す。

セグメントの区別はプロンプトの整合性のために必要だ。Kimi K3 は構造セクションで制御マーカーとして <|open|><|close|> のような文字列を使用する。同じ文字列がユーザーテキスト内にある場合は通常のテキストのままでなければならない。Baseten によれば Basetenkenizer は以前のサービングパスが生成していたトークン ID を維持しつつ、その境界を保っている。

Feil は X のスレッドで、競合する多くのライブラリはこの作業に複数の CPU コアを使用していないと述べた。Basetenkenizer は Rayon のスレッドプールを 8 または 16 ワーカーに設定して使用し、同時実行を制限することで、繰り返されるプレトークンがバイトペアエンコーディングの前により多くのキャッシュヒットを生むようにしている。

Basetenの「最速」主張には限定的な範囲がある

Baseten の最も広い主張には条件が付く。ベンチマークは 54 個の型付きセグメントを含むレンダリング済みの Kimi K3 会話を使用し、52 個の固定された Intel Xeon vCPU 上で実行された。Baseten は各測定ラウンドごとに新しい決定論的コーパスを生成しており、プロンプト全体がウォームなトークナイザキャッシュから提供されるのを防いでいる。tiktoken の公開 encode 呼び出しはシングルスレッドであるのに対し、Basetenkenizer は利用可能な CPU セット全体で並列化している。

Baseten はまた、10,000 トークンでは gigatoken の方が高速であり、オフラインのファイルトークナイゼーションには gigatoken がより適したツールであり続けると報告した。100万トークンでは、Baseten のオンラインサービングテスト上で Basetenkenizer は gigatoken に対して1.41倍の優位を示した。支持される結論は Feil の投稿にある「世界最速」というラベルよりも狭い:Baseten はオンライン推論のために既に型付きセグメントにレンダリングされた Kimi K3 プロンプトに対する最速の完全パスを測定したのだ。

その特化は混雑するインファレンス市場における Baseten の立ち位置に適合する。GPU キャパシティは増えつつあるプラットフォーム群から提供されており、ベンダーはアクセラレータを取り巻くソフトウェア(スケジューラ、キャッシュ、カーネル、ネットワーキング、そして今やトークナイゼーション)で競争することを余儀なくされている。新たにリリースされたオープンウェイトモデルへのデイゼロサポートも、エンジニアリングチームが別のサービングスタックに落ち着く前にワークロードを取り込むチャンスを Baseten に与える。

Baseten はその競争のための相当な資本を有している。6月22日に Baseten は 時価総額130億ドルで15億ドルのシリーズFを発表した。リードは Altimeter Capital、Conviction Partners、Spark Capital で、Sands Capital と Wellington Management が共同リードとして名を連ねた。Baseten は当時、収益が前年から20倍、インファレンス量が40倍に増加したと述べたが、Baseten はこれらの数字を裏付ける財務諸表や絶対値を提示していない。

Basetenkenizer は MIT ライセンスで提供され、Python 3.10 以降をサポートする。そのリリースにより、Baseten の内部における Kimi K3 最適化作業の一部が、他のインファレンスエンジニアが自身のハードウェアでインストールしてベンチマークし、検証できるパッケージに変わった。

Reader comments

Conversation for this story loads after sign-in.