Migrace ze služby Language Understanding (LUIS) na porozumění konverzačnímu jazyku (CLU)
Porozumění konverzačnímu jazyku (CLU) je cloudová nabídka umělé inteligence v jazyce Azure AI. Je to nejnovější generace služby Language Understanding (LUIS) a nabízí zpětnou kompatibilitu s dříve vytvořenými aplikacemi LUIS. MODUL CLU využívá nejmodernější inteligentní funkce strojového učení, které uživatelům umožňují vytvářet vlastní model porozumění přirozenému jazyku pro predikci záměrů a entit v konverzačních promluvách.
Modul CLU nabízí následující výhody oproti službě LUIS:
- Lepší přesnost díky špičkovým modelům strojového učení pro lepší klasifikaci záměru a extrakci entit Služba LUIS vyžadovala více příkladů pro generalizaci určitých konceptů v záměrech a entitách, zatímco pokročilejší strojové učení CLU snižuje zatížení zákazníků tím, že vyžaduje výrazně méně dat.
- Podpora vícejazyčného učení a trénování modelů Trénujte projekty v jednom jazyce a okamžitě predikujte záměry a entity v 96 jazycích.
- Snadná integrace s různými moduly CLU a vlastními projekty pro odpovědi na otázky pomocí pracovního postupu orchestrace
- Možnost přidat testovací data v rámci prostředí pomocí sady Language Studio a rozhraní API pro vyhodnocení výkonu modelu před nasazením.
Začněte tím, že vytvoříte nový projekt nebo migrujete aplikaci LUIS.
Porovnání mezi službou LUIS a CLU
Následující tabulka uvádí souběžné porovnání funkcí služby LUIS a CLU. Po migraci na modul CLU se také zvýrazní změny aplikace LUIS. Pokud chcete získat další informace o změnách, vyberte propojený koncept.
Funkce LUIS | Funkce CLU | Po migraci |
---|---|---|
Entity strojového učení a strukturovaného strojového učení | Naučené komponenty entit | Strojově naučené entity bez podřízených entit se přenesou jako entity CLU. Strukturované entity ML budou přenášet pouze uzly typu list (subentity nejnižší úrovně, které nemají vlastní subentity) jako entity v CLU. Název entity v MODULU CLU bude název podentity zřetězené s nadřazeným objektem. Například Order.Size |
Výpis, regulární výraz a předem připravené entity | Zobrazení seznamu, regulárních výrazů a předem připravených komponent entit | Seznam, regulární výrazy a předem připravené entity se přenesou jako entity v modulu CLU s vyplněnou komponentou entity založenou na typu entity. |
Pattern.Any entity |
Aktuálně nedostupné | Pattern.Any entity budou odebrány. |
Jedna jazyková verze pro každou aplikaci | Vícejazyčné modely umožňují pro každý projekt více jazyků. | Primární jazyk projektu se nastaví jako jazyk vaší jazykové verze aplikace LUIS. Projekt můžete trénovat tak, aby se rozšířil do různých jazyků. |
Role entit | Role už nejsou potřeba. | Role entit budou převedeny jako entity. |
Nastavení pro: normalizovat interpunkci, normalizovat diakritická znaménka, normalizovat tvar slova, používat všechna trénovací data | Nastavení už není potřeba. | Nastavení se nepřenese. |
Vzory a funkce seznamu frází | Vzory a funkce seznamu frází už nejsou potřeba. | Vzory a funkce seznamu frází se nepřenesou. |
Funkce entit | Komponenty entit | Seznam nebo předem připravené entity přidané jako funkce do entity se přenesou jako přidané komponenty do této entity. U záměrů se nepřenesou funkce entit. |
Záměry a promluvy | Záměry a promluvy | Všechny záměry a promluvy se přenesou. Promluvy budou označeny jejich přenesenými entitami. |
Identifikátory GUID aplikací | Názvy projektů | Pro každou migrující aplikaci se vytvoří projekt s názvem aplikace. Všechny speciální znaky v názvech aplikací budou odebrány v modulu CLU. |
Vytváření verzí | Při každém trénování se vytvoří model a funguje jako verze projektu. | Vytvoří se projekt pro vybranou verzi aplikace. |
Vyhodnocení pomocí dávkového testování | Vyhodnocení pomocí testovacích sad | Bude potřeba přidat testovací datovou sadu . |
Řízení přístupu na základě role (RBAC) pro prostředky LUIS | Řízení přístupu na základě role (RBAC) dostupné pro prostředky jazyka | RBAC prostředku jazyka musí být po migraci přidán ručně. |
Jeden trénovací režim | Standardní a pokročilé režimy trénování | Po migraci aplikace se bude vyžadovat trénování. |
Dva sloty publikování a publikování verzí | Deset slotů nasazení s vlastním pojmenováním | Po migraci a trénování aplikace se bude vyžadovat nasazení. |
Podpora rozhraní API a sady SDK služby LUIS v .NET, Pythonu, Javě a Node.js | Rozhraní REST API pro vytváření clu | Další informace najdete v článku rychlý start, kde najdete informace o rozhraních API pro vytváření clu. Refaktoring bude potřeba k používání rozhraní API pro vytváření clu. |
Podpora rozhraní API a sady SDK služby LUIS runtime v .NET, Pythonu, Javě a Node.js | Rozhraní API modulu CLU Runtime Podpora sady CLU Runtime SDK pro .NET a Python | Další informace najdete v tématu volání rozhraní API . Refaktoring bude potřeba k použití odpovědi rozhraní CLU runtime API. |
Migrace aplikací LUIS
Pomocí následujících kroků můžete migrovat aplikaci LUIS pomocí portálu LUIS nebo rozhraní REST API.
Migrace aplikací LUIS pomocí portálu LUIS
Pokud chcete začít s migrací pomocí portálu LUIS, postupujte takto:
Po přihlášení k portálu LUIS klikněte na tlačítko na banneru v horní části obrazovky a spusťte průvodce migrací. Migrace zkopíruje jenom vybrané aplikace LUIS do clu.
Karta Přehled migrace poskytuje stručné vysvětlení porozumění konverzačnímu jazyku a jeho výhodám. Pokračujte stisknutím klávesy Další.
Určete prostředek jazyka, do kterého chcete migrovat aplikaci LUIS. Pokud jste již vytvořili prostředek jazyka, vyberte předplatné Azure následované vaším prostředkem jazyka a pak vyberte Další. Pokud prostředek Jazyk nemáte, kliknutím na odkaz vytvořte nový prostředek jazyka. Potom vyberte prostředek a vyberte Další.
Vyberte všechny aplikace LUIS, které chcete migrovat, a zadejte každou z jejich verzí. Vyberte Další. Po výběru aplikace a verze se zobrazí výzva se zprávou s informacemi o všech funkcích, které se z vaší aplikace LUIS nepřenesou.
Zkontrolujte výběr prostředků jazyka a aplikací LUIS. Chcete-li migrovat aplikace, vyberte Dokončit .
Automaticky otevírané okno vám umožní sledovat stav migrace vašich aplikací. Aplikace, které nespustily migraci, budou mít stav Nespustilo se. Aplikace, které začaly migrovat, budou mít stav Probíhá a po dokončení migrace budou úspěšné. Neúspěšná aplikace znamená, že musíte proces migrace zopakovat. Po dokončení migrace pro všechny aplikace vyberte Hotovo.
Po migraci aplikací můžete provést následující kroky:
Nejčastější dotazy
Kterou verzi JSON luis podporuje MODUL CLU?
MODUL CLU podporuje model JSON verze 7.0.0. Pokud je formát JSON starší, musíte ho nejdřív importovat do služby LUIS a pak exportovat ze služby LUIS s nejnovější verzí.
Jak se entity v CLU liší?
V modulu CLU může mít jedna entita více komponent entit, což jsou různé metody extrakce. Tyto komponenty se pak zkombinují pomocí pravidel, která můžete definovat. Dostupné komponenty jsou:
- Naučené: Ekvivalentem entit ML ve službě LUIS se popisky používají k trénování strojově naučeného modelu k predikci entity na základě obsahu a kontextu poskytnutých popisků.
- Seznam: Stejně jako entity seznamu ve službě LUIS přesně odpovídají sadě synonym a mapují je zpět na normalizovanou hodnotu nazvanou klíč seznamu.
- Předem připravené: Předem připravené komponenty umožňují definovat entitu s předem připravenými extraktory pro běžné typy dostupné ve službě LUIS i CLU.
- Regulární výrazy: Komponenty Regulárních výrazů používají regulární výrazy k zachycení vlastních definovaných vzorů, stejně jako entity regulárních výrazů ve službě LUIS.
Entity ve službě LUIS se přenesou jako entity se stejným názvem v modulu CLU s ekvivalentními přenesenými komponentami.
Po migraci se strukturované uzly typu list a podřízenosti na nejvyšší úrovni přenesou do nového modelu CLU, zatímco všechny nadřazené entity a entity vyšší úrovně budou ignorovány. Název entity bude název entity na nejnižší úrovni zřetězený s nadřazenou entitou.
Příklad:
Entita LUIS:
- Objednávka pizzy
- Poleva
- Velikost
Migrovaná entita LUIS v CLU:
- Pizza Order.Topping
- Pizza Order.Size
Nelze také označovat 2 různé entity v CLU pro stejné rozsahy znaků. Naučené komponenty v CLU se vzájemně vylučují a neposkytují překrývající se předpovědi pouze pro naučené komponenty. Při migraci aplikace LUIS popisky entit, které se překrývaly, zachovaly nejdelší popisek a ignorovaly všechny ostatní.
Další informace o komponentách entit najdete v tématu Komponenty entity.
Jak se role entit přenesou do clu?
Vaše role se budou přenášet jako odlišné entity spolu s jejich označenými promluvami. Typ entity každé role určí, která komponenta entity se naplní. Například role entity seznamu se přenese jako entita se stejným názvem jako role s vyplněnou součástí seznamu.
Jak se funkce entit přenesou v CLU?
Entity používané jako funkce pro záměry se nepřenesou. Entity používané jako funkce pro jiné entity naplní příslušnou komponentu entity. Pokud se například entita seznamu s názvem SizeList použila jako funkce pro strojově naučenou entitu s názvem Velikost, entita Size se přenese do modulu CLU s hodnotami seznamu z SizeList přidané do její součásti seznamu. Totéž platí pro předem připravené entity a entity regulárních výrazů.
Jak se skóre spolehlivosti entit liší v CLU?
Každá extrahovaná entita má 100% skóre spolehlivosti, a proto by se skóre spolehlivosti entit nemělo používat k rozhodování mezi entitami.
Jakým způsobem je konverzační služba Language Understanding vícejazyčná?
Konverzační jazykové principy projektů přijímají promluvy v různých jazycích. Kromě toho můžete model vytrénovat v jednom jazyce a rozšířit ho tak, aby předpovídal v jiných jazycích.
Příklad:
Trénování promluvy (angličtina): Jak jste?
Záměr s popiskem: Pozdrav
Runtime promluva (francouzština): Komentář ça va?
Predikovaný záměr: Pozdrav
Jak je přesnost clu lepší než luis?
Modul CLU používá nejmodernější modely k vylepšení výkonu strojového učení různých modelů klasifikace záměru a extrakce entit.
Tyto modely nerozlišují menší varianty a nepotřebují následující nastavení: Normalizovat interpunkci, normalizovat diakritická znaménka, normalizovat tvar slova a používat všechna trénovací data.
Nové modely navíc nepodporují funkce seznamu frází, protože už nevyžadují dodatečné informace od uživatele k poskytování sémanticky podobných slov pro lepší přesnost. Vzory se také použily k zajištění vylepšené klasifikace záměru pomocí technik porovnávání založených na pravidlech, které nejsou nezbytné v novém paradigmatu modelu. Níže uvedená otázka podrobněji vysvětluje.
Co mám dělat, když funkce, které používám ve službě LUIS, už nejsou k dispozici?
Ve službě LUIS existuje několik funkcí, které už nebudou dostupné v modulu CLU. To zahrnuje schopnost provádět přípravu funkcí, vzory a vzory.any entity a strukturované entity. Pokud jste měli závislosti na těchto funkcích ve službě LUIS, použijte následující doprovodné materiály:
Vzory: Ve službě LUIS byly přidány vzory, které pomáhají klasifikaci záměru prostřednictvím definování promluv šablony regulárních výrazů. To zahrnovalo možnost definovat pouze záměry vzoru (bez příkladů promluvy). CLU je schopná generalizovat pomocí nejmodernějších modelů. Můžete poskytnout několik promluv, které odpovídají určitému vzoru záměru v MODULU CLU, a pravděpodobně klasifikuje různé vzory jako hlavní záměr bez nutnosti šablony vzoru promluvy. To zjednodušuje požadavek formulovat tyto vzory, které byly omezeny ve službě LUIS, a poskytuje lepší prostředí pro klasifikaci záměrů.
Funkce seznamu frází: Schopnost přidružit funkce hlavně k usnadnění klasifikace záměrů zvýrazněním klíčových prvků a funkcí, které se mají použít. To už není nutné, protože hluboké modely používané v CLU již mají schopnost identifikovat prvky, které jsou součástí jazyka. Odebrání těchto funkcí nebude mít vliv na schopnost klasifikace modelu.
Strukturované entity: Schopnost definovat strukturované entity byla především k povolení víceúrovňové analýzy promluv. S různými možnostmi dílčích entit potřebovala služba LUIS definovat a prezentovat model jako příklady všech různých kombinací entit. V modulu CLU se tyto strukturované entity už nepodporují, protože překrývající se naučené komponenty se nepodporují. Existuje několik možných přístupů ke zpracování těchto strukturovaných extrakcí:
- Nejednoznačné extrakce: Ve většině případů je detekce entit typu list dostačující k pochopení požadovaných položek v rámci celého rozsahu. Strukturovaná entita, jako je například cesta , která plně přesahovala zdrojovou a cílovou lokalitu (Londýn do New Yorku nebo domů do práce), lze identifikovat s jednotlivými rozsahy předpokládanými pro zdroj a cíl. Jejich přítomnost jako individuální předpovědi vás informuje o entitě Trip .
- Nejednoznačné extrakce: Pokud hranice různých dílčích entit nejsou úplně jasné. Pro ilustraci si představte příklad "Chci objednat pizzu pepperoni a extra sýrovou vegetariánskou pizzu". I když lze extrahovat různé typy pizzy a úpravy zastavení, jejich extrahování bez kontextu by mělo stupeň nejednoznačnosti, kde se přidává extra sýr. V tomto případě je rozsah rozsahu založen na kontextu a vyžadoval by, aby ho ml určil. Pro nejednoznačné extrakce můžete použít jeden z následujících přístupů:
- Zkombinujte dílčí entity do různých součástí entit ve stejné entitě.
Příklad:
Implementace služby LUIS:
- Pizza Order (entita)
- Velikost (podentita)
- Množství (subentita)
Implementace CLU:
- Pizza Order (entita)
- Velikost (součást entity seznamu: malá, střední, velká)
- Quantity (předem připravená komponenta entity: číslo)
V MODULU CLU byste označili celé rozpětí objednávky pizza včetně velikosti a množství, které by vrátilo objednávku pizzy s klíčem seznamu pro velikost a číselnou hodnotou pro množství ve stejném objektu entity.
- V případě složitějších problémů, kdy entity obsahují několik úrovní hloubky, můžete vytvořit projekt pro každou úroveň hloubky ve struktuře entit. Díky tomu máte možnost:
- Předejte promluvu do každého projektu.
- Zkombinujte analýzy jednotlivých projektů ve fázi, která pokračuje v CLU.
Podrobný příklad tohoto konceptu najdete v ukázkových projektech pizzy dostupných na GitHubu.
Návody spravovat verze v CLU?
Modul CLU ukládá datové prostředky použité k trénování modelu. Prostředky modelu můžete exportovat nebo je načíst zpět do projektu v libovolném okamžiku. Modely tedy fungují jako různé verze projektu.
Projekty CLU můžete exportovat pomocí sady Language Studio nebo programově a ukládat různé verze prostředků místně.
Proč se klasifikace CLU liší od luis? Jak funguje klasifikace Žádná?
Modul CLU představuje jiný přístup k trénovacím modelům pomocí více klasifikací, nikoli binární klasifikace. V důsledku toho se interpretace skóre liší a také se liší v různých možnostech trénování. I když pravděpodobně dosáhnete lepších výsledků, musíte sledovat rozdíl ve skóre a určit novou prahovou hodnotu pro přijetí předpovědí záměru. V nastavení projektu můžete snadno přidat prahovou hodnotu skóre spolehlivosti pro záměr None (Žádný). Pokud záměr nejvyššího záměru nepřekračuje zadanou prahovou hodnotu skóre spolehlivosti, vrátí se žádná jako hlavní záměr.
Potřebuji více dat pro modely CLU než LUIS?
Nové modely CLU mají lepší sémantické porozumění jazyku než ve službě LUIS a pomáhají zobecnit modely s významným snížením dat. I když byste neměli cílit na snížení množství dat, která máte, měli byste očekávat lepší výkon a odolnost vůči variantám a synonymům v CLU v porovnání se službou LUIS.
Pokud migruji své aplikace LUIS, odstraní se?
Vaše stávající aplikace LUIS budou k dispozici do 1. října 2025. Po uplynutí této doby už tyto aplikace nebudete moct používat, koncové body služby přestanou fungovat a aplikace se trvale odstraní.
Ar. Soubory LU podporované v CLU?
Modul CLU podporuje pouze formát JSON. Můžete importovat svůj . Soubory LU do služby LUIS a jejich export ve formátu JSON nebo můžete postupovat podle výše uvedených kroků migrace pro vaši aplikaci.
Jaké jsou limity služby CLU?
Další informace najdete v článku o omezeních služeb.
Musím refaktorovat kód, když migruji své aplikace ze služby LUIS do clu?
Objekty rozhraní API aplikací CLU se liší od služby LUIS, a proto bude nutné refaktoring kódu.
Pokud používáte programová rozhraní API služby LUIS a rozhraní RUNTIME, můžete je nahradit jejich ekvivalentními rozhraními API.
Rozhraní API pro vytváření clu: Místo konkrétních rozhraní CRUD API služby LUIS pro jednotlivé akce, jako je přidání promluvy, odstranění entity a přejmenování záměru, nabízí CLU rozhraní API pro import, které nahradí celý obsah projektu stejným názvem. Pokud vaše služba používala programová rozhraní API služby LUIS k poskytování platformy pro ostatní zákazníky, musíte zvážit toto nové paradigma návrhu. Všechna ostatní rozhraní API, například: výpis projektů, trénování, nasazování a odstraňování, jsou k dispozici. Rozhraní API pro akce, jako je import a nasazení , jsou asynchronní operace místo synchronní, protože byly ve službě LUIS.
Rozhraní API modulu runtime CLU: Nový požadavek a odpověď rozhraní API zahrnují mnoho stejných parametrů, jako jsou dotazy, predikce, hlavní záměry, záměry, entity a jejich hodnoty. Objekt odpovědi CLU nabízí jednodušší přístup. Predikce entit jsou poskytovány tak, jak jsou v textu promluvy, a všechny další informace, jako je rozlišení nebo klíče seznamu, jsou uvedeny v dalších parametrech volaných extraInformation
a resolution
.
Sadu .NET nebo Python CLU runtime SDK můžete použít k nahrazení sady SDK modulu runtime SLUŽBY LUIS. V současné době není pro clu k dispozici žádná sada SDK pro vytváření obsahu.
Jak se trénovací časy liší v CLU? Jak se standardní trénování liší od pokročilého trénování?
MODUL CLU nabízí standardní školení, které se trénuje a učí v angličtině a je srovnatelné s dobou trénování služby LUIS. Nabízí také pokročilé trénování, které trvá výrazně delší dobu, protože rozšiřuje trénování na všechny ostatní podporované jazyky. Rozhraní API pro trénování bude i nadále asynchronní proces a budete muset vyhodnotit změnu v procesu DevOps, který pro vaše řešení používáte.
Jak se prostředí změnilo v clu v porovnání se službou LUIS? Jak se liší životní cyklus vývoje?
Ve službě LUIS byste sestavili-Train-Test-Publish, zatímco v modulu CLU jste build-Train-Evaluate-Deploy-Test.
- Sestavení: V MODULU CLU můžete před trénování definovat záměry, entity a promluvy. Modul CLU vám navíc nabízí možnost určit testovací data při vytváření aplikace, která se použije k vyhodnocení modelu. Vyhodnocení vyhodnocuje, jak dobře model funguje s testovacími daty, a poskytuje přesné metriky, úplnosti a F1.
- Trénování: Při každém trénování vytvoříte model s názvem. Můžete přepsat již vytrénovaný model. Můžete zadat standardní nebo pokročilé trénování a určit, jestli chcete k vyhodnocení použít testovací data, nebo procento trénovacích dat, které se mají vynechat z trénování a použít jako testovací data. Po dokončení trénování můžete vyhodnotit, jak dobře váš model dělá na vnější straně.
- Nasazení: Po dokončení trénování a máte model s názvem, můžete ho nasadit pro předpovědi. Nasazení je také pojmenované a má přiřazený model. Pro stejný model můžete mít více nasazení. Nasazení lze přepsat jiným modelem nebo můžete prohodit modely s jinými nasazeními v projektu.
- Test: Po dokončení nasazení ho můžete použít k predikcím prostřednictvím koncového bodu nasazení. Můžete ho také otestovat v sadě Studio na stránce testovacího nasazení.
Tento proces je na rozdíl od služby LUIS, kde id aplikace bylo připojeno ke všemu a vy jste nasadili verzi aplikace v přípravném nebo produkčním slotu.
To ovlivní procesy DevOps, které používáte.
Podporuje modul CLU kontejner?
Ne, clu nelze exportovat do kontejnerů.
Jak budou moje aplikace LUIS po migraci pojmenovány v CLU?
Odeberou se všechny speciální znaky v názvu aplikace LUIS. Pokud je délka nezaškrtnutého názvu větší než 50 znaků, nadbytečné znaky budou odebrány. Pokud je název po odebrání speciálních znaků prázdný (například pokud byl @@
název aplikace LUIS), nový název bude bez názvu. Pokud už existuje projekt pro porozumění konverzačnímu jazyku se stejným názvem, bude migrovaná aplikace LUIS připojena _1
pro první duplikát a pro každou další duplikaci se zvýší o 1. Pokud je délka nového názvu 50 znaků a je potřeba ji přejmenovat, odebere se posledních 1 nebo 2 znaky, aby bylo možné zřetězení čísla a stále v limitu 50 znaků.
Migrace z Q&A služby LUIS
Pokud máte nějaké otázky, které nebyly v tomto článku nezodpovězené, zvažte ponechání otázek na našem vlákně Microsoft Q&A.