- Presentamos SilverTorch, una reinvención de los sistemas de recomendación que unifica todos los componentes de recuperación de contenido generado por el usuario bajo una arquitectura unificada.
- SilverTorch muestra Rendimiento hasta 23,7 veces mayor en comparación con los enfoques más modernos.. También muestra una eficiencia de costos de computación 20,9 veces mayor en comparación con una solución basada en CPU y, al mismo tiempo, mejora la precisión..
- Nuestro trabajo de investigación, “Antorcha plateada: Un sistema unificado basado en modelos para democratizar la recomendación a gran escala sobre GPU,"Aceptado para el seguimiento de artículos completos en SIGIR 2026, contiene detalles técnicos completos.
El sistema de recuperación dentro de los sistemas de recomendación de la industria ha consistido en microservicios unidos, con redes neuronales integradas de manera inconsistente. Nuestra recomendación puede ampliarse para servir a las personas en múltiples plataformas.. La recuperación es responsable de limitar millones de contenidos. (p.ej., carretes y fotos) hasta miles antes de pasarlos a sistemas de clasificación, todo en menos de 100 milisegundos.
Sin embargo, El diseño basado en microservicios tenía restricciones estrictas en cuanto a la complejidad del modelo y la cantidad de candidatos evaluados., en última instancia, creando un límite en la calidad de las recomendaciones que ven las personas en nuestras plataformas.
Para romper este techo, Hemos reinventado completamente nuestro ecosistema de recuperación en un sistema unificado basado en modelos. Antorcha plateada.
SilverTorch opera bajo un nuevo paradigma que llamamos Índice como modelo. Hemos construido nuestro sistema de recuperación como una única red neuronal y ahora expresamos diferentes microservicios como módulos modelo dentro de esta red neuronal integrada.. En Índice como modelo, los índices de elementos anteriores basados en microservicios utilizados para la recuperación se convierten en un tensor dentro del modelo.. Cuando un usuario abre su aplicación, una solicitud fluye a través de un modelo SilverTorch, completa todas las funciones de recuperación críticas (buscar artículos similares a los intereses del usuario, filtrado de elegibilidad, Reclasificar y calificar la probabilidad de participación frente a múltiples acciones de participación del usuario.), y devuelve una lista de candidatos de contenido de alta calidad para clasificar. Este nuevo diseño nos permite efectivamente aumentar la complejidad del modelado y la cantidad de candidatos evaluados sin romper la barra de menos de 100 milisegundos..
SilverTorch makes retrieval significantly more efficient, corre a escala, y permite mejores recomendaciones.
- Mayor rendimiento, menor costo total de propiedad (costo total de propiedad). En una evaluación de extremo a extremo de 80 millones de elementos, SilverTorch atendió 23,7 veces más solicitudes por segundo que una sólida línea de base multiservicio tradicional construida sobre la misma arquitectura modelo., al tiempo que mejora la eficiencia estimada del TCO en 20,9 veces..
- Probado a escala. Los resultados muestran que SilverTorch puede escalar a través de una familia de aplicaciones como el principal sistema de recuperación detrás del contenido de video y feeds que ven las personas..
- Mejores recomendaciones. Al hacer que la reclasificación neuronal y la puntuación de tareas múltiples sean prácticas dentro de presupuestos de latencia ajustados, SilverTorch ha permitido consistentemente mejoras en la calidad de la recuperación que no habrían sido prácticas bajo una arquitectura de microservicios..
Pasar de la malla de microservicios a una red neuronal integrada
El paradigma de microservicios que reemplazamos
La recuperación de recomendaciones tradicional se construye como una malla de microservicios.. Cuando un usuario abre una plataforma de redes sociales, la solicitud llega a un orquestador, que se despliega en un servicio modelo de torre de usuarios (que calcula una representación vectorial de los intereses del usuario., llamado "incrustación de usuario"), un servicio de recuperación combinado (que encuentra y filtra elementos candidatos según la similitud con el vector de usuario y las reglas de elegibilidad como el idioma y la geografía.), y un servicio de puntuación (que clasifica a los supervivientes). El orquestador fusiona los resultados y los transmite posteriormente.. Cada servicio tiene su propia base de código., a menudo en un lenguaje de programación diferente, con su propio ciclo de vida de implementación.
Esto funcionó bien en la era de la CPU.. Pero a medida que los sistemas de recuperación crecieron en escala y sofisticación, Tres problemas compuestos en límites estructurales que ninguna optimización a nivel de componente puede solucionar.:
- Latencia perdida por el movimiento de datos. Cada salto entre servicios cuesta tiempo de ida y vuelta a la red y gastos generales de serialización., consumiendo nuestro presupuesto de recuperación de menos de 100 milisegundos que debería financiar el cálculo real. Y porque filtrar, buscar, y la puntuación se diseñan de forma independiente, no se pueden optimizar conjuntamente.
- Inconsistencia de versión. El modelo de torre de usuarios, el índice del artículo, y las reglas de filtrado se actualizan cada una según su propia cadencia.. Cuando el modelo de usuario se envía v2 pero el índice de elementos todavía está en v1, el sistema consulta las incorporaciones v1 con representaciones de usuarios v2, creando brechas de calidad que ninguna clasificación posterior puede recuperar.
- Entornos de desarrollo aislados. Aprendizaje automático (ml) los ingenieros escriben PyTorch. Los ingenieros de infraestructura escriben C++. Diferentes ciclos de lanzamiento, diferentes configuraciones de prueba, diferentes modelos mentales. Cada mejora en la recuperación requiere traducir una idea entre dos entornos: semanas o meses por ciclo..
Optimizaciones a nivel de componentes como GPU Faiss ayudar haciendo que el microservicio específico sea más rápido, pero no resuelven los límites estructurales subyacentes. La arquitectura sigue siendo un sistema de servicios con artefactos que se pasan entre ellos..
El cambio: Todos los componentes son módulos modelo
SilverTorch replantea el paradigma desde cero. En lugar de diseñar un sistema de microservicios e insertar redes neuronales en él, Comenzamos con la red neuronal y diseñamos hacia afuera.. A este índice lo llamamos modelo.: Cada componente de recuperación: el índice de elementos, filtro de elegibilidad, capa de puntuación y torre de usuario: se convierte en un tensor u operador dentro de un único modelo de PyTorch. Eso significa un artefacto para implementar., un pase hacia adelante para correr y una fuente de verdad para lo que hay en el sistema.
Dentro del modelo
![imagen[1]-Antorcha plateada: Índice como modelo: un nuevo paradigma de recuperación para sistemas de recomendación para Windows 7,8,10,11-Winpcsoft.com](https://winpcsoft.com/wp-content/plugins/wp-fastest-cache-premium/pro/images/blank.gif)
Dentro de esta única red neuronal, diferentes regiones de la red manejan diferentes trabajos. Vecino más cercano aproximado (ANA) buscar Las regiones encuentran los artículos más similares a los intereses del usuario sin verificar cada artículo en el catálogo. (un bibliotecario que ha organizado bien los libros no recorre todos los estantes). Filtrado de elegibilidad Las regiones verifican que cada candidato pueda aparecer.: lenguaje correcto, país correcto, política de contenido correcto. Reclasificación de tareas múltiples Las regiones predicen la probabilidad de múltiples acciones de participación. (como, compartir, comentario) inmediatamente, luego combinarlos en un puntuación compuesta. Algunas regiones están escritas a mano por ingenieros.; otros se entrenan de un extremo a otro mediante retropropagación. Desde la perspectiva del tiempo de ejecución, todos ellos son nn.Module, el bloque de construcción estándar de PyTorch, y no se pueden distinguir entre sí..
El rediseño: Módulos PyTorch puros para cada etapa
Cómo funcionaba cada componente antes
Antes de SilverTorch, cada módulo en el proceso de recuperación de producción: búsqueda de ANN, filtrado de elegibilidad, reclasificación neuronal, puntuación compuesta: tenía una implementación clásica bien conocida, construido principalmente como servicios independientes en C++.
| Módulo | Implementación clásica | donde corre |
|---|---|---|
| búsqueda de RNA | FAISS | Versiones de CPU y GPU |
| Filtrado de elegibilidad | índice invertido | Versiones de CPU y GPU |
| Reordenación neuronal | Servicio de clasificación independiente en etapa inicial | Versiones de CPU y GPU |
| Puntuación compuesta | Agregación basada en reglas | solo CPU |
Estas implementaciones están maduras y probadas en batalla., pero cada uno es un servicio independiente con sus propias estructuras de datos., memoria, y modelo de ejecución. Podemos encadenarlos: ejecute ANN, luego entregue su salida al filtrado, pero no podemos implementar fácilmente optimizaciones entre módulos como "elija primero los grupos más prometedores, filtrar solo dentro de esos grupos, luego puntúe sólo a los supervivientes”. Este nivel de codiseño requiere módulos para compartir memoria., un gráfico de ejecución, y un paso de compilación.
La decisión pura de PyTorch
Para permitir ese codiseño, Tomamos la decisión de que cada módulo se reimplementaría en PyTorch puro. Bajo este paradigma:
- Todos los datos se expresan como tensores..
- Toda la lógica es tensorial., tensor.
- Cada módulo es un nn.Module que se ajusta a la interfaz estándar de PyTorch..
- En el momento de la ejecución, los módulos de filtro de índice ANN y Bloom no se pueden distinguir de un reclasificador de ML capacitado; ambos son nn.Module, ambos toman tensores y producen tensores.
Con cada módulo como nn.Module, El límite entre la ingeniería de aprendizaje automático y la ingeniería de infraestructura se disuelve: viven en la misma capa., compuesto libremente y optimizado conjuntamente en un único script de entrenamiento de PyTorch. Y porque todo el sistema se reduce a un único modelo de PyTorch., Nos beneficiaremos del trabajo más amplio de la industria de la IA para hacer que los modelos PyTorch sean más rápidos., como el propio torch.compile de PyTorch que reescribe automáticamente un modelo de PyTorch en un código de kernel de GPU más eficiente. Cada avance en ese ecosistema mejora el rendimiento del servicio de SilverTorch..
La decisión pura de PyTorch no significó tomar componentes de recuperación de la era de la CPU y envolverlos en nn.Module. Nos obligó a repensar las primitivas de recuperación en formas nativas de la ejecución de GPU y del propio gráfico del modelo.. El filtro de índice Bloom y la búsqueda ANN Int8 fusionada son dos ejemplos. En ambos casos, la ganancia no proviene de portar un servicio antiguo a PyTorch, sino a partir del rediseño del algoritmo subyacente en torno al comportamiento de la memoria de la GPU, diseño tensorial, y ejecución dentro del mismo pase hacia adelante. Ese es el manual fundamental de SilverTorch: una vez que los componentes de recuperación viven dentro de un modelo de PyTorch, El codiseño se hace posible., y ese codiseño es lo que desbloquea las ganancias.
El filtro de índice Bloom es un ejemplo de cómo SilverTorch rediseña la recuperación para GPU. En los sistemas tradicionales, El filtrado suele ser manejado por un índice invertido., que es eficiente en CPU pero más difícil de ejecutar bien en GPU. El problema es que el filtrado de recomendaciones a menudo tiene que comprobar muchos atributos de elementos a la vez., como el idioma, ubicación, o reglas de elegibilidad, y las listas de publicaciones también pueden variar drásticamente en longitud entre atributos y consultas., creando desequilibrio de carga intra-warp y divergencia warp en las GPU. Los hilos asignados a listas cortas se vuelven inactivos temprano, mientras que el warp permanece ocupado hasta que se completen los carriles que procesan las listas más largas.
SilverTorch lo reemplaza con un índice de Bloom almacenado directamente dentro del modelo.. Cada artículo recibe una firma compacta cuando se publica., y en el momento de la entrega, el modelo puede verificar rápidamente si un artículo coincide con la solicitud mediante operaciones de bits simples. Esto convierte el filtrado en el tipo de denso, Las GPU de trabajo paralelo son buenas para, y porque el resultado del filtro ya está dentro del modelo, puede fluir directamente a la búsqueda de ANN sin una llamada de servicio separada.
La búsqueda de ANN Int8 fusionada sigue la misma idea. Las bibliotecas ANN de uso general están diseñadas para encontrar elementos cercanos, pero los sistemas de recomendación necesitan más que una pequeña búsqueda del vecino más cercano. A menudo necesitan retirar un grupo mucho mayor de candidatos para que las etapas posteriores puedan tomar mejores decisiones de relevancia..
SilverTorch vuelve a implementar la búsqueda de ANN como parte del propio modelo. Almacena incrustaciones de elementos en un formato compacto Int8., lo que reduce el uso de memoria aproximadamente a la mitad en comparación con el típico 16 bits, y ejecuta la búsqueda con un núcleo GPU fusionado. Eso reduce el movimiento de datos y hace que la etapa de recuperación sea lo suficientemente barata como para devolver a muchos más candidatos., dando a los modelos posteriores más espacio para encontrar las mejores recomendaciones. Nuestra búsqueda de ANN cuantificada en Int8 muestra una pérdida de calidad limitada en comparación con la fuerza bruta, al tiempo que mejora significativamente el rendimiento del servicio.. Libera espacio para clasificar más elementos con capas más sofisticadas y mejora la precisión de la recuperación de un extremo a otro., y el algoritmo admite grandes recuentos de sondas y top-k; en la práctica, no observamos pérdida de recuperación de recuperación con 64 sondas y top-2048.
Beneficios: lo que aparece fuera del sistema
SilverTorch ofrece un impacto concreto en tres dimensiones: calcular la rentabilidad, calidad de recomendación, y velocidad de ingeniería.
Computar la rentabilidad
Moviendo la búsqueda de ANN, filtrado de elegibilidad, y puntuación compuesta en la GPU y combinándolas a través del codiseño de SilverTorch, atendemos muchas más solicitudes por segundo en la misma máquina. Más solicitudes por segundo significa que se necesitan menos máquinas para la misma carga de trabajo, y menos máquinas significan un menor costo informático por solicitud.
A continuación se muestra una comparación de una carga de trabajo de recuperación de producción de 80 millones de artículos, con tráfico de producción real reproducido en cada sistema con el mismo presupuesto de latencia:
| Métrico | CPU FAISS | GPU FAISS | Antorcha plateada |
|---|---|---|---|
| Calcular la rentabilidad vs.. Línea base de CPU | base | 5.9× | 20.9× (13.35× con reclasificación) |
| Máximo k superior | ilimitado (lento) | 2,048 | 100de miles |
| Reordenación neuronal | no soportado | no soportado | apoyado |
| Puntuación multitarea | no soportado | no soportado | apoyado |
La ventaja de 13,35 veces el costo por solicitud de SilverTorch proviene de varias fuentes: El kernel Int8 ANN fusionado es entre 2,2 y 14,7 veces más rápido que Faiss-GPU; el índice Bloom es 291-523 veces más rápido que el índice invertido de la CPU; El codiseño de sonda y filtro reduce el cálculo del filtro otros 30 veces.. La cuantificación Int8 en el gráfico del modelo reduce la memoria a la mitad en comparación con las líneas base de precisión total, aprovechando las instrucciones dp4a de la GPU, sin pérdida de recuerdo medible.
Calidad de recomendación
SilverTorch mejora la calidad de las recomendaciones al convertir la recuperación en una etapa de clasificación previa mucho más amplia y expresiva.. En los sistemas tradicionales basados en servicios, la recuperación generalmente está restringida a un conjunto de resultados de ANN relativamente estrecho, puntuado principalmente por simple similitud de incrustación, con modelos de relevancia más ricos diferidos a la clasificación en la última etapa.
SilverTorch espacio libre desbloqueado. Manteniendo la búsqueda de ANN, filtración, y puntuación dentro de un modelo, puede ampliar sustancialmente el embudo. En lugar de entregar sólo un pequeño conjunto de candidatos aguas abajo, puede atraer uno o dos órdenes de magnitud más de candidatos a través de capas adicionales de relevancia aprendida antes de la clasificación final. Eso hace que la recuperación contribuya significativamente a la calidad de las recomendaciones., no solo un paso de poda rápido.
Reordenación neuronal. SilverTorch presenta una capa de reclasificación basada en redes neuronales que va más allá de la similitud de productos punto y aplica un modelado de interacción usuario-elemento más completo a un conjunto de candidatos mucho más grande.. Estas capas pueden tomar la forma de perceptrones multicapa., autoatención apilada, o modelos de interacción más estructurados, como la mezcla de logits. Porque las representaciones de elementos y las funciones cruzadas permanecen en la memoria de la GPU y se ejecutan dentro del mismo modelo., SilverTorch puede darse el lujo de aplicar estas capas de clasificación más sofisticadas en una etapa más temprana del proceso., sobre muchos más candidatos de los que los sistemas de recuperación convencionales normalmente pueden.
Puntuación multitarea. SilverTorch también hace que la recuperación sea multiobjetivo de forma nativa. Una capa de puntuación combina predicciones para diferentes acciones del usuario en una única puntuación compuesta., por lo que la recuperación ya no se optimiza en torno a una señal de similitud aproximada. En cambio, puede evaluar un amplio grupo de candidatos frente a una noción más rica de participación del usuario antes de que comience la clasificación en la última etapa.. El resultado es un embudo más amplio con más inteligencia en su interior: más candidatos sobreviven a la recuperación temprana., y son examinados por más sofisticados, Puntuación multiobjetivo antes de pasar a la clasificación final..
Velocidad de ingeniería
Por último, SilverTorch acelera la rapidez con la que el equipo puede crear y enviar mejoras de recuperación. Porque todo el proceso reside en una base de código PyTorch., un ingeniero que trabaja en una nueva idea de recuperación escribe PyTorch y solo PyTorch. Ya no es necesario traducir un algoritmo de un cuaderno de investigación a un servicio C++., coordinar con un equipo de infraestructura separado, y ejecutar un ciclo de integración de varias semanas. El tiempo necesario para crear y publicar una nueva innovación se redujo de semanas a días..
Ingeniería para escala y frescura
SilverTorch está diseñado teniendo en cuenta la escalabilidad y la actualización del índice para garantizar que pueda admitir un sistema de recomendación a gran escala y distribuir contenido recién creado casi en tiempo real..
Ampliar y ampliar
Nuestra estrategia es escalar primero. Aprovechamos al máximo la GPU única de alto rendimiento orquestando cuidadosamente su jerarquía de memoria. (SRAM en chip, HBM residente en GPU, DRAM del anfitrión, DRAM remota) por lo que los datos se encuentran cerca de donde se calculan. Una vez que hayamos maximizado una sola GPU, nosotros escalar dentro de un host, aprovechando las interconexiones de gran ancho de banda entre tarjetas GPU en la misma máquina.
Cuando la red neuronal excede la capacidad de un solo host, usamos fragmentación de documentos: dividir el inventario de artículos (vídeos, publicaciones, fotos) entre hosts, como dividir el catálogo de una gran biblioteca en sucursales.
Para las redes dispersas muy grandes dentro del modelo (incrustando tablas que asignan cada elemento y cada característica del usuario a un vector aprendido) utilizamos AntorchaRec, Biblioteca de PyTorch para fragmentación de tablas dispersas. TorchRec difunde estas tablas en HBM, DRAM del host de la GPU, e incluso DRAM remota de CPU-host, desacoplar el movimiento de datos dispersos de la computación.
Índice de frescura
Con índice como módulo modelo., mantener la frescura del índice equivale a actualizar los pesos del modelo de una red neuronal en producción, a escala, sin desconectar el modelo.
SilverTorch desacopla la frescura del ciclo completo de publicación del modelo actualizaciones de transmisión. A medida que los parámetros del modelo se actualizan según la última capacitación, publicamos periódicamente el modelo completo como una instantánea completa. Entre publicaciones, un servicio de transmisión continua lee señales en tiempo real: elementos nuevos, características de participación actualizadas, elegibilidad modificada y aplica actualizaciones específicas en el lugar a los tensores específicos en el modelo en memoria. Actualiza la tierra sin interrumpir el servicio y sin volver a implementar el modelo..
El resultado aparece en la actualidad del contenido recomendado.. Las publicaciones del mismo día ahora representan una parte importante de las recomendaciones en las plataformas de redes sociales en comparación con los sistemas anteriores..
La evolución de SilverTorch y lo que sigue
SilverTorch es un viaje desde un sistema de microservicios con redes neuronales integradas hasta una recuperación de recomendaciones completa basada en modelos.. Dos cosas destacan en retrospectiva: La recuperación completa basada en modelos es viable y eficiente a escala de producción — la arquitectura derriba el muro entre infraestructura y modelado, y se convierten en una práctica unificada. También desbloquea una mejor experiencia de usuario. – capacidades como puntuación multitarea y reclasificación neuronal que los sistemas anteriores no podían ejecutar dentro del presupuesto de latencia.
El trabajo técnico pasó por tres etapas: nosotros primero reproducido cada módulo de recuperación de referencia - ANN, filtración, puntuación - en PyTorch. Este paso por sí solo produjo beneficios de la memoria GPU de alta velocidad y la reducción de los movimientos de datos.. nosotros entonces repensado cada módulo en un nativo de PyTorch, Manera nativa de GPU. De aquí proviene el filtro de índice Bloom e Int8 fusionado de SilverTorch, diseñado para componer en lugar de estar solo. Finalmente, habilitamos la propagación hacia atrás para módulos seleccionados escritos a mano para que puedan ser entrenado conjuntamente con el resto del modelo.
Mirando hacia el futuro
Index-as-Model es el paradigma adecuado para la próxima generación de sistemas de recomendación, y se adopta ampliamente dentro de Meta en diferentes aplicaciones. A medida que los sistemas de recomendación incorporan cada vez más modelos de lenguaje grandes (LLM) para comprender la intención del usuario y la semántica del contenido, La arquitectura de SilverTorch proporciona un punto de integración natural:
- Un LLM se puede conectar a SilverTorch como un módulo más: el sistema lo trata de manera idéntica a cualquier otro componente..
- La generación de elementos basada en LLM y el filtrado de SilverTorch utilizan los mismos patrones paralelos de GPU.
- El conocimiento del artículo se puede actualizar en tiempo real a través de la misma infraestructura de transmisión..
- El LLM y la puntuación tradicional comparten la misma memoria GPU: no hay movimiento de datos entre servicios.
En breve, SilverTorch nos permite integrar capacidades LLM directamente dentro del modelo de recuperación, en lugar de orquestarlos como un servicio separado que se ubica junto a él. Ese acoplamiento más estrecho es lo que eleva el límite del sistema para lo que la recomendación impulsada por LLM puede hacer a escala de producción..
Leer el documento
Para más detalles técnicos, vea nuestro artículo aceptado como trabajo de investigación completo en SIGIR 2026: “Antorcha plateada: Un sistema unificado basado en modelos para democratizar la recomendación a gran escala sobre GPU."
Expresiones de gratitud
Nos gustaría agradecer a las siguientes personas y a nuestros equipos asociados en Meta por su colaboración para hacer realidad este sistema..
ryan chang, Yijie Deng, Fei Ding, Eric Dong, Dúo de fans, Fang Fang, Pawel Garbacki, Hui Geng, Kevin Greer, Max Gu, Ke Huang, Chirag Jain, Anna Jung, Eric Kim, Da Kuang, Xialu Li, Sam Lin, Ziqi Liu, Yiming Ma, Lei Mao, Xiao Heng Mao, parque pedro, Lanbo ella, Sol Fangcheng, Jin Sun, Shuo-Tang, Harry Tran, Alex Wang, Byron Wang, Jiazhou Wang, Wang Liang, Yendo Wang, zhen wang, Zheng Wei, Hong Wu, Peng Xia, Judy Xiang, Bi Xue, Lan Xue, chao yang, Shuguang Ye, Hongzhang Yin, minyu, Keke Zhai, Qianqian Zhang, Rui Zhang, y Yingjiao Zhao.
Rui Li, Qifan Wang, Shengzhi Wang, Yubo Wang, Yue Ming Wang, Jiaqi Zhai, Erheng Zhong, y el equipo de modelado de RecSys.
Xin Yao Hu, Yanzun Huang, Rui Jian, mi ni, Qun Shu Zhang, Yuting Zhang, Yanli Zhao, y el equipo de la Fundación RecSys.
Bruce Deng, Congle Zhang, Luyi Guo, Min Li, Yang Liu, Kai Ren, Guoqiang Jerry Chen, Yimin Tan, Honghao Wei, Li Yu, Lu Zheng, y el equipo de facebook.
contenedor de carne, Xianjie Chen, Mingze Gao, Abhishek Kumar, Zheng Yu Su, Hao Tian Wu, y el equipo de Instagram
Shujian Bu, Chenglin Lu, Rui Wang, y el equipo de Hilos.
Shiyan Deng, Lu Fang, Hongyi Jia, Xu Dong Ma, Lujia Zhang, y el equipo de infraestructura de IA
Rongrong Hu, Shuyi Zheng, y el equipo de Meta AI.
