仕組み

このページでは、AutoBC がディープラーニング技術を用いてどのように動いているか紹介していきます。

概要

AutoBC は Google Cloud Platform の各クラウドソリューションをフルに活用して実装されています。 フロントエンドは App Engine、機械学習の学習・予測は Tensorflow を Compute Engine 上で動かしています。 データの保存とやりとりには Cloud SQL 2nd generation 及び Cloud Storage を用いています。 具体的なデータやリクエストの流れについては以下の各項目をご覧ください。

coincheck の登録はこちらから

データ収集

  1. App Engine の cron 機能を使い、1分ごとにコードが実行されます
  2. coincheck の ticker API 及び balance API にアクセスし、データを取得します
  3. データを Cloud SQL に保存します
  4. 1日に1回、Cloud SQL に保存したデータをまとめて Cloud Storage 上に csv としてダンプします
    このデータは Deep Neural Net の学習データとして使われます

モデル学習

  1. モデル学習は Compute Engine の n1-highcpu-64 インスタンス (preemptible) 上で実行します
    まず、Cloud Storage に保存されたダンプデータを読み込みます
  2. Tensorflow を用いてモデルを学習します
    モデルは常に改善していますが、現在は LSTM などを実装しています
    モデルは、過去100分のビットコイン価格データを元に、今後10分の価格を予測します
  3. モデルを Cloud Storage に保存します

coincheck の登録はこちらから

価格予測・取引

  1. 予測用のデータを Cloud SQL から読み込みます
  2. モデルを Cloud Storage から読み込みます
  3. Tensorflow を用いて、今後のビットコイン価格を予測します
  4. 予測を元に、ビットコインの売り買い注文を出します(指値)
    今後10分間で現在の価格が最も高い場合に売り注文を、最も安い場合に買い注文を出します
  5. 予測結果を Cloud SQL に書き込みます

ウェブ UI

  1. ユーザがサイトにアクセスします
  2. API を呼ぶための JavaScript を含む HTML を返します
  3. API に予測データや残高データをリクエストします
  4. 予測データや残高データを Cloud SQL から取得します
  5. 結果を JSON で返します
    API の結果は Google のエッジキャッシュを利用してキャッシュされます
    App Engine へのアクセスは最大で1分間に1回のみで、それ以外は Google のキャッシュサーバからデータが返されます