0 / 0
資料の 英語版 に戻る
カスタム変換プログラム・モデルを使用したターゲットの評判の抽出
最終更新: 2024年11月07日
カスタム変換プログラム・モデルを使用したターゲットの評判の抽出

Slate IBM 基盤モデルに基づいて、ターゲットの評判抽出用に独自のモデルをトレーニングできます。 この事前トレーニングされたモデルは、特定の入力データに基づいてトレーニングすることにより、ユース・ケースに合わせて見つけることができます。

注: トランスフォーマー・モデルのトレーニングでは、CPU とメモリーが集中的に使用されます。 トレーニング・データのサイズによっては、環境がトレーニングを完了するのに十分な大きさではない場合があります。 トレーニング中にノートブック・カーネルで問題が発生した場合は、CPU とメモリーの量が多いカスタム・ノートブック環境を作成し、それを使用してノートブックを実行します。 トレーニングには GPU ベースの環境を使用し、使用可能な場合は推論時間も使用します。 独自の環境テンプレートの作成を参照してください。

トレーニング用の入力データ形式

トレーニング機能にトレーニングおよび開発データ・セットを提供する必要があります。 開発データは通常、トレーニング・データの約 10% です。 各トレーニング・サンプルまたは開発サンプルは、JSON オブジェクトとして表されます。 text フィールドと target_mentions フィールドがなければなりません。 text はトレーニング例のテキストを表し、 target_mentions フィールドは配列であり、 textlocation、および sentimentを持つ各ターゲット・メンションのエントリーが含まれています。

Watson Knowledge Studio を使用して、対象分野の専門家がテキストに簡単にアノテーションを付け、トレーニング・データを作成できるようにすることを検討してください。

以下に、サンプル・トレーニング・データを含む配列の例を示します。

[
  {
    "text": "Those waiters stare at you your entire meal, just waiting for you to put your fork down and they snatch the plate away in a second.",
    "target_mentions": [
      {
        "text": "waiters",
        "location": {
          "begin": 6,
          "end": 13
        },
        "sentiment": "negative"
      }
    ]
  }
]

トレーニング・データ・セットと開発データ・セットは、JSON オブジェクトの配列からデータ・ストリームとして作成されます。 データ・ストリームを作成するには、ユーティリティー・メソッド read_json_to_streamを使用できます。 入力データの言語のシンタックス分析モデルが必要です。

サンプル・コード:

import watson_nlp
from watson_nlp.toolkit.targeted_sentiment.training_data_reader import read_json_to_stream

training_data_file = 'train_data.json'
dev_data_file = 'dev_data.json'

# Load the syntax analysis model for the language of your input data
syntax_model = watson_nlp.load('syntax_izumo_en_stock')

# Prepare train and dev data streams
train_stream = read_json_to_stream(json_path=training_data_file, syntax_model=syntax_model)
dev_stream = read_json_to_stream(json_path=dev_data_file, syntax_model=syntax_model)

事前トレーニングされたモデル・リソースのロード

トレーニング済みの Slate IBM 基盤モデルは、トレーニング・アルゴリズムに渡す前にロードする必要があります。

利用可能な Slate モデルの一覧については、次の表を参照してください。

利用可能なSlateモデルとその説明のリスト
モデル 説明
pretrained-model_slate.153m.distilled_many_transformer_multilingual_uncased 汎用多目的モデル
pretrained-model_slate.125m.finance_many_transformer_en_cased 金融コンテンツで事前トレーニングされたモデル
pretrained-model_slate.110m.cybersecurity_many_transformer_en_uncased サイバーセキュリティコンテンツで事前トレーニングされたモデル
pretrained-model_slate.125m.biomedical_many_transformer_en_cased 生物医学コンテンツで事前トレーニングされたモデル

モデルをロードするには:

# Load the pretrained Slate IBM Foundation model
pretrained_model_resource = watson_nlp.load('<pretrained Slate model>')

モデルのトレーニング

評判トランスフォーマー・トレーニングの構成に使用できるすべてのオプションについて、以下を入力します。

help(watson_nlp.blocks.targeted_sentiment.SequenceTransformerTSA.train)

train メソッドは、新しいターゲットの評判ブロック・モデルを作成します。

以下は、前のセクション (モデルのトレーニング) の入力データと事前トレーニング済みモデルを使用するサンプル呼び出しです。

# Train the model
custom_tsa_model = watson_nlp.blocks.targeted_sentiment.SequenceTransformerTSA.train(
    train_stream,
    dev_stream,
    pretrained_model_resource,
    num_train_epochs=5
)

新規データへのモデルの適用

データ・セットでモデルをトレーニングした後、既存の事前トレーニング済みブロックで使用する場合と同様に、 run() メソッドを使用して新規データにモデルを適用します。 作成されたカスタム・モデルはブロック・モデルであるため、入力テキストに対して構文分析を実行し、結果を run() メソッドに渡す必要があります。

サンプル・コード:

input_text = 'new input text'

# Run syntax analysis first
syntax_model = watson_nlp.load('syntax_izumo_en_stock')
syntax_analysis = syntax_model.run(input_text, parsers=('token',))

# Apply the new model on top of the syntax predictions
tsa_predictions = custom_tsa_model.run(syntax_analysis)

モデルの保管およびロード

カスタム・ターゲットの評判モデルは、「 カスタム・モデルの保存およびロード」で説明されているように、 ibm_watson_studio_libを使用して他の任意のモデルとして保管できます。

カスタム・ターゲットの評判モデルをロードするには、追加のステップが必要です。

  1. プロジェクトの「管理」タブの「アクセス制御」ページにアクセス・トークンがあることを確認します。 プロジェクト管理者のみがアクセス・トークンを作成できます。 アクセス・トークンには、 ビューアー または 編集者 のアクセス権を設定できます。 トークンをノートブックに注入できるのは、編集者のみです。

  2. ノートブックのアクション・バーから 「詳細」>「プロジェクト・トークンの挿入」 をクリックして、プロジェクト・トークンをノートブックに追加します。 その後、セルを実行します。

    挿入された非表示コード・セルを実行すると、 ibm-watson-studio-lib ライブラリー内の関数に使用できる wslib オブジェクトが作成されます。 使用可能な ibm-watson-studio-lib 関数については、 Using ibm-watson-studio-lib for Pythonを参照してください。

  3. モデルをローカル・ランタイム環境にダウンロードして解凍します。

    import zipfile
    model_zip = 'custom_TSA_model_file'
    model_folder = 'custom_TSA'
    wslib.download_file('custom_TSA_model', file_name=model_zip)
    
    with zipfile.ZipFile(model_zip, 'r') as zip_ref:
      zip_ref.extractall(model_folder)
    
  4. 解凍したフォルダーからモデルをロードします。

    custom_TSA_model = watson_nlp.load(model_folder)
    

親トピック: 独自のモデルの作成

生成 AI の検索と回答
これらの回答は、製品資料の内容に基づいて、 watsonx.ai のラージ言語モデルによって生成されます。 詳細