SlideShare a Scribd company logo
1 of 15
Download to read offline
AlpacaJapan
Head of R&D
Tomoya Kitayama
Chainerを使って本気でマーケットの予測
システムを作ったらこうなった
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
ご挨拶
● AlpacaJapan株式会社
○ Head of Japan R&D
● 会社では主に
○ クライアントとエンジニアリング
の橋渡し
■ クライアントのAIに対する
期待値コントロール
■ 成果をわかりやすく届ける
ための工夫
■ Alpacaのすべての予測プ
ロジェクトのプロマネ
○ AlpacaForecast AI Prediction
Matrixのプロダクトマネー
ジャー
2
皆様ご存知の通り、ここがAIス
タートアップの腕の見せ所です(低
すぎず、高すぎず、これだけで一晩話せそうではあるが )
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
本日のお話
最近Alpacaがブルームバーグと共同リリースした AlpacaForecast AI Prediction Matrixの裏側
● ブルームバーグ端末 (金融情報を閲覧するための端末 )で動作するアプリで、ブルームバーグ端末は世界
で40万人以上のユーザー
● Alpacaが研究開発した最新の予測モデルの結果をリアルタイムに届けるためアプリ
○ 効率的に予測モデルを動作すること、管理することがそのままシステムの要件となる
○ 金融機関とも接続、もしくは金融機関のプライベートクラウド上でも動作する必要がある
3
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
市場予測でDeepLearningを使う上でのチャレンジ
・サンプルが足りない(マーケットの普遍性は長期間存続しない)
・単純な予測精度と利益が一致しない (学習可能なものと目的関数の乖離 )
・錯誤相関・評価方法(汎用性のあるパターンかどうかが重要)
・膨大な探索空間(予測時間軸、ウィンドウサイズ、 etc...)
・時系列方向のチート (先読み)防止保証
4
データサイエンス
エンジニアリング
・リアルタイム性の要求
 → マーケットフィードを高速に処理するデータベースを独自開発
・大量のモデルを分散実行する基盤
 → 開発したモデルを即デプロイできる AlpacaForecastingPlatformを独自開発
今日はこちらの話をします!
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
Alpacaの予測モデルの触りだけ
マーケットのX分後の値動きを予測
するモデルだが、マーケットはほぼラ
ンダムウォークをするので、実際に
やってみるととても難しい。
● AI・ディープラーニングに向い
ているのは大量に発生した
データからパターンを探す作
業
● マーケットにおいて最も大量に
発生しているデータはなにか、
それがTick
● 大量のTickデータから発生パ
ターンを解析し、どのようなパ
ターンが発生したときにプライ
スが上がるか・下がるかを
ディープラーニングで学習
ただ、予測モデルの中身は公表して
いないので、、、、
5
画像認識向けのCNNを
時系列解析のネットワークとして拡張
ディープニューラルネットワークがマーケットの
特徴的なTickの発生パターンを解析、予測を出
している。
画像認識
Tick発生パターン
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
Tickデータってなに
Tickデータは最短数msecで発生する金融商品の
プライスデータ
Alpacaの予測モデルはTickデータのパターン解析
を行うので結果的に数msecの分解能を持つデー
タを扱えるように設計。具体的な要件を並べてみる
と、
● 数msecのTickデータを格納、リアルタイムに
クエリできるデータベース
● 数100msec以内に予測結果をリアルタイムに
配信できる予測システム
● 金融機関での利用を想定した予測システムの
冗長化
● 将来の検証のため、出力したデータはすべて
ログとして格納されること
● コンテナによる予測モデルの管理とバックテス
ト環境とライブテスト環境における動作の同一
性の保証
6
こういう時刻・プライスの情報
が最短5msec間隔で発生す
る。といってもサイズは時系列
なので1アセット、1年で4GB程
度。
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
Kubernetesによる予測システムの構成
7
pred pred pred pred pred pred
adapter adapter
Bloomberg
predictor
RDS
dispatcher dispatcher
api api
Bloomberg App
pod
StatefulSet
SQS
Deployment
DB Access
...
marketstore marketstore
service
dispatch queue
USDJPY EURUSD Nikkei
batch batch
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
予測モデルをリアルタイムに実行する工夫
8
MarketStoreはAlpacaが独自開発し
たDataFrame配信サーバ
データがすべてnumpyバイナリで直
接MarketStoreから配信されるので
JSON => dfの最も時間がかかる処理
を省略出来る
推論処理そのものよりもその前の TickデータをChainerで処理可能とするまでのプロセスがリアルタイム
処理を行う上では支配的な影響を持つ
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
MarketStoreとは
Go言語を用いてAlpacaによりフルスクラッチ実装された金融時系列向け OSSデータベース
https://github.com/alpacahq/marketstore
うかつにMongoDBとかを使うとJSON => DataFrameで死亡する。そのコンバート処理を回避するため
MessagePackによるバイナリクエリを利用し、 MarketStore側でnumpyバイナリをDB内のバイナリ構造からそ
のまま生成、python側はMessagePack RPC経由で取得したnumpyバイナリをDataFrameとしてロードする
9
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
予測モデルの処理時間
1010
Feed Adapters
Predictor
Dispatcher
RDS
(1) SQSにB-PIPEからストリーミングさ
れるレート情報を書き込む
(2) MarketStoreへの書き込み処理
(4) 予測処理内のMarketStoreへのク
エリ
(3) MarketStore内でクエリ可能となる
(書き込み処理後即座に反映 )
(5) 予測処理(前処理・予測処理)
(6) 予測結果のSQSへの書き込み
(7) 予測結果のSQSからの取得処理
(8) DBに保存
ストリーミングの
リアルタイム処理
SQSのレイテンシなどで
50msec
クエリ・前処理含めて、
350msecで完了
およそ100ミリ秒
Bloomberg B-PIPE全体のパイプラインとしては 500msec程度で予測処理が完了
HFTではないので数msecで終わらせたいわけではない
API
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
モデルの予測システム内でのロード方法
● confdを用いてDockerコンテナ内でロー
ドされる
○ https://github.com/kelseyhigh
tower/confd
● オンプレや金融機関のクラウド環境では
外部ネットワークには原則アクセスできな
い。なので設定を柔軟に渡したい。
○ コンテナ内の設定ファイル
○ ECSやk8sの環境変数
○ AWS Parameter Store
● ロードされる予測モデルをどこから設定
するかの柔軟性を確保
● 作成されたモデルはすべて S3で
ModelPackageとして管理
● 外部ネットワークに出れないときは S3へ
のアクセスがコンテナ内部の NGINXのリ
バースプロキシによりコンテナ内部のファ
イルを指すようになっており、 S3のURL
のまま環境の差異が吸収される
11
どの予測モデルをロードする
かはconfdを経由して渡され、
S3 or コンテナ内部からロード
される
confdは設定情報を様々な
データソースから生成する薄
いラッパーライブラリ
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
予測モデルが分散して動ける仕組み
すべての予測モデルは ModelPackageというパッケージ
形式で管理
● データの前処理
● 入力データの形式
● 出力フォーマットの形式
● ラベルの定義
などなど、予測モデルを動作させるすべての情報が
yamlファイルで記載されModelPackage内部で保持
ロードされたModelPackageは自分に保存された情報か
ら、自分がどのように動作すればいいか一意に決定す
る
重要: バックテスト・ライブテストで同一の仕組みで動作
させ、過去データとライブデータの動作の同一性を保証
するためにも利用。
12
例: 特徴量をどのように生成するかを
YAMLファイルで管理している
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
リアルタイム処理をしながらデータの漏れを防ぐ仕組み
13
リアルタイムデータは Amazn SQSを一
旦通して取得することで漏れをふせぐ
(MarketStoreが死んでいてもOK)
予測結果もAmazon SQSを通してか
らRDSに書き込むことで漏れをふせぐ
(Dispatcherが死んでいてもOK)
システムのどのモジュールが死んでも重要データはすべて SQSに滞留するためデータのロストが極力でない仕
組み
STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY
まとめ
● 大量の予測モデルを動作し、かつ、大手金融機関との接続を想定した予測システムを設計したらこうなり
ました
○ たくさんの失敗から産まれたノウハウの集合体
○ これからもたくさんの予測モデルを設計し、公開していく予定
● 弊社のデータエンジニアリングやモデルの話はまた機会があれば
○ サンプルが足りない(普遍性が長期間存続しない)
■ データオーギュメンテーションは完全に研究レベル
○ 錯誤相関・評価方法(汎用性のあるパターンかどうかが重要)
■ 汎用性ってそもそも何?
○ 膨大な探索空間(予測時間軸、ウィンドウサイズ、 etc...)
■ ていうか1分後予測と10分後予測で別物の問題だった、、、
○ 時系列方向のチート (先読み)防止保証
■ マーケット予測あるある : Batch Normalizationで先読みして精度出てライブで死亡
14
データエンジニアリング・予測モデルの構築に
興味がある方、WE ARE HIRING!
ご清聴ありがとうございました!

More Related Content

Similar to Chainerを使って本気でマーケットの予測システムを作ったらこうなった

Watson summit 2016_j2_5
Watson summit 2016_j2_5Watson summit 2016_j2_5
Watson summit 2016_j2_5Tanaka Yuichi
 
小規模チームで Type script と向き合う話
小規模チームで Type script と向き合う話小規模チームで Type script と向き合う話
小規模チームで Type script と向き合う話Tatsuya Yamamoto
 
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6Hironobu Isoda
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性Kenichiro MITSUDA
 
Keycloak & midPoint の紹介
Keycloak & midPoint の紹介Keycloak & midPoint の紹介
Keycloak & midPoint の紹介Hiroyuki Wada
 
Aigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdfAigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdfJunKakuta1
 
Aigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdfAigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdfJunKakuta1
 
Aigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdfAigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdfJunKakuta1
 
Aigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdfAigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdfJunKakuta1
 
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理Ryosuke Suto
 
Accel シリーズ 2015 Winter 主な機能強化・追加、変更点
Accel シリーズ 2015 Winter 主な機能強化・追加、変更点Accel シリーズ 2015 Winter 主な機能強化・追加、変更点
Accel シリーズ 2015 Winter 主な機能強化・追加、変更点NTTDATA INTRAMART
 
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについてタクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについてTakashi Suzuki
 
Apache Impalaパフォーマンスチューニング #dbts2018
Apache Impalaパフォーマンスチューニング #dbts2018Apache Impalaパフォーマンスチューニング #dbts2018
Apache Impalaパフォーマンスチューニング #dbts2018Cloudera Japan
 
Rancherを活用した開発・運用効率の改善への取り組み
Rancherを活用した開発・運用効率の改善への取り組みRancherを活用した開発・運用効率の改善への取り組み
Rancherを活用した開発・運用効率の改善への取り組みMichitaka Terada
 
Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること[Google Cloud INSIDE Games ...
Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること[Google Cloud INSIDE Games ...Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること[Google Cloud INSIDE Games ...
Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること[Google Cloud INSIDE Games ...Google Cloud Platform - Japan
 
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介NTT Communications Technology Development
 
SORACOM Harvest + AWS Lambdaでウィンドウ処理をやってみた
SORACOM Harvest + AWS Lambdaでウィンドウ処理をやってみたSORACOM Harvest + AWS Lambdaでウィンドウ処理をやってみた
SORACOM Harvest + AWS Lambdaでウィンドウ処理をやってみたHaruka Yamashita
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...Rakuten Group, Inc.
 
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ APIMPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ APIKentaro Ebisawa
 

Similar to Chainerを使って本気でマーケットの予測システムを作ったらこうなった (20)

Watson summit 2016_j2_5
Watson summit 2016_j2_5Watson summit 2016_j2_5
Watson summit 2016_j2_5
 
小規模チームで Type script と向き合う話
小規模チームで Type script と向き合う話小規模チームで Type script と向き合う話
小規模チームで Type script と向き合う話
 
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性
 
Keycloak & midPoint の紹介
Keycloak & midPoint の紹介Keycloak & midPoint の紹介
Keycloak & midPoint の紹介
 
Aigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdfAigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdf
 
Aigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdfAigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdf
 
Aigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdfAigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdf
 
Aigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdfAigent-Recommender-Introduction.pdf
Aigent-Recommender-Introduction.pdf
 
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
 
Accel シリーズ 2015 Winter 主な機能強化・追加、変更点
Accel シリーズ 2015 Winter 主な機能強化・追加、変更点Accel シリーズ 2015 Winter 主な機能強化・追加、変更点
Accel シリーズ 2015 Winter 主な機能強化・追加、変更点
 
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについてタクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
 
Apache Impalaパフォーマンスチューニング #dbts2018
Apache Impalaパフォーマンスチューニング #dbts2018Apache Impalaパフォーマンスチューニング #dbts2018
Apache Impalaパフォーマンスチューニング #dbts2018
 
YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略
 
Rancherを活用した開発・運用効率の改善への取り組み
Rancherを活用した開発・運用効率の改善への取り組みRancherを活用した開発・運用効率の改善への取り組み
Rancherを活用した開発・運用効率の改善への取り組み
 
Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること[Google Cloud INSIDE Games ...
Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること[Google Cloud INSIDE Games ...Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること[Google Cloud INSIDE Games ...
Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること[Google Cloud INSIDE Games ...
 
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
 
SORACOM Harvest + AWS Lambdaでウィンドウ処理をやってみた
SORACOM Harvest + AWS Lambdaでウィンドウ処理をやってみたSORACOM Harvest + AWS Lambdaでウィンドウ処理をやってみた
SORACOM Harvest + AWS Lambdaでウィンドウ処理をやってみた
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
 
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ APIMPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
 

Recently uploaded

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Recently uploaded (9)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

Chainerを使って本気でマーケットの予測システムを作ったらこうなった

  • 1. AlpacaJapan Head of R&D Tomoya Kitayama Chainerを使って本気でマーケットの予測 システムを作ったらこうなった
  • 2. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY ご挨拶 ● AlpacaJapan株式会社 ○ Head of Japan R&D ● 会社では主に ○ クライアントとエンジニアリング の橋渡し ■ クライアントのAIに対する 期待値コントロール ■ 成果をわかりやすく届ける ための工夫 ■ Alpacaのすべての予測プ ロジェクトのプロマネ ○ AlpacaForecast AI Prediction Matrixのプロダクトマネー ジャー 2 皆様ご存知の通り、ここがAIス タートアップの腕の見せ所です(低 すぎず、高すぎず、これだけで一晩話せそうではあるが )
  • 3. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY 本日のお話 最近Alpacaがブルームバーグと共同リリースした AlpacaForecast AI Prediction Matrixの裏側 ● ブルームバーグ端末 (金融情報を閲覧するための端末 )で動作するアプリで、ブルームバーグ端末は世界 で40万人以上のユーザー ● Alpacaが研究開発した最新の予測モデルの結果をリアルタイムに届けるためアプリ ○ 効率的に予測モデルを動作すること、管理することがそのままシステムの要件となる ○ 金融機関とも接続、もしくは金融機関のプライベートクラウド上でも動作する必要がある 3
  • 4. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY 市場予測でDeepLearningを使う上でのチャレンジ ・サンプルが足りない(マーケットの普遍性は長期間存続しない) ・単純な予測精度と利益が一致しない (学習可能なものと目的関数の乖離 ) ・錯誤相関・評価方法(汎用性のあるパターンかどうかが重要) ・膨大な探索空間(予測時間軸、ウィンドウサイズ、 etc...) ・時系列方向のチート (先読み)防止保証 4 データサイエンス エンジニアリング ・リアルタイム性の要求  → マーケットフィードを高速に処理するデータベースを独自開発 ・大量のモデルを分散実行する基盤  → 開発したモデルを即デプロイできる AlpacaForecastingPlatformを独自開発 今日はこちらの話をします!
  • 5. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY Alpacaの予測モデルの触りだけ マーケットのX分後の値動きを予測 するモデルだが、マーケットはほぼラ ンダムウォークをするので、実際に やってみるととても難しい。 ● AI・ディープラーニングに向い ているのは大量に発生した データからパターンを探す作 業 ● マーケットにおいて最も大量に 発生しているデータはなにか、 それがTick ● 大量のTickデータから発生パ ターンを解析し、どのようなパ ターンが発生したときにプライ スが上がるか・下がるかを ディープラーニングで学習 ただ、予測モデルの中身は公表して いないので、、、、 5 画像認識向けのCNNを 時系列解析のネットワークとして拡張 ディープニューラルネットワークがマーケットの 特徴的なTickの発生パターンを解析、予測を出 している。 画像認識 Tick発生パターン
  • 6. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY Tickデータってなに Tickデータは最短数msecで発生する金融商品の プライスデータ Alpacaの予測モデルはTickデータのパターン解析 を行うので結果的に数msecの分解能を持つデー タを扱えるように設計。具体的な要件を並べてみる と、 ● 数msecのTickデータを格納、リアルタイムに クエリできるデータベース ● 数100msec以内に予測結果をリアルタイムに 配信できる予測システム ● 金融機関での利用を想定した予測システムの 冗長化 ● 将来の検証のため、出力したデータはすべて ログとして格納されること ● コンテナによる予測モデルの管理とバックテス ト環境とライブテスト環境における動作の同一 性の保証 6 こういう時刻・プライスの情報 が最短5msec間隔で発生す る。といってもサイズは時系列 なので1アセット、1年で4GB程 度。
  • 7. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY Kubernetesによる予測システムの構成 7 pred pred pred pred pred pred adapter adapter Bloomberg predictor RDS dispatcher dispatcher api api Bloomberg App pod StatefulSet SQS Deployment DB Access ... marketstore marketstore service dispatch queue USDJPY EURUSD Nikkei batch batch
  • 8. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY 予測モデルをリアルタイムに実行する工夫 8 MarketStoreはAlpacaが独自開発し たDataFrame配信サーバ データがすべてnumpyバイナリで直 接MarketStoreから配信されるので JSON => dfの最も時間がかかる処理 を省略出来る 推論処理そのものよりもその前の TickデータをChainerで処理可能とするまでのプロセスがリアルタイム 処理を行う上では支配的な影響を持つ
  • 9. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY MarketStoreとは Go言語を用いてAlpacaによりフルスクラッチ実装された金融時系列向け OSSデータベース https://github.com/alpacahq/marketstore うかつにMongoDBとかを使うとJSON => DataFrameで死亡する。そのコンバート処理を回避するため MessagePackによるバイナリクエリを利用し、 MarketStore側でnumpyバイナリをDB内のバイナリ構造からそ のまま生成、python側はMessagePack RPC経由で取得したnumpyバイナリをDataFrameとしてロードする 9
  • 10. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY 予測モデルの処理時間 1010 Feed Adapters Predictor Dispatcher RDS (1) SQSにB-PIPEからストリーミングさ れるレート情報を書き込む (2) MarketStoreへの書き込み処理 (4) 予測処理内のMarketStoreへのク エリ (3) MarketStore内でクエリ可能となる (書き込み処理後即座に反映 ) (5) 予測処理(前処理・予測処理) (6) 予測結果のSQSへの書き込み (7) 予測結果のSQSからの取得処理 (8) DBに保存 ストリーミングの リアルタイム処理 SQSのレイテンシなどで 50msec クエリ・前処理含めて、 350msecで完了 およそ100ミリ秒 Bloomberg B-PIPE全体のパイプラインとしては 500msec程度で予測処理が完了 HFTではないので数msecで終わらせたいわけではない API
  • 11. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY モデルの予測システム内でのロード方法 ● confdを用いてDockerコンテナ内でロー ドされる ○ https://github.com/kelseyhigh tower/confd ● オンプレや金融機関のクラウド環境では 外部ネットワークには原則アクセスできな い。なので設定を柔軟に渡したい。 ○ コンテナ内の設定ファイル ○ ECSやk8sの環境変数 ○ AWS Parameter Store ● ロードされる予測モデルをどこから設定 するかの柔軟性を確保 ● 作成されたモデルはすべて S3で ModelPackageとして管理 ● 外部ネットワークに出れないときは S3へ のアクセスがコンテナ内部の NGINXのリ バースプロキシによりコンテナ内部のファ イルを指すようになっており、 S3のURL のまま環境の差異が吸収される 11 どの予測モデルをロードする かはconfdを経由して渡され、 S3 or コンテナ内部からロード される confdは設定情報を様々な データソースから生成する薄 いラッパーライブラリ
  • 12. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY 予測モデルが分散して動ける仕組み すべての予測モデルは ModelPackageというパッケージ 形式で管理 ● データの前処理 ● 入力データの形式 ● 出力フォーマットの形式 ● ラベルの定義 などなど、予測モデルを動作させるすべての情報が yamlファイルで記載されModelPackage内部で保持 ロードされたModelPackageは自分に保存された情報か ら、自分がどのように動作すればいいか一意に決定す る 重要: バックテスト・ライブテストで同一の仕組みで動作 させ、過去データとライブデータの動作の同一性を保証 するためにも利用。 12 例: 特徴量をどのように生成するかを YAMLファイルで管理している
  • 13. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY リアルタイム処理をしながらデータの漏れを防ぐ仕組み 13 リアルタイムデータは Amazn SQSを一 旦通して取得することで漏れをふせぐ (MarketStoreが死んでいてもOK) 予測結果もAmazon SQSを通してか らRDSに書き込むことで漏れをふせぐ (Dispatcherが死んでいてもOK) システムのどのモジュールが死んでも重要データはすべて SQSに滞留するためデータのロストが極力でない仕 組み
  • 14. STRICTLY CONFIDENTIAL AND FOR INTERNAL USE ONLY まとめ ● 大量の予測モデルを動作し、かつ、大手金融機関との接続を想定した予測システムを設計したらこうなり ました ○ たくさんの失敗から産まれたノウハウの集合体 ○ これからもたくさんの予測モデルを設計し、公開していく予定 ● 弊社のデータエンジニアリングやモデルの話はまた機会があれば ○ サンプルが足りない(普遍性が長期間存続しない) ■ データオーギュメンテーションは完全に研究レベル ○ 錯誤相関・評価方法(汎用性のあるパターンかどうかが重要) ■ 汎用性ってそもそも何? ○ 膨大な探索空間(予測時間軸、ウィンドウサイズ、 etc...) ■ ていうか1分後予測と10分後予測で別物の問題だった、、、 ○ 時系列方向のチート (先読み)防止保証 ■ マーケット予測あるある : Batch Normalizationで先読みして精度出てライブで死亡 14 データエンジニアリング・予測モデルの構築に 興味がある方、WE ARE HIRING!