共用方式為


從 Language Understanding (LUIS) 移轉至交談式語言理解 (CLU)

交談式語言理解 (CLU) 是 Azure AI 語言中的雲端式 AI 供應項目。 這是最新一代的 Language Understanding (LUIS) ,且提供與先前建立之 LUIS 應用程式的回溯相容性。 CLU 採用最先進的機器學習智慧,讓使用者能夠建置自訂的自然語言理解模型,以預測交談語句中的意圖和實體。

CLU 提供下列優於 LUIS 的優點:

  • 改善先進機器學習模型的精確度,在分類意圖與擷取實體方面表現更出色。 LUIS 需要更多範例,才能將意圖和實體中的某些概念一般化,而 CLU 更為進階的機器學習功能可大幅減少要求的資料量,進而降低客戶負擔。
  • 模型學習和定型的多語系支援。 以一種語言將專案定型,並立即預測 96 種語言中的意圖和實體。
  • 使用協調流程工作流程,輕鬆整合不同的 CLU 和自訂問題解答專案。
  • 在部署之前,使用 Language Studio 和 API 在體驗中新增測試資料的能力,以進行模型效能評估。

若要開始使用,您可以建立新的專案移轉 LUIS 應用程式

LUIS 與 CLU 之間的比較

下表提供 LUIS 與 CLU 功能之間的並排比較。 此表也會醒目顯示 LUIS 應用程式在移轉至 CLU 之後的變更。 選取連結的概念以深入瞭解變更。

LUIS 功能 CLU 功能 移轉後
機器學習和結構化 ML 實體 學到的實體元件 沒有子實體且透過機器學習學到的實體將會以 CLU 實體的形式傳輸。 結構化 ML 實體只會將分葉節點 (最低層級的子實體,這些子實體沒有自己的子實體) 以 CLU 中實體的形式傳輸。 CLU 中實體的名稱將會是與父系串連的子機構名稱。 例如 Order.Size
清單、RegEx 和預先建置的實體 清單、RegEx 和預先建置的實體 清單、RegEx 和預先建置的實體將會以 CLU 中的實體的形式傳輸,並根據實體類型填入實體元件。
Pattern.Any 個實體 目前無法使用 將會移除 Pattern.Any 個實體。
每個應用程式的單一文化特性 多語系模型會為每個專案啟用多種語言。 專案的主要語言將會設定為 LUIS 應用程式文化特性。 您的專案可以定型以擴充至不同語言。
實體角色 不再需要角色 實體角色會以實體的形式傳輸。
相關設定:將標點符號標準化、將變音符號標準化、將文字形式標準化、使用所有定型資料 不再需要設定 不會傳輸設定。
模式和片語清單功能 不再需要模式和片語清單功能 不會傳輸模式和片語清單功能。
實體功能 實體元件 新增為實體功能的清單或預先建置的實體,將會以新增元件的形式傳送至該實體。 實體功能不會針對意圖傳輸。
意圖和語句 意圖和語句 所有意圖和語句都會傳輸。 語句會加上其已傳送實體的標籤。
應用程式 GUID 專案名稱 每個移轉的應用程式都會使用應用程式名稱來建立專案。 應用程式名稱中的任何特殊字元都會在 CLU 中移除。
版本控制 每次定型時都會建立模型,並作為 專案的版本。 系統會為選取的應用程式版本建立專案。
使用批次測試進行評估 使用測試集進行評估 需要新增測試資料集
LUIS 資源的角色型存取控制 (RBAC) 語言資源可用的角色型存取控制 (RBAC) 移轉之後,必須手動新增語言資源 RBAC。
單一定型模式 標準和進階定型模式 應用程式移轉之後將需要定型。
兩個發佈位置與版本發佈 具有自訂命名的十個部署位置 在應用程式的移轉和定型之後,將需要進行部署。
.NET、Python、JAVA 和 Node.js 中的 LUIS 撰寫 API 和 SDK 支援 CLU 撰寫 REST API 如需詳細資訊,請參閱 快速入門文章 ,取得 CLU 撰寫 API 的相關資訊。 必須重構才能使用 CLU 撰寫 API。
.NET、Python、JAVA 和 Node.js 中的 LUIS 執行r階段 API 和 SDK 支援 執行階段 API.NETPython的 CLU 執行階段 SDK 支援。 如需詳細資訊,請參閱如何呼叫 API。 必須重構才能使用 CLU 執行階段 API 回應。

移轉 LUIS 應用程式

使用下列步驟,使用 LUIS 入口網站或 REST API 來移轉 LUIS 應用程式。

使用 LUIS 入口網站移轉 LUIS 應用程式

請遵循下列步驟,開始使用 LUIS 入口網站進行移轉:

  1. 登入 LUIS 入口網站之後,按一下畫面頂端橫幅上的按鈕以啟動移轉精靈。 移轉只會將選取的 LUIS 應用程式複製到 CLU。

    顯示 LUIS 入口網站中移轉橫幅的螢幕擷取畫面。

    移轉概觀索引標籤會提供交談語言理解及其優點的簡短說明。 按 [下一步] 繼續進行。

    顯示移轉概觀視窗的螢幕擷取畫面。

  2. 決定您想要移轉 LUIS 應用程式的語言資源。 如果您已經建立您的語言資源,請選取後面接續您語言資源的 Azure 訂用帳戶,然後選取 [下一步]。 如果您沒有語言資源,請按一下連結建立新的語言資源。 之後,選取資源,然後選取 [下一步]

    顯示資源選擇畫面的螢幕擷取畫面。

  3. 選取您想要移轉的所有 LUIS 應用程式,並指定其每個版本。 選取 [下一步]。 選取您的應用程式和版本之後,系統會提示您一則訊息,通知您不會從 LUIS 應用程式傳輸的各項功能。

    注意

    交談語言理解不支援特殊字元。 您所選 LUIS 應用程式名稱中的任何特殊字元都會在新的移轉應用程式中移除。 顯示應用程式選取視窗的螢幕擷取畫面。

  4. 檢閱您的語言資源和 LUIS 應用程式選取項目。 選取 [完成] 移轉您的應用程式。

  5. 快顯視窗可讓您追蹤應用程式的移轉狀態。 尚未開始移轉的應用程式狀態為 [未啟動]。 已開始移轉的應用程式的狀態會是 [進行中],狀態會在移轉狀態完成後隨即變成 [成功]。 失敗的應用程式表示您必須重複移轉流程。 所有應用程式移轉完成之後,請選取 [完成]。

    顯示應用程式移轉進度視窗的螢幕擷取畫面。

  6. 移轉應用程式之後,您可以執行下列步驟:

常見問題集

CLU 支援哪些 LUIS JSON 版本?

CLU 支援模型 JSON 7.0.0 版。 如果 JSON 格式較舊,則必須先匯入 LUIS,然後從具有最新版本的 LUIS 匯出。

CLU 中的實體有何不同?

在 CLU 中,單一實體可以有多個實體元件,這些元件是擷取的不同方法。 這些元件接著會使用您可以定義的規則結合在一起。 可用的元件如下:

  • 學習:標籤相當於 LUIS 中的 ML 實體,可用來定型機器學習模型,以根據所提供標籤的內容和情境來預測實體。
  • 清單:清單元件就像 LUIS 中的清單實體一樣,會完全符合一組同義字,並將它們對應回稱為清單索引鍵的標準化值。
  • 預先建置:預先建置的元件可讓您針對 LUIS 和 CLU 中可用的常見類型,使用預先建置的擷取器來定義實體。
  • Regex:Regex 元件會使用正則運算式來擷取自訂定義的模式,與 LUIS 中的 Regex 實體完全相同。

LUIS 中的實體將會以 CLU 中相同名稱的實體的形式傳輸,並傳輸對等的元件。

移轉之後,您的結構化機器學習分葉節點和下層子實體將會傳輸至新的 CLU 模型,同時忽略所有父實體和較高層級實體。 實體的名稱會是與其父實體串連的底層實體名稱。

範例:

LUIS 實體:

  • 披薩訂單
    • 配料
    • 大小

CLU 中已移轉的 LUIS 實體:

  • Pizza Order.Topping
  • Pizza Order.Size

對於相同的字元範圍,您也無法為 CLU 中的 2 個不同實體加上標籤。 CLU 中的已學習元件是互斥的,而且不會只為已學習的元件提供重疊的預測。 移轉 LUIS 應用程式時,重疊的實體標籤會保留最長的標籤,並忽略任何其他標籤。

如需實體元件的詳細資訊,請參閱實體元件

實體角色如何傳輸至 CLU?

您的角色會隨著已加上標籤的語句一併傳輸為不同的實體。 每個角色的實體類型都會決定要填入哪一個實體元件。 例如,清單實體角色會以與角色同名的實體傳送,並填入清單元件。

如何在 CLU 中傳輸實體功能?

不會傳輸做為意圖功能的實體。 做為其他實體功能的實體會填入實體的相關元件。 例如,如果名為 SizeList 的清單實體是用來做為名為 Size 之已採用機器學習的實體之功能,則 Size 實體將會傳送至 CLU,並將 SizeList 的清單值從SizeList新增至其清單元件。 這同樣適用於預先建置和 Regex 實體。

CLU 中的實體信賴分數有何不同?

任何擷取的實體都有 100% 的信賴分數,因此不應該使用實體信賴分數來決定實體之間的決策。

Conversational Language Understanding 如何處理多語系?

交談語言理解專案接受不同語言的語句。 此外,您可以使用一種語言將模型定型,並將其擴充為以其他語言預測。

範例:

將語句定型 (英文) :你好嗎?

加上標籤的意圖:問候語

執行階段語句 (法文) :Comment ça va?

預測意圖:問候語

CLU 的精確度如何優於 LUIS?

CLU 使用最先進的模型來增強不同意圖分類和實體擷取模型機器學習效能。

這些模型不區分次要變化,且不再需要下列設定:將標點符號標準化將變音符號標準化將文字形式標準化,以及 使用所有定型資料

此外,新模型不支援片語清單功能,因為它們不再需要使用者的增補資訊,以提供語意類似的字組,以取得更佳的精確度。 模式也可用來使用新模型範例中不需要的規則型比對技術來提供改良的意圖分類。 下列問題會更詳細地說明這一點。

如果我在 LUIS 中使用的功能不再存在,該怎麼辦?

LUIS 中有數個功能 CLU 中將無法再使用。 這包括能夠執行特徵工程、具有模式和 pattern.any 實體以及結構化實體。 如果您對 LUIS 中的這些功能有相依性,請運用下列指引:

  • 模式:已在 LUIS 中新增模式,以透過定義規則運算式範本語句來協助分類意圖。 這包括在沒有語句範例的情況下定義僅有模式的意圖。 CLU 能夠利用最先進的模型來一般化。 您可以在 CLU 中提供一些語句來比對 CLU 中特定模式的意圖,系統可能會將不同模式分類為最上層的意圖,而不需要模式範本語句。 這可簡化制定這些模式的需求 (這些模式在 LUIS 中受到限制),並提供更好的意圖分類體驗。

  • 片語清單功能:主要能夠建立特徵的關聯性,透過醒目提示要使用的主要元素/功能來協助分類意圖。 已不再需要此功能,因為 CLU 中使用的深層模型已經能夠識別語言固有的元素。 移除這些功能也不會影響模型的分類功能。

  • 結構化實體:能夠定義結構化實體,主要是用於啟用語句的多層級剖析。 子實體有多種不同可能性,LUIS 需要定義實體的所有不同組合,並將其呈現給模型作為範例。 CLU 不支援重疊的已學習元件,因此不再支援這些結構化實體。 有一些可能的方法可處理這些結構化擷取:

    • 非模棱兩可的擷取:在大部分情況下,分葉實體的偵測就足以了解完整範圍內所需的專案。 例如,完全橫跨出發地和目的地 (倫敦到紐約住家到公司) 的行程這類結構化實體,也可以透過針對出發地和目的地預測的個別範圍進行識別。 其是作為個別預測而存在,會通知您行程實體。
    • 模棱兩可的擷取:當不同子實體的界限並不明確時。 在此使用「我想要訂購一份義式臘腸披薩,還有一份額外加乳酪的蛋奶素披薩」作為範例。 雖然系統可以擷取不同的披薩類型和配料修改內容,但若在沒有情境的情況下進行擷取,則會有一些模棱兩可的情況,例如究竟要在哪一份披薩上添加額外乳酪。 在此情況下,範圍的延伸區是以情境為基礎,而且需要 ML 來判斷這一點。 針對模棱兩可的擷取內容,您可以使用下列其中一種方法:
  1. 將子實體合併成相同實體內的不同實體元件。

範例:

LUIS 實作:

  • 披薩訂單 (實體)
    • 大小 (子實體)
    • 數量 (子實體)

CLU 實作:

  • 披薩訂單 (實體)
    • 大小 (清單實體元件:小、中、大)
    • 數量 (預先建置的實體元件:數字)

在 CLU 中,您會為包含大小和數量之披薩訂單的整個範圍加上標籤,這會傳回具有大小的清單索引鍵之披薩訂單,且在同一個實體物件中也會包含數字值。

  1. 針對實體包含數個深度層級的複雜問題,您可以針對實體結構中的每個深度層級建立專案。 這可讓您選擇:
  • 將語句傳遞至每個專案。
  • 結合階段中每個專案的分析,繼續進行 CLU。

如需此概念的詳細範例,請參閱 GitHub 上可用的披薩範例專案。

如何管理 CLU 中的版本?

CLU 會儲存用來定型模型的資料資產。 您可以匯出模型的資產,或隨時將其載入回專案之中。 因此,模型可作為專案的不同版本。

您可以使用 Language Studio以程式設計方式匯出 CLU 專案,並在本機儲存不同版本的資產。

為何 CLU 分類與 LUIS 不同? None 分類的運作方式為何?

CLU 使用多重分類,而不是二元分類來呈現不同的定型模型方法。 因此,分數的解譯不同,而且在定型選項之間也會有所不同。 雖然您可能因此獲得更好的結果,但您必須觀察分數的差異,並判斷接受意圖預測的新閾值。 您可以在專案設定中輕鬆地為 None 意圖 新增信賴分數閾值。 如果最上層意圖未超過所提供的信賴分數閾值,這會傳回 None 作為最上層意圖。

CLU 模型需要的資料比 LUIS 模型多嗎?

新的 CLU 模型對於語言的語意理解比 LUIS 更好,進而有助模型以更少資料量來進行一般化。 雖然您不該刻意減少擁有的資料量,但相較於 LUIS,您可以預期 CLU 對變化和同義字效能和復原能力更好。

如果我不移轉 LUIS 應用程式,系統會加以刪除嗎?

您現有的 LUIS 應用程式將於 2025 年 10 月 1 日之前提供。 之後,您將無法再使用這些應用程式,服務端點將無法如常運作,而且應用程式將會永久刪除。

CLU 是否支援的 .LU 檔案?

CLU 僅支援 JSON 格式。 您可以將 .LU 檔案匯入至 LUIS 再以 JSON 格式匯出,或者您可以遵循上述的應用程式移轉步驟。

CLU 有哪些服務限制?

如需詳細資訊,請參閱服務限制一文。

如果我將應用程式從 LUIS 遷移至 CLU,是否需要重構程式碼?

CLU 應用程式的 API 物件與 LUIS 不同,因此需要程式碼重構。

如果您使用 LUIS 程式設計 API 和執行階段 API,則可以將其以對等的 API 取代。

CLU 撰寫 API:CLU 提供匯入 API 以使用相同名稱取代專案的完整內容,而不是 LUIS 為新增語句刪除實體重新命名意圖等個別動作的特定 CRUD API。 如果您的服務過去使用 LUIS 程式設計 API 為其他客戶提供平台,請務必考慮這個新的設計範例。 所有其他 API 均可供使用,例如:列出專案定型部署刪除匯入部署等動作的 API 是非同步作業,而不是像在 LUIS 中同步。

CLU 執行階段 API:新的 API 要求和回應包含許多相同的參數,例如:查詢預測最上層意圖意圖實體及其值。 CLU 回應物件提供更直接的方法。 實體預測會在語句文字內提供,而解析或清單索引鍵等任何其他資訊則會在稱為 extraInformationresolution 的額外參數中提供。

您可以使用 .NETPython CLU 執行階段 SDK 取代 LUIS 執行階段 SDK。 目前沒有適用於 CLU 的撰寫 SDK。

CLU 中的定型時間有何不同? 標準定型與進階定型有何不同?

CLU 提供標準定型,是以英文定型和學習,而且相當於 LUIS 的定型時間。 其也提供進階定型,這需要相當長的時間,因為它會將定型內容延伸至所有其他支援的語言。 定型 API 將繼續採非同步流程,而且您必須評估您針對解決方案所採用之 DevOps 程式中的變更。

相較於 LUIS,CLU 中的體驗有何變化? 開發生命週期有何不同?

您在 LUIS 中會使用建置-定型-測試-發佈流程,在 CLU 中則是建置-定型-評估-部署-測試流程。

  1. 建置:在 CLU 中,您可以在定型之前定義意圖、實體和語句。 CLU 也可讓您在建置要用於模型評估的應用程式時指定測試資料。 評估作業會評估模型對您測試資料的成效,並提供精確度、回收和 F1 計量。
  2. 定型:每次定型時,您都會建立具有名稱的模型。 您可以覆寫已定型的模型。 您可以指定標準進階定型,並判斷您是否想要使用測試資料進行評估,或將定型資料的百分比從定型中省去,並用來作為測試資料。 定型完成後,您可以評估模型在外部執行的方式。
  3. 部署:定型完成且您有具備名稱的模型之後,即可針對預測進行部署。 系統也會對部署命名,且部署會具有指派的模型。 您可以針對相同模型有多個部署。 部署可以使用不同的模型覆寫,或者您可以將模型與專案中的其他部署交換。
  4. 測試:部署完成後,您可以透過部署端點使用其進行預測。 您也可以在工作室的 [測試部署] 頁面中進行測試。

此流程與 LUIS 相反,其中應用程式識別碼已附加至所有專案,而且您已在暫存或生產位置中部署應用程式的版本。

這會影響您使用的 DevOps 流程。

CLU 是否支援容器?

否,您無法將 CLU 匯出至容器。

在移轉之後,我的 LUIS 應用程式如何在 CLU 中命名?

LUIS 應用程式名稱中的任何特殊字元都會遭到移除。 如果清除的名稱長度大於 50 個字元,將會移除額外的字元。 例如,如果移除特殊字元之後的名稱是空的 (例如若 LUIS 應用程式名稱為 @@),則新名稱會為未命名。 如果已經有具有相同名稱的對話式語言理解專案,則移轉的 LUIS 應用程式會將 _1 附加為第一個重複專案,並針對每個額外的重複專案增加 1。 如果新名稱的長度是 50 個字元,而且需要重新命名,將會移除最後 1 或 2 個字元,這樣才能串連數字且仍然在 50 個字元的限制內。

從 LUIS 移轉的問與答

如果您有本文中未能回答的任何問題,請在 Microsoft 問與答對話中留下您的問題。

下一步