Qianxiang Investment: Construindo uma plataforma de pesquisa de investimento quantitativo na nuvem com base no JuiceFS

fundo

Fundada em 2018, a Qianxiang Investment Metabit Trading é uma empresa de investimento quantitativo de base tecnológica com inteligência artificial como núcleo. Os membros principais se formaram em Stanford, CMU, Qingbei e outras universidades. Atualmente, a escala de gerenciamento ultrapassou RMB 3 bilhões.

A Metabit atribui grande importância à construção da plataforma básica e possui uma forte equipe de Infraestrutura de Pesquisa. A equipe tentou derrubar as barreiras de P&D em uma única máquina e usar a computação em nuvem para P&D de cadeia de ferramentas mais eficiente e segura.

01 O que a pesquisa quantitativa está fazendo

Como uma instituição de investimento quantitativo estabelecida há pouco tempo, seremos afetados pelos dois fatores a seguir ao selecionar a plataforma básica de armazenamento: a empresa foi estabelecida por um período de tempo relativamente curto e não possui muitos recursos técnicos Ao escolher , estou mais inclinado a usar uma pilha de tecnologia mais moderna; ao mesmo tempo, as características do cenário de aprendizado de máquina usado no investimento quantitativo também afetarão a escolha da tecnologia.

A figura acima é um diagrama esquemático simplificado do modelo de pesquisa estratégica mais relacionado ao aprendizado de máquina em nosso cenário de pesquisa. Primeiro, a extração de recursos precisa ser feita nos dados originais antes do treinamento do modelo. A relação sinal-ruído dos dados financeiros é particularmente baixa. Se os dados originais forem usados ​​diretamente para treinamento, o ruído do modelo resultante será muito grande. Além dos dados de mercado, os dados brutos, ou seja, dados como preços de ações e volumes de negociação no mercado que você vê com frequência, também incluem alguns dados sem volume e preço, como relatórios de pesquisa, relatórios financeiros, notícias, mídias sociais , etc. Depois de transformar os dados, os pesquisadores extrairão recursos por meio de uma série de transformações e treinarão o modelo de IA.

O treinamento de modelos produzirá modelos e sinais. Os sinais são julgamentos sobre as tendências futuras de preços; a força dos sinais significa a força da orientação estratégica. Os pesquisadores quantitativos otimizarão o portfólio de investimentos com base nessas informações para formar posições de negociação em tempo real. Nesse processo, serão consideradas as informações da dimensão horizontal (estoque) para controle de risco, por exemplo, ações de um determinado setor não devem ter posições excessivas. Depois que a estratégia de posição é formada, o pesquisador quantitativo simulará o pedido e, em seguida, obterá as informações de lucros e perdas em tempo real correspondentes à posição, para entender o desempenho de lucro dessa estratégia. O acima é um processo completo de quantitativo pesquisar.

Características do negócio de pesquisa quantitativa

As necessidades de pesquisa geram um grande número de tarefas inesperadas: alta flexibilidade

No processo de pesquisa estratégica, os pesquisadores quantitativos gerarão ideias estratégicas e verificarão suas ideias por meio de experimentos. Com o surgimento de novas ideias dos pesquisadores, as plataformas de computação gerarão um grande número de tarefas de rajada, portanto, temos altos requisitos para computar a escalabilidade elástica.

Diversificação das tarefas de pesquisa: flexibilidade

Como pode ser visto no exemplo acima, todo o processo abrange muitas tarefas de computação diferentes, como:

  • Extração de características, cálculo em dados de séries temporais;
  • Treinamento de modelo, o cenário clássico de treinamento de modelo de aprendizado de máquina;
  • Otimização de portfólio, tarefas envolvendo problemas de otimização;
  • Backtesting da estratégia, leia os dados de mercado e, em seguida, simule e compare o desempenho da estratégia para obter o desempenho correspondente da posição.

Os tipos de tarefas em todo o processo são muito diversos e os requisitos de computação também são muito diferentes.

O conteúdo da pesquisa precisa de proteção: modularidade, isolamento

O conteúdo da pesquisa de investimento do pesquisador é o importante IP (propriedade intelectual) da empresa. Para proteger esses direitos de propriedade intelectual, a plataforma de pesquisa da empresa abstrai cada link de pesquisa de estratégia em um módulo contendo entrada e saída padrão e métodos de avaliação. Por exemplo, pesquisa sobre modelos, autovalores padrão de entrada e saída de sinais e modelos previstos. Ao isolar os módulos, a plataforma de pesquisa pode efetivamente proteger a segurança do IP. Ao construir uma plataforma de armazenamento, é necessário projetar de acordo com o requisito de modularização.

Características dos dados de pesquisa quantitativa

A entrada de um grande número de tarefas vem dos mesmos dados , como o backtest mencionado acima. Pesquisadores quantitativos precisam fazer muitos backtests em estratégias históricas. As mesmas posições são testadas com diferentes parâmetros para observar seu desempenho; ou extração de recursos , Geralmente, há alguma combinação de recursos básicos e novos recursos, em que uma grande quantidade de dados vem da mesma fonte de dados.

Tomemos a ação A como exemplo: a cotação histórica minuto a minuto da linha K do mercado de ações A por dez anos, ação 5000/2 240 minutos, 250 dias, 10 anos, 8 bytes*20 colunas= 240 GB, o volume geral de dados por 10 anos é de cerca de 240 G.

Se você usar dados mais refinados, a quantidade de dados será maior. De um modo geral, os dados originais não excederão 100 TB. Na era do big data, essa não é uma quantidade particularmente grande de dados, mas quando um grande número de tarefas de computação acessa esses dados ao mesmo tempo, esse cenário apresenta alguns requisitos para armazenamento de dados .

Além disso, o processo de pesquisa quantitativa de investimentos é acompanhado por um grande número de tarefas inesperadas. A equipe de pesquisa espera armazenar os resultados dessas tarefas, portanto, uma grande quantidade de dados de arquivo será gerada, mas a frequência de acesso a esses dados é muito baixo.

Características da tarefa de computação de pesquisa quantitativa

Com base nas características acima, é difícil atender às nossas necessidades de computação no método tradicional de sala de informática, portanto, mover a computação para a plataforma de computação em nuvem é uma escolha técnica relativamente adequada para nós.

Primeiro, há muitas tarefas repentinas e grande flexibilidade . A figura acima mostra os dados recentes da instância em execução de um de nossos clusters. Pode-se observar que, em vários períodos de tempo, toda a instância do cluster é totalmente carregada, mas, ao mesmo tempo, a escala de todo o cluster de computação também será dimensionada para 0. As tarefas de computação de instituições quantitativas estão intimamente relacionadas ao progresso de pesquisa e desenvolvimento dos pesquisadores, e a lacuna entre picos e depressões será muito grande, o que também é uma característica das tarefas de pesquisa off-line.

Em segundo lugar, "explosão tecnológica", é difícil prever com precisão quando a demanda por poder de computação será gerada . "Explosão de tecnologia" é o conceito do romance de ficção científica "Problema dos Três Corpos". Correspondendo a nós, nosso modelo de pesquisa e requisitos de energia de computação passarão por trancos e barrancos. É difícil para nós prever com precisão as mudanças nos requisitos de energia de computação. No início de 2020, nosso uso real de pesquisa e uso estimado eram muito pequenos, mas quando a equipe de pesquisa propôs algumas novas ideias de método de pesquisa, de repente haveria uma demanda muito grande por poder de computação em um determinado momento . E o planejamento de capacidade é uma coisa muito importante ao planejar a construção de salas de informática tradicionais.

Em terceiro lugar, a ecologia moderna da IA ​​é quase executada na plataforma nativa da nuvem . Fizemos muitas tentativas técnicas inovadoras, incluindo os MLOps muito populares, conectando todo o pipeline em série e, em seguida, fazendo o pipeline de treinamento de aprendizado de máquina. Agora, muitas tarefas de treinamento distribuídas são suportadas para nuvem nativa. Muito trabalho de desenvolvimento, que também torna uma escolha natural para nós colocar toda a tarefa de computação na nuvem.

02 Quantifique os requisitos de armazenamento da plataforma

De acordo com os requisitos de negócios e computação acima, é relativamente fácil deduzir nossos requisitos para a plataforma de armazenamento.

  1. A computação e o armazenamento são desequilibrados . Conforme mencionado acima, haverá uma grande explosão de tarefas de computação e a quantidade de computação atingirá facilmente um nível muito alto. No entanto, o crescimento de dados quentes não é tão rápido, o que significa que precisamos separar armazenamento e cálculo.

  2. Forneça acesso de alto rendimento para dados dinâmicos, como dados de mercado . Centenas de tarefas acessam dados ao mesmo tempo, o que exige uma taxa de transferência muito alta.

  3. Fornece armazenamento de baixo custo para dados frios . A pesquisa quantitativa requer uma grande quantidade de dados de arquivo e um armazenamento de custo relativamente baixo deve ser fornecido para esses dados.

  4. A diversidade de tipos/requisitos de arquivo é compatível com POSIX . Temos muitas tarefas de computação diferentes, e essas tarefas de computação têm requisitos muito diversos para tipos de arquivo, como CSV, Parquet, etc. Alguns cenários de pesquisa também exigem desenvolvimento personalizado mais flexível, o que significa que na seleção Não é possível limitar estritamente o método de armazenamento de arquivo no momento, portanto, a compatibilidade do POSIX é uma consideração importante para a seleção da plataforma de armazenamento.

  5. Proteção IP : compartilhamento de dados e isolamento de dados. Nossos requisitos de proteção de IP não apenas exigem esse isolamento em termos de tarefas de computação, mas também precisam oferecer suporte a esses recursos de isolamento em termos de dados; ao mesmo tempo, para dados relativamente públicos, como dados de mercado, também precisamos apoiar pesquisadores em um maneira conveniente de obtê-lo.

  6. Ecologia AI , agendando várias tarefas na plataforma de nuvem. Esse também é um requisito de uso relativamente básico, portanto, o armazenamento também precisa fornecer um bom suporte para o Kubernetes.

  7. Modularidade significa armazenamento/transmissão de resultados intermediários . O cenário de tarefas computacionais modulares leva à necessidade de armazenamento e transmissão de resultados intermediários. Para dar um exemplo simples, uma quantidade relativamente grande de dados de recursos será gerada durante o processo de cálculo de recursos e esses dados serão usados ​​imediatamente nos nós a serem treinados. Precisamos de um meio de armazenamento intermediário para cache.

03 Seleção da solução de armazenamento

esquema não compatível com POSIX

Inicialmente, tentamos muitas soluções de armazenamento de objetos, ou seja, soluções não-POSIX. O armazenamento de objetos tem uma forte capacidade de expansão e o custo é muito baixo, mas o problema do armazenamento de objetos também é óbvio. O maior problema é que não há compatibilidade POSIX . O uso do armazenamento de objetos é bastante diferente daquele do sistema de arquivos.Se o armazenamento de objetos for usado diretamente como uma interface para os pesquisadores, será muito difícil para eles usarem e a conveniência também será bastante limitada.

Além disso, o armazenamento de objetos de muitos fornecedores de nuvem tem um limite de solicitação. Por exemplo, o Alibaba Cloud limitará a largura de banda OSS de toda a conta. Isso geralmente é aceitável para cenários de negócios comuns, mas tarefas repentinas gerarão requisitos de largura de banda muito grandes instantaneamente e é difícil oferecer suporte a esses cenários apenas usando armazenamento de objeto.

Outra solução é o HDFS. Não fizemos muitos testes no HDFS. Em primeiro lugar, a pilha de tecnologia que usamos não depende muito do Hadoop; ao mesmo tempo, o HDFS não oferece suporte excepcional para produtos de treinamento de IA e o HDFS não possui compatibilidade completa com POSIX, o que terá algumas restrições em nosso uso cenários .

Solução de compatibilidade POSIX na nuvem

As características do negócio mencionadas acima determinam que temos uma forte demanda por compatibilidade POSIX, e a plataforma de tecnologia é baseada na nuvem pública. Portanto, determinamos o escopo de seleção de armazenamento como: Compatibilidade POSIX na nuvem .

Os fornecedores de nuvem fornecerão algumas soluções, como NAS da Alibaba Cloud, AWS EFS, etc.; o outro tipo é a solução CPFS da Alibaba Cloud e a solução FSx da AWS. O throughput desses dois tipos de sistemas de arquivos está fortemente ligado à capacidade: quanto maior a capacidade, maior o throughput, que está diretamente relacionado às propriedades de armazenamento do NAS. Essa solução não é muito amigável quando confrontada com uma pequena quantidade de dados quentes e requer otimização adicional para obter melhor desempenho . Além disso, o CPFS ou o NAS ultrarrápido no Alibaba Cloud são amigáveis ​​para leitura de baixa latência, mas a desvantagem é que o custo é relativamente alto.

Fizemos uma comparação com os preços exibidos em seus respectivos sites oficiais. O custo de vários produtos NAS de alto desempenho é de cerca de 1.500 a 2.000 yuan/TB/mês, e o custo geral do JuiceFS será muito menor, porque o armazenamento subjacente do JuiceFS é o armazenamento de objetos. O custo do JuiceFS é dividido em várias partes: o custo de armazenamento do armazenamento de objetos; o custo do serviço de nuvem JuiceFS; e o custo do cache SSD. Juntos, o custo geral do JuiceFS é muito menor do que o custo do NAS e outras soluções .

Em termos de throughput, alguns testes foram feitos no estágio inicial. Quando o número de nós é relativamente pequeno, use diretamente o CPFS para comparar com o JuiceF, e o desempenho de leitura não terá uma grande diferença. No entanto, quando o número de nós aumenta, porque os sistemas de arquivos NAS têm limitações de largura de banda, o tempo geral de leitura será prolongado e o JuiceFS pode ser suportado com muita facilidade sem muita sobrecarga, desde que o cluster de cache seja implantado. abaixo está um cluster com uma largura de banda total de cerca de 300 Gb implantado .

Além do custo e da taxa de transferência, o JuiceFS pode suportar melhor as funções acima mencionadas Full POSIX, controle de permissão, Qos e Kubernetes ao selecionar a tecnologia;

Vale a pena mencionar o recurso de cluster de cache do JuiceFS, que permite aceleração de cache flexível. No início, usamos nós de computação como caches locais, o que é uma prática muito comum. Depois que o armazenamento e a computação são separados, espera-se que alguns dados nos nós de computação possam ser localizados.JuiceFS tem suporte relativamente completo para essa função, e a ocupação de espaço e as restrições de porcentagem são bem feitas. Implantamos um cluster de cache independente para servir alguns dados quentes, desde que o cache seja aquecido antes do uso. No processo de uso, descobrimos que a utilização de recursos de diferentes clusters de computação varia muito. Existem algumas máquinas com grande largura de banda no cluster, a maioria das quais é usada para computação de nó único, o que significa que a rede das máquinas os recursos basicamente não são usados ​​e ainda há alguns discos ociosos; portanto, os nós de cache são implantados nessas máquinas para usar a largura de banda da rede ociosa. No final, percebemos um cluster de cache com largura de banda muito grande no mesmo cluster.

Atualmente, o JuiceFS é usado nos seguintes cenários de produção:

  • Sistema de arquivos de dados de tarefa de computação, que é aplicado à entrada de dados quentes;
  • saída de log/artefato;
  • Transferência de dados de pipeline: depois que os recursos de dados são gerados, eles precisam ser transferidos para o treinamento do modelo. Durante o processo de treinamento, também haverá requisitos de transferência de dados. Fluid e JuiceFS são usados ​​como clusters de cache intermediários.

No futuro, continuaremos a explorar as tecnologias nativas da nuvem e de IA para um desenvolvimento mais eficiente e seguro da cadeia de ferramentas e para a construção da plataforma de tecnologia básica.

Se você for útil, preste atenção ao nosso projeto Juicedata/JuiceFS ! (0ᴗ0✿)

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

Acho que você gosta

Origin my.oschina.net/u/5389802/blog/5586776
Recomendado
Clasificación