Mise en cache de caractéristiques pour les systèmes de recommandation avec Cachelib
Chez Pinterest, nous exploitons un grand système d'inférence en apprentissage automatique en ligne à grande échelle, où la mise en cache des caractéristiques joue un rôle critique pour atteindre l'efficacité optimale. Nous avons décidé d'adopter le projet Cachelib de Meta Open Source et d'étendre ses capacités pour construire une cache de caractéristiques flexible et à haute performance. Notre système repose fortement sur un système de mise en cache pour livrer des caractéristiques ML de manière efficace, et la position de la cache dans notre système est cruciale. Nous avons évolué notre architecture de système tandis que notre plateforme d'inférence ML passait de CPU à GPU. Nous avons expérimenté trois architectures de cache différentes : Cache DRAM fragmentée, Cache hybride DRAM + NVM sur un seul nœud et Nœuds de cache et d'inférence séparés. Nous avons également mis en place un pipeline pour réchauffer la cache froide sur les nouveaux nœuds avant qu'ils ne commencent à servir le trafic, qui consiste à enregistrer les demandes de caractéristiques, à télécharger les demandes enregistrées sur S3 et à répéter les demandes sur les nouveaux nœuds.