Mais conteúdo relacionado
Semelhante a 世界征服を目指す Jubatus だからこそ期待する 5 つのポイント (20)
世界征服を目指す Jubatus だからこそ期待する 5 つのポイント
- 1. Copyright © 2013 NTT DATA Corporation
2013/06/02
Jubatus Casual Talks #1
NTTデータ 基盤システム事業本部
OSSプロフェッショナルサービス
下垣 徹
世界征服を目指す Jubatus だからこそ
期待する 5 つのポイント
- 2. 2Copyright © 2013 NTT DATA Corporation
下垣 徹 (しもがき とおる / @shimtoru)
株式会社NTTデータ 基盤システム事業本部
RDBMSスペシャリスト
OSSのデータベース「PostgreSQL」使い
ミッションクリティカルなOracleのシステムを
PostgreSQLへ移行する案件を手掛ける
Oracleの高速データロードツールSQL*Loaderの
PostgreSQL版を開発
ここ数年はHadoopに従事
巨大なデータをどう取り扱うかに取り組む
2011/01/28発売の「Hadoop徹底入門」
でとりまとめを担当
第4刷を発売中
もうすぐ第二版を発売予定
自己紹介
- 3. 3Copyright © 2013 NTT DATA Corporation
安定したシステムを提供するためには
そのミドルウェアをコントロール可能であること
コントロール可能であるためには、状態を正しく把握できること
システムを提供する立場からすると「多種多様であること」は
必ずしも好ましいとは言えない
言うなれば 「多種 単 様」 であることが望ましい
あれもこれも見ないといけない & 見るためのスキルが必要
結果としてメンテナンスコストが膨らむ
今日の立ち位置:システムを提供する側として
- 4. 4Copyright © 2013 NTT DATA Corporation
静的なシステム・アーキテクチャ
付加しなければならない機能を作り込みやすい
フレームワークとして使いやすい、分かり易い
インストールしやすい
メンテナンスしやすい
動的なシステム・アーキテクチャ
性能、サイジング
障害の検知、復旧する
アプリケーション開発
機会学習のフレームワークとして必要なもの .. こと足りてる?
機能を開発、実装、検証する際に必要な、道具立てが揃っている
今日の立ち位置:システムを提供する側として
- 5. 5Copyright © 2013 NTT DATA Corporation
比較的安心して使えるのは Classifier・Recommender あとは Anomaly
Jubatus の各機能の実装状況 (2013年5月時点)
NoNoNoNo 機能名機能名機能名機能名 実装状況実装状況実装状況実装状況
1 Classifier ◯ 最も安定した学習結果を得られる。
△ 学習の際のハイパーパラメータの調整機能が不足
2 Recommender
◯ 比較的安定した学習結果を得られる。
△ 類似度の計算方式を調整できない。
△ 並列処理時の有難味が薄い。
3 Regression △ 学習時の収束性に問題がある
4 Stat △ 基本的な統計処理が可能だが、統計処理の対象範囲指
定ができないため使い所が難しい
5 Graph
△ 最短経路の探索機能に制限があり(landmarkの柔軟な
指定ができない)、出力される内容も正確でない場合がある。
△ 重み付きグラフ・有向グラフへに非対応
6 Anomaly
◯ 機能的には比較的使いやすい
△ パラメータの調整が難しすぎる
△ 自動的に「忘れる」機能が欲しい
- 6. 6Copyright © 2013 NTT DATA Corporation
1. モデルの取得
2. 障害に対する配慮
3. ミドルウェアとしての構成をシンプルに
4. mixが効果的に動いてほしい
5. Jubatus の動作モデルのあり方について
世界征服を目指す Jubatus
だからこそ期待する5つのポイント
- 7. 7Copyright © 2013 NTT DATA Corporation
現状の Jubatus ではモデルを取得することができないため、Jubatus
内部での学習状況を把握できない
自社では Classifier について Jubatus の save の出力を参考に、モ
デル(特徴ベクトル) を取得する機能を自作して活用中
「Rだと普通に使える機能」を提供してほしい
@kumagi さんによると、すでに実装し終えているとか...??
1. モデルが取得できない
- 8. 8Copyright © 2013 NTT DATA Corporation
現状の Jubatus は、障害に対する配慮が十分とはいえない
そもそも、どういう障害が起こりえて、どこを観測していればどのような
障害が発生していることを確認できるのだろうか?
例:この2つのエラーメッセージ、状態の違いって何...?
- msgpackrpc.error.TimeoutError: Request timed out
- msgpackrpc.error.RPCError: request timed out
まずは「事象を把握できること」を地道に作りこんでほしい
エラーメッセージから問題が識別できる
問題が識別できるようにエラーメッセージを出す
2. 障害に対する配慮
- 9. 9Copyright © 2013 NTT DATA Corporation
現状の Jubatus は実験的に作ってみた要素が強い
1. パッケージの依存関係が多すぎる
インストールが面倒くさい
- devパッケージ・rpmパッケージともに用意されたので昔ほど煩雑ではない
- ネットワークに繋がっている環境でインストールする分にはかまわないが...
依存パッケージのバージョンにもかなり引きずられる
- Jubatus のバージョンアップのたびに周辺パッケージもアップデート
いざ運用に入ったときにこれだけのパッケージの面倒をみるの...?
- pficommon と MessagePack は特に強結合
3. ミドルウェアとしての構成が複雑
- 10. 10Copyright © 2013 NTT DATA Corporation
2. 実装言語も多すぎる
Jubatus は C++ で実装されているが、そのコードの一部を自動生成
するためにIDLが用意されている
- mpidl : 各種ヘッダファイルの作成 → Haskel
- jenerator : impl や keeper の作成 → OCaml
本当に言語を分ける必要があるのか...
3. ミドルウェアとしての構成が複雑
- 11. 11Copyright © 2013 NTT DATA Corporation
Jubatus の Classifier は mix によって重みベクトル(モデルの
実体)を平均化している
しかし、この操作の意味は少なくとも自明に了解できる類のも
のではない
例えば、以下の二つの状況を考える。
1. データを 2 プロセスに振り分けて学習し、結果を平均化する
2. データを 1/2 に間引き、1 プロセスで学習する
このどちらが「正しい」のかの判断には慎重な検討を要し、ある程度以
上のデータ量を前提とすれば、直感的には、むしろ後者の方が統計的
に正しい結果を得られるようにも思われる。
mix を効果的に使うための構成やチューニング方法といった情
報の提供も望まれる
4. mixが効果的に動いてほしい
- 12. 12Copyright © 2013 NTT DATA Corporation
(参考) mix の動作検証
mixなし mix間隔512
mix間隔64 mix間隔8
1プロセス
8プロセス
mixあり/mixなしで収束速度はほぼ同じ ※グラフの横軸
は投入件数、縦
軸は正答率(25
件ごとの移動平
均)
<評価について>
・1 プロセスの場
合、評価を 8 回
に 1 回とした
・評価は特定の
1 プロセスについ
てのみ実施した
(8 プロセスの場
合はそのうちの
1 プロセス)
mix間隔を狭めるにつれむしろ正答率の立ち上がりが鈍化
・mix が効果を発揮できているのかを調査
・Classifier に対し、20 Newsgroups の場
合の記事を 1 件ずつ評価・学習の順で投
入し、評価結果が正解か不正解かを出力
- 13. 13Copyright © 2013 NTT DATA Corporation
機械学習の特性と並列処理の有効活用について
Jubatus は最初に実装された Classifier に適した動作モデルになっているが、全
モデルで共通の構成で良いのか?
レコード群を各プロセスで分割して保持し、評価を並列実行するようにすれば高速
化可能なはず → Recommender に限らず機械学習モデルごとに並列度を活かせ
るような動作モデルをとる必要があるのでは?
5. Jubatus の動作モデルのあり方について
Classifier Recommender
学習 遅い 速い
評価 速い 遅い
Classifier の場合、相対的に処理速度が
遅くなる学習フェーズの部分を並列化す
ることで高速化を図っている
Recommender の場合、並列度を上げても評価に
かかる時間は一定(Jubatus ではモデルを全プロセ
スで共通化するため)
→ 並列化してもプロセスのプールができるだけで
あり、高速化は期待できず、有り難みが少ない
- 14. 14Copyright © 2013 NTT DATA Corporation
Jubatus は開発チームが非常にアクティブ
バグを指摘すると素早く修正してくれる
これからが正念場のプロダクト
Jubatusの発展を応援しています!
一緒にPOCをやってみたいという方は遠慮なくご連絡を!
最後に
- 15. Copyright © 2011 NTT DATA Corporation
Copyright © 2013 NTT DATA Corporation
お問い合わせ先:
株式会社NTTデータ 基盤システム事業本部
OSSプロフェッショナルサービス
URL: http://oss.nttdata.co.jp/hadoop
メール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496