例えば、エンティティの抽出、データの分類、センチメントの抽出、ターゲットのセンチメントの抽出など、独自のデータに基づいてカスタムモデルを作成することができますWatson
Slateと呼ばれる組み込みのトランスフォーマーベースのIBMファンデーションモデルを使用して、独自のモデルを作成することができます。 スレートモデルは、憎悪、偏見、冒涜をフィルタリングするために前処理された非常に大規模なデータセットで訓練されている。
独自の分類、エンティティ抽出モデル、センチメントモデルを作成するには、独自のデータでスレートモデルを微調整できます。 合理的な時間でモデルをトレーニングするには、GPUベースの環境を使用することをお勧めします。
- カスタム辞書によるエンティティーの検出
- 正規表現によるエンティティーの検出
- カスタムトランスフォーマモデルによるエンティティの検出
- カスタム分類モデルによるテキストの分類
- カスタム変換モデルを使ったセンチメントの抽出
- カスタム変換モデルを使用したターゲットのセンチメントの抽出
カスタム・モデルの言語サポート
カスタム・モデルを作成し、表示されている言語に対して以下の事前トレーニングされた辞書および分類モデルを使用できます。
カスタム・モデル | サポートされる言語コード |
---|---|
辞書モデル | af、ar、bs、ca、cs、da、de、el、en、es、fi、fr、he、hi、hr、it、ja、ko、nb、nl、nn、pl、pt、ro、ru、sk、sr、sv、tr、zh_cn、zh_tw (構文の品詞タグ付けでサポート対象のすべての言語) |
正規表現 | af、ar、bs、ca、cs、da、de、el、en、es、fi、fr、he、hi、hr、it、ja、ko、nb、nl、nn、pl、pt、ro、ru、sk、sr、sv、tr、zh_cn、zh_tw (構文の品詞タグ付けでサポート対象のすべての言語) |
TFIDF による SVM 分類 | af、ar、ca、cs、da、de、el、en、es、fi、fr、he、hi、hr、it、ja、ko、nb、nl、nn、pl、pt、ro、ru、sk、sr、sv、tr、zh_cn、zh_tw |
USE による SVM 分類 | ar、de、en、es、fr、it、ja、ko、nl、pl、pt、ru、tr、zh_cn、zh_tw |
GloVe による CNN 分類 | ar、de、en、es、fr、it、ja、ko、nl、pt、zh_cn |
BERT マルチリンガル分類 | af、ar、ca、cs、da、de、el、en、es、fi、fr、he、hi、hr、it、ja、ko、nb、nl、nn、pl、pt、ro、ru、sk、sr、sv、tr、zh_cn、zh_tw |
Transformer モデル | af、ar、bs、ca、cs、da、de、el、en、es、fi、fr、he、hi、hr、it、ja、ko、nb、nl、nn、pl、pt、ro、ru、sk、sr、sv、tr、zh_cn、zh_tw |
ストップワード・リスト | ar、de、en、es、fr、it、ja、ko |
言語コードと対応する言語の一覧は、言語コードを参照。
カスタム・モデルの保存とロード
別のノートブックでカスタム・モデルを使用する場合は、そのカスタム・モデルをデータ資産としてプロジェクトに保存します。 これにより、プロジェクト・エクスポートの一部としてモデルをエクスポートできます。
ibm-watson-studio-lib
ライブラリーを使用して、カスタム・モデルを保存およびロードします。
エクスポートして別のプロジェクトで使用するデータ資産としてノートブックにカスタム・モデルを保存するには、以下のようにします。
プロジェクトの「管理」タブの「アクセス制御」ページにアクセス・トークンがあることを確認します。 プロジェクト管理者のみがアクセス・トークンを作成できます。 アクセス・トークンは、ビューアーまたは編集者アクセス権を備えることができます。 トークンをノートブックに注入できるのは、編集者のみです。
ノートブックのアクション・バーで「詳細」>「プロジェクト・トークンの挿入」をクリックしてプロジェクト・トークンをノートブックに追加し、セルを実行します。 挿入された隠しコードセルを実行すると、「
wslib
オブジェクトが作成され、「ibm-waton-studio-lib
ライブラリ内の関数に使用できる。 利用可能な'ibm-watson-studio-lib
関数の詳細については、'ibm-watson-studio-lib
を'Pythonに使う を参照のこと。train()
メソッドを実行して、カスタム辞書、正規表現、または分類モデルを作成し、このカスタム・モデルを変数に割り当てます。 次に例を示します。custom_block = CNN.train(train_stream, embedding_model.embedding, verbose=2)
カスタム辞書や正規表現モデルを保存したい場合は、RBRGenericブロックに変換します。 カスタム辞書または正規表現モデルを RBRGeneric ブロックに変換することは、 WatsonNatural Language Processing for Embed の API を使用してモデルをロードして実行する場合に便利です。 現在までのところ、WatsonNatural Language Processing for Embedは、RBRGenericブロックとしてのみ、辞書と正規表現モデルの実行をサポートしている。 モデルをRBRGenericブロックに変換するには、以下のコマンドを実行する:
# Create the custom regular expression model custom_regex_block = watson_nlp.resources.feature_extractor.RBR.train(module_folder, language='en', regexes=regexes) # Save the model to the local file system custom_regex_model_path = 'some/path' custom_regex_block.save(custom_regex_model_path) # The model was saved in a file "executor.zip" in the provided path, in this case "some/path/executor.zip" model_path = os.path.join(custom_regex_model_path, 'executor.zip') # Re-load the model as a RBRGeneric block custom_block = watson_nlp.blocks.rules.RBRGeneric(watson_nlp.toolkit.rule_utils.RBRExecutor.load(model_path), language='en')
ibm-watson-studio-lib
を使用して、モデルをデータアセットとしてプロジェクトに保存します:wslib.save_data("<model name>", custom_block.as_bytes(), overwrite=True)
トランスフォーマーモデルを保存する際、CPU形式で保存するオプションがあります。 CPU環境でのみモデルを使用する予定であれば、このフォーマットを使用することで、カスタムモデルをより効率的に実行することができます。 そのためには、CPUフォーマットオプションを以下のように設定する:
wslib.save_data('<model name>', data=custom_model.as_bytes(cpu_format=True), overwrite=True)
別のプロジェクトからインポートされたノートブックにカスタム・モデルをロードするには、以下のようにします。
プロジェクトの「管理」タブの「アクセス制御」ページにアクセス・トークンがあることを確認します。 プロジェクト管理者のみがアクセス・トークンを作成できます。 アクセス・トークンは、ビューアーまたは編集者アクセス権を備えることができます。 トークンをノートブックに注入できるのは、編集者のみです。
ノートブックのアクション・バーで「詳細」>「プロジェクト・トークンの挿入」をクリックしてプロジェクト・トークンをノートブックに追加し、セルを実行します。 挿入された隠しコードセルを実行すると、「
wslib
オブジェクトが作成され、「ibm-watson-studio-lib
ライブラリ内の関数に使用できる。 利用可能な'ibm-watson-studio-lib
関数の詳細については、'ibm-watson-studio-lib
を'Pythonに使う を参照のこと。ibm-watson-studio-lib
およびwatson-nlp
を使用してモデルをロードします。custom_block = watson_nlp.load(wslib.load_data("<model name>"))