2

非構造化データの解析に OpenNLP Token Name finder を使用しています。4MM レコードのコーパス (トレーニング セット) を作成しましたが、Eclipse で OpenNLP API を使用してこのコーパスからモデルを作成しているため、プロセスには約 3 時間かかります。非常に時間がかかります。モデルは、反復 100 およびカットオフ 5 であるデフォルト パラメーターに基づいて構築されています。

私の質問は、このプロセスをスピードアップするにはどうすればよいか、モデルを構築するプロセスにかかる時間を短縮するにはどうすればよいかということです。

コーパスのサイズがこの理由である可能性がありますが、誰かがこの種の問題に遭遇したかどうか、もしそうなら、これを解決する方法を知りたかっただけです.

手がかりを教えてください。

前もって感謝します!

4

2 に答える 2

4

通常、このような問題を処理する最初のアプローチは、トレーニング データをいくつかのチャンクに分割し、それぞれに独自のモデルを作成させることです。その後、モデルをマージします。この場合、これが有効かどうかはわかりません (私は OpenNLP の専門家ではありません)。以下に別の解決策があります。また、OpenNLP API が提供するスレッド化された train() メソッドは 1 つだけであるように思われるため、マルチスレッド化オプションを要求するイシューを提出します。

遅いシングル スレッド操作の場合、2 つの主な速度低下要因は IO と CPU であり、両方を個別に処理できます。

  • IO - どのハードドライブを使用していますか? 通常(磁気)またはSSD?SSDへの移行が役立つはずです。
  • CPU - どの CPU を使用していますか? より高速な CPU に移行すると役立ちます。ここでは生の速度が必要なので、コアの数に注意を払わないでください。

アマゾン ウェブ サービスまたは Google Compute Engine から高 CPU サーバーを取得し、そこでトレーニングを実行することを検討することをお勧めします。モデルは後でダウンロードできます。どちらも、Xeon (Sandy Bridge または Ivy Bridge) CPU とローカル SSD ストレージを利用する高 CPU サーバーを提供します。

于 2014-11-25T10:03:33.567 に答える