出来事の日付:2026年11月7日

ある開発者が、JavaScriptもWebAssemblyも使わず、CSSによる計算と専用に用意した可変フォントでモデルの演算を行い、GPT-2 Smallをウェブページ内で動作させる実演を行った。このプロジェクトは、従来の機械学習ソフトウェアを実用的に置き換えるものではなく、技術的な実験だ。好条件でも、生成速度はおよそ15秒に1トークンとなる。

実装は、語彙が7文字だけの、はるかに小さなTransformerから始まった。現代のCSSには、`calc()`による算術演算に加え、正規化やソフトマックスなどの処理に必要な関数が用意されている。公開前にPythonスクリプトでスタイルシートを生成したが、閲覧者がページを開いたときにPythonが実行されるわけではない。

大きな障害となったのは、ブラウザーによるCSSカスタムプロパティの評価方法だった。型を持たない変数は、数値を保存する変数として機能するのではなく、入れ子になった式が次々と大きく展開されることがある。各変数を`@property`ルールで登録すると、ブラウザーが型付きの値を計算するようになり、小規模なテストモデルで参照用のPython実装と同じ文字列を返せるようになった。

この直接的な方法を、約1億2400万パラメーターを持つGPT-2の規模に拡張することはできなかった。すべての乗算をCSSに書き出せば、たった1トークンを生成するだけでスタイルシートがギガバイト単位の大きさとなり、通常のブラウザーのリソースでは処理しきれない。その代わりに、このプロジェクトは可変フォントの内部機構を、型破りな行列演算装置として利用した。

可変フォントは通常、字形の太さや幅といった特性を補間する。そのHVARテーブルでは、字形の送り幅を複数のデザイン軸に沿った変化と関連付けられる。ブラウザーがその幅を計算するときには、軸の値に保存された差分を掛け合わせ、その結果を足し合わせる。数学的には、これはニューラルネットワーク全体で使われる内積に似ている。そこでモデルの値をフォントのテーブルに符号化することで、処理の大部分をブラウザーのフォント描画エンジンに移した。

計算を取りまとめ、出力を選ぶ役割は、引き続きCSSが担う。この手法はページのレイアウトや文字組みのための標準仕様を活用しているため、性能は推論専用のフレームワークを大きく下回り、互換性も比較的新しいブラウザー機能に左右される。また、学習済みの重みをスタイルシートとフォントに変換するために、多くの前処理が必要となる。

ブラウザーは依然として、生成されたアセットを読み込み、それぞれの推論をローカルで実行しなければならない。したがって、この実演はウェブプラットフォームの能力に負荷をかける試験であって、モデルに伴う計算コストを回避する近道ではない。同時に、極端な負荷の下で、ブラウザーが型付きプロパティや可変フォントの計算をどのように処理するかを、開発者が具体的に調べる手段にもなる。

この成果の主な価値は、宣言的なウェブ技術で何を表現できるかを示したことにある。ブラウザーのスタイル指定と文字組みのシステムは、汎用的な機械学習ランタイムとして設計されたものではないにもかかわらず、実際のTransformerを実行するのに十分な演算機構を備えていると示した。この実験はまた、ある計算を技術的に可能にすることと、日常的に使えるほど効率的にすることの間にある、実用上の境界も浮き彫りにしている。