定義意圖、表達和實體
表達是使用者在和使用您的語言模型的應用程式互動時,可能輸入的片語。 「意圖」代表使用者想要執行的工作或動作,或更簡單地說,其代表表達的「意思」。 您可以藉由定義意圖,並將其與一或多個表達建立關聯,以建立模型。
例如,請參考下列意圖清單和相關聯的表達:
- GetTime:
- "What time is it?" (現在幾點?)
- "What is the time?" (現在幾點?)
- "Tell me the time" (請告訴我時間)
- GetWeather:
- "What is the weather forecast?" (天氣預報說了什麼?)
- "Do I need an umbrella?" (我是否需要帶傘?)
- "Will it snow?" (是否會下雪?)
- TurnOnDevice
- "Turn the light on." (開燈。)
- "Switch on the light." (打開燈光。)
- "Turn on the fan" (開啟風扇)
- 無:
- 「您好」
- "Goodbye" (再見)
在您的模型中,您必須定義想要模型了解的意圖,因此請花一些時間考慮您的模型必須支援的領域,以及使用者可能會要求的動作或資訊類型。 除了您定義的意圖之外,每個模型還會包含無意圖,您應該使用這些意圖明確識別使用者可能送出的表達,但不需要對其執行任何特定動作 (例如 "hello" 之類的對話式問候語),或是識別落在此模型領域範圍之外的表達。
在您找出模型必須支援的目標之後,請務必為每個意圖擷取各種不同的表達範例。 收集您認為使用者會輸入的表達,包括代表相同內容但以不同方式構成的表達。 請牢記這些指導方針:
- 擷取多個不同的範例,或使用替代方式來說出相同的內容
- 將語句的長度從短變更為中等,再變更為長
- 改變語句的「名詞」或「主體」位置。 放在開頭、結尾或之間的某處
- 在不同的語句中使用正確的文法和不正確的文法,以提供良好的定型資料範例
- 您已加上標籤的資料的精確度、一致性和完整性,是決定模型效能的關鍵因素。
- 精確標記:一律將每個實體標記為其正確的類型。 在標籤中只要包括您想要擷取的內容,避免不必要的資訊。
- 標記一致:相同的實體在所有表達中都應該具有相同的標籤。
- 完整標記:標示所有表達中實體的所有執行個體。
「實體」的作用是將特定相關內容新增至意圖。 例如,您可以定義可套用至多個裝置的 TurnOnDevice 意圖,並使用實體來定義不同的裝置。
請參考下列表達、意圖和實體:
表達 | Intent | 實體 |
---|---|---|
What is the time? (現在幾點?) | GetTime | |
What time is it in London? (倫敦現在幾點?) | GetTime | 位置 (倫敦) |
What's the weather forecast for Paris? (巴黎的天氣預報說了什麼?) | GetWeather | 位置 (巴黎) |
Will I need an umbrella tonight? (我今晚需要帶傘嗎?) | GetWeather | 時間 (今晚) |
What's the forecast for Seattle tomorrow? (西雅圖明天的天氣預報為何?) | GetWeather | 位置 (西雅圖)、時間 (明天) |
Turn the light on. (開燈。) | TurnOnDevice | 裝置 (燈) |
Switch on the fan. (開啟風扇。) | TurnOnDevice | 裝置 (風扇) |
您可以將實體分割成幾個不同的元件類型:
- 完成學習的實體是最具彈性的實體類型,應用於大部分情況。 您使用合適的名稱定義完成學習的實體,然後在訓練表達中將單字或片語與其產生關聯。 當您訓練模型時,模型會學著在具有該實體的表達中比對適當元素。
- 當您需要具有一組特定可能值 (例如一週七天) 的實體時,清單實體十分實用。 您可以在清單實體定義中包含同義字,因此可以定義包含「星期日」、「星期一」、「星期二」等值的 DayOfWeek 實體,而其中每個值都可以有同義字,例如「週日」、「週一」、「週二」等等。
- 預建實體適用於常見類型,例如數字、日期時間及名稱。 例如,新增預建元件後,您會自動偵測值 (例如 "6") 或 組織 (例如 "Microsoft")。 本文提供支援的預建實體清單。