Die Geschichte von SmartNews - von einem Milvus-Benutzer zu einem aktiven Mitwirkenden
Dieser Artikel wurde von Angela Ni übersetzt.
Informationen sind in unserem Leben allgegenwärtig. Meta (früher bekannt als Facebook), Instagram, Twitter und andere Social-Media-Plattformen machen Informationsströme noch allgegenwärtiger. Daher sind Engines, die mit solchen Informationsströmen umgehen können, ein Muss in den meisten Systemarchitekturen geworden. Als Nutzer von Social-Media-Plattformen und entsprechenden Anwendungen haben Sie sich jedoch bestimmt schon einmal über doppelte Artikel, Nachrichten, Memes und mehr geärgert. Doppelte Inhalte erschweren den Prozess der Informationsgewinnung und führen zu einer schlechten Benutzererfahrung.
Für ein Produkt, das sich mit Informationsströmen befasst, ist es für die Entwickler von hoher Priorität, einen flexiblen Datenprozessor zu finden, der sich nahtlos in die Systemarchitektur integrieren lässt, um identische Nachrichten oder Anzeigen zu deduplizieren.
SmartNews, das mit 2 Milliarden US-Dollar bewertet wird, ist das am höchsten bewertete Nachrichten-App-Unternehmen in den USA. Bemerkenswert ist, dass das Unternehmen früher Nutzer von Milvus, einer Open-Source-Vektordatenbank, war, später aber zu einem aktiven Mitwirkenden am Milvus-Projekt wurde.
Dieser Artikel erzählt die Geschichte von SmartNews und erklärt, warum das Unternehmen beschlossen hat, Beiträge zum Milvus-Projekt zu leisten.
Ein Überblick über SmartNews
SmartNews wurde 2012 gegründet und hat seinen Hauptsitz in Tokio, Japan. Die von SmartNews entwickelte Nachrichten-App hat auf dem japanischen Markt stets die besten Bewertungen erhalten. SmartNews ist die am schnellsten wachsende Nachrichten-App und weist auch auf dem US-Markt eine hohe Nutzerviskosität auf. Laut den Statistiken von APP Annie lag die durchschnittliche monatliche Sitzungsdauer von SmartNews Ende Juli 2021 an erster Stelle aller Nachrichten-Apps und übertraf die kumulierte Sitzungsdauer von AppleNews und Google News.
Mit dem schnellen Wachstum der Nutzerbasis und der Viskosität muss sich SmartNews weiteren Herausforderungen in Bezug auf den Empfehlungsmechanismus und den KI-Algorithmus stellen. Zu diesen Herausforderungen gehören die Nutzung massiver diskreter Merkmale im groß angelegten maschinellen Lernen (ML), die Beschleunigung unstrukturierter Datenabfragen mit vektorieller Ähnlichkeitssuche und vieles mehr.
Anfang 2021 wandte sich das Team für dynamische Anzeigenalgorithmen bei SmartNews an das KI-Infrastrukturteam mit der Bitte, die Funktionen zum Abrufen und Abfragen von Anzeigen zu optimieren. Nach zweimonatiger Recherche entschied sich der KI-Infrastrukturingenieur Shu für Milvus, eine Open-Source-Vektordatenbank, die mehrere Indizes und Ähnlichkeitsmetriken sowie Online-Datenaktualisierungen unterstützt. Mehr als tausend Organisationen weltweit vertrauen auf Milvus.
Anzeigenempfehlung durch Vektorähnlichkeitssuche
Die Open-Source-Vektordatenbank Milvus wird im SmartNews-Anzeigensystem eingesetzt, um dynamische Anzeigen aus einem 10-Millionen-Datensatz abzugleichen und den Nutzern zu empfehlen. Auf diese Weise kann SmartNews eine Mapping-Beziehung zwischen zwei bisher nicht zueinander passenden Datensätzen - Nutzerdaten und Anzeigendaten - herstellen. Im zweiten Quartal 2021 gelang es Shu, Milvus 1.0 auf Kubernetes bereitzustellen. Erfahren Sie mehr darüber, wie Sie Milvus bereitstellen können.
img
Nach der erfolgreichen Bereitstellung von Milvus 1.0 war das erste Projekt, bei dem Milvus zum Einsatz kam, das vom Ad-Team bei SmartNews initiierte Anzeigenrückrufprojekt. In der Anfangsphase war der Anzeigendatensatz eine Million groß. Gleichzeitig wurde die P99-Latenzzeit auf weniger als 10 Millisekunden genau kontrolliert.
Im Juni 2021 wandten Shu und seine Kollegen im Algorithmusteam Milvus auf weitere Geschäftsszenarien an und versuchten, Daten zu aggregieren und Online-Daten/Indizes in Echtzeit zu aktualisieren.
Inzwischen wurde Milvus, die Open-Source-Vektordatenbank, in verschiedenen Geschäftsszenarien bei SmartNews eingesetzt, darunter auch bei der Anzeigenempfehlung.
Vom Nutzer zum aktiven Mitgestalter
Während der Integration von Milvus in die Smartnews-Produktarchitektur kamen Shu und andere Entwickler mit Anfragen zu Funktionen wie Hot Reload, Artikel-TTL (Time-to-Live), Artikel-Update/Ersatz und mehr. Dies sind auch Funktionen, die von vielen Benutzern in der Milvus-Community gewünscht werden. Daher beschloss Dennis Zhao, Leiter des KI-Infrastrukturteams bei SmartNews, die Hot-Reload-Funktion zu entwickeln und der Community zur Verfügung zu stellen. Dennis meinte: "Das SmartNews-Team hat von der Milvus-Community profitiert, daher sind wir mehr als bereit, einen Beitrag zu leisten, wenn wir etwas mit der Community zu teilen haben."
Data Reload unterstützt die Code-Bearbeitung während der Ausführung des Codes. Mit Hilfe von Data Reload müssen Entwickler nicht mehr an einem Haltepunkt anhalten oder die Anwendung neu starten. Stattdessen können sie den Code direkt bearbeiten und das Ergebnis in Echtzeit sehen.
Ende Juli schlug Yusup, Ingenieur bei SmartNews, eine Idee zur Verwendung von Collection Alias vor, um Hot Reload zu erreichen.
Das Erstellen von Sammlungsalias bezieht sich auf die Angabe von Aliasnamen für eine Sammlung. Eine Sammlung kann mehrere Aliasnamen haben. Ein Alias entspricht jedoch maximal einer Sammlung. Ziehen Sie einfach eine Analogie zwischen einer Sammlung und einem Schließfach. Ein Schließfach hat wie eine Sammlung seine eigene Nummer und Position, die immer unverändert bleibt. Sie können jedoch immer verschiedene Dinge in das Schließfach legen und aus ihm entnehmen. Ähnlich ist der Name der Sammlung fest, aber die Daten in der Sammlung sind dynamisch. Sie können jederzeit Vektoren in eine Sammlung einfügen oder löschen, da das Löschen von Daten in der Milvus-Vorversion unterstützt wird.
Im Falle des SmartNews-Anzeigengeschäfts werden fast 100 Millionen Vektoren eingefügt oder aktualisiert, wenn neue dynamische Anzeigenvektoren erzeugt werden. Hierfür gibt es mehrere Lösungen:
- Lösung 1: Löschen Sie zuerst die alten Daten und fügen Sie dann die neuen ein.
- Lösung 2: Erstellen Sie eine neue Sammlung für neue Daten.
- Lösung 3: Sammlungs-Alias verwenden.
Bei Lösung 1 besteht einer der größten Nachteile darin, dass sie extrem zeitaufwändig ist, vor allem, wenn der zu aktualisierende Datenbestand riesig ist. In der Regel dauert es Stunden, einen Datensatz mit einer Größe von 100 Millionen zu aktualisieren.
Bei Lösung 2 besteht das Problem darin, dass die neue Sammlung nicht sofort für die Suche verfügbar ist. Das heißt, dass eine Sammlung während des Ladens nicht durchsuchbar ist. Außerdem erlaubt Milvus nicht, dass zwei Sammlungen denselben Sammlungsnamen verwenden. Der Wechsel zu einer neuen Sammlung würde immer eine manuelle Änderung des clientseitigen Codes erfordern. Das heißt, dass die Benutzer den Wert des Parameters collection_name
jedes Mal ändern müssen, wenn sie zwischen Sammlungen wechseln wollen.
Lösung 3 wäre die Lösung schlechthin. Sie müssen lediglich die neuen Daten in eine neue Sammlung einfügen und einen Sammlungsalias verwenden. Auf diese Weise müssen Sie nur den Auflistungsalias jedes Mal austauschen, wenn Sie die Auflistung wechseln müssen, um die Suche durchzuführen. Sie brauchen den Code nicht extra zu überarbeiten. Diese Lösung erspart Ihnen die in den beiden vorhergehenden Lösungen erwähnten Probleme.
Yusup ging von dieser Anfrage aus und half dem gesamten SmartNews-Team, die Milvus-Architektur zu verstehen. Nach eineinhalb Monaten erhielt das Milvus-Projekt von Yusup eine PR über Hot Reload. Später wurde diese Funktion zusammen mit der Veröffentlichung von Milvus 2.0.0-RC7 offiziell verfügbar.
Derzeit übernimmt das AI-Infrastrukturteam die Führung bei der Bereitstellung von Milvus 2.0 und der schrittweisen Migration aller Daten von Milvus 1.0 auf 2.0.
img_collection alias
Die Unterstützung von Sammlungsalias kann die Nutzererfahrung erheblich verbessern, insbesondere für große Internetunternehmen mit einer großen Anzahl von Nutzeranfragen. Chenglong Li, Dateningenieur aus der Milvus-Gemeinschaft, der die Brücke zwischen Milvus und Smartnews geschlagen hat, sagte: "Die Funktion der Sammelalias ist aus einer echten Geschäftsanfrage von SmartNews, einem Milvus-Benutzer, entstanden. Und SmartNews hat der Milvus-Gemeinschaft den Code zur Verfügung gestellt. Dieser Akt der Gegenseitigkeit ist ein großartiges Beispiel für den Open-Source-Geist: von der Gemeinschaft und für die Gemeinschaft. Wir hoffen, dass wir noch mehr Mitwirkende wie SmartNews finden und gemeinsam eine florierende Milvus-Community aufbauen können."
"Derzeit setzt ein Teil des Anzeigengeschäfts Milvus als Offline-Vektordatenbank ein. Die offizielle Veröffentlichung von Mivus 2.0 rückt näher, und wir hoffen, dass wir Milvus nutzen können, um zuverlässigere Systeme zu bauen und Echtzeitdienste für mehr Geschäftsszenarien anzubieten", so Dennis.
Update: Milvus 2.0 ist jetzt allgemein verfügbar! Erfahren Sie mehr
- Ein Überblick über SmartNews
- Anzeigenempfehlung durch Vektorähnlichkeitssuche
- Vom Nutzer zum aktiven Mitgestalter
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word