Service

ServiceはDatasetに含まれる各レコードを利用して、Jubatusサーバに対してupdateやanalyzeといったRPCコールを行い、結果を取得します。

API

Serviceクラスは Jubatus RPC API と同じAPIを提供します。これらのAPIはDatasetを引数に取ります。

機械学習APIに加えて、Serviceクラスは clearsaveload および get_status API を提供します。

プロセス呼び出し

ServiceクラスはJubatusサーバプロセスを起動することができます。 jubaclassifier プロセスをデフォルト設定で起動する例を以下に示します。

from jubakit.classifier import Config, Classifier

# Create a default configuration.
cfg = Config()

# Start the server process.
classifier_service = Classifier.run(cfg)

# ... do some train/classify tasks ...

# Stop the classifier process and return logs.
classifier_service.stop()

サーバプロセスはスタンドアロンモードで起動します。TCPポートは他のプロセスに競合しないように自動的に採番されます。一度Serviceインスタンスがフォーカスから外れたら、サーバプロセスはデストラクタにより停止します。

外部のJubatusサーバで動作させる

Jubakitは外部で動作しているJubatusサーバプロセスへもアクセスし、動作させることができます。

from jubakit.classifier import Classifier

# Classifier Service connects to ``127.0.0.1:9199`` using cluster name ``my_cluster``.
classifier_service = Classifier('127.0.0.1', 9199, 'my_cluster')

# ... do some train/classify tasks ...

Embedded Jubatus

Jubakitは 「embedded」 版Jubatusをバックエンドとして利用することができます。これによりRPC通信のオーバヘッドを削減することができます。

from jubakit.classifier import Config, Classifier

# Create a default configuration.
cfg = Config()

# Create a new service in "Embedded" mode.
classifier_service = Classifier.run(cfg, embedded=True)

# ... do some train/classify tasks ...

「embedded」 版の機能を利用するためには、embedded_jubatus ([embedded-jubatus-python](https://github.com/jubatus/embedded-jubatus-python))Pythonモジュールをインストールしている必要があります。embedded_jubatusはJubatusの機械学習部分を直接呼び出し可能なモジュールです。

Service一覧

Jubakitでは現在、以下のServiceをサポートしています。

他の機能のService化は対応中です。