=============================== RaSC (Rapid Service Connector) =============================== 概要 ==== RaSCは,(独)情報通信研究機構 情報分析研究室が開発した,ユーザプログラムを高速・高並列に実行可能にするフリーのミドルウェアです. - (参考文献) 田仲 正弘, 大竹 清敬, 鳥澤 健太郎, 田浦 健次朗, RaSC: 高速なストリーム通信をサポートする言語処理プログラムの高速化・高並列化ミドルウェア, 言語処理学会第20回年次大会, 2014. :download:`[発表スライド] ` RaSCは,既存の形態素解析器や係り受け解析器などのプログラムを大量のWebページに高速に適用することを念頭に開発されたものであり,多種のユーザプログラムを複数起動し,それらを相互に接続して分散並列実行させるためのミドルウェアです.処理の例としては,一つのファイルやストリームにある複数件の入力に対して,ユーザプログラムを複数起動し,マルチコアCPUを活用して並列実行したり,複数の計算機上で分散実行することを容易にします.また,大規模データを分割して異なる計算機上に格納し,それぞれに対応する多種のユーザプログラムを複数起動し,分割されたデータをそれぞれ処理することで,大規模データの高速な処理が可能になります.また,自然言語処理を念頭においてはいますが,ユーザプログラムは自然言語処理のプログラムには限定されず広い範囲のプログラムに適用可能です.標準入力またはファイルから入力を受け取り,標準出力またはファイルに結果を出力するプログラムであれば,ほとんどの場合軽微な変更でRaSC上で分散実行することが可能です. RaSC上で稼働するユーザプログラムのプロセスは,一度起動されると計算機に常駐します.そのため,辞書ファイルをロードする言語処理プログラムのように,巨大ファイルのロードなどにより起動時間が長くなっているプログラムであっても,効率的に実行できます.また,ユーザプログラムはネットワークを介して容易に利用でき,複数件の入力があった際には,複数の計算機上で並列化・分散実行することによって高速化されます.ユーザプログラム同士は,UNIXのパイプのように,簡便にストリーム通信により接続できる他,ユーザプログラムの実行はユーザが意識することなく並列に行われます (:doc:`rasc_overview` 参照). 以下は,構文解析システム `KNP `_ をRaSC上で実行した例です.一行を1件の文として500行の入力を与え,それを複数の実行プロセスに割り振ることで,マルチコアCPUによる並列化(Intel Xeon X5675*2 上で8並列実行)で,5倍程度の高速化がなされています.また,オリジナルの入力ファイル (INPUT_TXT) における入力の順序は,出力ファイル (OUTPUT_TXT) でも保存されます(この例は, :ref:`faq_pipe_in` で説明している手順で実現できます). .. code-block:: bash :emphasize-lines: 2,7 $ time cat INPUT_TXT | juman | knp > OUTPUT_TXT # ユーザプログラムを直接実行する場合 real 2m28.456s # 並列化なし user 2m17.557s sys 0m1.011s $ ./server.sh KNPService 19999 start # KNPを実行するRaSCサービスを起動 $ time cat INPUT_TXT | java -cp ./lib/*: RaSCClient localhost 19999 > OUTPUT_TXT # ホスト・ポートを変更すれば他の計算機ノードへもアクセス可能 real 0m29.402s # マルチコアCPUにより並列化(Intel Xeon X5675*2 上で8並列実行) user 0m0.566s sys 0m0.045s RaSCは,(独)情報通信研究機構で現在開発中の大規模Web情報分析システムWISDOM Xのために開発され,一日あたり2000万以上のWebページに対して係り受け解析・評価情報抽出・因果関係抽出などの各種解析を高速に実行するために使われています. RaSC は LGPL v2.1 の下で配布されています. ニュース ======== - 2014/05/15: :doc:`rasc_msgpack_various_lang` にRubyからの呼び出し例を記載しました. - 2014/04/21: 東北大学の五十嵐祐貴さんが,音声認識エンジン `Julius `_ をRaSCから利用する手順を公開されたため (`RaSCとJuliusを用いた音声認識サーバーの構築 `_),「RaSC上で動作を確認したユーザプログラム」にJuliusを追加し,記事へのリンクを掲載させていただきました. - 2014/03/27: 「RaSC上で動作を確認したユーザプログラム」に, `Enju `_, `GENIA tagger `_ を追加しました. - 2014/03/27: パッケージをアップデートしました (Version 1.0.1). - 2014/03/17: RaSC Version 1.0.0 を公開しました. コンテンツ ========== - :doc:`download` - :doc:`documents` (チュートリアル,仕様) - :doc:`faq` - :doc:`changelog` - :doc:`license` RaSC上で動作を確認したユーザプログラム ====================================== 以下の表にはRaSC上での動作を確認したユーザプログラムを掲載しています. また,ユーザプログラムをRaSC上で稼働させるために必要な *サービス定義XML* を掲載しています.サービス定義XMLは,ユーザプログラムのコマンドラインや,並列実行における並列数などを指定するための設定ファイルです.サービス定義XMLの利用方法については, :doc:`rasc_core` (MessagePack RPCのみで利用する場合) , :doc:`rasc_basic` (JSON RPC, ProtocolBuffers, SOAPを利用する場合) を参照してください. .. note:: ダウンロードできるXMLについては,ユーザプログラムやモデルファイルなどのパスは環境に合わせて設定してください. .. list-table:: :header-rows: 1 * - ユーザプログラム - サービス定義XML - 備考 * - 形態素解析器 `MeCab `_ - :download:`サービス定義XML `, :download:`サービス定義XML (8並列実行設定) ` - * - 形態素解析器 `Juman `_ - :download:`サービス定義XML `, :download:`サービス定義XML (8並列実行設定) ` - * - 構文解析器 `J.DepP `_ - :download:`サービス定義XML `, :download:`サービス定義XML (8並列実行設定) ` - MeCab等とパイプで接続するシェルスクリプトを用意する必要があります (:ref:`faq_pipe` を参照) * - 構文解析器 `KNP `_ - :download:`サービス定義XML `, :download:`サービス定義XML (8並列実行設定) ` - Jumanとパイプで接続するシェルスクリプトを用意する必要があります (:ref:`faq_pipe` を参照) * - 構文解析器 `Enju `_ - :download:`サービス定義XML `, :download:`サービス定義XML (8並列実行設定) ` - * - `GENIA tagger `_ - :download:`サービス定義XML `, :download:`サービス定義XML (8並列実行設定) ` - * - 音声認識エンジン `Julius `_ - \- - `RaSCとJuliusを用いた音声認識サーバーの構築 `_ で,利用手順が説明されています (外部サイト: 東北大学の五十嵐祐貴さんによるブログ) * - `SVM Perf `_ - :download:`サービス定義XML ` - SVM Perfのソースにパッチをあててからコンパイルし直してください (:doc:`patch_svm_perf` を参照) * - `CRF++ `_ - :download:`サービス定義XML ` - CRF++のソースにパッチをあててからコンパイルし直してください (:doc:`patch_crf` を参照) * - `TinySVM `_ - :download:`サービス定義XML ` - TinySVMのソースにパッチをあててからコンパイルし直してください (:doc:`patch_tinysvm` を参照) お問い合わせ ============ - rasc-user [at] ml.nict.go.jp: 利用に関する質問,要望等のためのメーリングリスト - 参加するには,``#subscribe ご自身のお名前`` ( **※メールアドレスではありません. お名前の記述は,ローマ字にするなどしてASCII文字でお願いします** ) という行を含むメールを, ``rasc-user-ctl [at] ml.nict.go.jp`` に送り,返信されたメールに記載の手続きに従ってください. - 参加ユーザのみが投稿できます. - rasc-contact [at] ml.nict.go.jp: 上記以外のお問い合わせはこちらにお願いします. ``[at]`` はアットマークで置き換えてください. リンク ====== - `GitHub `_ .. toctree:: :hidden: download documents faq changelog license