Jieba の単語セグメンテーションの精度の向上: 単語のセグメンテーションにパドル モードを使用します (単語のセグメンテーションには Baidu Flying Paddle 深層学習モデルを使用します)。

1 パドルモードの概要

jiebaのモードはpaddle、PaddlePaddle 深層学習フレームワークを使用して単語のセグメンテーションを高速化するモードを指します。従来の単語分割アルゴリズムと比較して、paddleこのモードは深層学習モデルを使用しており、より高い単語分割精度とより速い単語分割速度を得ることができます。

paddleパターンは畳み込みニューラル ネットワーク (CNN) に基づいて実装されます。トレーニング プロセスでは、中国語 Wikipedia コーパスと自動タグ付けコーパスが単語分割タスクの教師ありトレーニングに使用されました。テストプロセスでは、テキストは畳み込み演算を通じて特徴ベクトルに変換され、その後、全結合層とソフトマックス層を通じて最終的に各文字の確率分布が取得され、確率に従って単語分割境界が決定されます。分布。
画像.png

2 パドルモードの準備

2.1 パドルパドルライブラリのインストール

パターン ワード セグメンテーションを使用するには、まずライブラリpaddleをインストールする必要があります。paddlepaddle

pip install paddlepaddle

インストールが遅すぎる場合は、国内のミラー ソースの使用を検討できます。

1.  pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple

インストールが完了したら、インストールを確認します。

import paddle.fluid
paddle.fluid.install_check.run_check()

paddle.fluid.install_check.run_check()PaddlePaddleフレームワークが提供するインストール検知機能です。この機能を実行すると、現在の環境がPaddleを使用したディープラーニング開発の要件を満たしているかどうかを確認できます。

2.2 インストールの整合性チェック

run_check()この機能は、現在の環境に必要な依存ライブラリがインストールされているか、GPUアクセラレーションをサポートしているか、フライングパドルのサーバーに接続できるかなどをチェックします。検出結果が成功した場合は、対応する検出情報が出力され、そうでない場合は、ユーザーのトラブルシューティングと問題の解決に役立つ特定のエラー情報が出力されます。
出力は次のとおりです:
Running Verify Fluid Program …
Your Paddle Fluid works well on SINGLE GPU or CPU.
Your Paddle Fluid works well on MUTIPLE GPU or CPU.
Your Paddle Fluid is selected! それでは、Paddle Fluid でディープ ラーニングを始めましょう
画像.png
。インストールは成功しました。

このチェックでは、ユーザー警告が発生する可能性があります:
UserWarning: Standalone executor is not used for dataParallel
warnings.warn(
W0326 13:38:53.591773 13228 furuse_all_reduce_op_pass.cc:79] all_reduce 演算子を見つけます: 2. 速度を上げるために、一部の all_reduce 演算子はトレーニング中に融合され、融合後、all_reduce 演算の数は 1 です。
画像.png
この警告メッセージは、データ並列トレーニングを使用するときに PaddlePaddle フレームワークによって発行されます。データ並列とは、大規模なニューラル ネットワーク モデルを複数の部分に分割し、複数の部分でトレーニングすることを指しますデータ並列トレーニングを実行する場合、トレーニングの正確さと収束を保証するために、異なるコンピューティング ノード上の勾配情報を同期する必要があります。

この警告メッセージは実際には 2 つの部分で構成されています。

  1. UserWarning: Standalone executor is not used for data parallelデータ並列トレーニングを実行するときに、独立したエグゼキュータ (Standalone Executor) を使用するのではなく、データ並列トレーニングと互換性のあるエグゼキュータを使用する必要があることを示します。互換性のないエグゼキューターを使用すると、不正確なトレーニング結果や予期しない動作が発生する可能性があります。
  2. Find all_reduce operators: 2. To make the speed faster, some all_reduce ops are fused during training, after fusion, the number of all_reduce ops is 1.データ並列トレーニング中に 2 つの all_reduce 演算子 (異なるコンピューティング ノード上の勾配情報を同期するために使用) が見つかったことを示します。トレーニング速度を向上させるために、これら 2 つのオペレーターが 1 つのオペレーターに融合され、それによって計算量と通信のオーバーヘッドが削減されます。

実際のデータ並列トレーニング プロセスでは、この警告メッセージは無視でき、トレーニング結果の正確さと収束には影響しません。データ並列トレーニングの詳細と最適化手法について詳しく知りたい場合は、Paddle の関連ドキュメントとチュートリアルを参照してください。

3 パドルワードセグメンテーションを使用したコード例

jieba.cut分詞では、use_paddle=Trueパドルモードを有効にするには、次のように渡します。

import jieba  
import paddle  
  
paddle.enable_static()  
jieba.enable_paddle()  
  
text = '动嘴就能写代码,GitHub 将 ChatGPT 引入 IDE,重磅发布 Copilot X'seg_1 = jieba.cut(text, cut_all=False)  
seg_2 = jieba.cut(text, use_paddle=True)  
  
print('精 确 模 式:', "/".join(seg_1))  
print('paddle模式:', "/".join(seg_2))

その中で: paddle.enable_static() は静的グラフ モードを有効にするために使用され、静的グラフ モードでは、プログラムは計算グラフを事前に構築して計算を実行するため、計算効率が向上します。
jieba.enable_paddle() はパドルモードを有効にするために使用されます。
このコードの実行結果は次のとおりです
画像.png
。Copilot X などのまれな単語については、空飛ぶパドルの深層学習モデルによってそれらを分離できることがわかります。また、2 つのモデルの品質を自分で判断してみることもできます。

パドル モードを有効にするには、AVX 命令セットをサポートする CPU や CUDNN ライブラリがインストールされた GPU など、特定のハードウェアおよびソフトウェアのサポートが必要であることに注意してください。パドル モードを有効にできない場合は、他の単語分割モードの使用を試みることができます。同時に、パドルモードを使用する場合、深層学習モデルをロードする必要があるため、プログラムのメモリ使用量が増加する可能性があります。

おすすめ

転載: blog.csdn.net/nkufang/article/details/129788741