# 実験的WebGPUハイライター、言語文法の代わりに小型モデルを採用
出来事の日付:2026年9月9日
実験的なシンタックスハイライトプロジェクトが、WebGPUを通じて動作する小型モデルにより、従来のハイライターが使う言語固有の文法なしでソースコードを色分けできるかを検証している。gpu-lexerと呼ばれるこのプロジェクトは、27.5KBのブラウザ用バンドルを提供し、複数のプログラミング言語に同じモデルを適用する。
Gpu-lexerは、指定された言語に従ってコードを解析する代わりに、まず入力ファイルを単語、空白、改行、記号などの基本要素に分割する。次に、コンパクトなモデルが近くのトークンとファイル全体のより広い文脈の双方を考慮し、各要素を表示用クラスに割り当てる。同じラベルを持つ隣接要素は、呼び出し元アプリケーションに返されるスパンとしてまとめられる。
この手法は、ハイライターを言語非依存にすることを目的としている。デモでは、対応する文法を読み込むのではなく文脈からトークンの役割を推測するため、未知の言語や構文にもラベル付けを試みられるとしている。出力クラスは、プレーンテキストに加え、コメント、文字列、数値、キーワード、型、関数、定数、演算子など9カテゴリーに正規化されている。
開発者は、この実験が文法駆動型ハイライターと同等ではないことを明示している。学習対象から除外されたファイルでは、モデルによるトークンラベルの12.57%がShikiの出力と異なっていた。この数字は客観的なエラー率ではなく、Shikiとの一致度を測ったものであり、プロジェクトは、未知の言語や一般的な実環境のリポジトリでは性能がさらに大きく異なる可能性があると警告している。
公開された比較では、2026年第1四半期のGitHub Innovation Graphにおける上位25言語を網羅する、評価用に確保された1,069ファイルを使用した。結果は各言語のプッシャー数に基づいて重み付けされ、非対応言語にはゼロ点が与えられた。Shikiを正規化の基準とし、競合ツールのトークン名を同じ9つの出力クラスに変換した。
別のブラウザベンチマークでは、three.min.jsを繰り返し複製して作成した556万文字の入力をテストした。Apple M4 Pro、20コアGPU、24GBメモリーを搭載したMacBook Pro上で、macOS 26.6.2のChrome 152を使用し、1回のウォームアップ後に実行した。各ハイライターは専用ワーカー内で動作し、比較にはDOMレンダリングを含めなかった。また、各ツールが返すデータ構造も異なっており、これは生の処理時間から直接的な結論を導く際の制約となる注意点だ。
バンドルの測定は、9月8日に、ミニファイされBrotli圧縮されたブラウザ用ビルドを用いて行われた。言語対応範囲の拡大に伴ってサイズが増える可能性がある文法コレクションとは異なり、gpu-lexerはすべての言語に一つのバンドルを使用する。これが中心的なトレードオフであり、決定論的な言語定義の代わりに、コンパクトで汎用的な分類器を採用している。
開発者にとって、このプロジェクトは正確なハイライトをそのまま保証する代替手段ではなく、技術的なデモと捉えるのが最適だ。その価値は、WebGPUがブラウザ内で小型の文脈モデルを直接動作させられることを示した点にある。そのモデルの柔軟性が、確立された文法との不一致を上回る価値を持つかどうかは、それを利用するアプリケーションのコード、言語、精度要件によって決まる。



