分散ストリーム機械学習プラットフォームApache SAMOA
本記事
Apache SAMOAというApache財団のIncubatorプロジェクトがあります。
特に、日本語の記事が全くないので記事にしようと思いました。
Apache SAMOAとは
分散ストリーム機械学習フレームワークです。
SAMOAが大文字なのは略語であるからです。
S: Scalable A: Advanced M: Massive O: Online A: Analytics
SAMOAトポロジー
ここから最初に概念を紹介します。
基本的な概念は以下のようになる。
1. Processor
Processorは局所的な論理処理ユニットです。
ふた通りの方法でトポロジーで定義できます。 TopologyBuilderからaddProcessor() メソッドによって建設することができます。 また、Entrance Processorも定義することができます。より自由度の高いものになっています。
2. Content Event
SAMOA内では、メッセージやイベントのことをさす。 Processorで処理するべきコンテントを含むイベントがある。
3. Stream
streamはApache Stormなどのデータの継続的な流れを指すのではなくて、ProcessorとProcessorを接続する物理的なユニットである。
三つのストリーム配送方法がある。
Shuffling ランダムに配信する。
Key Keyによって、分配する。
All すべてのProcessorにすべてを配信する。
4. Task
Apache HadoopのJobと似ている。 機械学習の基本的なジョブです。
5. Topology Builder
トポロジーを作成し、組み立てる方法である。
6. Learner
SAMOAのサブトポロジーである。
Taskのinitが呼ばれると、Learnerは初期化され、トポロジーに追加される。
開発はされているのか
公式Twitterを見ると、最終更新日時が2015年と非常に遅いです。
また、公式ページの更新もあまりされていないようで、最新のNEWS更新日が下のようになっています。
Apache Incubator Projectではあるものの、ドロップアウトの可能性もあるので、あまり期待はできないといったような印象でした。