Sdílet prostřednictvím


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 do porozumění konverzačnímu jazyku, abyste mohli využívat další podporu produktů a vícejazyčné funkce.

Schéma aplikace LUIS (Language Understanding) obsahuje záměry a entity relevantní pro vaši doménu předmětu. Záměry klasifikují promluvy uživatelů 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 provádí nejefektivněji při iterativním vývoji. Tady je typický cyklus iterace:

  1. Vytvoření nové verze
  2. Upravte schéma aplikace LUIS. To zahrnuje:
    • Záměry s ukázkovými promluvami
    • Entity
    • Funkce
  3. Trénování, testování a publikování
  4. Testování aktivního učení kontrolou promluv odeslaných do koncového bodu předpovědi
  5. Shromažďování dat z dotazů koncových bodů

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

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 vstupenek, letů, hotelů a pronájem aut. Jiná aplikace může poskytovat obsah související s cvičením, sledováním fitness úsilí a nastavením cílů. Identifikace domény vám pomůže najít slova nebo fráze, které jsou relevantní pro vaši doménu.

Tip

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

Identifikace záměrů

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

Podívejme se na příklad cestovní aplikace s funkcemi pro rezervaci letu a kontrolou 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 pravděpodobně budete mít více záměrů a měli byste je pečlivě definovat, aby nebyly příliš specifické. Například BookFlight a BookHotel mohou být potřeba oddělit záměry, ale BookInternationalFlight a BookDomesticFlight můžou být příliš podobné.

Poznámka:

Osvědčeným postupem je použít pouze tolik záměrů, kolik potřebujete k provádění funkcí 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 záměru None všechny ukázkové promluvy uživatelů. Pokud vaše aplikace bude potřebovat více záměrů, můžete je vytvořit později.

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

Abyste mohli začít, vyhněte se vytváření příliš mnoha promluv pro každý záměr. Jakmile určíte záměry, které potřebujete pro aplikaci, vytvořte 15 až 30 ukázkových promluv na záměr. Každá promluva by se měla lišit od dříve zadaných promluv. Zahrňte různé počty slov, volby slov, slovesné časy a interpunkci.

Další informace najdete v tématu vysvětlení dobrých promluv pro aplikace LUIS.

Identifikace entit

V ukázkových promluvách identifikujte entity, které chcete extrahovat. Pokud si chcete rezervovat let, potřebujete informace, jako je cíl, datum, letecké společnosti, kategorie letenky 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žívat, nezapomeňte, že existují různé typy entit pro zachycení vztahů mezi typy objektů. Další informace o různýchtypech

Tip

Služba LUIS nabízí předem připravené entity pro běžné scénáře konverzačních uživatelů. 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é z promluvy. Záměry jsou obvykle svázané s akcemi, které by klientská aplikace měla provést. Entity jsou informace potřebné k provedení této akce. Z programovací perspektivy 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 letecké společnosti ze Seattlu do Káhiry"

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

  • Nákup lístku letadla

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

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

Řešení v promluvách 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. Abychom to vyřešili, je obecná strategie pochopit, že výstup může být reprezentován záměry i entitami. Toto vyjádření by mělo být mapovatelné na akce klientské aplikace a nemusí být omezené na záměry.

Int-ent-ties je koncept, který akce (obvykle pochopené jako záměry) můžou být zachyceny také jako entity ve výstupu aplikace a mapovány na konkrétní akce. Negace se například běžně spoléhá na záměr a entitu pro úplnou extrakci. Vezměte v úvahu následující dvě promluvy, které jsou podobné ve výběru slova, ale mají různé výsledky:

  • "Prosím naplánujte můj let z Káhiry do Seattlu"
  • "Zrušit můj 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 umístění původu nebo cíle.

Tato entita FlightAction by byla strukturovaná s následující entitou strojového učení nejvyšší úrovně a dílčími entitami:

  • FlightAction
    • Akce
    • Zdroj
    • Cíl

Pro pomoc s extrakcí byste do dílčích částí přidali funkce. Funkce byste zvolili na základě slovníku, který očekáváte v promluvách uživatelů, a hodnoty, které chcete vrátit v odpovědi predikce.

Osvědčené postupy

Plánování schématu

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

  • Výzkum cílených uživatelů
  • Definujte komplexní osoby, které představují vaši aplikaci – hlas, avatar, zpracování problémů (proaktivní, reaktivní)
  • Identifikace kanálů interakcí uživatelů (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 ne? Jaké jsou priority toho, co by měla dělat?
    • Jaké jsou hlavní případy použití?
  • Shromažďování dat – informace o shromažďování a přípravě dat

Nevytrénujte a publikujte s každou ukázkovou promluvou

Před trénováním a publikováním přidejte 10 nebo 15 promluv. To vám umožní zobrazit dopad na přesnost predikce. Přidání jedné promluvy nemusí mít viditelný dopad na skóre.

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

Služba LUIS je specifická pro doménu jazykového modelu. Není určená jako obecná vzdělávací platforma přirozeného jazyka.

Iterativní sestavení aplikace s verzemi

Každý cyklus vytváření by měl být součástí nové verze klonované z existující verze.

Nepublikujte příliš rychle

Publikování aplikace je příliš rychlé a bez správné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, budete ji možná 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 směrem k ukázkovým promluvám, které se obtížně ladí a identifikují. Odstranění nejednoznačnosti bude také obtížné po potvrzení určitého 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.

Nevytvá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