對話式語言理解 (CLU) 微調工作是工作區專案,您可以在其中自定義語言模型,以識別使用者意圖,並從使用者輸入(語句)擷取關鍵資訊(實體)。 在此工作區中,您會定義與應用程式相關的意圖和實體、據此為範例使用者語句加上標籤,並使用這個標記的數據來微調模型。 此程式會量身打造模型,以進一步瞭解交談式應用程式的特定需求和細微差別。 在本指南中,我們將引導你如何在 Microsoft Foundry 或使用 REST API 中設定微調工作空間。
Note
- 如果你已經在 Foundry 工具中使用 Azure 語言或多服務資源——無論是單獨使用或透過 Language Studio 使用——你仍可在 Foundry 入口網站中使用現有的語言資源。 欲了解更多資訊,請參閱 Foundry 入口網站中的「如何使用 Foundry 工具」。
- 在 Foundry 中,微調工作可作為您在自訂 CLU 模型時的工作區。 先前, 微調工作 稱為 CLU 專案。 在舊版 CLU 檔中,您可能會遇到這兩個詞彙交替使用。
- 我們強烈建議您在 Foundry 中使用 Foundry 資源;不過,您也可以使用語言資源來按照這些指示進行操作。
Prerequisites
-
Azure 訂用帳戶。 如果您沒有帳戶,您可以 免費建立一個。
-
必要的權限。 請確定建立帳戶和項目的人員已獲指派為訂用帳戶層級的 Azure AI 帳戶擁有者角色。 或者,在訂用帳戶範圍擁有 [參與者] 或 [認知服務參與者] 角色也符合這項需求。 如需詳細資訊,請參閱角色型訪問控制(RBAC)。
-
Foundry 資源 (部分機器翻譯)。 欲了解更多資訊, 請參閱「配置鑄造廠資源」。 或者,你也可以使用 語言資源。
-
在 Foundry 中創建的鑄造廠專案。 欲了解更多資訊, 請參閱「建立鑄造廠專案」。
微調 CLU 模型
若要建立 CLU 微調模型,請先配置環境,然後建立微調專案,作為自訂 CLU 模型的工作區。
瀏覽到 Foundry。
如果您尚未登入,入口網站會提示您使用您的 Azure 認證來執行此動作。
登入後,你可以在 Foundry 內建立或存取現有專案。
如果您尚未進入這項工作中的專案,請選取它。
從左側導覽面板中選取 [微調]。
從主視窗中,選取 [AI 服務微調] 索引標籤,然後選取 [+ 微調] 按鈕。
從 [建立服務微調] 視窗中,選擇 [ 交談語言理解] 索引標籤,然後選取 [下一步]。
在 [建立 CLU 微調工作] 視窗中,完成 [名稱] 和 [語言] 欄位。 如果您打算使用免費的 標準訓練 模式微調模型,請針對語言字段選取 [英文 ]。
選擇建立按鈕。
建立作業可能需要幾分鐘的時間才能完成。
Note
-
標準訓練 可加快訓練時間和更快速的重複迭代;然而,它只適用於英文。
-
進階訓練 包含較長的訓練期間,且支援英文、其他語言和多語系專案。
- 如需詳細資訊,請參閱訓練模式。
任務建立完成後,從 Foundry 工具的微調視窗選擇該任務,進入 「開始微調 」頁面。
使用下列 URL、標頭和 JSON 主體提交PATCH要求,以建立新的專案。
請求 URL
當您建立 API 要求時,請使用下列 URL。 以您自己的值取代預留位置值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
用於驗證 API 要求的端點。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
您專案的名稱。 此值須區分大小寫。 |
myProject |
{API-VERSION} |
您所呼叫 API 的版本。 |
2023-04-01 |
使用下列標頭來驗證您的要求。
| Key |
Value |
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
Content-Type |
application/merge-patch+json |
Body
使用下列範例 JSON 作為本文。
{
"projectName": "{PROJECT-NAME}",
"language": "{LANGUAGE-CODE}",
"projectKind": "Conversation",
"description": "Project description",
"multilingual": true
}
| Key |
Placeholder |
Value |
Example |
projectName |
{PROJECT-NAME} |
您專案的名稱。 此值須區分大小寫。 |
EmailApp |
language |
{LANGUAGE-CODE} |
字串,指定專案中所用語句的語言代碼。 如果您的專案是多語系專案,請選擇大部分語句的語言 代碼 。 |
en-us |
multilingual |
true |
布爾值允許您在資料集中使用多語言文件。 部署模型時,您可以使用任何支援的語言查詢模型(不一定包含在定型檔中)。 若要深入瞭解多語系支援,請參閱 語言支援。 |
true |
就是這樣! 您可以開始進行您的微調工作專案。 如需詳細資訊, 請參閱後續步驟。
檢視和管理專案詳細數據
你可以檢索專案的最新資訊,進行必要的變更,並透過 Foundry 或 REST API 端點高效管理專案管理任務。
您的 Foundry 專案總覽頁面會顯示您微調任務專案的資訊,包括名稱、訂閱、資源群組及相關資源。 您也可以在 Azure 入口網站中選取 [概觀] 頁面上的 [管理],以存取 Azure 入口網站 中的 項目資源。
您可以透過 REST API 存取、檢視及管理所有項目詳細數據。
若要取得專案詳細數據,請使用下列URL和標頭提交 GET 要求。 以您自己的值取代預留位置值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
用於驗證 API 要求的端點。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
您專案的名稱。 此值須區分大小寫。 |
myProject |
{API-VERSION} |
您要呼叫的 API 版本 。 |
2023-04-01 |
使用下列標頭來驗證您的要求。
| Key |
Value |
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
回應主體
傳送要求之後,您會收到下列回應:
{
"createdDateTime": "2022-04-18T13:53:03Z",
"lastModifiedDateTime": "2022-04-18T13:53:03Z",
"lastTrainedDateTime": "2022-04-18T14:14:28Z",
"lastDeployedDateTime": "2022-04-18T14:49:01Z",
"projectKind": "Conversation",
"projectName": "{PROJECT-NAME}",
"multilingual": true,
"description": "This is a sample conversation project.",
"language": "{LANGUAGE-CODE}"
}
傳送 API 要求之後,您會收到表示成功的 200 回應,並包含 JSON 回應本文以及您的專案詳細資訊。
匯入現有的 Foundry 專案
匯入組態檔可讓您將現有的設定直接帶入平臺,讓您更輕鬆地根據預先定義的喜好設定來設定和自定義服務。
您可以使用 REST API 匯入 CLU config.json 檔案
使用下列 URL、標頭和 JSON 主體提出POST請求,以匯入您的專案。
請求 URL
當您建立 API 要求時,請使用下列 URL。 以您自己的值取代預留位置值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:import?api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
用於驗證 API 要求的端點。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
您專案的名稱。 此值區分大小寫,而且必須符合您要匯入之 JSON 檔案中的項目名稱。 |
EmailAppDemo |
{API-VERSION} |
您要呼叫的 API 版本 。 |
2023-04-01 |
使用下列標頭來驗證您的要求。
| Key |
Value |
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
Body
您傳送的 JSON 本文類似於下列範例。 如需 JSON 對象的詳細資訊,請參閱 參考檔。
{
"projectFileVersion": "{API-VERSION}",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectKind": "Conversation",
"settings": {
"confidenceThreshold": 0.7
},
"projectName": "{PROJECT-NAME}",
"multilingual": true,
"description": "Trying out CLU",
"language": "{LANGUAGE-CODE}"
},
"assets": {
"projectKind": "Conversation",
"intents": [
{
"category": "intent1"
},
{
"category": "intent2"
}
],
"entities": [
{
"category": "entity1"
}
],
"utterances": [
{
"text": "text1",
"dataset": "{DATASET}",
"intent": "intent1",
"entities": [
{
"category": "entity1",
"offset": 5,
"length": 5
}
]
},
{
"text": "text2",
"language": "{LANGUAGE-CODE}",
"dataset": "{DATASET}",
"intent": "intent2",
"entities": []
}
]
}
}
| Key |
Placeholder |
Value |
Example |
{API-VERSION} |
您要呼叫的 API 版本 。 |
2023-04-01 |
|
projectName |
{PROJECT-NAME} |
您專案的名稱。 此值須區分大小寫。 |
EmailAppDemo |
language |
{LANGUAGE-CODE} |
字串,指定專案中所用語句的語言代碼。 如果您的專案是多語系專案,請選擇大部分語句的語言 代碼 。 |
en-us |
multilingual |
true |
布爾值允許您在資料集中使用多語言文件。 部署模型時,您可以使用任何 支援的語言查詢模型,包括訓練檔中未包含的語言。 |
true |
dataset |
{DATASET} |
關於如何將資料分割為測試集與訓練集的資訊,請參閱 Foundry 中的語句標記方法。 此欄位的可能值為 Train 和 Test。 |
Train |
成功要求之後,API 回應包含一個具有 operation-location URL 的標頭,您可以用它來檢查匯入作業的狀態。 標頭的格式如下範例:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
匯出微調專案
匯出組態檔可讓您儲存專案設定和結構的目前狀態,讓您輕鬆地視需要備份或傳輸專案。
你可以下載 Microsoft Foundry 微調任務專案的 config.json 檔案:
流覽至您的專案首頁。
在頁面頂端,從右側頁面功能區區域選取您的專案。
選取 [下載組態檔]。
您可以將 CLU 專案匯出為 config.json 檔案。
要建立一個POST要求,方法是使用下列 URL、標頭和 JSON 主體來匯出您的專案。
請求 URL
當您建立 API 要求時,請使用下列 URL。 以您自己的值取代預留位置值。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:export?stringIndexType=Utf16CodeUnit&api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
用於驗證 API 要求的端點。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
您專案的名稱。 此值須區分大小寫。 |
EmailApp |
{API-VERSION} |
您要呼叫的 API 版本 。 |
2023-04-01 |
使用下列標頭來驗證您的要求。
| Key |
Value |
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
傳送 API 要求之後,您會收到 202 指出成功的回應。 在回應標頭中,擷取 operation-location 值。 值的格式如下範例:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
JOB-ID 是用來識別您的要求,因為這項作業是異步的。 請使用相同的驗證方法,透過此 URL 來取得導出的專案 JSON。
刪除專案
刪除項目可確保專案及其所有相關聯的數據都會從系統永久移除。
如果你不再需要你的專案,可以從 Foundry 刪除它。
前往 Foundry 首頁。 除非您已經完成此步驟且目前的會話仍然有效,否則請登入以開始驗證過程。
從「Keep building with Foundry」中選擇你想刪除的專案
選取 [管理中心]。
選取 [刪除專案]。
若要刪除中心及其所有專案:
流覽至 概觀 索引標籤的 Hub 區段。
在右側,選取 [ 刪除中樞]。
此連結會開啟 Azure 入口網站,讓您刪除中樞。
如果您的專案已不再需要,您可以使用 REST API 加以刪除。 若要繼續,請存取 REST API,並遵循專案刪除的記載步驟來完成此動作。
使用下列 URL、標頭和 JSON 主體來建立DELETE請求以刪除交談語言理解專案。
請求 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
| Placeholder |
Value |
Example |
{ENDPOINT} |
用於驗證 API 要求的端點。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
您專案的名稱。 此值須區分大小寫。 |
myProject |
{API-VERSION} |
您要呼叫的 API 版本 。 |
2023-04-01 |
使用下列標頭來驗證您的要求。
| Key |
Value |
Ocp-Apim-Subscription-Key |
資源的金鑰。 用於驗證 API 要求。 |
傳送 API 要求之後,您會收到 202 指出成功的回應,這表示您的專案已刪除。
後續步驟
建立微調工作區之後,請定義您的意圖和實體,並將其新增至架構,以開始微調工作: