Historias RSS de Pinterest Eng... Nota

Historias RSS de Pinterest Engineering en Medium

La ingeniería de Pinterest, presentada en Medium, ofrece una visión detrás de escena de las innovaciones tecnológicas que impulsan la popular plataforma de descubrimiento visual. A través de artículos detallados, los ingenieros comparten sus ideas sobre su trabajo en escalabilidad, aprendizaje automático, infraestructura de datos y más. La publicación destaca la cultura de ingeniería de Pinterest, enfatizando la colaboración, la experimentación y la pasión por resolver problemas complejos. Los lectores pueden explorar temas como la creación de sistemas de recomendación, la optimización de la funcionalidad de búsqueda y el desarrollo de herramientas para el análisis de datos. El contenido ofrece perspectivas valiosas para los ingenieros y los entusiastas de la tecnología interesados en las complejidades de una plataforma a gran escala como Pinterest. Ya sea profundizando en los desafíos del reconocimiento de imágenes o la evolución de su infraestructura, la ingeniería de Pinterest en Medium ofrece una visión fascinante del lado técnico de un destino en línea querido.

Hilo de notas

Pinterest enfrentó desafíos en cuanto a la velocidad de ingeniería debido a la creciente complejidad tecnológica a medida que su base de usuarios aumentaba. La empresa reconoció que su estrategia de adopción de herramientas descentralizadas creaba cuellos de botella y un panorama abrumador para los nuevos ingenieros. Para abordar esto, Pinterest decidió reimaginar la experiencia de sus desarrolladores construyendo una Plataforma de Desarrollador Interna llamada PinConsole. PinConsole es un portal de desarrollador unificado construido sobre la plataforma de código abierto Backstage. Este enfoque de plataforma tiene como objetivo crear una capa de abstracción consistente, permitiendo a los ingenieros centrarse en la lógica de negocio en lugar de la infraestructura. Después de evaluar varias soluciones, Pinterest eligió Backstage por su fuerte adopción comunitaria, arquitectura de plugins extensible y desarrollo activo. PinConsole se integra con los sistemas de autenticación internos y LDAP de Pinterest para un modelo de entidad unificado. La arquitectura utiliza bases de datos PostgreSQL para el almacenamiento de datos y aplica el sistema de diseño Gestalt de Pinterest para la consistencia de la UI. Un componente clave es el plugin PinCompute, una integración personalizada de Kubernetes que simplifica la gestión de cargas de trabajo utilizando abstracciones específicas de Pinterest. Los widgets de página de inicio personalizados, como la integración de GitHub, mejoran aún más la experiencia del desarrollador al reducir el cambio de contexto y proporcionar información relevante.
CdXz5zHNQW_JMlsyqEFEB.png
"Pinterest migró 3,7 millones de líneas de código de Flow a TypeScript en ocho meses, lo que resultó en una mayor seguridad de tipos, experiencia del desarrollador y mejora en la contratación. La empresa inicialmente eligió Flow sobre TypeScript en 2016 debido a su adopción gradual y integración sin problemas con React. Sin embargo, cuando la industria se estableció en TypeScript como el estándar para la verificación de tipos de JavaScript, Pinterest decidió adoptarlo debido a su mejor apoyo comunitario, características del lenguaje y disponibilidad de talentos. La migración se realizó utilizando un enfoque de "gran explosión", dividiendo el proceso en tres fases: configuración, conversión e integración. La fase de configuración implicó configurar TypeScript y @typescript-eslint, mientras que la fase de conversión implicó migrar dependencias, ejecutar codemods y suprimir errores de ESLint. La fase de integración se centró en adaptar sistemas existentes para funcionar dentro del nuevo entorno de TypeScript. La empresa escribió un script para automatizar todo el proceso, minimizando conflictos de fusión y intervención manual. Después de validar la migración a través de pruebas automatizadas diarias, múltiples rondas de pruebas manuales y análisis estático byte-a-byte, Pinterest lanzó con éxito la rama de TypeScript. La empresa aprendió mucho de la comunidad de código abierto y contribuyó al codemod de flow-to-typescript de Stripe. La experiencia de Pinterest sirve como una lección valiosa para otras empresas que consideran una migración similar."
CdXz5zHNQW_u2LVnNpu5X.png
Pinterest, un motor de búsqueda visual, funciona en AWS y utiliza instancias de Amazon EC2 para su flota de cómputo. La empresa identificó un desafío significativo en la gestión de su infraestructura EC2, particularmente para sus sistemas de almacenamiento online, debido a la falta de información clara sobre el rendimiento de la red de EC2 y su impacto en la fiabilidad y el rendimiento de la aplicación. Para abordar esto, Pinterest desarrolló un sistema de monitorización del rendimiento de la red para su flota de EC2 e implementó técnicas para gestionar los picos de tráfico de red, asegurando un rendimiento de red fiable para las cargas de trabajo de servicio online críticas. La empresa experimentó problemas con el servicio de secuencias de usuario, lo que impulsó importantes mejoras en el compromiso del usuario, pero provocó latencia en el servicio y tiempos de espera de la aplicación. Durante una migración de instancias EC2, Pinterest observó una degradación significativa del rendimiento en muchos clústeres, lo que provocó tiempos de espera de la aplicación. La empresa descubrió que las instancias EC2 estaban experimentando limitación de la red debido a micropicos que excedían el límite de la red. Para hacer más transparente el comportamiento de la limitación de la red de EC2, Pinterest actualizó sus instancias para acceder a contadores sin procesar en una instancia EC2 utilizando herramientas como ethtool. La empresa modificó su agente interno de recopilación de métricas para raspar estos contadores e ingresarlos en su almacenamiento de métricas. Al implementar estas métricas ENA en toda su flota de EC2, Pinterest obtuvo una visibilidad sin precedentes del modelado del tráfico de AWS e implementó varias optimizaciones para mitigar la limitación de la red. La empresa también exploró técnicas para manejar los picos de tráfico de red, incluyendo la limitación de velocidad de S3 de grano fino, la optimización de copias de seguridad de datos y la compresión de red.
CdXz5zHNQW_DGfWhUSLvs.jpeg
La búsqueda de Pinterest es una superficie clave donde los usuarios pueden descubrir contenido inspirador que se alinea con sus necesidades de información, y la relevancia de la búsqueda mide qué tan bien los resultados de la búsqueda se alinean con la consulta de búsqueda. Para mejorar el modelo de relevancia de la búsqueda, se utiliza una guía de 5 niveles para medir la relevancia entre las consultas y los Pins. Se utiliza un modelo de lenguaje cross-encoder para predecir la relevancia de un Pin para una consulta, junto con el texto del Pin, y la tarea se formula como un problema de clasificación multiclase. El modelo se ajusta utilizando datos anotados por humanos, minimizando la pérdida de entropía cruzada.Para representar cada Pin, se utiliza un conjunto variado de características de texto, incluidos los títulos y descripciones de los Pins, los subtítulos de imágenes sintéticas, los tokens de consulta de alta participación, los títulos de los tableros seleccionados por el usuario y los títulos y descripciones de los enlaces. Sin embargo, el clasificador basado en LLM cross-encoder es difícil de escalar para la búsqueda de Pinterest debido a consideraciones de latencia en tiempo real y costo. Por lo tanto, se utiliza la destilación de conocimiento para destilar el modelo maestro basado en LLM en un modelo de relevancia de estudiante ligero.El modelo de estudiante utiliza características a nivel de consulta, características a nivel de Pin y características de interacción consulta-Pin para predecir puntuaciones de relevancia en una escala de 5 niveles. Se emplean la destilación de conocimiento y el aprendizaje semi-supervisado para entrenar el modelo de estudiante, lo que permite un uso eficaz de grandes cantidades de datos inicialmente no etiquetados y expande los datos a una amplia gama de idiomas de todo el mundo.Los experimentos offline demuestran la eficacia de cada decisión de modelado, incluida la comparación de modelos de lenguaje, la importancia de enriquecer las características de texto y la ampliación de las etiquetas de entrenamiento mediante la destilación. Los resultados online muestran una mejora del +2,18% en la relevancia del feed de búsqueda, medida por nDCG@20, y un aumento significativo en las tasas de cumplimiento de la búsqueda a nivel mundial.La canalización de modelado de relevancia propuesta se generaliza eficazmente en idiomas no encontrados durante el entrenamiento, y el modelo maestro de relevancia basado en LLM multilingüe se generaliza en idiomas no vistos. El trabajo futuro explorará la integración de LLM que se pueden servir, modelos multimodales de visión y lenguaje y estrategias de aprendizaje activo para escalar dinámicamente y mejorar la calidad de los datos de entrenamiento.
CdXz5zHNQW_lGLj8VappE.png