Qianxiang Investment : Création d'une plate-forme de recherche quantitative en investissement sur le cloud basée sur JuiceFS

arrière-plan

Fondée en 2018, Qianxiang Investment Metabit Trading est une société d'investissement quantitatif basée sur la technologie et basée sur l'intelligence artificielle. Les principaux membres sont diplômés de Stanford, CMU, Qingbei et d'autres universités. À l'heure actuelle, l'échelle de gestion a dépassé 3 milliards de RMB.

Metabit attache une grande importance à la construction de la plate-forme de base et dispose d'une solide équipe d'infrastructure de recherche. L'équipe a essayé de faire tomber les barrières de la R&D sur une seule machine et d'utiliser le cloud computing pour une R&D plus efficace et sécurisée de la chaîne d'outils.

01 Ce que fait la recherche quantitative

En tant qu'institution d'investissement quantitative établie depuis peu de temps, nous serons affectés par les deux facteurs suivants lors de la sélection de la plate-forme de stockage de base : l'entreprise est établie depuis relativement peu de temps et n'a pas beaucoup de connaissances techniques. Lors du choix , je suis plus enclin à utiliser une pile technologique plus moderne ; dans le même temps, les caractéristiques du scénario d'apprentissage automatique utilisé dans l'investissement quantitatif affecteront également le choix de la technologie.

La figure ci-dessus est un schéma simplifié du modèle de recherche stratégique le plus étroitement lié à l'apprentissage automatique dans notre scénario de recherche. Tout d'abord, l'extraction des caractéristiques doit être effectuée sur les données d'origine avant la formation du modèle. Le rapport signal sur bruit des données financières est particulièrement faible. Si les données d'origine sont directement utilisées pour l'entraînement, le bruit du modèle résultant sera très important. Outre les données de marché, les données brutes, c'est-à-dire les données telles que les cours des actions et les volumes de transactions sur le marché que vous voyez souvent, comprennent également des données non relatives au volume et aux prix, telles que des rapports de recherche, des rapports financiers, des actualités, des médias sociaux. , etc. Après avoir transformé les données, les chercheurs extrairont les caractéristiques par une série de transformations, puis entraîneront le modèle d'IA.

La formation de modèles produira des modèles et des signaux. Les signaux sont des jugements sur les tendances futures des prix ; la force des signaux signifie la force de l'orientation stratégique. Les chercheurs quantitatifs optimiseront le portefeuille d'investissement sur la base de ces informations pour former des positions de trading en temps réel. Dans ce processus, les informations de la dimension horizontale (stock) seront prises en compte pour le contrôle des risques.Par exemple, les stocks d'une certaine industrie ne doivent pas détenir des positions excessives. Une fois la stratégie de position formée, le chercheur quantitatif simulera la commande, puis obtiendra les informations en temps réel sur les profits et les pertes correspondant à la position, afin de comprendre les performances de profit de cette stratégie. recherche.

Caractéristiques de l'entreprise de recherche quantitative

Les besoins de recherche génèrent un grand nombre de tâches imprévues : grande flexibilité

Dans le processus de recherche stratégique, les chercheurs quantitatifs généreront des idées stratégiques et vérifieront leurs idées par des expériences. Avec l'émergence de nouvelles idées des chercheurs, les plates-formes informatiques généreront un grand nombre de tâches en rafale, nous avons donc des exigences élevées en matière d'évolutivité élastique de calcul.

Diversification des tâches de recherche : flexibilité

Comme le montre l'exemple ci-dessus, l'ensemble du processus couvre de nombreuses tâches informatiques différentes, telles que :

  • Extraction de caractéristiques, calcul sur des données de séries chronologiques ;
  • Formation de modèle, le scénario classique de formation de modèle d'apprentissage automatique ;
  • Optimisation de portefeuille, tâches impliquant des problèmes d'optimisation ;
  • Backtesting de la stratégie, lire les données du marché, puis simuler et faire correspondre les performances de la stratégie pour obtenir les performances correspondantes de la position.

Les types de tâches dans l'ensemble du processus sont très divers et les exigences informatiques sont également très différentes.

Le contenu de la recherche doit être protégé : modularité, isolement

Le contenu de la recherche d'investissement du chercheur est la propriété intellectuelle (propriété intellectuelle) importante de l'entreprise. Afin de protéger ces droits de propriété intellectuelle, la plate-forme de recherche de l'entreprise résume chaque lien de recherche stratégique dans un module contenant des méthodes standard d'entrée et de sortie et d'évaluation. Par exemple, la recherche sur les modèles, les valeurs propres standard d'entrée et les signaux et modèles prédits en sortie. En isolant les modules, la plateforme de recherche peut protéger efficacement la sécurité de la propriété intellectuelle. Lors de la construction d'une plate-forme de stockage, il est nécessaire de concevoir en conséquence l'exigence de modularisation.

Caractéristiques des données de recherche quantitative

L'entrée d'un grand nombre de tâches provient des mêmes données , comme le backtest mentionné ci-dessus. Les chercheurs quantitatifs doivent faire beaucoup de backtests sur des stratégies historiques. Les mêmes positions sont testées avec différents paramètres pour observer leur performance; ou extraction de caractéristiques , Il existe souvent une combinaison de fonctionnalités de base et de nouvelles fonctionnalités, où une grande quantité de données provient de la même source de données.

Prenons l'exemple de l'action A : la cotation historique minute par minute de la ligne K du marché des actions A pendant dix ans, 5000/2 action 240 minutes, 250 jours, 10 ans, 8 octets*20 colonnes= 240 Go, le volume global de données pendant 10 ans est d'environ 240G.

Si vous utilisez des données plus fines, la quantité de données sera plus importante. En règle générale, les données d'origine ne dépasseront pas 100 To. À l'ère des mégadonnées, il ne s'agit pas d'une quantité particulièrement importante de données, mais lorsqu'un grand nombre de tâches informatiques accèdent à ces données en même temps, ce scénario a certaines exigences en matière de stockage de données .

De plus, le processus de recherche quantitative en investissement s'accompagne d'un grand nombre de tâches inattendues. L'équipe de recherche espère stocker les résultats de ces tâches, de sorte qu'une grande quantité de données d'archives sera générée, mais la fréquence d'accès à ces données est très lent.

Caractéristiques des tâches informatiques de recherche quantitative

Sur la base des caractéristiques ci-dessus, il est difficile de répondre à nos besoins informatiques dans la méthode traditionnelle de la salle informatique, donc le transfert de l'informatique vers la plate-forme de cloud computing est un choix technique relativement approprié pour nous.

Premièrement, il y a beaucoup de tâches soudaines et une grande flexibilité . L'image ci-dessus montre les données d'instance en cours d'exécution récentes de l'un de nos clusters. On peut voir que sur plusieurs périodes, l'instance entière du cluster est entièrement chargée, mais en même temps, l'échelle de l'ensemble du cluster informatique passera également à 0. Les tâches informatiques des institutions quantitatives sont étroitement liées aux progrès de la recherche et du développement des chercheurs, et l'écart entre les pics et les creux sera très important, ce qui est également une caractéristique des tâches de recherche hors ligne.

Deuxièmement, "l'explosion technologique", il est difficile de prédire avec précision quand la demande de puissance de calcul sera générée . "L'explosion technologique" est le concept du roman de science-fiction "Three-Body Problem". Selon nous, notre modèle de recherche et nos besoins en puissance de calcul connaîtront des sauts et des limites. Il nous est difficile de prédire avec précision les changements dans les besoins en puissance de calcul. Au début de 2020, notre utilisation réelle de la recherche et notre utilisation estimée étaient très faibles, mais lorsque l'équipe de recherche a proposé de nouvelles idées de méthode de recherche, il y aurait soudainement une très grande demande de puissance de calcul à un certain moment . Et la planification de la capacité est une chose très importante lors de la planification de la construction de salles informatiques traditionnelles.

Troisièmement, l'écologie moderne de l'IA est presque portée sur la plate-forme cloud native . Nous avons fait de nombreuses tentatives techniques innovantes, y compris les MLOps très populaires, connectant l'ensemble du pipeline en série, puis réalisant le pipeline de formation en apprentissage automatique ; maintenant, de nombreuses tâches de formation distribuées sont prises en charge pour le cloud natif. Beaucoup de travail de développement, qui c'est également un choix naturel pour nous de mettre l'ensemble de la tâche informatique sur le cloud.

02 Quantifier les besoins de stockage de la plateforme

Selon les exigences commerciales et informatiques ci-dessus, il est relativement facile de déduire nos exigences pour la plate-forme de stockage.

  1. Le calcul et le stockage sont déséquilibrés . Comme mentionné ci-dessus, il y aura une grande rafale de tâches informatiques, et la quantité de calcul atteindra facilement un niveau très élevé. Cependant, la croissance des données chaudes n'est pas si rapide, ce qui signifie que nous devons séparer le stockage et le calcul.

  2. Fournissez un accès à haut débit aux données importantes, telles que les données de marché . Des centaines de tâches accèdent aux données en même temps, ce qui nécessite un débit très élevé.

  3. Fournit un stockage à faible coût pour les données froides . La recherche quantitative nécessite une grande quantité de données d'archives et un stockage relativement peu coûteux doit être prévu pour ces données.

  4. La diversité des types de fichiers/exigences est la compatibilité POSIX . Nous avons de nombreuses tâches informatiques différentes, et ces tâches informatiques ont des exigences très diverses pour les types de fichiers, tels que CSV, Parquet, etc. Certains scénarios de recherche nécessitent également un développement personnalisé plus flexible, ce qui signifie que dans la sélection Il n'est pas possible de limiter strictement la méthode de stockage de fichiers à l'époque, la compatibilité de POSIX est donc une considération clé pour la sélection de la plate-forme de stockage.

  5. Protection IP : partage de données et isolation des données. Nos exigences en matière de protection de la propriété intellectuelle exigent non seulement une telle isolation en termes de tâches informatiques, mais doivent également prendre en charge de telles capacités d'isolation en termes de données ; dans le même temps, pour des données relativement publiques telles que les données de marché, nous devons également soutenir les chercheurs dans un moyen pratique de l'obtenir.

  6. Écologie de l'IA , ordonnancement de diverses tâches sur la plateforme cloud. Il s'agit également d'une exigence d'utilisation relativement basique, de sorte que le stockage doit également fournir un bon support pour Kubernetes.

  7. La modularité signifie stockage/transmission des résultats intermédiaires . Le scénario des tâches de calcul modulaire conduit à la nécessité de stockage et de transmission des résultats intermédiaires. Pour donner un exemple simple, une quantité relativement importante de données de caractéristiques sera générée pendant le processus de calcul des caractéristiques, et ces données seront utilisées immédiatement sur les nœuds à former.Nous avons besoin d'un support de stockage intermédiaire pour la mise en cache.

03 Sélection de la solution de stockage

schéma non conforme à POSIX

Au départ, nous avons essayé de nombreuses solutions de stockage d'objets, c'est-à-dire des solutions non POSIX. Le stockage d'objets a une forte capacité d'expansion et son coût est très faible, mais le problème du stockage d'objets est également évident. Le plus gros problème est qu'il n'y a pas de compatibilité POSIX . L'utilisation du stockage objet est assez différente de celle du système de fichiers. Si le stockage objet est directement utilisé comme interface pour les chercheurs, il sera très difficile à utiliser pour eux, et la commodité sera également très limitée.

De plus, le stockage d'objets de nombreux fournisseurs de cloud a une limite de demandes. Par exemple, Alibaba Cloud limitera la bande passante OSS de l'ensemble du compte. Ceci est généralement acceptable pour les scénarios commerciaux ordinaires, mais des tâches soudaines génèrent instantanément des besoins en bande passante très importants, et il est difficile de prendre en charge de tels scénarios uniquement en utilisant le stockage d'objets.

Une autre solution est HDFS.Nous n'avons pas fait beaucoup de tests sur HDFS. Tout d'abord, la pile technologique que nous utilisons ne repose pas trop sur Hadoop ; en même temps, HDFS n'a pas de support exceptionnel pour les produits de formation d'IA, et HDFS n'a pas une compatibilité POSIX complète, ce qui aura certaines restrictions sur notre utilisation scénarios.

Solution de compatibilité POSIX sur le cloud

Les caractéristiques commerciales mentionnées ci-dessus déterminent que nous avons une forte demande de compatibilité POSIX et que la plate-forme technologique est basée sur le cloud public.Par conséquent, nous déterminons la portée de la sélection de stockage comme suit : Compatibilité POSIX sur le cloud .

Les fournisseurs de cloud fourniront certaines solutions, telles que le NAS d'Alibaba Cloud, AWS EFS, etc. ; l'autre type est la solution CPFS d'Alibaba Cloud et la solution FSx d'AWS. Le débit de ces deux types de systèmes de fichiers est fortement lié à la capacité : plus la capacité est grande, plus le débit est élevé, ce qui est directement lié aux propriétés de stockage du NAS. Une telle solution n'est pas très conviviale face à une petite quantité de données chaudes et nécessite une optimisation supplémentaire pour obtenir de meilleures performances . De plus, CPFS ou le NAS ultra-rapide sur Alibaba Cloud sont favorables à la lecture à faible latence, mais l'inconvénient est que le coût est relativement élevé.

Nous avons fait une comparaison avec les prix affichés sur leurs sites officiels respectifs. Le coût de divers produits NAS hautes performances est d'environ 1 500 à 2 000 yuans/To/mois, et le coût global de JuiceFS sera bien inférieur, car le stockage sous-jacent de JuiceFS est le stockage d'objets. Le coût de JuiceFS est divisé en plusieurs parties : le coût de stockage du stockage d'objets ; le coût du service cloud JuiceFS ; et le coût du cache SSD. Pris ensemble, le coût global de JuiceFS est bien inférieur au coût du NAS et d'autres solutions .

En termes de débit, certains tests ont été effectués au début. Lorsque le nombre de nœuds est relativement faible, utilisez directement CPFS pour comparer avec JuiceF, et les performances de lecture n'auront pas une grande différence. Cependant, lorsque le nombre de nœuds augmente, car les systèmes de fichiers NAS ont des limites de bande passante, le temps de lecture global sera allongé et JuiceFS peut être pris en charge très facilement sans trop de surcharge tant que le cluster de cache est déployé. ci-dessous est un cluster avec une bande passante totale d'environ 300 Go déployée .

En plus du coût et du débit, JuiceFS peut mieux prendre en charge les fonctions mentionnées ci-dessus Full POSIX, contrôle des autorisations, Qos et Kubernetes lors de la sélection de la technologie ;

Il convient de mentionner la capacité de cluster de cache de JuiceFS, qui permet une accélération flexible du cache. Au début, nous utilisions des nœuds de calcul comme caches locaux, ce qui est une pratique très courante. Une fois le stockage et le calcul séparés, on espère que certaines données sur les nœuds de calcul pourront être localisées. JuiceFS a un support relativement complet pour cette fonction, et l'occupation de l'espace et les restrictions de pourcentage sont bien faites. Nous avons déployé un cluster de cache indépendant pour servir certaines données chaudes, tant que le cache est réchauffé avant utilisation. Au cours du processus d'utilisation, nous avons constaté que l'utilisation des ressources des différents clusters informatiques varie considérablement. Il existe certaines machines avec une large bande passante dans le cluster, dont la plupart sont utilisées pour le calcul à nœud unique, ce qui signifie que le réseau des machines les ressources ne sont pratiquement pas utilisées, et il y a encore des disques inactifs, donc des nœuds de cache sont déployés sur ces machines pour utiliser la bande passante réseau inactive. Au final, nous avons réalisé un cluster de cache avec une très large bande passante dans le même cluster.

Actuellement, JuiceFS est utilisé dans les scénarios de production suivants :

  • Système de fichiers de données de tâche informatique, qui est appliqué à l'entrée de données à chaud ;
  • sortie de journal/artefact ;
  • Transfert de données en pipeline : une fois les fonctionnalités de données générées, elles doivent être transférées vers la formation du modèle. Pendant le processus de formation, il y aura également des exigences de transfert de données. Fluid et JuiceFS sont utilisés comme clusters de cache intermédiaires.

À l'avenir, nous continuerons d'explorer les technologies cloud natives et IA pour un développement de chaîne d'outils plus efficace et sécurisé et la construction d'une plate-forme technologique de base.

Si vous êtes utile, veuillez prêter attention à notre projet Juicedata/JuiceFS ! (0ᴗ0✿)

{{o.name}}
{{m.name}}

Je suppose que tu aimes

Origine my.oschina.net/u/5389802/blog/5586776
conseillé
Classement