前回の勉強筆記8からの続きで、「构建实时机器学习系统」(彭河森 , 汪涵 著)という本で学んだことを書いています。
画像は机械工业出版社 Webサイトより引用
リアルタイム - 機械学習システムで一番重要なもの
実際運用している機械学習システムで一番重要なものは何でしょうか?
この本での答えは「リアルタイム」です。
ここでのリアルタイムの意味は「システム上で収集したデータをすぐ機械学習システムに転送して、分析して、結果を本番に反映させる過程」を指します。
どうしてこれが一番重要なのでしょうか?
理由は3つあります:
1:リアルタイムシステムのフレームワークの信頼性が保証できる
Fail fastはソフトウェアエンジニアリングでとても重要な観点です。もしシステムに不具合があれば、早めにこのシステム上で失敗してその不具合を修正します。
機械学習システムはとても複雑なシステムですので、どこかに不具合がある可能性が高いです。リアルタイム実行すると、新しい不具合がすぐに発見できます。そうするとすぐに修正ができます。この結果、リアルタイムフレームワークの信頼性が保証できます。
もしリアルタイムではない場合、例えば1日1回更新します。不具合の発見は遅れ、修正したらまた不具合の確認に時間がかかります。時間が無駄になります。
2:コード、フレームワークの品質が保証できる
リアルタイムは機械学習システムの最終形なので、もし最初からリアルタイム機械学習システムを目指すなら、最初のフレームワーク設計がとても重要になります。フレームワークを慎重に設計することで、以後のメンテナンスが楽になります。
フレームワークの設計がいいと、コードの品質も自然に上がります。
3:企業判断にデータを駆動できる
もし機械学習システムがリアルタイムなら、業務上の判断は全てリアルタイムなデータに基づいて行われます。これは人間の記憶や印象に頼るよりも客観的な判断です。
企業では上司が業務判断をするケースが多いですが、その人が主観に基づいた判断をした場合にはミスを犯すかもしれません。データに基づいた判断は、人によるミスジャッジをフォローできます。
それにもしデータがリアルタイムでない場合、データとしての価値すらなくなる可能性もあります。例えば、大きな会社にはデータ処理チームがありますが、処理されたデータの正確性の保証は難しいです。
以上が、リアルタイムが機械学習システムにおいて一番重要なものであるという根拠です。
中国広東省出身、京都オフィス勤務のエンジニア。機械学習に興味がある。京都大学留学生として来日して以来、京都の住みやすさが気に入っている。