Skip to content

Instantly share code, notes, and snippets.

@unnonouno
Created November 7, 2012 06:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save unnonouno/4029808 to your computer and use it in GitHub Desktop.
Save unnonouno/4029808 to your computer and use it in GitHub Desktop.
Jubatus Example

Jubatus Example

目的

現状のJubatusにはサンプルが少なすぎて、ユーザーが非常に使いにくい。 ユーザーが利用するときに参考にできるような、シンプルでカバー範囲の広いサンプル群を容易することで、導入時のコストを下げたい。

アイデア

  • 幾つかのサンプルケースを考えて、具体的にJubatusを叩いて実行できるサンプルを複数作る
  • 有用でなくても良いが、なるべく具体的なデータ(人工的なランダムデータではない)を利用して、どういうシーンで利用できるか示せると良い
  • 分類やレコメンドなど、全てのサーバーに対して具体例を作りたい
  • 各サンプルはシンプルなものでよいが、なるべく単体のファイルを読めばどうすればいいかわかるようなシンプルなものが良い
  • 一つの言語だけサンプルがあると、ユーザーを特定してしまうので、なるべくすべての言語で書かれている方が良い
  • 実行するまでの手順もまとまっていると良い
  • できたサンプルに沿う形のチュートリアルがあると良い

作り方方針

  • サンプルシナリオごとに1ディレクトリ作る
  • 各シナリオでどの学習器を使うかなどを明記(そういうページを用意する)
  • 各サンプルディレクトリ下に各言語用のディレクトリを用意してそこに作成
    • ひとまず手作業で作る
    • 複数言語用のサンプルの自動生成は技術的には可能だがfuture work
  • なるべく単体のプログラムで完結するようにする
    • テストケースのイメージ
    • 外部ファイルの読み込みとかは本質でないのと、パス間違えて実行できないみたいなことを防ぎたい

議論

  • チュートリアルをどうするか
    • 各サンプルに付随する形で書く?
    • サンプルとは別に作る?
@suma
Copy link

suma commented Nov 7, 2012

  • ディレクトリ
    • サンプルごとに作成すればよいのでは
  • 各言語用コードの準備方法
    • まずは手動でよさそう、自動化するほどサンプルを増やす予定があるか。RPCのインタフェース(IDL)が変わったら自動化生成ツール側も修正は必要
    • アルゴリズムやサンプルとして代表的な例では複数言語は用意したほうがよさそう
    • サンプルアプリが大きすぎるとき(ウェブアプリなど)は、1言語のみでよさそう(各言語に対応しきれない)。
      • 各言語・アプリケーションに特化した実装パターン、ノウハウを説明する割合が大きくなりそう
      • 代表的な実装パターン等あれば、小さなサンプルとは別にチュートリアルがあってもよいかもしれない
  • チュートリアルをどうするか
    • サンプルで伝えたい内容に焦点をあてる。複数言語ある場合は、個別に記述が必要なところもありそう
    • 実行コマンド、引数などをなるべく共通化できるとよい

@odasatoshi
Copy link

  • ディレクトリ構成をどうするか
    • サンプルシナリオごとにディレクトリ
    • 例えば利用するデータは、./dat/以下にあるなど共通化
    • ./READMEに必ずデータの取得方法が書かれている。
  • 各言語用のコードをどのように生成するか
    • まずは人手で
    • ./TODO にこれから移植しないといけない言語リストが書いてあれば、forkしてもらえるかも?
  • チュートリアル
    • サンプルとは別になるべく目的別にしたい。
    • {classifier, regression, recommender, stat, graph}の基本的な使い方
    • ストリーム処理とjubatusをつなぐ方法
    • デバッグの仕方
    • などなど

@unnonouno
Copy link
Author

  • ディレクトリ
    • サンプルシナリオ毎に書く
  • 各シナリオがどのツールを使うのかを明記する(明記した目次ページを作る)
    • 複数利用するサンプルもありそうなので
  • サンプルはなるべく小さいストーリーで単体で見てわかる程度でいいかなと思う
  • 引数とかは付けずに、単体で完結している程度でいいかなと思う
  • チュートリアル
    • チュートリアルがサンプルになっている感じでいい気はするんですがどうでしょう
    • その意味では、jubatus-tutorial?
    • 外部ツールとつなぎ合わせるサンプルは勉強も兼ねて作ってみます
    • デバッグもストーリーを考えて作るとよさそう(わざと設定を間違える)
    • fv_converterのチューニング例とかもよさげ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment