xAIが新生Xレコメンデーションアルゴリズムを公開:FlashAttention-4とCuTe DSLを導入したTransformer基盤の大刷新
xAIによりXのレコメンデーションエンジンが一新され、オープンソースとして公開されました。新型アーキテクチャ「Phoenix (xrex)」では、FlashAttention-4やCuTe DSLによる可変長アテンション、シーケンスパッキングを用いた本格的なTransformerベースのランキングモデルが導入されています。
わかりやすい説明
Xのタイムライン(おすすめタブ)を決める仕組みが、従来の古いシステムから最新のAIモデル(Transformer)へ全面的に刷新されました。ユーザーが過去に見たポストや反応の履歴を、最新のGPU向け最適化技術(FlashAttention-4)を用いて高速かつ高精度に解析し、より関心の高いポストを予測して表示する仕組みへと進化しています。
重要ポイント
- 1Transformerベースの推薦システム(Phoenix/xrex)への移行
- 2CuTe DSLとFlashAttention-4を活用した超高速な可変長アテンション処理
- 3シーケンスパッキングによる不揃いなユーザー行動履歴の高効率バッチ処理
- 4Rustサービング層(home-mixer)と深層学習推論層を繋ぐProtobufスキーマの標準化
技術的な詳細
本コミットでは、新リポジトリ構成として`phoenix/xrex`および`grox`が追加され、Rustで実装された`home-mixer`とProtobuf経由で連携するTransformer推薦基盤が公開されました。特に注目すべきは、CuTe DSLで記述された可変長アテンションカーネル(`ranker_attention_varlen_fa4.py`, `ranker_candidate_attention_fa4.py`)とシーケンスパッキング(`sequence_packing.py`)の実装であり、ユーザー行動系列と候補ポストの交差アテンションを極限まで低遅延化・高スループット化しています。従来のHeavy Rankerなどの個別ヒューリスティックから、エンドツーエンドのニューラルランキングモデルへの構造移行が鮮明になっています。
影響を受けるユーザー
すべてのXユーザー(おすすめタイムラインの選定ロジックがAI化)およびコンテンツクリエイター、開発者
変更前後の比較
従来:SimClustersやTwHIN等の複数グラフ埋め込みとGBDT/Heavy Ranker主体の多段パイプライン。 今後:ユーザー行動履歴シーケンスをTransformerとFlashAttention-4で直接エンコード・スコアリングするエンドツーエンド主導のモデル。
アクションアイテム
- 直近の行動履歴(いいね・リポスト・滞在時間)がコンテキストとして強く評価されるため、ユーザーのエンゲージメント持続を狙ったコンテンツ設計を行うこと
- アルゴリズムがテキスト・文脈の深い意味理解(Transformer)を重視するため、関連トピックの一貫性を保った投稿を心がけること
- エンジニアはオープンソース化されたCuTe DSLカーネルやモデル定義を参照し、最新の大規模推薦実装をベンチマークすること
収益化・活用ヒント
- フォロワーの『直近の興味シーケンス』に合致する質の高い長文やメディア付きポストを投稿し、モデルの候補アテンションでのスコアを最大化する
- 単発のバズ狙いよりも、継続的にリプライや引用を促すコミュニティ型の発信で高いコンテキスト関連性を維持する
FAQ
Q. 従来のHeavy Rankerは完全に置き換わったのですか?
リポジトリ構成を見る限り、xAIによるPhoenix(xrex)Transformerモデルへの置き換え・近代化が進行しており、レコメンドの中核が深層学習ベースのシーケンスモデルに移行しています。
Q. CuTe DSLやFlashAttention-4が使われている理由は何ですか?
ユーザーごとの投稿閲覧数や行動履歴は長さがバラバラ(可変長)であるため、無駄なパディングを省いたシーケンスパッキングと低遅延なアテンション計算(FlashAttention-4)がミリ秒単位の推薦推論に不可欠だからです。
変更ファイル一覧
- + grox/core/data_loaders/data_types.py
- + grox/core/data_loaders/post_mapper.py
- + home-mixer/params/param.rs
- + phoenix/crates/serving/xai-recsys-proto/proto/recsys.proto
- + phoenix/python/common/xai-proto/proto/recsys.proto
- + phoenix/xrex/configs/xrecsys.py
- + phoenix/xrex/cutedsl/ranker_attention_varlen_fa4.py
- + phoenix/xrex/cutedsl/ranker_candidate_attention_fa4.py
- + phoenix/xrex/data/recsys/sequence_packing.py
- + phoenix/xrex/inference/model_runner.py
- + phoenix/xrex/models/layers.py
- + phoenix/xrex/models/recsys_attention.py
- + phoenix/xrex/models/recsys_feature_prep.py
- + phoenix/xrex/models/recsys_model.py
- + phoenix/xrex/models/transformer.py
- + phoenix/xrex/train/trainer_recsys.py