独自のモデルを作成する
Watson の自然言語処理機能にある特定のアルゴリズムは、独自のデータを用いて学習させることができます。例えば、エンティティ抽出やデータの分類を行うために、独自のデータに基づいたカスタムモデルを作成することが可能です。
Slate という名前の組み込みの トランフォーマー ベースの IBM 基盤モデル を使用して、独自のモデルを作成できます。 Slate モデルは、大規模なデータ・セットでトレーニングされています。このデータ・セットは、ヘイト、バイアス、および禁止用語をフィルタリングするために前処理されています。
独自の分類モデルまたはエンティティー抽出モデルを作成するには、独自のデータで Slate モデルを ファイン・チューニング します。 妥当な時間でモデルをトレーニングするには、 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(構文品詞タグ付けでサポートされているすべての言語) |
| TF-IDFを用いた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 |
| トランスフォーマーモデル | 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 を使用して、カスタムモデルを保存および読み込みます。 使用可能な ibm-watson-studio-lib 関数について詳しくは、 ibm-watson-studio-lib for Python を参照してください。
ノートブック内のカスタムモデルをデータアセットとして保存し、別のプロジェクトにエクスポートして使用するには:
この
train()メソッドを実行して、カスタム辞書、正規表現、または分類モデルを作成し、このカスタムモデルを変数に割り当てます。 例:custom_block = CNN.train(train_stream, embedding_model.embedding, verbose=2)カスタム辞書または正規表現モデルを保存する場合は、それを RBRGeneric ブロックに変換します。 カスタム辞書または正規表現モデルを RBRGeneric ブロックに変換すると、 API for Watson Natural Language Processing for Embed を使用してモデルをロードして実行する場合に便利です。 現在のところ、 Watson Natural 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を使用して、モデルを データ資産 としてプロジェクトに保存します。from ibm_watson_studio_lib import access_project_or_space wslib = access_project_or_space() wslib.save_data('<model name>', data=custom_model.as_bytes(), overwrite=True)トランフォーマー モデルを保存する際、 CPU フォーマットでモデルを保存するオプションがあります。 CPU 環境でのみモデルを使用する予定の場合は、この形式を使用すると、カスタム・モデルの実行効率が向上します。 これを行うには、 CPU フォーマット・オプションを次のように設定します。
wslib.save_data('<model name>', data=custom_model.as_bytes(cpu_format=True), overwrite=True)
別のプロジェクトからインポートしたノートブックにカスタムモデルを読み込むには:
- と
ibm-watson-studio-libを使用してwatson-nlpモデルを読み込みます:custom_model = watson_nlp.load(wslib.load_data('<model name>'))