建立您自己的模型

Watson Natural Language Processing 中的某些演算法可以使用您自己的資料進行訓練,例如,您可以根據自己的資料來建立自訂模型,以進行實體擷取、分類資料、擷取觀感,以及擷取目標觀感。

從執行時期 23.1 開始,您可以使用新的內建轉換器型 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 (語音標記語法部分中支援的所有語言)
使用 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 MULTILINGUAL 分類 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

儲存及載入自訂模型

如果您想要在另一個 Notebook 中使用自訂模型,請將它作為「資料資產」儲存至專案。 這樣,您可以將模型匯出為專案匯出的一部分。

使用 ibm-watson-studio-lib 程式庫來儲存並載入自訂模型。

若要將 Notebook 中的自訂模型儲存為要匯出並在另一個專案中使用的資料資產,請執行下列動作:

  1. 確保您在專案 管理 標籤上的 存取控制 頁面上具有存取記號。 只有專案管理者才能建立存取記號。 存取記號可以具有檢視者或編輯者存取權。 只有編輯者可以將記號注入 Notebook。

  2. 從 Notebook 動作列中按一下 其他> 插入專案記號 ,然後執行 Cell ,以將專案記號新增至 Notebook。 當您執行插入的隱藏程式碼單元時,會建立一個 wslib 物件,可用於 ibm-waton-studio-lib 程式庫中的函數。 如需可用 ibm-watson-studio-lib 函數的詳細資料,請參閱 Using ibm-watson-studio-lib for Python

  3. 執行 train() 方法以建立自訂字典、正規表示式或分類模型,並將此自訂模型指派給變數。 例如:

    custom_block = CNN.train(train_stream, embedding_model.embedding, verbose=2)
    
  4. 如果您要儲存自訂字典或正規表示式模型,請將它轉換為 RBRGeneric 區塊。 如果您想要使用 API for Watson Natural Language Processing for Embed來載入並執行模型,則將自訂字典或正規表示式模型轉換為 RBRGeneric 區塊非常有用。 到目前為止, 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')
    
  5. 使用 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)
    

若要將自訂模型載入至從另一個專案匯入的 Notebook ,請執行下列動作:

  1. 確保您在專案 管理 標籤上的 存取控制 頁面上具有存取記號。 只有專案管理者才能建立存取記號。 存取記號可以具有檢視者或編輯者存取權。 只有編輯者可以將記號注入 Notebook。

  2. 從 Notebook 動作列中按一下 其他> 插入專案記號 ,然後執行 Cell ,以將專案記號新增至 Notebook。 當您執行插入的隱藏程式碼單元時,會建立 wslib 物件,可用於 ibm-watson-studio-lib 程式庫中的函數。 如需可用 ibm-watson-studio-lib 函數的詳細資料,請參閱 Using ibm-watson-studio-lib for Python

  3. 使用 ibm-watson-studio-libwatson-nlp來載入模型:

    custom_block = watson_nlp.load(wslib.load_data("<model name>"))
    

上層主題: Watson Natural Language Processing 程式庫