共用方式為


定型自訂具名實體辨識模型

定型是模型從標記資料中學習的流程。 完成定型後,您可以檢視模型的效能,並判斷是否需要改善模型。

若要定型模型,您可以啟動定型作業,而且只有順利完成的作業會建立模型。 定型作業會在七天後到期,這表示您在此時間後無法擷取作業詳細資料。 如果你的訓練工作成功完成且模型已建立,該模型不會受到影響。 您一次只能執行一個定型作業,而且您無法在同一個專案中啟動其他作業。

訓練時間會有所不同。 訓練時間從處理少量文件時幾分鐘到數小時不等,視資料集大小和結構的複雜度而定。

先決條件

請參閱 專案開發生命週期

資料分割

開始定型程序之前,專案中加上標籤的文件會分成定型集和測試集。 每一個都提供不同的功能。 訓練集用於訓練模型。 它是模型學習標記實體以及要擷取哪些文字區段作為實體的集合。 該測試集是一個盲集,不會在定型期間 (而是只在評估期間) 引入模型。 模型訓練成功完成後,模型會根據測試文件進行預測,並計算 評估指標 。 建議您確定所有實體都已充分呈現在訓練和測試集中。

自訂 NER 支援兩種資料分割方法:

  • 自動將測試集與訓練資料分離:系統會根據你選擇的百分比,將標記的資料分配到訓練集和測試集之間。 建議的百分比分割是 80% 用於定型,20% 用於測試。

附註

如果您選擇 [ 從定型數據自動分割測試集 ] 選項,則只有指派給定型集的數據會根據提供的百分比來分割。

  • 使用手動分割定型和測試資料:此方法可讓使用者定義哪些具有標籤的文件應該屬於哪個集合。 若您在資料標註過程中將文件加入測試集,此步驟才會啟用。

訓練模型(REST API)

當你標記好資料並設定好資料分割設定後,就可以開始使用 REST API 訓練自訂的 NER 模型。 培訓流程包括提交培訓工作申請並監控進度直到完成。 本節提供啟動訓練及檢查訓練工作狀態所需的 API 呼叫。

開始定型作業

使用下列 URL、標頭和 JSON 本文來提交 POST 要求,以提交定型作業。 以您自己的值取代預留位置值。

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
預留位置 範例
{ENDPOINT} 用於驗證 API 要求的端點。 https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} 您專案的名稱。 此值區分大小寫。 myProject
{API-VERSION} 您所呼叫 API 的版本。 所引用的值為最新版本。 欲了解更多資訊, 請參閱模型生命週期 2022-05-01

headers

使用下列標頭來驗證您的要求。

Key
Ocp-Apim-Subscription-Key 資源的金鑰。 用於驗證 API 要求。

請求主體

在您的要求本文中使用下列 JSON。 訓練完成之後,該模型會被指定為 {MODEL-NAME}。 只有成功的培訓工作才能產生模型。

{
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "evaluationOptions": {
        "kind": "percentage",
        "trainingSplitPercentage": 80,
        "testingSplitPercentage": 20
    }
}
Key 預留位置 範例
modelLabel {MODEL-NAME} 在成功訓練之後指派給模型的模型名稱。 myModel
trainingConfigVersion {CONFIG-VERSION} 這是用來訓練模型的 模型版本 2022-05-01
evaluationOptions 將您的資料分割到定型集和測試集的選項。 {}
種類 percentage 分割方法。 可能的值為 percentagemanual。 如需詳細資訊, 請參閱如何定型模型 percentage
trainingSplitPercentage 80 要包含在定型集中的標記資料百分比。 建議的值為 80 80
testingSplitPercentage 20 要包含在測試集中的標記資料百分比。 建議的值為 20 20

附註

只有在 trainingSplitPercentage 設定為 testingSplitPercentage 且這兩個百分比的總和應該等於 100 時,才需要 Kindpercentage

傳送 API 請求後,您會收到回應 202 ,指出任務已正確提交。 在回應標頭中,擷取 location 的值,格式如下:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} 用來識別您的要求,因為此為非同步作業。 您可以使用此 URL 來取得定型狀態。

查詢培訓職缺狀態(REST API)

訓練可能需要一些時間,這取決於你的訓練資料大小和結構的複雜度。 你可以使用以下請求持續查詢培訓工作狀態,直到成功完成。

使用下列 GET 要求來取得模型定型程序的狀態。 以您自己的值取代預留位置值。

要求 URL

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
預留位置 範例
{ENDPOINT} 用於驗證 API 要求的端點。 https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} 您專案的名稱。 此值區分大小寫。 myProject
{JOB-ID} 用來尋找模型定型狀態的識別碼。 此值是在上一個步驟中收到的 location 標頭值。 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} 您所呼叫 API 的版本。 所引用的值為最新版本。 欲了解更多資訊, 請參閱模型生命週期 2022-05-01

headers

使用下列標頭來驗證您的要求。

Key
Ocp-Apim-Subscription-Key 資源的金鑰。 用於驗證 API 要求。

回應本文

一旦你發送請求,就會收到以下回覆。

{
  "result": {
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
    "trainingStatus": {
      "percentComplete": 3,
      "startDateTime": "2022-04-18T15:45:06.8190649Z",
      "status": "running"
    },
    "evaluationStatus": {
      "percentComplete": 0,
      "status": "notStarted"
    }
  },
  "jobId": "{JOB-ID}",
  "createdDateTime": "2022-04-18T15:44:44Z",
  "lastUpdatedDateTime": "2022-04-18T15:45:48Z",
  "expirationDateTime": "2022-04-25T15:44:44Z",
  "status": "running"
}

取消訓練工作(REST API)

如果你需要停止正在進行中的訓練工作,可以用 REST API 取消它。 當你發現資料或設定有問題,想要在重新開始訓練流程前做修正時,取消訓練工作非常有用。

使用下列 URL、標頭和 JSON 本文來建立 POST 要求,以取消定型工作。

要求 URL

建立 API 要求時,請使用下列 URL。 以您自己的值取代預留位置值。

{Endpoint}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}/:cancel?api-version={API-VERSION}
預留位置 範例
{ENDPOINT} 用於驗證 API 要求的端點。 https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} 您專案的名稱。 此值區分大小寫。 EmailApp
{JOB-ID} 此值是定型工作識別碼。 XXXXX-XXXXX-XXXX-XX
{API-VERSION} 您所呼叫 API 的版本。 所參考的值適用於最新發行的模型版本 2022-05-01

headers

使用下列標頭來驗證您的要求。

Key
Ocp-Apim-Subscription-Key 資源的金鑰。 用於驗證 API 要求。

在您發送 API 請求後,您會收到一個 202 回應,其中包含用來檢查任務狀態的Operation-Location 標頭。

後續步驟

完成定型後,您可以檢視模型效能,並視需要選擇性地改善模型。 在對模型感到滿意之後,您就可以將其部署並用於從文字中擷取實體