エンコーダー - グローバル

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:18分
  • エンコーダー API は、予測インテリジェンス ストアで使用されるスクリプト可能なオブジェクトを提供します。このオブジェクトは、エンコーダー固有の目標と構成に基づいて、入力データを数値のベクトルに変換します。エンコーダーは、エンコーディングを実行するために個別に使用することも、テキスト列をエンコードするソリューションの一部として構成することもできます。

    この API には 予測インテリジェンス プラグイン (com.glide.platform_ml) が必要で、 sn_ml 名前空間内で提供されます。

    エンコーダーは、事前にトレーニングされたテキスト処理オブジェクト、または提供された言語データセットに基づいてトレーニングされたテキスト処理オブジェクトです。システムがテキストフィールドをどのように解釈して処理するかを決定するエンコーダーをトレーニングできます。テキストを含む ML ソリューションの場合、エンコーダーをトレーニングして、テキストの処理方法を指定し、トレーニング済みエンコーダーをソリューションで使用できます。

    エンコーダには構成とバージョンがあり、独自の再トレーニング頻度で個別にトレーニングできます。API 定義エンコーダーは、UI 定義エンコーダーの再トレーニングがそれらを使用するソリューションによって制御されるため、UI 定義エンコーダーとは異なります。

    エンコーダーのセットアップからトレーニングまでのフローは次のとおりです。
    1. DatasetDefinition API を使用して 1 つ以上のデータセットを作成します。
    2. コンストラクターを使用して、エンコーダー オブジェクトを作成します。
    3. EncoderStore - add() メソッドを使用して、エンコーダー オブジェクトをエンコーダー ストアに追加します。
    4. submitTrainingJob() メソッドを使用してエンコーダーをトレーニングします。これにより、 EncoderVersion API を使用して管理できるオブジェクトのバージョンが作成されます。
    エンコーダーをトレーニングしたら、ソリューション オブジェクトで使用できます。
    注:
    この API は、Vancouver パッチ 7 ホットフィックス 2b およびWashington DCパッチ 7 リリースより前は、フル権限で実行されます。それ以降のリリースでは、ACL を使用してアクセス権を付与します。詳細については、「 Query ACLs」を参照してください。

    使用上のガイドラインについては、「 ML API の使用」を参照してください。

    エンコーダー - エンコーダー (オブジェクト構成)

    エンコーダーを作成します。

    1 つ以上のデータセットのエンコーダーを取得するには、このコンストラクターを使用して、一意の名前で新しいエンコーダー オブジェクトを作成します。

    表 : 1. パラメーター
    名前 タイプ 説明
    構成 オブジェクト の構成プロパティを含む JavaScript オブジェクト エンコーダー。
    {
      "algorithmConfig": {Object},
      "datasets": [Array],
      "domainName": "String",
      "label": "String",
      "minRowCount": "String",
      "processingLanguage": "String",
      "stopwords": [Array],
      "trainingFrequency": "String"
    }
    config.algorithmConfig オブジェクト オプション。 アルゴリズム構成プロパティを含む JavaScript オブジェクト。
    'algorithmConfig' : {
      "algorithm": "String"
    }
    config.algorithmConfig.algorithm 文字列 このエンコーダーをトレーニングするためのアルゴリズムの名前。
    可能な値:
    • paravec:段落ベクトル語の埋め込み。
    • tf-idf:用語頻度逆ドキュメント頻度 (TF-IDF) ベースのテキスト。
    config.datasets アレイ DatasetDefinition オブジェクト名のリスト。
    config.domainName 文字列 オプション。このデータセットに関連付けられたドメイン名。「 ドメインセパレーション」および 予測インテリジェンスを参照してください。

    デフォルト:現在のドメイン ( 「global」など)。

    config.label 文字列 予測タスクを識別します。
    config.minRowCount 文字列 オプション。トレーニングのためにデータセットに必要なレコードの最小数。

    デフォルト:10000

    config.processingLanguage 文字列 オプション。2 文字の ISO 639-1 言語コード形式の処理言語。

    デフォルト:「en」

    config.stopwords アレイ オプション。languageプロパティ設定に基づいてシステムが自動的に生成する文字列のプリセットリスト。詳細については、「 カスタムストップワードリストの作成」を参照してください。

    デフォルト:英語のストップワード

    config.trainingFrequency 文字列 モデルを再トレーニングする頻度。
    可能な値:
    • every_30_days
    • every_60_days
    • every_90_days
    • every_120_days
    • every_180_days
    • run_once
    デフォルト:run_once

    次の例は、エンコーダー ジョブを作成してエンコーダー ストアに追加する方法を示しています。

    var myPrbData = new sn_ml.DatasetDefinition({
        'tableName' : 'problem',
        'fieldNames' : ['short_description'],
        'encodedQuery' : 'activeANYTHING'
    });
    
    var myIncidentData = new sn_ml.DatasetDefinition({
        'tableName' : 'incident',
        'fieldNames' : ['short_description', 'description'],
        'encodedQuery' : 'activeANYTHING'
    });
    
    var myEncoder = new sn_ml.Encoder({
        'label': "encoder",
        'datasets' : [myPrbData, myIncidentData],
        'algorithmConfig' : {
            'algorithm' : 'tf-idf'
        }
    });
    var myEncoderName = sn_ml.EncoderStore.add(myEncoder);

    エンコーダー:cancelTrainingJob()

    のジョブをキャンセル エンコーダーオブジェクト トレーニングのために送信された

    表 : 2. パラメーター
    名前 タイプ 説明
    なし
    表 : 3. 戻り値
    タイプ 説明
    なし

    次の例は、既存のトレーニングジョブをキャンセルする方法を示しています。

    var myEncoder = sn_ml.EncoderStore.get('ml_sn_global_global_encoder');
    
    myEncoder.cancelTrainingJob();

    エンコーダー:getActiveVersion()

    アクティブを取得します EncoderVersion オブジェクト。

    表 : 4. パラメーター
    名前 タイプ 説明
    なし
    表 : 5. 戻り値
    タイプ 説明
    オブジェクト アクティブ EncoderVersion オブジェクト。

    次の例は エンコーダー ストアからアクティブなバージョンを取得し、そのトレーニングステータスを返す

    var mlEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
    
    gs.print(JSON.stringify(JSON.parse(mlEncoder.getActiveVersion().getStatus()), null, 2));

    出力:

    {
      "state": "encoder_complete",
      "percentComplete": "100",
      "hasJobEnded": "true"
    }

    エンコーダー:getAllVersions()

    のすべてのバージョンを取得します エンコーダー。

    表 : 6. パラメーター
    名前 タイプ 説明
    なし
    表 : 7. 戻り値
    タイプ 説明
    アレイ エンコーダーオブジェクトの既存のバージョン。「EncoderVersion API」も参照してください。

    次の例は、すべての エンコーダー バージョンオブジェクトを取得し、それらに対して getVersionNumber() および getStatus() エンコーダーバージョンメソッドを呼び出す方法を示しています。

    var mlEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
    
    var mlEncoderVersions = mlEncoder.getAllVersions();
    
    for (i = 0; i < mlEncoderVersions.length; i++) {
    gs.print("Version " + mlEncoderVersions[i].getVersionNumber() + " Status: " + mlEncoderVersions[i].getStatus() +"\n");
    };

    出力:

    Version 3 Status: {"state":"encoder_complete","percentComplete":"100","hasJobEnded":"true"}
    
    Version 2 Status: {"state":"encoder_complete","percentComplete":"100","hasJobEnded":"true"}
    
    Version 1 Status: {"state":"encoder_cancelled","percentComplete":"0","hasJobEnded":"true"}

    エンコーダー:getLatestVersion()

    の最新バージョンを取得します エンコーダー。

    表 : 8. パラメーター
    名前 タイプ 説明
    なし
    表 : 9. 戻り値
    タイプ 説明
    オブジェクト EncoderVersion の最新バージョンに対応するオブジェクトEncoder() に置き換えます。

    次の例は、ソリューションの最新バージョンを取得し エンコーダーで、そのトレーニングステータスを返します。

    var mlEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
    
    gs.print(JSON.stringify(JSON.parse(mlEncoder.getLatestVersion().getStatus()), null, 2));

    出力:

    {
      "state": "encoder_complete",
      "percentComplete": "100",
      "hasJobEnded": "true"
    }

    エンコーダー:getName()

    ストアとのインタラクションに使用するオブジェクトの名前を取得します。

    表 : 10. パラメーター
    名前 タイプ 説明
    なし
    表 : 11. 戻り値
    タイプ 説明
    文字列 エンコーダーオブジェクトの名前。

    次の例は、 エンコーダー データセット情報を更新し、オブジェクトの名前を出力

    // Update encoder
    var myIncidentData = new sn_ml.DatasetDefinition({
       'tableName' : 'incident',
       'fieldNames' : ['category', 'short_description', 'priority'],
       'encodedQuery' : 'activeANYTHING'
    });
    
    var eligibleFields = JSON.parse(myIncidentData.getEligibleFields(encoder));
    
    var myEncoder = new sn_ml.Encoder({
       'label': "my encoder",
       'datasets' : [myIncidentData],
       'inputFieldNames': eligibleFields['eligibleInputFieldNames'],
       'predictedFieldName': 'category'
    });
    
    // update encoder
    sn_ml.EncoderStore.update('ml_x_snc_global_global_my_definition_4', myEncoder);
    
    // print encoder name
    gs.print('Encoder Name: '+myEncoder.getName());

    出力:

    Encoder Name: ml_x_snc_global_global_my_definition_4

    エンコーダー:getProperties()

    ソリューションオブジェクトプロパティを取得しますに展開したカスタムモバイルアプリケーションを使用して管理しました。

    表 : 12. パラメーター
    名前 タイプ 説明
    なし
    表 : 13. 戻り値
    タイプ 説明
    オブジェクト EncoderStore 内の Dataset と Encoder() オブジェクトの詳細の内容。
    {
      "algorithmConfig" : {Object},
      "datasetsProperties": [Array],
      "domainName": "String",
      "label": "String",
      "name": "String",
      "processingLanguage": "String",
      "scope": "String",
      "stopwords": [Array],
      "trainingFrequency": "String"
    }
    <Object>.algorithmConfig.algorithm このエンコーダーをトレーニングするためのアルゴリズムの名前。
    可能な値:
    • paravec:段落ベクトル語の埋め込み。
    • tf-idf:用語頻度逆ドキュメント頻度 (TF-IDF) ベースのテキスト。

    データタイプ:文字列。

    <Object>.algorithmConfig オプション。 アルゴリズム構成プロパティを含む JavaScript オブジェクト。
    'algorithmConfig' : {
      "algorithm": "String"
    }

    データタイプ:オブジェクト。

    <Object>.datasetsProperties

    エンコーダーに関連付けられている DatasetDefinition() プロパティのリスト。

    {
      "encodedQuery": "String",
      "fieldDetails": [Array],
      "fieldNames": [Array],
      "tableName": "String"
    }

    データタイプ:アレイ。

    <Object>.datasetsProperties.tableName データセットのテーブルの名前。たとえば、「 tableName」:「インシデント」です。

    データタイプ:文字列。

    <Object>.datasetsProperties.fieldNames 指定されたテーブルのフィールド名を文字列としてリストします。例:"fieldNames" : ["short_description", "priority"]。

    データタイプ:アレイ。

    <Object>.datasetsProperties.fieldNames.fieldDetails フィールドのプロパティを指定する JavaScript オブジェクトのリスト。
    [
      {
        "name": "String",
        "type": "String"
      }
    ]

    データタイプ:アレイ。

    <Object>.datasetsProperties.fieldNames.fieldDetails.<object>.名前 このデータセットを制限する情報のタイプを定義するフィールドの名前。

    データタイプ:文字列。

    <Object>.datasetsProperties.fieldDetails.<object>。タイプ 機械学習フィールドタイプ。

    データタイプ:文字列。

    <Object>.datasetsProperties.fieldDetails.encodedQuery 標準の Glide 形式でエンコードされたクエリ文字列。「 エンコードされたクエリ文字列」を参照してください。

    データタイプ:文字列。

    <Object>.domainName このデータセットに関連付けられたドメイン名。「 ドメインセパレーション」および 予測インテリジェンスを参照してください。

    データタイプ:文字列。

    <Object>.label 予測タスクを識別します。
    {
      "label": "my first prediction"
    }

    データタイプ:文字列。

    <Object>.name システムによって割り当てられた名前。

    データタイプ:文字列。

    <Object>.predictedFieldName 予測可能性のためにトレーニングするフィールドを識別します。

    データタイプ:文字列。

    <Object>.processingLanguage 2 文字の ISO 639-1 言語コード形式の処理言語。

    データタイプ:文字列。

    <Object>.scope オブジェクトスコープ。現時点で有効な値は グローバル値のみです。

    データタイプ:文字列

    <Object>.stopwords オプション。languageプロパティ設定に基づいてシステムが自動的に生成する文字列のプリセットリスト。詳細については、「 カスタムストップワードリストの作成」を参照してください。

    データタイプ:アレイ。

    <Object>.trainingFrequency モデルを再トレーニングする頻度。
    可能な値:
    • every_30_days
    • every_60_days
    • every_90_days
    • every_120_days
    • every_180_days
    • run_once
    デフォルト:run_once

    データタイプ:文字列。

    次の例では、 エンコーダーオブジェクト ます。

    var myEncoder = sn_ml.EncoderStore.get('ml_sn_global_global_encoder');
    
    gs.print(JSON.stringify(JSON.parse(myEncoder.getProperties()), null, 2));
    出力:
    *** Script: {
      "datasetsProperties": [
        {
          "tableName": "incident",
          "fieldNames": [
            "assignment_group",
            "short_description",
            "description"
          ],
          "encodedQuery": "activeANYTHING"
        }
      ],
      "domainName": "global",
      "label": "my encoder definition",
      "name": "ml_x_snc_global_global_my_encoder_definition",
      "processingLanguage": "en",
      "scope": "global",
      "stopwords": [
        "Default English Stopwords"
      ],
      "trainingFrequency": "run_once"
    }

    エンコーダー:getVersion(文字列バージョン)

    エンコーダーを取得します 指定されたバージョン番号で。

    表 : 14. パラメーター
    名前 タイプ 説明
    バージョン 文字列 の既存のバージョン番号 エンコーダー。
    表 : 15. 戻り値
    タイプ 説明
    オブジェクト EncoderVersion API メソッドを呼び出すことができる Encoder() オブジェクトの指定されたバージョン。

    次の例は、バージョン番号でソリューションのトレーニングステータスを取得する方法を示しています バージョン番号によるエンコーダー。

    var mlEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
    
    gs.print(JSON.stringify(JSON.parse(mlEncoder.getVersion('1').getStatus()), null, 2));

    出力:

    {
      "state": "encoder_complete",
      "percentComplete": "100",
      "hasJobEnded": "true"
    }

    エンコーダー:setActiveVersion(String version)

    ストア内の指定されたバージョンのエンコーダーをアクティブ化します。

    表 : 16. パラメーター
    名前 タイプ 説明
    バージョン 文字列 アクティブ化する Encoder() オブジェクトバージョンの名前。

    このバージョンをアクティブ化すると、他のバージョンはすべて非アクティブ化されます。

    表 : 17. 戻り値
    タイプ 説明
    なし

    アクティブ化する方法を示しています エンコーダー ストアでソリューションバージョン

    sn_ml.Encoder.setActiveVersion("ml_incident_categorization");

    エンコーダー:submitTrainingJob()

    トレーニングジョブを送信します。

    注:
    このメソッドを実行する前に、 まず EncoderStore - add() メソッドを使用してエンコーダーをストアに追加する必要があります。
    表 : 18. パラメーター
    名前 タイプ 説明
    なし
    表 : 19. 戻り値
    タイプ 説明
    オブジェクト EncoderVersion に対応するオブジェクト エンコーダー トレーニング対象

    次の例は、データセットを作成し、 エンコーダー、追加 ストアに追加して、トレーニングジョブを送信する

    // Create a dataset 
    var myData = new sn_ml.DatasetDefinition({
    
      'tableName' : 'incident',
      'fieldNames' : ['assignment_group', 'short_description', 'description'],
      'encodedQuery' : 'activeANYTHING'
    
    });
    
    // Create an encoder 
    var myEncoder = new sn_ml.Encoder({
    
      'label': "my encoder definition",
      'datasets' : [myData],
      'predictedFieldName' : 'assignment_group',
      'inputFieldNames':['short_description']
    
    });
    
    // Add the encoder to the store to later be able to retrieve it.
    var my_unique_name = sn_ml.EncoderStore.add(myEncoder);
    
    // Train the encoder - this is a long running job 
    var myEncoderVersion = myEncoder.submitTrainingJob();