RSS-Geschichten von Pinterest ... Notiz

RSS-Geschichten von Pinterest Engineering auf Medium

Die Pinterest-Technik, auf Medium vorgestellt, bietet einen Blick hinter die Kulissen der technischen Innovationen, die die beliebte visuelle Entdeckungsplattform antreiben. Durch umfassende Artikel teilen Ingenieure Einblicke in ihre Arbeit an Skalierbarkeit, Machine Learning, Dateninfrastruktur und vielem mehr. Die Publikation hebt die Ingenieurkultur von Pinterest hervor, indem sie die Zusammenarbeit, das Experimentieren und die Leidenschaft für die Lösung komplexer Probleme betont. Leser können sich mit Themen wie dem Aufbau von Empfehlungssystemen, der Optimierung der Suchfunktion und der Entwicklung von Tools für Datenanalysen auseinandersetzen. Der Inhalt bietet wertvolle Perspektiven für Ingenieure und Technik-Enthusiasten, die sich für die Feinheiten einer groß angelegten Plattform wie Pinterest interessieren. Ob es um die Herausforderungen der Bilderkennung oder die Entwicklung ihrer Infrastruktur geht, die Pinterest-Technik auf Medium bietet einen faszinierenden Blick auf die technische Seite eines geliebten Online-Ziels.

Notizfaden

CdXz5zHNQW_slhDyOmW2y.png
Pinterest stand vor Herausforderungen bei der Ingenieurgeschwindigkeit aufgrund zunehmender technischer Komplexität, während seine Nutzerbasis wuchs. Das Unternehmen erkannte, dass seine dezentrale Tool-Adoption-Strategie Engpässe und eine überwältigende Landschaft für neue Ingenieure schuf. Um dies anzugehen, entschied sich Pinterest, seine Entwicklererfahrung durch den Bau einer internen Entwicklerplattform namens PinConsole neu zu gestalten. PinConsole ist ein einheitliches Entwicklerportal, das auf der open-source-Plattform Backstage aufbaut. Dieser Plattformansatz zielt darauf ab, eine konsistente Abstraktionsschicht zu erstellen, damit Ingenieure sich auf die Geschäftslogik konzentrieren können, anstatt auf die Infrastruktur. Nach der Bewertung verschiedener Lösungen wählte Pinterest Backstage aufgrund seiner starken Community-Adoption, seiner erweiterbaren Plug-in-Architektur und seiner aktiven Entwicklung aus. PinConsole integriert sich mit Pinterests internen Authentifizierungssystemen und LDAP für ein einheitliches Entitätenmodell. Die Architektur verwendet PostgreSQL-Datenbanken für die Datenspeicherung und wendet Pinterests Gestalt-Designsystem für eine konsistente Benutzeroberfläche an. Ein wichtiger Bestandteil ist das PinCompute-Plug-in, eine benutzerdefinierte Kubernetes-Integration, die das Verwalten von Workloads mit Pinterest-spezifischen Abstraktionen vereinfacht. Personalisierte Startseiten-Widgets, wie die GitHub-Integration, verbessern die Entwicklererfahrung weiter, indem sie den Kontextwechsel reduzieren und relevante Informationen bereitstellen.
CdXz5zHNQW_JMlsyqEFEB.png
CdXz5zHNQW_dc6w46JhEJ.png
Das Data-Engineering-Team von Pinterest entwickelt eine neue, groß angelegte Datenverarbeitungsplattform, die die aktuelle Hadoop-basierte Plattform Monarch ersetzen soll. Das Team untersuchte Kubernetes-basierte Systeme als Ersatz aufgrund ihrer wachsenden Popularität und zunehmenden Akzeptanz in der Big-Data-Community. Die neue Plattform musste bestimmte Kriterien erfüllen, darunter umfangreiche Unterstützung für Container, die Ausführung des benutzerdefinierten Spark-Forks von Pinterest sowie niedrigere Betriebs- und Wartungskosten. Das Team führte eine umfassende Bewertung der Ausführung von Spark auf verschiedenen Plattformen durch und entschied sich aufgrund ihrer Vorteile, einschließlich containerbasierter Isolation und Sicherheit, einfacher Bereitstellung und integrierter Frameworks, für Kubernetes-fokussierte Frameworks. Kubernetes bietet eine feiner abgestimmte Unterstützung für die Containerverwaltung und -bereitstellung als andere Systeme, aber es fehlt die integrierte Unterstützung für die Verwaltung, Speicherung und Verarbeitung von Daten. Das aktuelle Bereitstellungsmodell des Teams in Hadoop ist umständlich, und es wird ein einfacherer Ansatz mit Terraform, Container-Images und Helm verwendet. Die neue Plattform wird Kubernetes und EKS nutzen, um Monarch zu ersetzen, was mehrere Herausforderungen mit sich bringt, darunter die Integration von EKS in die bestehende Pinterest-Umgebung und die Suche nach Ersatz für Hadoop-Komponenten. Das Team hat eine neue Plattform, Moka, entwickelt, die in der Lage ist, Spark-Batch-Workloads zu verarbeiten, die nur auf nicht vertrauliche Daten zugreifen, und in Zukunft weitere Funktionen hinzufügen wird. Das anfängliche High-Level-Design von Moka umfasst ein System, das Spark-Batch-Workloads verarbeiten kann, wobei Aufträge über eine Reihe von Komponenten übermittelt und verarbeitet werden, darunter Spinner, Archer und der Spark-Operator. Weitere Details zu den wichtigsten anwendungsorientierten Aspekten ihrer Plattform wird das Team im nächsten Teil seiner Blog-Serie bekannt geben.
CdXz5zHNQW_bbfzbQhJcm.png
Bei Pinterest stehen ML-Ingenieure vor Herausforderungen bei der Optimierung der Feature-Entwicklung, Sampling-Strategien und Label-Experimenten aufgrund langsamer Daten-Pipelines, kostspieliger Feature-Iterationen und ineffizienter Compute-Nutzung. Um diese Herausforderungen anzugehen, erweiterte Pinterest die Fähigkeiten von Ray über das Training hinaus auf die Feature-Entwicklung, Sampling und Label-Modellierung. Die traditionelle ML-Infrastruktur war durch langsamer Daten-Pipelines, kostspieliger Feature-Iterationen und ineffiziente Compute-Nutzung eingeschränkt. Pinterest führte einen Ray-nativen ML-Infrastruktur-Stack ein, der sich auf vier Hauptverbesserungen konzentrierte: den Bau einer Ray-Daten-nativen Pipeline-API, effizientes Daten-Verbinden mit Iceberg-Bucket-Joins, Daten-Persistenz für effiziente Iteration und Ray-Daten-Optimierungen für große Workloads. Der neue Ray-basierte ML-Workflow reduziert die ML-Iterationszeiten um 10-mal, während die Infrastrukturkosten erheblich gesenkt werden. Die Ray-Daten-native Pipeline-API ermöglicht die Feature-Entwicklung, Sampling und Label-Transformationen nativ in Ray, eliminiert die Notwendigkeit von Spark-Backfills. Iceberg-Bucket-Joins ermöglichen schnelle und effiziente Feature-Verbindungen über verschiedene Quellen ohne vorherige Berechnung großer Tabellen. Daten-Persistenz ermöglicht effiziente Iteration durch Zwischenspeichern transformierter Features und Wiederverwendung, wenn anwendbar. Die Ray-Daten-Optimierungen erreichten eine 2-3-fache Geschwindigkeitssteigerung bei verschiedenen Pipelines, und der neue Workflow hat eine skalierbarere, effizientere und kosteneffektivere ML-Infrastruktur bei Pinterest freigeschaltet.
CdXz5zHNQW_vBYaC4X7rO.png
CdXz5zHNQW_OYKi1HZH8r.png
Der Startbildschirm von Pinterest entscheidend für die Benutzerbeteiligung und -entdeckung und verwendet einen zweistufigen Prozess, um Pins basierend auf den Interessen der Benutzer und der personalisierten Pin-Relevanz zu bewerten. Das Pinnability-Modell verwendet ein neuronales Netzwerk, um verschiedene Pin-, Kontext- und Benutzersignale zu verarbeiten, aber es hat Einschränkungen bei der Modellierung lebenslanger Benutzeraktivitäten. Das TransActV2-Modell adressiert diese Herausforderungen, indem es lange Benutzersequenzen nutzt, eine Next-Action-Verlustfunktion integriert und skalierbare Bereitstellungslösungen einsetzt. TransActV2 kann bis zu 16.000 Benutzeraktionen modellieren, integriert explizite Aktionseigenschaften und speichert Aktionen verlustfrei mit int8-Quantisierung. Das Modell verwendet ein multi-headed, punktweises Multi-Task-Netzwerk über einen breiten und tiefen Stapel und führt eine Next-Action-Verlustfunktion ein, um die Benutzeraktionen vorherzusagen. Die NAL-Funktion fordert das Modell auf, nicht nur die Wahrscheinlichkeit der Beteiligung vorherzusagen, sondern auch, was der Benutzer als nächstes tun wird. Das Modell erzielt signifikante Verbesserungen bei Offline- und Online-Metriken, einschließlich einer 13,31%igen Erhöhung der Top-3-Repinn-Trefferquote und einer 6,35%igen Erhöhung der Repinn-Rate. Die industrielle Ingenieurleistung des Modells ermöglicht effizientes Servieren und Bereitstellen, wodurch eine 75-81%ige Reduzierung der p99-Modell-Laufzeit und eine 103-338-fache Reduzierung der End-to-End-Schlussfolgerungszeit erreicht wird. Der reale Welt-Einfluss von TransActV2 ist massiv, mit Millionen mehr sinnvollen Interaktionen und signifikanten Verbesserungen der Benutzererfahrung.
CdXz5zHNQW_kxoAAaP5LS.jpeg
Die Big-Data-Infrastruktur von Pinterest verwendet Hadoop YARN auf AWS mit Auto-Scaling-Gruppen (ASGs), um große Datenmengen zu verarbeiten. Das Unternehmen verwendet Terraform, um Cluster zu erstellen und zu verwalten, aber das Herunterskalieren (Downsizing) ist ein komplexer Prozess, der manuelle Schritte erfordert. Um diesen Prozess zu vereinfachen, hat Pinterest das Hadoop Control Center (HCC) eingeführt, das eine automatische Skalierung von Clustern ermöglicht. Bevor HCC verfügbar war, umfasste das Herunterskalieren einen mühsamen und fehleranfälligen Prozess, bei dem Knoten ausgewählt, in Exclude-Dateien hinzugefügt und dann beendet wurden. HCC vereinfacht diesen Prozess, indem Benutzern ermöglicht wird, die gewünschte ASG-Größe anzugeben, und das Tool den Rest übernimmt. HCC integriert auch andere nützliche Tools für die Cluster-Verwaltung, einschließlich der Anzeige des Knotenstatus, der Berichterstattung über YARN-Anwendungen und der Anzeige von Subnetz- und Sicherheitsgruppendetails. Die Architektur von HCC besteht aus einem Manager-Knoten und Worker-Knoten, wobei der Manager als Zwischeninstanz und Cache fungiert. Der Hadoop-Operations-Server (HOS) ist das Kernstück von HCC, das die schwere Arbeit der Aktualisierung des JMX-Caches, der Aufrechterhaltung von Fabric-Verbindungen und der Aktualisierung von Exclude-Dateien übernimmt. HCC fragt regelmäßig JMX-Daten ab und konsolidiert sie, um Entscheidungen darüber zu treffen, was zu tun ist, und verwaltet den Prozess der Außerbetriebnahme von Knoten.
CdXz5zHNQW_GmhHD5ubWA.png
Die internen Entwicklerumfragen von Pinterest zeigten, dass die technische Dokumentation ein zentrales Problem darstellt, wobei die Probleme auf Qualität und Auffindbarkeit zurückzuführen sind. Traditionelle Lösungen, wie beispielsweise Doc-a-thons und leidenschaftliche Appelle von Führungskräften, haben keine dauerhaften Verbesserungen gebracht. Im Jahr 2021 entschied sich Pinterest für einen neuen Ansatz und untersuchte verschiedene Strategien zur Verbesserung der Dokumentationstools und -prozesse, mit einem Schwerpunkt auf der "Docs-as-Code"-Strategie. Diese Initiative, genannt PDocs, zielte darauf ab, die Qualität der technischen Dokumentation zu erhöhen und die Kultur der Dokumentation bei Pinterest zu verändern. Die "Docs-as-Code"-Philosophie beinhaltet das Schreiben von Dokumentation unter Verwendung der gleichen Prozesse wie für Code, einschliesslich der Verwendung von Auszeichnungssprachen, Quellcodeverwaltung, Code-Review-Tools und statischen Site-Generatoren. Durch die Einführung dieser Strategie wollte Pinterest Dokumentationsprobleme lösen, gute Dokumentationspraktiken fördern, die Qualität kontrollieren und die Auffindbarkeit verbessern. PDocs, ein massgeschneiderter statischer Site-Generator, wurde entwickelt, um Dokumentationsprojekte aus verschiedenen Dateipfaden und Repositories automatisch zusammenzufassen und eine einzige zentrale Dokumentationsseite zu erstellen. PDocs ermöglicht eine Entwicklererfahrung, bei der Ingenieure eine einfache Konfigurations- und Markdown-Datei in ein beliebiges Repository ablegen können, die dann auf der zentralen Dokumentationsseite erscheint, sobald sie zusammengeführt wurde. Die PDocs-Benutzeroberfläche wurde projektorientiert gestaltet und bietet Funktionen wie Favoriten, kürzlich angesehen und eine "veröffentlichte"- oder "Entwurfs"-Einstellung, um das Vertrauen der Leser zu erhalten.
CdXz5zHNQW_I5dnAJn3pO.png
Pinterest ist eine einzigartige Plattform, auf der Nutzer, bekannt als Pinner, Inspiration und Ideen für verschiedene Aspekte ihres Lebens finden. Das Ziel der Plattform ist es, eine personalisierte Erfahrung zu bieten, indem Nutzern Inhalte angezeigt werden, die für ihre Interessen und Suchanfragen relevant sind. Pinterests Ansatz zur Personalisierung unterscheidet sich von anderen Plattformen, da er Qualitätszeit über die auf der Plattform verbrachte Zeit stellt. Das Unternehmen glaubt, dass ein Gleichgewicht zwischen verschiedenen Ansätzen zur Inhaltsbewertung notwendig ist, wobei explizite Interaktionssignale, Community-Richtlinien und umfragebasierte Personalisierung einbezogen werden. Pinterest verwendet Umfragen, um Feedback von Nutzern zu sammeln und eine gesündere und inspirierendere Erfahrung zu schaffen. Die Umfragen der Plattform sind so konzipiert, dass sie rigoros und effektiv sind, wobei ein Expertenteam sicherstellt, dass die Umfragen gut gestaltet und nützlich sind. Die Umfragen haben maßgeblich dazu beigetragen, dass Pinterest ein positives und inspirierendes Erlebnis für die Nutzer schaffen kann. Jüngste Forschungsergebnisse zeigen, dass die Plattform branchenführend ist, was ihre Auswirkungen auf das Wohlbefinden der Nutzer betrifft. Pinterests Ansatz zur Personalisierung wird von den Prinzipien des "Inspired Internet Pledge" geleitet, der Unternehmen auffordert, das Wohlbefinden der Nutzer zu priorisieren und eine gesündere Internet-Erfahrung zu schaffen. Durch die Verwendung von Umfragen und die Priorisierung des Wohlbefindens der Nutzer beweist Pinterest, dass es möglich ist, ein sichereres und gesünderes Online-Erlebnis zu schaffen. Insgesamt unterscheidet sich Pinterest durch seinen einzigartigen Ansatz zur Personalisierung und sein Engagement für das Wohlbefinden der Nutzer von anderen Social-Media-Plattformen.
CdXz5zHNQW_xMjUEWeEAQ.png
Das Empfehlungssystem des Pinterest-Startfeeds hat ein mehrstufiges Design angenommen, und das Team hat einen wichtigen Meilenstein mit einer sophisticateden Vor-Ranking-Schicht erzielt, die Geschäftsmetriken verbessert hat. Das ursprüngliche Design hatte Einschränkungen, darunter Bereitstellungsbemühungen, Herausforderungen bei der automatischen Neu-Trainierung von Modellen und eine Zweiturm-Architektur, die nicht in der Lage war, Item-Interaktionen effektiv zu erlernen. Das Team hat grundlegende Verbesserungen vorgenommen, um die Vor-Ranking-Schicht zu modernisieren, einschließlich eines neuen System-Entwurfs, einer Logging-Pipeline und einer Servier-Architektur. Das neue Design umfasst eine request-ebene Unterkomponente und eine item-ebene Unterkomponente, die gemeinsam trainiert und während der Servierung entkoppelt werden. Das Team hat auch eine frühe Trichter-Logging-Pipeline implementiert, um die Vor-Ranking von der Rangfolge zu unterscheiden und unvoreingenommene Daten in die Ausbildung aufzunehmen. Die Servier-Architektur-Entwurf umfasst eine Wurzel-Blatt-Architektur, um CPU- und Speicher-Overhead zu minimieren. Das Team hat auch die Modell-Destillation angenommen, um das Vor-Ranking-Modell besser mit dem L2-Ranker auszurichten. Online-Experimente haben signifikante Gewinne bei der Engagement-Verhaltensweise gezeigt, und das Team hat auch an der Einrichtung eines Auto-Neu-Trainierungs-Rahmens gearbeitet, um frische Engagement-Daten auszunutzen. Das Team arbeitet weiter an Modell-Innovationen, Daten-Stichproben, Verbesserungen der Modell-Architektur, Verlust-Exploration und Servier-Optimierung.
CdXz5zHNQW_P7QrX8S0r6.png
Bei Pinterest lautet die Mission, Benutzer dazu zu inspirieren, ein Leben zu kuratieren, das sie lieben, was auf state-of-the-art-Empfehlungs- und Anzeigenmodellen basiert, die auf Zehntausenden von Petabytes an Daten trainiert werden. Diese Modelle treiben personalisierte Empfehlungen an, indem sie Benutzern Inhalte, die mit ihren Interessen übereinstimmen. Das Experimentieren mit Funktionen ist eine gemeinsame Aufgabe, und der erste Schritt besteht darin, neue Funktionen in das Trainingsdataset zu integrieren. Die einfachste Methode, Funktionen zu integrieren, ist durch Forward-Logging, aber diese Methode birgt Herausforderungen wie hohe Kalendertagekosten, hohe Entwicklungszeitkosten, mangelnde Isolation, Ressourcenverschwendung und Instabilität. Feature-Backfill ist eine Alternative zu Forward-Logging, die häufig verwendet wird, um diese Herausforderungen anzugehen. In diesem Blog-Beitrag erkunden die Autoren, wie sie ihre Feature-Backfill-Lösung entwickelt haben, indem sie verschiedene Techniken einsetzen, um Kosten und Iterationszeit um bis zu 90x zu reduzieren. Die Autoren entwickelten eine initiale Backfill-Lösung, um Funktionen innerhalb ihrer Trainings-Tabellen zu materialisieren, die als wiederverwendbares Airflow-DAG fungiert, das von ML-Ingenieuren ausgelöst wird. Diese Lösung hat jedoch Herausforderungen wie keine gleichzeitigen Backfills, hohe Rechenkosten und manuelle Partitionierung. Um diese Herausforderungen anzugehen, entwickelten die Autoren eine v2-Version, indem sie einen zweistufigen Backfill-Ansatz übernahmen, der den Prozess in zwei Schlüsselstufen aufteilt: Feature-Staging und Feature-Förderung.
CdXz5zHNQW_YKhzxUkvad.png
Die Experimentierplattform von Pinterest, Helium, führt täglich Experimente durch, um Erkenntnisse für Produktentscheidungen und Geschäftsstrategien zu gewinnen. Als die Skalierung der Experimente jedoch wuchs, traten Herausforderungen auf, darunter Verzögerungen bei der Datenübernahme, Schwierigkeiten bei der Nachbereitung übersprungener Metriken und häufige Skalierbarkeitsprobleme diese Herausforderungen zu bewältigen, entwickelte Pinterest das Unified Dynamic Framework (UDF), eine skalierbare und resilient Lösung, die die Art und Weise, wie Metriken berechnet werden, revolutioniert hat. UDF unterstützt 100-mal mehr Metriken und ist für eine Skalierung auf 500-mal in der Zukunft ausgelegt, beschleunigt die Metrik-Lieferung und reduziert den Ingenieur-Aufwand von Monaten auf Tage. Das Framework standardisiert die Metrik-Verarbeitung, entlastet die Infrastruktur-Herausforderungen und Pipeline-Erstellung-Komplexitäten. UDF löst Abhängigkeiten, Nachbereitungs-Komplexitäten und Skalierbarkeitsprobleme, ermöglicht schnelleres Experimentieren und Innovation. Das Framework hat die Entwickler-Geschwindigkeit, Flexibilität, Skalierbarkeit, Geschwindigkeit und Zuverlässigkeit verbessert, treibt Innovation und Geschäftsergebnisse voran. Die Standardisierung der Metrik-Berechnung auf der Experimentierplattform hat immense Verbesserungen gebracht, ermächtigt Experimentieren und liefert Wert. Das UDF hat die Metrik-Berechnung auf Pinterest revolutioniert und sein Einfluss wird in Zukunft weiter wachsen.
CdXz5zHNQW_HsQvhLZ0Fu.png
Das Multi-Gate-Mixture-of-Experts-Modell (MMoE) verbessert die Modellierung der Werbeanzeigen-Interaktion, indem es dynamisch Ressourcen auf spezielle Teilnetzwerke (Experten) verteilt. Dies verbessert die Effizienz, die Verallgemeinerung und das Multi-Task-Lernen im Vergleich zu einzelnen Modellen. MMoE nutzt Experten mit verschiedenen Architekturen wie DCNv2, MaskNet und FinalMLP, die strategisch ausgewählt werden, basierend auf Leistung und Kosten. Das Modell verwendet auch gemischte Präzisionsinferenz und leichte Gate-Schichten, um die Infrastrukturkosten zu reduzieren, ohne die Leistung zu beeinträchtigen. Die Wissensdestillation verbessert das Modell weiter, indem es Wissen von bestehenden Produktionsmodellen auf neue Modelle überträgt. Dies minimiert Leistungslücken, die durch begrenzte Datenretentionszeiträume verursacht werden, und ermöglicht es neuen Modellen, von nicht verfügbaren historischen Daten zu lernen. Die Destillation verbessert sowohl Offline- als auch Online-Metriken signifikant, übertreffe das Baseline-DCNv2-Modell. Die Technik ist vorteilhaft sowohl bei Batch-Training als auch bei Modell-Neu-Training-Szenarien, wie z.B. Feature-Upgrades. Allerdings wird die Destillation während des inkrementellen Trainings entfernt, um Überanpassung zu vermeiden. Der kombinierte Ansatz von MMoE und Wissensdestillation führt zu erheblichen Verbesserungen bei der Werbeanzeigen-Übereinstimmungsqualität und der Benutzererfahrung. Dies führt zu relevanteren Empfehlungen und verbessertem Benutzerengagement auf der Plattform.
CdXz5zHNQW_Eh609KFgJk.png
"Pinterest migrierte 3,7 Millionen Codezeilen von Flow zu TypeScript in acht Monaten, was zu besserer Typsicherheit, einer verbesserten Entwicklererfahrung und einer erleichterten Rekrutierung führte. Das Unternehmen hatte 2016 zunächst Flow gegenüber TypeScript bevorzugt, weil es eine graduelle Einführung und eine nahtlose Integration mit React bot. Als die Branche jedoch TypeScript als Standard für die JavaScript-Typüberprüfung etablierte, entschied sich Pinterest für die Übernahme aufgrund der besseren Community-Unterstützung, der Sprachfunktionen und der Verfügbarkeit von Talenten. Die Migration wurde mittels eines "Big-Bang"-Ansatzes durchgeführt, der den Prozess in drei Phasen unterteilte: Einrichtung, Konvertierung und Integration. Die Einrichtungsphase umfasste die Konfiguration von TypeScript und @typescript-eslint, während die Konvertierungsphase die Migration von Abhängigkeiten, das Ausführen von Codemods und das Unterdrücken von ESLint-Fehlern beinhaltete. Die Integrationsphase konzentrierte sich auf die Anpassung bestehender Systeme an die neue TypeScript-Umgebung. Das Unternehmen schrieb ein Skript, um den gesamten Prozess zu automatisieren und Merge-Konflikte und manuelle Eingriffe zu minimieren. Nachdem die Migration durch tägliche automatisierte Tests, mehrere Runden manueller Tests und byte-genauere statische Analyse validiert wurde, rollte Pinterest den TypeScript-Zweig erfolgreich aus. Das Unternehmen lernte viel von der Open-Source-Community und trug zu Stripes flow-to-typescript-Codemod bei. Pinterests Erfahrung dient als wertvolle Lektion für andere Unternehmen, die eine ähnliche Migration in Erwägung ziehen."
CdXz5zHNQW_u2LVnNpu5X.png
Pinterest, eine visuelle Suchmaschine, läuft auf AWS und nutzt Amazon EC2-Instanzen für seine Rechenkapazität. Das Unternehmen identifizierte eine erhebliche Herausforderung bei der Verwaltung seiner EC2-Infrastruktur, insbesondere der Online-Speichersysteme, aufgrund mangelnder Transparenz bezüglich der Netzwerkperformance von EC2 und deren Auswirkungen auf die Zuverlässigkeit und Performance der Anwendungen. Um dies zu beheben, entwickelte Pinterest ein Netzwerk-Performance-Monitoring für seine EC2-Flotte und implementierte Techniken zur Steuerung von Netzwerk-Spitzen, um eine zuverlässige Netzwerkperformance für kritische Online-Serving-Workloads sicherzustellen. Das Unternehmen hatte Probleme mit dem User-Sequence-Serving, was zwar zu erheblichen Gewinnen bei der Nutzerbindung führte, aber auch zu Latenzen und Anwendungsausfällen führte. Während einer Migration von EC2-Instanzen erlebte Pinterest eine deutliche Performance-Verschlechterung über viele Cluster hinweg, was zu Anwendungsausfällen führte. Das Unternehmen stellte fest, dass die EC2-Instanzen aufgrund von Mikrobursts, die die Netzwerkkapazität überschritten, Netzwerk-Drosselungen erlebten. Um das Verhalten der EC2-Netzwerkdrosselung transparenter zu gestalten, aktualisierte Pinterest seine Instanzen, um über Tools wie ethtool auf Rohdaten-Zähler einer EC2-Instanz zuzugreifen. Das Unternehmen modifizierte seinen internen Metrikerfassungsprozess, um diese Zähler auszulesen und in seinen Metrikspeicher zu importieren. Durch die Einführung dieser ENA-Metriken in seine gesamte EC2-Flotte erlangte Pinterest beispiellose Einblicke in das AWS Traffic Shaping und implementierte verschiedene Optimierungen zur Minderung von Netzwerk-Drosselungen. Das Unternehmen untersuchte auch Techniken zur Behandlung von Netzwerk-Spitzen, darunter fein granulare S3-Ratenbegrenzung, Optimierung der Datensicherung und Netzwerkkompression.
CdXz5zHNQW_DGfWhUSLvs.jpeg
Die Pinterest-Suche ist eine wichtige Oberfläche, auf der Benutzer inspirierende Inhalte entdecken können, die ihren Informationsbedürfnissen entsprechen, und die Suchrelevanz misst, wie gut die Suchergebnisse mit der Suchanfrage übereinstimmen. Um das Suchrelevanzmodell zu verbessern, wird eine 5-Stufen-Richtlinie verwendet, um die Relevanz zwischen Anfragen und Pins zu messen. Ein Cross-Encoder-Sprachmodell wird verwendet, um die Relevanz eines Pins für eine Anfrage vorherzusagen, zusammen mit dem Pin-Text, und die Aufgabe wird als Multiklassen-Klassifizierungsproblem formuliert. Das Modell wird mit menschlich annotierten Daten fein abgestimmt, indem der Kreuzentropieverlust minimiert wird.Um jeden Pin darzustellen, wird eine vielfältige Menge von Textmerkmalen verwendet, einschließlich Pin-Titeln und -Beschreibungen, synthetischen Bildunterschriften, hochengagierten Anfrage-Tokens, benutzerkuratierten Board-Titeln und Link-Titeln und -Beschreibungen. Allerdings ist der Cross-Encoder-LLM-basierte Klassifizierer aufgrund von Echtzeit-Verzögerungen und Kostenüberlegungen für die Pinterest-Suche schwer skalierbar. Daher wird Wissensdestillation verwendet, um das LLM-basierte Lehrermodell in ein leichtes Schüler-Relevanzmodell zu destillieren.Das Schülermodell verwendet Anfrage-merkmalen, Pin-merkmalen und Anfrage-Pin-Interaktionsmerkmalen, um 5-Skalen-Relevanzwerte vorherzusagen. Wissensdestillation und semi-überwachtes Lernen werden eingesetzt, um das Schülermodell zu trainieren, das effektiv eine große Menge an ursprünglich unbeschrifteten Daten nutzt und die Daten auf eine breite Palette von Sprachen aus der ganzen Welt erweitert.Offline-Experimente zeigen die Wirksamkeit jeder Modellierungsentscheidung, einschließlich des Vergleichs von Sprachmodellen, der Bedeutung der Anreicherung von Textmerkmalen und der Skalierung von Trainingslabels durch Destillation. Online-Ergebnisse zeigen eine Verbesserung der Suchrelevanz um +2,18 % im Suchfeed, gemessen durch nDCG@20, und einen deutlichen Anstieg der Sucherfüllungsraten weltweit.Die vorgeschlagene Relevanzmodellierungspipeline verallgemeinert sich effektiv auf Sprachen, die während des Trainings nicht begegnet sind, und das multilinguale LLM-basierte Relevanzlehrmodell verallgemeinert sich auf ungelöste Sprachen. Zukünftige Arbeiten werden die Integration von servierbaren LLMs, vision-and-language-Multimodellmodellen und aktiven Lernstrategien erforschen, um die Qualität der Trainingsdaten dynamisch zu skalieren und zu verbessern.
CdXz5zHNQW_lGLj8VappE.png
Pinterest führte Module in den Homefeed ein, um Benutzern mehr Kontext und Möglichkeiten zur Erkundung von Themen anzubieten. Module sind heterogen, mit Variationen in der Benutzeroberfläche und dem Inhalt basierend auf Faktoren wie Themen, Boards und Einkaufsinteressen. Es gibt zwei Arten von Modulen: Landingpage-Module und Karussell-Module. Um die Homefeed-Erlebnis zu optimieren, wurde die Modul-Relevanz-Plattform entwickelt, um Module und Pins dynamisch zu mischen.Die Plattform umfasst mehrere Komponenten, wie Modulermüdung, Modulbewertung und Modulmischung. Die Modulermüdung wurde ursprünglich verwendet, um Module zu verbergen, die Benutzer mehrmals ohne Interaktion gesehen hatten. Dieser Ansatz hatte jedoch Einschränkungen, wie z.B. keine Informationen darüber, wie oder wo ein Modul in einem Feed angezeigt werden sollte, und keine Echtzeit-Reaktion.Um diese Einschränkungen zu adressieren, wurde ein Modulbewertungsmodell entwickelt, um Module untereinander zu bewerten. Das Modell verwendet eine umfassende Merkmalsmenge von Modulen und Benutzern, einschließlich aggregierter Merkmale, Modultitel-Einbettungen und Benutzer-Engagement-Merkmale. Das Modell wird auf Benutzer-Engagement-Daten trainiert und optimiert für Modulaktionen wie Tippen, Klicken und Speichern.Die Modulmischung entscheidet, wie Module und Pins dynamisch gemischt werden, um den Feed zu generieren. Der ursprüngliche Ansatz platzierte geordnete Module in statischen, festen Schlitzen, aber dieser wurde durch einen 'Überspring-Schlit'-Ansatz ersetzt, der Pins und Module basierend auf vorhergesagten Engagement-Werten dynamisch mischt. Der Ansatz verwendet eine Vergleichsfunktion, um zu bestimmen, ob ein Modul einen Pin ersetzen sollte, basierend auf ihren vorhergesagten Engagement-Werten.Die Modul-Relevanz-Plattform wurde in Produktion eingesetzt, und Echtzeit-Überwachungsmetriken wurden entwickelt, um ihre Gesundheit zu überwachen. Zukünftige Pläne umfassen die Iteration der Komponenten, um die Relevanz weiter zu verbessern, indem magnitude-basierte Bewertung und Mischung und Pin-Verdrängung-basierte Mischung verwendet werden.
CdXz5zHNQW_MhpJYPzJiz.png
Madhuri Racherla, VP für Infrastruktur und SRE bei Pinterest, teilte die Reise des Unternehmens, um die Leistung zu optimieren und Kosten zu reduzieren, auf der AWS ReInvent 2024-Konferenz. Die Mission von Pinterest ist es, über 553 Millionen monatlich aktive Nutzer zu inspirieren, ein Leben zu schaffen, das sie lieben, und seine Plattform ist ein Zentrum für Ideen und Kreativität. Die Infrastruktur des Unternehmens basiert auf Zehntausenden von EC2-Instanzen und speichert etwa ein Exabyte in Amazon S3, um sicherzustellen, dass Benutzerinhalte sicher und zugänglich sind. Um mit dem Wachstum Schritt zu halten, hat Pinterest seine Infrastrukturstrategien für Flexibilität, Zuverlässigkeit und Kosteneffizienz verfeinert. Das Unternehmen hat AMD M7a-Instanzen mit EPYC Genoa-CPUs übernommen, die die Leistung von rechenintensiven Mikrodiensten verbessert und erhebliche Kosteneinsparungen von bis zu 40% erbracht haben. Der Wechsel zu M7a-Instanzen zeigt Pinterests Engagement für Infrastrukturinnovation und Skalierbarkeit. Madhuri erläuterte die strategischen Schritte, die zur Migration unternommen wurden, einschließlich der Analyse von Workloads, der Auswahl von Instanzen und umfassender Tests, die schnell und ohne Auswirkungen auf die Service-Level-Ziele abgeschlossen wurden. Die Verbesserungen von Pinterest unterstreichen sein Engagement für die Steigerung von Leistung und Kosteneffizienz und die Ausrichtung der Infrastruktur an aktuellen und zukünftigen Bedürfnissen. Madhuris Präsentation war ein Aufruf zur Aktion, der Ingenieure inspirierte, Grenzen zu überschreiten und strategische Entscheidungen zu treffen, die den Grundstein für zukünftige Erfolge legen. Durch die sorgfältige Entscheidungsträger heute legt Pinterest den Grundstein für größere Möglichkeiten morgen.
Pinterest entwickelte eine Plattform für die Wurzelursachenanalyse (RCA), um Schwankungen von Metriken zu verstehen. Die Plattform verwendet drei wichtige Ansätze: Slice and Dice, allgemeine Ähnlichkeit und Experimenteffekte. Slice and Dice analysiert Metrik-Segmente über verschiedene Dimensionen, um bedeutende Beiträge zu Veränderungen zu identifizieren. Diese Methode zieht Inspiration aus LinkedIn's ThirdEye, indem sie eine Baumstruktur verwendet, um Metrik-Segmente zu organisieren und ihre Bedeutung zu bewerten. Allgemeine Ähnlichkeit identifiziert Metriken mit ähnlichen Bewegungsmustern, indem sie Korrelation und dynamisches Zeit-Strecken-Warping verwendet, um Ähnlichkeit zu messen. Dies hilft bei der Aufdeckung von Beziehungen zwischen scheinbar unabhängigen Metriken, wie Leistung und Inhaltsverteilung. Experimenteffekte untersuchen die Ergebnisse von A/B-Tests, um zu bestimmen, ob Experimente den Metrik beeinflusst haben. Der t-Test von Welch und harmonische Mittelwerte von p-Werten werden verwendet, um den experimentellen Einfluss zu bewerten, wobei Störungen und Ungleichgewichte gefiltert werden. Diese drei Ansätze können iterativ für eine umfassende Analyse verwendet werden. Zukünftige Verbesserungen umfassen ein Mechanismus für Nutzerfeedback und die Nutzung von kausaler Entdeckung für stärkere kausale Inferenz. Die Integration mit mehr Datenplattformen und Benutzeroberflächen ist auch geplant. Der Erfolg der Plattform hängt von Nutzerfeedback und kontinuierlicher Verbesserung ab. Das Team erkennt die Beiträge von Pinterest-Ingenieuren und Datenwissenschaftlern bei der Entwicklung der Plattform an.
CdXz5zHNQW_ydRcPLqWkc.png
Im Pinterest-Homefeed wird die embedding-basierte Suche als Schlüsselkandidatengenerator eingesetzt, um hochpersonalisierte und engagierende Inhalte abzurufen, um verschiedene Benutzerintentionen zu erfüllen. Das Team hat ein Zweiturm-Modell mit fortschrittlicher Feature-Überkreuzung und ID-Embeddings eingeführt, um die Modellleistung zu verbessern. Die Feature-Überkreuzung ist ein wichtiger Bestandteil des Modells, und das Team hat verschiedene Techniken wie MaskNet und DHEN erprobt, um die Architektur zu skalieren. MaskNet ist eine feature-weise Multiplikationstechnik, die die Modellarchitektur vereinfacht und eine hohe Lernfähigkeit bei umfassender Feature-Überkreuzung bietet. DHEN ist ein Framework, das mehrere verschiedene Feature-Überkreuzungsschichten in seriellen und parallelen Wegen kombiniert, was zu einer weiteren Verbesserung des Modells führt. Das Team hat auch vortrainierte ID-Embeddings durch kontrastives Lernen auf stichprobenweise negatives über ein großes cross-surface-Datenset adoptiert. Direktes Feintunen der Einbettungen kann jedoch zu Überanpassung führen, und das Team hat festgestellt, dass das Fixieren der Einbettungstabelle und das Anwenden eines aggressiven Dropout-Prozents dieses Problem mildern kann. Das Team hat auch den Servicedatenbestand renoviert, indem es zu einer zeitabhängigen Summation überging, um den Score eines Pins zu bestimmen, und die Lücke zwischen Trainingsdaten und Servicedatenbestand geschlossen hat. Darüber hinaus hat das Team state-of-the-art-Modellierungstechniken wie Multi-Embedding-Retrieval und konditionale Retrieval erforscht, um die Leistung des embedding-basierten Retrieval-Modells weiter zu verbessern. Diese Techniken haben zu signifikanten Verbesserungen bei der Benutzerbeteiligung und der Empfehlungsleistung geführt.
CdXz5zHNQW_nRsW3jGDPy.png
Bei Pinterest ist die Mission, Benutzer dazu zu inspirieren, ein Leben zu schaffen, das sie lieben, und das Finden des richtigen Inhalts online ist für diese Mission von entscheidender Bedeutung. Das Empfehlungssystem des Unternehmens umfasst mehrere Stufen, einschließlich Abruf und Rangfolge, um den richtigen Inhalt an die Benutzer zu liefern. Das Rangfolgemodell ist ein leistungsfähiges, auf Transformern basierendes Modell, das die lang- und kurzfristige Interaktion der Benutzer erfasst, aber das Abrufsystem basierte zuvor auf heuristischen Ansätzen. Um dies zu verbessern, baute Pinterest ein internes, auf Embeddings basierendes Abrufsystem, das aus protokollierten Benutzer-Interaktionsereignissen gelernt wurde und für den Homefeed und die Benachrichtigung bereitgestellt wurde. Das System verwendet einen zweitürmigen Ansatz, bei dem ein Turm die Abfrage-Embedding und ein Turm das Element-Embedding lernt, was eine effiziente Online-Bereitstellung mit nächster-Nachbar-Suche ermöglicht. Das Modell wird mit einem stichprobenbasierten Softmax-Ansatz trainiert, um die Popularitätsverzerrung zu korrigieren, und die langfristige Benutzer-Interaktion, das Profil und der Kontext werden als Eingabe codiert. Das Systemdesign umfasst die Aufteilung der Element-Embeddings in Online-Bereitstellung und Offline-Indizierung, mit einem automatischen Neuausbildungs-Workflow, um das erlernte Wissen der Benutzer aufzufrischen und aktuelle Trends aufzugreifen. Um sicherzustellen, dass die Modellversionen synchronisiert sind, wird eine Stück Modellversion-Metadaten an jeden ANN-Suchdienst-Host angehängt, das eine Zuordnung von Modellname zur neuesten Modellversion enthält. Der erlernte Kandidatengenerator für den Abruf hat die beste Benutzerabdeckung und die besten drei Speicherraten erreicht und hat dazu beigetragen, zwei andere Kandidatengeneratoren zu ersetzen, was zu enormen Gesamt-Engagement-Erfolgen auf der Website geführt hat.
CdXz5zHNQW_jl6TXRt0LH.png
Die API-Plattform von Pinterest, NGAPI, erfordert eine optimierte Systemleistung, um eine hohe Erfolgsrate von Anfragen sicherzustellen. Das Team implementierte eine Lightning Memory-Mapped Database (LMDB), um die Speicherverwaltung zu straffen und die Effizienz zu verbessern. Dies reduzierte den Speicherverbrauch um 4,5 %, sodass mehr Prozesse auf jedem Host laufen konnten und die CPU-Auslastung verbessert wurde. In einer Multi-Prozess-Architektur ist der Speicherverbrauch pro Prozess ein entscheidender Faktor, und die pro Prozess geladene, konfigurationsverwaltete Datenmenge ist ein bedeutender Beitrag. Das Team strebte danach, von pro-Prozess-Speicher-verwalteten Daten auf eine einzelne Kopie pro Host umzustellen, um den Speicherdruck zu reduzieren. Sie bewerteten drei mmap-basierte Lösungen und wählten LMDB, das es ermöglicht, generierte Dateien in einer Transaktion zu aktualisieren, ohne eine neue Version zu erstellen. LMDB ist eine eingebettete Schlüssel-Wert-Datenbank auf Basis von Speicher-zu-Speicher-Dateien, und das Team erstellte eine lokale Datenbank für jede konfigurationsverwaltete Datenmenge. Ein leichtgewichtiger Python-Sidecar wurde entwickelt, um die LMDB-Datenbank zu aktualisieren, und die API-Prozesse halten persistente, schreibgeschützte Verbindungen zu LMDB aufrecht. Die Ergebnisse zeigten einen Rückgang des Speicherverbrauchs um 4,5 %, sodass mehr Prozesse auf jedem Host laufen konnten und die Gesamtzahl der Hosts reduziert wurde. Diese Optimierung verbesserte die Gesamtleistung und Stabilität ohne Auswirkungen auf die Systemlatenz.
CdXz5zHNQW_ZQ6PvJQHxR.jpeg
CdXz5zHNQW_dIw0eAnzaq.png