K-Meansはシンプルです。GPUで高速にするのは問題ではありません。 Flash-KMeansは、現代のGPUボトルネックを回避したアルゴリズムを再考する、正確なk-meansのIO認識型実装です。 メモリのボトルネックに直接対処することで、Flash-KMeansは以下のことを達成します: - cuMLでの30倍の高速化 - FAISSによる200倍の高速化 まったく同じアルゴリズムを使っていますが、現代のハードウェア向けに設計されています。 百万スケールでは、Flash-KMeansはk-meansの反復をミリ秒単位で完了できます。 なぜ今日これが重要なのか、その理由を説明します。 K-meansは常にオフラインのプリミティブでした。一度だけ実行してデータを前処理し、次に進むものがいいです。これらのスピードアップがそれを変えます。 ↳ FAISSのようなベクターデータベースはk平均を使って検索インデックスを作成します。k平均が速いことで、データが変化したときに動的に再インデックスでき、一晩でバッチ化するのではなく、 ↳ LLM量子化手法は、層ごとに最適な重みコードブックを見つけるためにk-平均値を必要とします。数時間かかることが、今では数分で終わることもあります。 ↳ MoEモデルは推論時に高速なトークンルーティングを必要とします。ミリ秒k平均は、前処理だけでなく推論ループ内で実行可能にします。 FAISSの200倍は内部化すべき数字です。FAISSは業界標準です。ほとんどの本格的ベクトル探索システムはその上に配置されています。 論文とコードへのリンクは次のツイートでお願いします!