K-Means — це просто. Робити його швидким на GPU — це не так. Flash-KMeans — це реалізація точних k-засобів, орієнтована на IO, яка переосмислює алгоритм навколо сучасних вузьких місць GPU. Безпосередньо атакуючи вузькі місця пам'яті, Flash-KMeans досягає: - 30x прискорення порівняно з cuML - Прискорення у 200x порівняно з FAISS Використовуючи той самий алгоритм, тільки розроблений для сучасного обладнання. На мільйонному масштабі Flash-KMean можуть виконати ітерацію k-середніх за мілісекунди. Ось чому це важливо сьогодні: K-means завжди був офлайн-примітивом. Щось, що ви запускаєте один раз, щоб попередньо обробити дані і рухатися далі. Ці прискорення змінюють це. ↳ Векторні бази даних, такі як FAISS, використовують k-середні для побудови індексів пошуку. Швидший k-means означає, що ви можете динамічно переіндексувати дані у міру зміни, а не пакетно їх за одну ніч. ↳ Методи квантування LLM потребують k-середніх для повторного знаходження оптимальних кодових книг для кожного шару. Те, що займає години, тепер може тривати хвилини. ↳ Моделі MoE потребують швидкої маршрутизації токенів у момент виведення. Мілісекундні k-середні дозволяють запускати це всередині контуру висновку, а не лише в попередній обробці. 200x над FAISS — це число, яке потрібно внутрішньо засвоїти. FAISS є галузевим стандартом. Більшість систем векторного пошуку продакшн розташовані поверх нього. Посилання на статтю та код у наступному твіті!