Mejora las Recomendaciones de Inicio en AWS con vLLM y Trainium

Mejora las Recomendaciones de Inicio en AWS con vLLM y Trainium

Mejorando las recomendaciones en sistemas de arranque en frío con AWS Trainium

El **arranque en frío** en sistemas de recomendación va más allá de los problemas de nuevos usuarios o nuevos elementos. Se trata de la completa ausencia de señales personalizadas desde el lanzamiento. Cuando un usuario llega por primera vez o cuando aparece nuevo contenido, no hay un historial de comportamiento que indique lo que le interesa, lo que lleva a una segmentación amplia y genérica. Esto no solo reduce las tasas de clics y conversión, sino que puede alejar a los usuarios antes de que el sistema tenga la oportunidad de aprender sus gustos. Las soluciones estándar, como el filtrado colaborativo o las listas de popularidad, no son suficientes para llenar este vacío de señal. Sin embargo, al utilizar **modelos de lenguaje grande (LLMs)** para el razonamiento en cero disparos, es posible sintetizar perfiles de interés detallados desde el primer día.

Implementación de vLLM para mejorar la experiencia del usuario

En este artículo, mostramos cómo utilizar **vLLM** para la inferencia escalable y emplear los **Contenedores de Aprendizaje Profundo de AWS (DLC)** para facilitar el empaquetado y despliegue de modelos. Generaremos expansiones de interés a través de **prompts estructurados**, codificaremos estos en embeddings, recuperaremos candidatos con **FAISS**, y aplicaremos validaciones para mantener los resultados enfocados. Este enfoque transforma el desafío del arranque en frío en un experimento científico, permitiendo iterar rápidamente en métricas de recomendación y mostrar un ROI claro para cada configuración.

Visión general de la solución

Construimos nuestra solución de arranque en frío sobre los chips **Amazon EC2 Trainium**. Para agilizar el despliegue del modelo, utilizamos DLCs con el **SDK de Neuron de AWS**, que instala módulos de PyTorch optimizados para Neuron y que incluye los controladores y el runtime de AWS Trainium preinstalados.

A través de un flujo de trabajo impulsado por **Jupyter**, cargamos datos, expandimos los prompts de interés mediante vLLM, los codificamos con codificadores distribuidos usando **NxD** en Amazon EC2 Trn1, y construimos índices FAISS para múltiples variaciones de LLM y codificadores.

Expansión de perfiles de interés de usuario con LLMs

Para este artículo, utilizamos el conjunto de datos de **Reseñas de Libros de Amazon** de Kaggle, que proporciona reseñas y metadatos de usuarios reales para miles de libros. Esta rica colección nos permite simular escenarios de arranque en frío, donde un usuario nuevo tiene solo una reseña o un «me gusta». Utilizamos un LLM para enriquecer el perfil de un nuevo usuario a partir de datos iniciales mínimos. Por ejemplo, si un usuario solo ha reseñado una novela de ciencia ficción, el LLM puede inferir subtemas relacionados que el usuario probablemente disfrutaría.

Codificación de intereses de usuario y recuperación de contenido relevante

Después de expandir los intereses, el siguiente paso es convertir esos intereses y nuestro catálogo de libros en vectores que podamos comparar. Exploramos tres tamaños del codificador **Google T5**: base, grande y XL. Los pasos incluyen cargar el codificador para cada tamaño, codificar resúmenes de libros en una matriz de NumPy y normalizarla, construir un índice FAISS sobre esos vectores normalizados y codificar el texto de interés expandido.

Medición y mejora de la calidad de recomendación

Ahora que hemos generado índices FAISS para cada emparejamiento de LLM-codificador y calculado la distancia media entre cada consulta de interés expandido y sus 10 vecinos más cercanos, sabemos exactamente cómo se agrupan las embeddings de cada modelo. Los resultados revelan que los modelos más grandes no siempre significan mejores resultados, y que a menudo, un modelo de 8B con un codificador T5-grande ofrece el mejor equilibrio entre rendimiento y eficiencia.

Próximos pasos y evaluación de la superposición de recomendaciones

Ahora que hemos determinado los modelos y codificadores a utilizar, así como la configuración óptima para nuestros datos, el siguiente paso es desplegar los modelos y definir un flujo de trabajo de producción que genere intereses expandidos listos para ser emparejados con más contenido.

La experiencia y los experimentos realizados en este artículo destacan cómo AWS Trainium, el SDK de Neuron y la inferencia escalable de LLM pueden abordar los desafíos del arranque en frío, enriqueciendo perfiles de usuario escasos para ofrecer mejores recomendaciones desde el primer día.

Fuente: AWS Blogs

Deja una respuesta