『ビッグデータ分析のシステムと開発がこれ1冊でしっかりわかる教科書』を読んだ感想

『ビッグデータ分析のシステムと開発がこれ1冊でしっかりわかる教科書』を読んだ感想

つい先日、データエンジニアの方と「データサイエンス組織はプロダクトの開発でどこまで責任を持つべきなのか」という話をする機会がありました。
組織が大きくなり、エンジニアリング/サイエンスの分業が進んでいるからこそ、その境目に関しての議論が出てくるのでしょう(おそらく今後も)。
その際、データエンジニアの仕事、ひいては、データ分析/機械学習プロダクトの開発や運用の全体像をきちんと把握していないと、実りある議論ができないと思ったので、書店で平積みされていたこの本を読んでみました。
以下、簡単に感想をまとめます。

データエンジニアがカバーする領域は多岐にわたる

本書ではビッグデータ分析を活用するには、以下の役割が必要だと述べています。

  1. データビジネスの役割
    データ分析により企業の利益を上げる
  2. データサイエンスの役割
    データから知見を取り出す方法を実装し、日々改善し続ける
  3. データエンジニアリングの役割
    データの準備から成果の監視までシステム全体を設定し、運用する

上記から分かる通り、データエンジニアリングの役割を担う、所謂データエンジニアがカバーする領域は多岐にわたります。
データエンジニアは、データサイエンティストが高度な分析や機械学習アルゴリズムを開発できる基盤を準備するのはもちろんのことですが、データ収集基盤の構築から社内で展開するBI基盤の運用まで、データサイエンティストが担当する業務以外の全てを担当する必要があります。

AIの民主化にはエンジニアリングの力が不可欠

空前のAIブームに伴い、機械学習やディープラーニング案件がどんどん増加していますが、本番実装にたどり着かずにPoCで終わってしまうことが多いのが現状です。
それは、PoCの段階で本番実装を見据えて、以下を考慮できていないためです。

システムに対する考慮

  • データをどうやって継続的に集めるのか
  • 集めたデータの整理や品質チェックをどうするのか
  • 分析結果を利益に結びつける部分をどうやって自動化するのか
  • 分析の精度が劣化していないかどうやって監視するのか
  • ソースコードの管理やリリースの管理をどうするのか
  • 処理が業務時間までに間に合うのか
  • データに機密情報が混ざっているが、どうやって制御するか

人に対する考慮

  • 本番システムの構築は誰が行うのか
  • 本番処理がエラーになったときに誰が対応するのか
  • データの品質管理は誰がするのか
  • 機械学習モデルのメンテナンスは誰が行うのか
  • 分析レポートのメンテナンスは誰が行うのか

上記の考慮はモデルを開発したデータサイエンティストの領分ではなく、データエンジニアの領分になります。
PoCではデータサイエンティストの力が必要ですが、本番運用にはデータエンジニアリングの力が不可欠です。
AIプロジェクトにおいて、彼らのリソースを準備できていない状況でPoCを始めてしまうと本番運用の段階になって躓いてしまうのです。

まとめ

本書を読み、データエンジニアがいてはじめてデータサイエンスができるのだと改めて思いました。
本書で語られている、データエンジニア/データサイエンティストの役割分担が必ずしも正解とは限リませんが、「データサイエンス組織はプロダクトの開発でどこまで責任を持つべきなのか」という議論の前提知識として、最低限知っておくべきことだと感じました。