Hintergrund
Qianxiang Investment Metabit Trading wurde 2018 gegründet und ist eine technologiebasierte quantitative Investmentgesellschaft mit künstlicher Intelligenz als Kern. Die Kernmitglieder absolvierten Stanford, CMU, Qingbei und andere Universitäten. Derzeit hat die Managementskala 3 Milliarden RMB überschritten.
Metabit legt großen Wert auf den Aufbau der Basisplattform und verfügt über ein starkes Forschungsinfrastruktur-Team. Das Team versuchte, die Barrieren der Forschung und Entwicklung auf einem einzelnen Computer abzubauen und Cloud Computing für eine effizientere und sicherere Forschung und Entwicklung der Toolkette zu nutzen.
01 Was quantitative Forschung tut
Als erst seit kurzer Zeit etabliertes quantitatives Investmenthaus werden wir bei der Auswahl der Basisspeicherplattform von den folgenden zwei Faktoren beeinflusst: Das Unternehmen ist erst seit relativ kurzer Zeit etabliert und hat wenig technische Auswahlmöglichkeiten , tendiere ich eher zu einem moderneren Technologie-Stack, gleichzeitig werden die Eigenschaften des maschinellen Lernszenarios, das bei quantitativen Investitionen verwendet wird, auch die Wahl der Technologie beeinflussen.
Die obige Abbildung ist ein vereinfachtes schematisches Diagramm des strategischen Forschungsmodells, das in unserem Forschungsszenario am engsten mit maschinellem Lernen verwandt ist. Zunächst muss vor dem Modelltraining eine Merkmalsextraktion für die Originaldaten durchgeführt werden. Der Signal-Rausch-Abstand von Finanzdaten ist besonders gering: Wenn die Originaldaten direkt zum Training verwendet werden, ist das resultierende Modellrauschen sehr groß. Neben Marktdaten umfassen Rohdaten, also Daten wie Aktienkurse und Handelsvolumina auf dem Markt, die Sie häufig sehen, auch einige Nicht-Volumen- und Preisdaten, wie Forschungsberichte, Finanzberichte, Nachrichten, soziale Medien usw. Nach der Transformation der Daten extrahieren die Forscher Merkmale durch eine Reihe von Transformationen und trainieren dann das KI-Modell.
Modelltraining wird Modelle und Signale hervorbringen: Signale sind Urteile über zukünftige Preisentwicklungen, die Stärke von Signalen bedeutet die Stärke der strategischen Ausrichtung. Quantitative Researcher werden das Anlageportfolio basierend auf diesen Informationen optimieren, um Handelspositionen in Echtzeit zu bilden. Dabei werden die Informationen der horizontalen Dimension (Aktie) zur Risikosteuerung berücksichtigt, beispielsweise sollten Aktien einer bestimmten Branche keine übermäßigen Positionen halten. Nachdem die Positionsstrategie erstellt wurde, simuliert der quantitative Forscher die Bestellung und erhält dann die der Position entsprechenden Echtzeit-Gewinn- und Verlustinformationen, um die Gewinnentwicklung dieser Strategie zu verstehen.Das Obige ist ein vollständiger quantitativer Prozess Forschung.
Quantitative Research-Geschäftsmerkmale
Forschungsbedarf generiert eine Vielzahl unerwarteter Aufgaben: hohe Flexibilität
Im Prozess der Strategieforschung generieren quantitative Forscher strategische Ideen und überprüfen ihre Ideen durch Experimente. Mit dem Aufkommen neuer Ideen von Forschern werden Computerplattformen eine große Anzahl von Burst-Tasks generieren, sodass wir hohe Anforderungen an die elastische Skalierbarkeit von Computern haben.
Diversifizierung der Forschungsaufgaben: Flexibilität
Wie aus dem obigen Beispiel ersichtlich ist, deckt der gesamte Prozess viele verschiedene Rechenaufgaben ab, wie zum Beispiel:
- Merkmalsextraktion, Berechnung auf Zeitreihendaten;
- Modelltraining, das klassische Modelltrainingsszenario für maschinelles Lernen;
- Portfoliooptimierung, Aufgaben mit Optimierungsproblemen;
- Strategie-Backtesting, Marktdaten einlesen und dann die Leistung der Strategie simulieren und abgleichen, um die entsprechende Leistung der Position zu erhalten.
Die Arten von Aufgaben im gesamten Prozess sind sehr vielfältig, und auch die Anforderungen an die Datenverarbeitung sind sehr unterschiedlich.
Forschungsinhalte brauchen Schutz: Modularität, Isolation
Der Investment-Research-Inhalt des Researchers ist das wichtige IP (geistiges Eigentum) des Unternehmens. Um diese geistigen Eigentumsrechte zu schützen, abstrahiert die Forschungsplattform des Unternehmens jeden Strategieforschungslink in ein Modul, das Standard-Input und -Output sowie Bewertungsmethoden enthält. Recherchieren Sie beispielsweise Modelle, geben Sie Standardeigenwerte ein und geben Sie vorhergesagte Signale und Modelle aus. Durch die Isolierung von Modulen kann die Forschungsplattform die Sicherheit des geistigen Eigentums wirksam schützen. Beim Aufbau einer Speicherplattform ist es notwendig, die Anforderungen der Modularisierung entsprechend zu gestalten.
Merkmale quantitativer Forschungsdaten
Die Eingabe einer großen Anzahl von Aufgaben erfolgt aus denselben Daten , wie dem oben erwähnten Backtest. Quantitative Forscher müssen viele Backtests zu historischen Strategien durchführen. Dieselben Positionen werden mit unterschiedlichen Parametern getestet, um ihre Leistung zu beobachten, oder Merkmalsextraktion , Es gibt oft eine Kombination aus grundlegenden Funktionen und neuen Funktionen, bei denen eine große Datenmenge aus derselben Datenquelle stammt.
Nehmen Sie die A-Aktien-Aktie als Beispiel: die minutengenaue K-Linie historische Notierung des A-Aktien-Marktes für zehn Jahre, 5000/2 Aktien 240 Minuten, 250 Tage, 10 Jahre, 8 Bytes*20 Spalten= 240GB beträgt das Gesamtdatenvolumen für 10 Jahre ca. 240G.
Wenn Sie feinkörnigere Daten verwenden, wird die Datenmenge größer, in der Regel werden die Originaldaten 100 TB nicht überschreiten. Im Zeitalter von Big Data sind das keine besonders großen Datenmengen, aber wenn sehr viele Rechenaufgaben gleichzeitig auf diese Daten zugreifen, stellt dieses Szenario einige Anforderungen an die Datenspeicherung .
Darüber hinaus wird der Prozess der quantitativen Investmentrecherche von einer Vielzahl unerwarteter Aufgaben begleitet, deren Ergebnisse das Research-Team speichern möchte, so dass eine große Menge an Archivdaten generiert wird, aber die Zugriffshäufigkeit auf diese Daten ist sehr niedrig.
Merkmale der Quantitative Research Computing-Aufgabe
Basierend auf den oben genannten Merkmalen ist es schwierig, unsere Computing-Anforderungen in der traditionellen Computerraummethode zu erfüllen, daher ist die Verlagerung von Computing auf die Cloud-Computing-Plattform eine relativ geeignete technische Wahl für uns.
Erstens gibt es viele plötzliche Aufgaben und eine große Flexibilität . Das obige Bild zeigt die letzten laufenden Instanzdaten eines unserer Cluster. Es ist ersichtlich, dass in mehreren Zeiträumen die gesamte Clusterinstanz vollständig geladen ist, aber gleichzeitig die Skalierung des gesamten Rechenclusters auch auf 0 skaliert. Die Rechenaufgaben quantitativer Institutionen hängen eng mit dem Forschungs- und Entwicklungsfortschritt der Forscher zusammen, und die Lücke zwischen Höhen und Tiefen wird sehr groß sein, was auch für Offline-Forschungsaufgaben charakteristisch ist.
Zweitens, "technologische Explosion", es ist schwierig, genau vorherzusagen, wann die Nachfrage nach Rechenleistung generiert wird . „Technologieexplosion" ist das Konzept des Science-Fiction-Romans „Drei-Körper-Problem". Entsprechend werden unser Forschungsmodell und der Bedarf an Rechenleistung sprunghaft steigen. Es ist für uns schwierig, Änderungen des Bedarfs an Rechenleistung genau vorherzusagen. Anfang 2020 war unsere tatsächliche Forschungsnutzung und geschätzte Nutzung sehr gering, aber als das Forschungsteam einige neue Ideen für Forschungsmethoden vorschlug, gab es zu einem bestimmten Zeitpunkt plötzlich eine sehr große Nachfrage nach Rechenleistung . Und die Kapazitätsplanung ist eine sehr wichtige Sache bei der Planung des Baus traditioneller Computerräume.
Drittens wird die moderne KI-Ökologie fast auf der Cloud-nativen Plattform getragen . Wir haben viele innovative technische Versuche unternommen, darunter das sehr beliebte MLOps, die gesamte Pipeline in Reihe geschaltet und dann die Trainingspipeline für maschinelles Lernen durchgeführt. Jetzt werden viele verteilte Trainingsaufgaben für Cloud Native unterstützt. Eine Menge Entwicklungsarbeit, die macht es für uns auch zur natürlichen Wahl, die gesamte Rechenaufgabe in die Cloud zu verlagern.
02 Plattformspeicherbedarf quantifizieren
Aus den oben genannten Geschäfts- und Rechenanforderungen lassen sich unsere Anforderungen an die Speicherplattform relativ einfach ableiten.
-
Computing und Storage sind unausgeglichen . Wie oben erwähnt, wird es eine große Menge an Rechenaufgaben geben, und der Rechenaufwand wird leicht ein sehr hohes Niveau erreichen. Das Wachstum heißer Daten ist jedoch nicht so schnell, was bedeutet, dass wir Speicherung und Berechnung trennen müssen.
-
Bieten Sie Hochdurchsatz-Zugriff auf heiße Daten, wie z. B. Marktdaten . Hunderte von Tasks greifen gleichzeitig auf Daten zu, was einen sehr hohen Durchsatz erfordert.
-
Bietet kostengünstigen Speicher für kalte Daten . Quantitative Forschung erfordert eine große Menge an Archivdaten, und für diese Daten sollte eine relativ kostengünstige Speicherung bereitgestellt werden.
-
Dateityp/Anforderungsvielfalt ist POSIX-Kompatibilität . Wir haben viele verschiedene Rechenaufgaben, und diese Rechenaufgaben haben sehr unterschiedliche Anforderungen an Dateitypen, wie CSV, Parquet usw. Einige Forschungsszenarien erfordern auch eine flexiblere kundenspezifische Entwicklung, was bedeutet, dass es bei der Auswahl nicht möglich ist, sie streng einzuschränken die damalige Dateispeichermethode, daher ist die Kompatibilität von POSIX ein wichtiger Aspekt bei der Auswahl der Speicherplattform.
-
IP-Schutz : Datenfreigabe und Datenisolierung. Unsere IP-Schutzanforderungen erfordern nicht nur eine solche Isolation in Bezug auf Rechenaufgaben, sondern müssen auch solche Isolationsfähigkeiten in Bezug auf Daten unterstützen; gleichzeitig müssen wir für relativ öffentliche Daten wie Marktdaten auch Forscher in a unterstützen bequeme Möglichkeit, es zu erhalten.
-
KI-Ökologie , Planung verschiedener Aufgaben auf der Cloud-Plattform. Dies ist auch eine relativ grundlegende Nutzungsanforderung, sodass der Speicher auch eine gute Unterstützung für Kubernetes bieten muss.
-
Modularität bedeutet Zwischenspeicherung/Übertragung von Ergebnissen . Das Szenario modularer Rechenaufgaben führt zur Notwendigkeit der Speicherung und Übermittlung von Zwischenergebnissen. Um ein einfaches Beispiel zu nennen: Während der Merkmalsberechnung werden relativ viele Merkmalsdaten generiert, die sofort auf den zu trainierenden Knoten verwendet werden.Wir benötigen ein Zwischenspeichermedium für das Caching.
03 Auswahl der Speicherlösung
nicht POSIX-konformes Schema
Anfangs haben wir viele Objektspeicherlösungen ausprobiert, also Nicht-POSIX-Lösungen. Die Objektspeicherung ist stark erweiterbar und die Kosten sind sehr gering, aber das Problem der Objektspeicherung ist auch offensichtlich. Das größte Problem ist, dass es keine POSIX-Kompatibilität gibt . Die Nutzung von Object Storage unterscheidet sich deutlich von der des Dateisystems: Wird Object Storage direkt als Schnittstelle für Forscher genutzt, ist die Nutzung für diese sehr umständlich und auch der Komfort stark eingeschränkt.
Darüber hinaus hat der Objektspeicher vieler Cloud-Anbieter ein Anforderungslimit. Beispielsweise begrenzt Alibaba Cloud die OSS-Bandbreite des gesamten Kontos. Dies ist im Allgemeinen für normale Geschäftsszenarien akzeptabel, aber plötzliche Aufgaben erzeugen sofort sehr große Bandbreitenanforderungen, und es ist schwierig, solche Szenarien nur durch die Verwendung von Objektspeicher zu unterstützen.
Eine andere Lösung stellt HDFS dar. Wir haben HDFS nicht viel getestet. Erstens verlässt sich der von uns verwendete Technologie-Stack nicht zu sehr auf Hadoop; gleichzeitig bietet HDFS keine hervorragende Unterstützung für KI-Trainingsprodukte und HDFS verfügt nicht über eine vollständige POSIX-Kompatibilität, was einige Einschränkungen für unsere Verwendung mit sich bringen wird Szenarien .
POSIX-Kompatibilitätslösung in der Cloud
Die oben genannten Geschäftsmerkmale bestimmen, dass wir eine starke Nachfrage nach POSIX-Kompatibilität haben und die Technologieplattform auf der öffentlichen Cloud basiert. Daher bestimmen wir den Umfang der Speicherauswahl als: POSIX-Kompatibilität in der Cloud .
Cloud-Anbieter werden einige Lösungen anbieten, wie NAS von Alibaba Cloud, AWS EFS usw.; der andere Typ ist die CPFS-Lösung von Alibaba Cloud und die FSx-Lösung von AWS. Der Durchsatz dieser beiden Arten von Dateisystemen ist stark an die Kapazität gebunden: Je größer die Kapazität, desto größer der Durchsatz, der direkt mit den Speichereigenschaften des NAS zusammenhängt. Eine solche Lösung ist nicht sehr freundlich, wenn sie mit einer kleinen Menge heißer Daten konfrontiert wird, und erfordert eine zusätzliche Optimierung, um eine bessere Leistung zu erzielen . Darüber hinaus sind CPFS oder das ultraschnelle NAS auf Alibaba Cloud freundlich zum Lesen mit geringer Latenz, aber der Nachteil ist, dass die Kosten relativ hoch sind.
Wir haben einen Vergleich mit den auf den jeweiligen offiziellen Websites angezeigten Preisen durchgeführt. Die Kosten für verschiedene Hochleistungs-NAS-Produkte betragen etwa 1500–2000 Yuan/TB/Monat, und die Gesamtkosten von JuiceFS werden viel niedriger sein, da der zugrunde liegende Speicher von JuiceFS ein Objektspeicher ist. Die Kosten von JuiceFS gliedern sich in mehrere Teile: die Speicherkosten des Objektspeichers, die Kosten des JuiceFS-Cloud-Dienstes und die Kosten des SSD-Cache. Zusammengenommen sind die Gesamtkosten von JuiceFS viel niedriger als die Kosten von NAS und anderen Lösungen .
In Bezug auf den Durchsatz wurden in der Anfangsphase einige Tests durchgeführt.Wenn die Anzahl der Knoten relativ gering ist, verwenden Sie CPFS direkt zum Vergleich mit JuiceF, und die Leseleistung wird keinen großen Unterschied machen. Wenn jedoch die Anzahl der Knoten zunimmt, verlängert sich die Gesamtlesezeit, da NAS-Dateisysteme Bandbreitenbeschränkungen haben, und JuiceFS kann sehr einfach ohne zu viel Overhead unterstützt werden, solange der Cache-Cluster bereitgestellt wird.Das Szenario in der Abbildung Unten ist ein Cluster mit einer Gesamtbandbreite von ca. 300 GB bereitgestellt .
Neben Kosten und Durchsatz kann JuiceFS bei der Technologieauswahl die oben genannten Funktionen Full POSIX, Permission Control, Qos und Kubernetes besser unterstützen;
Erwähnenswert ist die Cache-Cluster-Fähigkeit von JuiceFS, die eine flexible Cache-Beschleunigung ermöglicht. Am Anfang haben wir Rechenknoten als lokale Caches verwendet, was eine sehr gängige Praxis ist. Nachdem Storage und Computing getrennt sind, hofft man, dass sich einige Daten auf den Rechenknoten lokalisieren lassen, JuiceFS unterstützt diese Funktion relativ vollständig, die Platzbelegung und prozentuale Beschränkung sind gut gelungen. Wir haben einen unabhängigen Cache-Cluster bereitgestellt, um einige heiße Daten bereitzustellen, solange der Cache vor der Verwendung aufgewärmt wird. Im Laufe der Nutzung haben wir festgestellt, dass die Ressourcenauslastung verschiedener Rechencluster sehr unterschiedlich ist.Es gibt einige Maschinen mit großer Bandbreite im Cluster, von denen die meisten für Single-Node-Computing verwendet werden, was bedeutet, dass das Netzwerk der Maschinen die Ressourcen werden im Grunde nicht verwendet, und es gibt immer noch einige Festplatten im Leerlauf, sodass Cache-Knoten auf diesen Computern bereitgestellt werden, um die ungenutzte Netzwerkbandbreite zu nutzen. Am Ende haben wir einen Cache-Cluster mit sehr großer Bandbreite im selben Cluster realisiert.
Derzeit wird JuiceFS in den folgenden Produktionsszenarien verwendet:
- Datendateisystem für Rechenaufgaben, das auf die Eingabe heißer Daten angewendet wird;
- Protokoll-/Artefaktausgabe;
- Pipeline-Datenübertragung: Nachdem Datenmerkmale generiert wurden, müssen sie zum Modelltraining übertragen werden. Während des Trainingsprozesses gibt es auch Datenübertragungsanforderungen. Fluid und JuiceFS werden als Zwischen-Cache-Cluster verwendet.
In Zukunft werden wir weiterhin Cloud-native und KI-Technologien für eine effizientere und sicherere Entwicklung von Toolketten und den Aufbau grundlegender Technologieplattformen erforschen.
Wenn Sie hilfreich sind, beachten Sie bitte unser Projekt Juicedata/JuiceFS ! (0ᴗ0✿)