Naplánování aplikace LUIS

Důležité

Služba LUIS bude vyřazena 1. října 2025 a od 1. dubna 2023 nebudete moct vytvářet nové prostředky luis. Doporučujeme migrovat aplikace LUIS na konverzační jazyk, abyste mohli využívat výhod trvalé podpory produktů a možností více jazyků.

Schéma aplikace Language Understanding (LUIS) obsahuje záměry a entity relevantní pro vaši doménu předmětu. Záměry klasifikují promluvy uživatele a entity extrahují data z uživatelských promluv. Záměry a entity relevantní pro vaši doménu předmětu. Záměry klasifikují promluvy uživatelů.

Aplikace LUIS se učí a nejefektivněji funguje při iterativním vývoji. Tady je typický iterační cyklus:

  1. Vytvoření nové verze
  2. Upravte schéma aplikace LUIS. Sem patří:
    • Záměry s ukázkovými promluvami
    • Entity
    • Funkce
  3. Trénovat, testovat a publikovat
  4. Otestujte aktivní učení kontrolou promluv odeslaných do koncového bodu predikce.
  5. Shromažďování dat z dotazů koncových bodů

Snímek obrazovky znázorňující cyklus vytváření obsahu

Identifikace domény

Aplikace LUIS je zaměřená na doménu předmětu. Můžete mít například cestovní aplikaci, která zpracovává rezervace letenek, letenek, hotelů a půjčoven aut. Jiná aplikace může poskytovat obsah související se cvičením, sledováním úsilí o fitness a stanovením cílů. Identifikace domény vám pomůže najít slova nebo fráze, které jsou pro vaši doménu relevantní.

Tip

Služba LUIS nabízí předem připravené domény pro řadu běžných scénářů. Zkontrolujte, jestli můžete jako výchozí bod pro aplikaci použít předem připravenou doménu.

Identifikace záměrů

Zamyslete se nad záměry , které jsou důležité pro úlohu vaší aplikace.

Vezměme si příklad cestovní aplikace s funkcemi pro rezervaci letu a kontrolu počasí v cíli uživatele. Pro tyto akce můžete definovat dva záměry: BookFlight a GetWeather.

Ve složitější aplikaci s více funkcemi byste pravděpodobně měli více záměrů a měli byste je pečlivě definovat, aby nebyly příliš konkrétní. Například BookFlight a BookHotel mohou být samostatné záměry, ale BookInternationalFlight a BookDomesticFlight můžou být příliš podobné.

Poznámka

Osvědčeným postupem je používat jenom tolik záměrů, kolik potřebujete k provádění funkcí vaší aplikace. Pokud definujete příliš mnoho záměrů, bude pro službu LUIS obtížnější správně klasifikovat promluvy. Pokud definujete příliš málo, mohou být tak obecné, že se překrývají.

Pokud nepotřebujete identifikovat celkový záměr uživatele, přidejte do None záměru všechny ukázkové promluvy uživatele. Pokud vaše aplikace přeroste v potřebu dalších záměrů, můžete je vytvořit později.

Vytvoření ukázkových promluv pro každý záměr

Začněte tím, že pro každý záměr nebudete vytvářet příliš mnoho promluv. Jakmile určíte záměry, které pro svou aplikaci potřebujete, vytvořte pro každý záměr 15 až 30 ukázkových promluv. Každá promluva by se měla lišit od předchozích promluv. Zahrnuje různé počty slov, volby slov, časy sloves a interpunkci.

Další informace najdete v tématu Principy správných promluv pro aplikace LUIS.

Identifikace entit

V ukázkových promluvách identifikujte entity, které chcete extrahovat. K rezervaci letu potřebujete informace, jako je cíl, datum, letecká společnost, kategorie letenek a cestovní třída. Vytvořte entity pro tyto datové typy a pak označte entity v ukázkových promluvách. Entity jsou důležité pro dosažení záměru.

Při určování entit, které se mají v aplikaci použít, mějte na paměti, že existují různé typy entit pro zachytávání vztahů mezi typy objektů. Další informace o různých typech najdete v tématu Entity ve službě LUIS.

Tip

SLUŽBA LUIS nabízí předem připravené entity pro běžné konverzační uživatelské scénáře. Zvažte použití předem připravených entit jako výchozího bodu pro vývoj aplikací.

Záměry a entity

Záměr je požadovaný výsledek celé promluvy, zatímco entity jsou části dat extrahovaných z promluvy. Záměry jsou obvykle svázány s akcemi, které by klientská aplikace měla provést. Entity jsou informace potřebné k provedení této akce. Z programovacího hlediska by záměr aktivoval volání metody a entity by se použily jako parametry pro volání této metody.

Tato promluva musí mít záměr a může obsahovat entity:

"Koupit letenku ze Seattlu do Káhiry"

Tato promluva má jediný záměr:

  • Nákup letenky

Tato promluva může mít několik entit:

  • Umístění Seattlu (původ) a Káhiry (cíl)
  • Množství jednoho lístku

Řešení promluv s více než jednou funkcí nebo záměrem

V mnoha případech, zejména při práci s přirozenou konverzací, uživatelé poskytují promluvu, která může obsahovat více než jednu funkci nebo záměr. Obecnou strategií je pochopit, že výstup může být reprezentován záměry i entitami. Tato reprezentace by měla být mapovatelná na akce klientské aplikace a nemusí být omezena na záměry.

Int-ent-ties je koncept, že akce (obvykle označované jako záměry) mohou být také zachyceny jako entity ve výstupu aplikace a mapovány na konkrétní akce. Negace senapříklad při úplné extrakci často spoléhá na záměr a entitu. Představte si následující dvě promluvy, které jsou podobné výběru slov, ale mají různé výsledky:

  • "Prosím naplánujte můj let z Káhiry do Seattlu"
  • "Zrušit let z Káhiry do Seattlu"

Místo dvou samostatných záměrů byste měli vytvořit jeden záměr s entitou strojového učení FlightAction. Tato entita strojového učení by měla extrahovat podrobnosti o akci pro plánování i rušení požadavků a výchozí nebo cílové umístění.

Tato entita FlightAction by byla strukturovaná pomocí následující entity strojového učení nejvyšší úrovně a subentity:

  • FlightAction
    • Akce
    • Zdroj
    • Cíl

Pokud chcete pomoct s extrakcí, přidali byste do dílčích prvků funkce. Funkce byste zvolili na základě slovníku, který očekáváte v uživatelských promluvách, a hodnot, které chcete vrátit v odpovědi předpovědi.

Osvědčené postupy

Plánování schématu

Než začnete vytvářet schéma aplikace, měli byste zjistit, jak a kde chcete tuto aplikaci používat. Čím důkladněji a konkrétněji plánujete, tím lépe bude vaše aplikace.

  • Uživatelé cílení na výzkum
  • Definování kompletních osob, které budou představovat vaši aplikaci – hlas, avatar, zpracování problémů (proaktivní, reaktivní)
  • Identifikace kanálů uživatelských interakcí (například textu nebo řeči), předání stávajícím řešením nebo vytvoření nového řešení pro tuto aplikaci
  • Cesta koncového uživatele
    • Co očekáváte, že tato aplikace udělá a neudělá? Jaké jsou priority toho, co by měl dělat?
    • Jaké jsou hlavní případy použití?
  • Shromažďování dat – informace o shromažďování a přípravě dat

Netrénujte a nepublikujte s každou ukázkovou promluvou.

Před trénováním a publikováním přidejte 10 nebo 15 promluv. Díky tomu můžete vidět dopad na přesnost předpovědi. Přidání jedné promluvy nemusí mít viditelný vliv na skóre.

Nepoužívejte službu LUIS jako trénovací platformu

Služba LUIS je specifická pro doménu jazykového modelu. Nemá fungovat jako obecná platforma pro výuku přirozeného jazyka.

Iterativní sestavování aplikace pomocí verzí

Každý cyklus vytváření by měl být obsažen v nové verzi naklonované z existující verze.

Nepublikovat příliš rychle

Publikování aplikace příliš rychle a bez řádného plánování může vést k několika problémům, jako jsou:

  • Vaše aplikace nebude ve vašem skutečném scénáři fungovat na přijatelné úrovni výkonu.
  • Schéma (záměry a entity) nemusí být vhodné, a pokud jste vyvinuli logiku klientské aplikace podle schématu, možná ji budete muset znovu provést. To může způsobit neočekávané zpoždění a dodatečné náklady na projekt, na který pracujete.
  • Promluvy, které přidáte do modelu, můžou způsobit předsudky vůči ukázkovým promluvám, které se obtížně ladí a identifikují. Odstranění nejednoznačnosti bude také obtížné poté, co jste se zavázali k určitému schématu.

Monitorování výkonu aplikace

Sledujte přesnost předpovědi pomocí dávkové testovací sady.

Ponechte samostatnou sadu výroků, které se nepoužívají jako příklady výroků ani výroky v koncových bodech. Pokračujte ve vylepšování aplikace pro testovací sadu. Přizpůsobujte testovací sadu tak, aby odrážela reálné výroky uživatelů. Pomocí této testovací sady vyhodnoťte každou iteraci nebo verzi aplikace.

Nevytvovávejte seznamy frází se všemi možnými hodnotami.

V seznamech frází uveďte několik příkladů, ale ne každé slovo nebo frázi. Luis zobecňuje a bere v úvahu kontext.

Další kroky

Záměry