K-Means je jednoduchý. Dělat to rychlé na GPU není. Flash-KMeans je IO-uvědomělá implementace přesných k-průměrů, která přehodnocuje algoritmus kolem moderních GPU úzkých míst. Přímým útokem na paměťová úzká místa dosahuje Flash-KMeans: - 30násobné zrychlení oproti cuML - 200násobné zrychlení oproti FAISS Používám přesně stejný algoritmus, jen navržený pro dnešní hardware. V milionovém měřítku mohou Flash-KMeans dokončit iteraci k-středů během milisekund. Zde je důvod, proč je to dnes důležité: K-means byl vždy offline primitiv. Něco, co spustíte jednou, abyste předzpracovali data a mohli jít dál. Tyto zrychlení to mění. ↳ Vektorové databáze jako FAISS používají k-means k vytváření vyhledávacích indexů. Rychlejší k-means znamená, že můžete dynamicky přeindexovat podle změn dat, ne je dávkovat přes noc. ↳ Metody kvantizace LLM potřebují k-středy k nalezení optimálních váhových kódových knih na vrstvu opakovaně. Co trvá hodiny, teď může trvat i minuty. ↳ MoE modely potřebují rychlé směrování tokenů v době inference. Milisekundové k-průměry umožňují spustit toto v inferenční smyčce, nejen v předzpracování. Číslo 200x nad FAISS je to, co je třeba si osvojit. FAISS je průmyslový standard. Většina produkčních vektorových vyhledávacích systémů na něm sedí. Odkaz na článek a kód najdete v příštím tweetu!