Udostępnij za pośrednictwem


Planowanie aplikacji usługi LUIS

Ważne

Usługa LUIS zostanie wycofana 1 października 2025 r. i od 1 kwietnia 2023 r. nie będzie można utworzyć nowych zasobów usługi LUIS. Zalecamy migrację aplikacji LUIS do interpretacji języka konwersacyjnego, aby korzystać z ciągłej pomocy technicznej i wielojęzycznych możliwości produktów.

Schemat aplikacji usługi Language Understanding (LUIS) zawiera intencje i jednostki istotne dla domeny podmiotu. Intencje klasyfikują wypowiedzi użytkowników, a jednostki wyodrębniają dane z wypowiedzi użytkownika. Intencje i jednostki istotne dla domeny podmiotu. Intencje klasyfikują wypowiedzi użytkowników.

Aplikacja usługi LUIS uczy się i wykonuje najbardziej wydajnie podczas iteratywnego opracowywania. Oto typowy cykl iteracji:

  1. Utwórz nową wersję
  2. Edytuj schemat aplikacji usługi LUIS. Obejmuje to:
    • Intencje z przykładowymi wypowiedziami
    • Jednostki
    • Funkcje
  3. Trenowanie, testowanie i publikowanie
  4. Testowanie pod kątem aktywnego uczenia się przez przejrzenie wypowiedzi wysłanych do punktu końcowego przewidywania
  5. Zbieranie danych z zapytań punktu końcowego

Zrzut ekranu przedstawiający cykl tworzenia

Identyfikowanie domeny

Aplikacja usługi LUIS jest skoncentrowana wokół domeny podmiotu. Na przykład możesz mieć aplikację do podróży, która obsługuje rezerwację biletów, lotów, hoteli i samochodów wynajmu. Inna aplikacja może udostępniać zawartość związaną z wykonywaniem, śledzeniem wysiłków fitness i ustawianiem celów. Identyfikowanie domeny pomaga znaleźć wyrazy lub frazy, które są istotne dla twojej domeny.

Napiwek

Usługa LUIS oferuje wstępnie utworzone domeny w wielu typowych scenariuszach. Sprawdź, czy możesz użyć wstępnie utworzonej domeny jako punktu wyjścia dla aplikacji.

Identyfikowanie intencji

Pomyśl o intencjach , które są ważne dla zadania aplikacji.

Przyjrzyjmy się przykładowi aplikacji do podróży z funkcjami, aby zarezerwować lot i sprawdzić pogodę w miejscu docelowym użytkownika. Dla tych akcji można zdefiniować dwie intencje: BookFlight i GetWeather.

W bardziej złożonej aplikacji z większą ilością funkcji prawdopodobnie będziesz mieć więcej intencji i należy je dokładnie zdefiniować, aby nie były zbyt szczegółowe. Na przykład bookFlight i BookHotel mogą być konieczne oddzielne intencje, ale bookInternationalFlight i BookDomesticFlight mogą być zbyt podobne.

Uwaga

Najlepszym rozwiązaniem jest użycie tylko tak wielu intencji, jak trzeba wykonać funkcje aplikacji. Jeśli zdefiniujesz zbyt wiele intencji, usługa LUIS będzie trudniej poprawnie klasyfikować wypowiedzi. Jeśli zdefiniujesz zbyt mało, mogą one być tak ogólne, że nakładają się na siebie.

Jeśli nie musisz identyfikować ogólnego zamiaru użytkownika, dodaj wszystkie przykładowe wypowiedzi użytkownika do intencji None . Jeśli twoja aplikacja będzie potrzebować większej liczby intencji, możesz utworzyć je później.

Tworzenie przykładowych wypowiedzi dla każdej intencji

Aby rozpocząć, unikaj tworzenia zbyt wielu wypowiedzi dla każdej intencji. Po określeniu intencji potrzebnych dla aplikacji utwórz od 15 do 30 przykładowych wypowiedzi na intencję. Każda wypowiedź powinna być inna niż podane wcześniej wypowiedzi. Uwzględnij różne liczby wyrazów, opcje wyrazów, czasowniki i znaki interpunkcyjne.

Aby uzyskać więcej informacji, zobacz understanding good utterances for LUIS apps (Zrozumienie dobrych wypowiedzi dla aplikacji usługi LUIS).

Identyfikowanie jednostek

W przykładowych wypowiedziach zidentyfikuj jednostki, które chcesz wyodrębnić. Aby zarezerwować lot, potrzebujesz informacji, takich jak miejsce docelowe, data, linia lotnicza, kategoria biletów i klasa podróży. Utwórz jednostki dla tych typów danych, a następnie oznacz jednostki w przykładowych wypowiedziach. Jednostki są ważne w przypadku realizacji intencji.

Podczas określania, które jednostki mają być używane w aplikacji, należy pamiętać, że istnieją różne typy jednostek do przechwytywania relacji między typami obiektów. Aby uzyskać więcej informacji na temat różnych typów, zobacz Jednostki w usłudze LUIS .

Napiwek

Usługa LUIS oferuje wstępnie utworzone jednostki dla typowych scenariuszy użytkownika konwersacyjnego. Rozważ użycie wstępnie utworzonych jednostek jako punktu wyjścia do tworzenia aplikacji.

Intencje a jednostki

Intencja jest pożądanym wynikiem całej wypowiedzi, podczas gdy jednostki są fragmentami danych wyodrębnianych z wypowiedzi. Zazwyczaj intencje są powiązane z akcjami, które należy wykonać w aplikacji klienckiej. Jednostki są wymagane do wykonania tej akcji. Z perspektywy programowania intencja wyzwoli wywołanie metody, a jednostki będą używane jako parametry do wywołania tej metody.

Ta wypowiedź musi mieć intencję i może mieć jednostki:

"Kup bilet lotniczy z Seattle do Kairu"

Ta wypowiedź ma jedną intencję:

  • Kupowanie biletu lotniczego

Ta wypowiedź może mieć kilka jednostek:

  • Lokalizacje Seattle (źródło) i Kair (miejsce docelowe)
  • Ilość pojedynczego biletu

Rozwiązanie w wypowiedziach z więcej niż jedną funkcją lub intencją

W wielu przypadkach, zwłaszcza podczas pracy z naturalną konwersacją, użytkownicy udostępniają wypowiedź, która może zawierać więcej niż jedną funkcję lub intencję. Aby rozwiązać ten problem, ogólną strategią jest zrozumienie, że dane wyjściowe mogą być reprezentowane przez intencje i jednostki. Ta reprezentacja powinna być mapowana na akcje aplikacji klienckiej i nie musi być ograniczona do intencji.

Int-ent-ties to pojęcie, które akcje (zwykle zrozumiałe jako intencje) mogą być również przechwytywane jako jednostki w danych wyjściowych aplikacji i mapowane na określone akcje. Negacja, na przykład, często opiera się na intencji i jednostce na potrzeby pełnego wyodrębniania. Rozważ następujące dwie wypowiedzi, które są podobne do wyboru słów, ale mają różne wyniki:

  • "Proszę zaplanować mój lot z Kairu do Seattle"
  • "Anuluj mój lot z Kairu do Seattle"

Zamiast mieć dwie oddzielne intencje, należy utworzyć jedną intencję z jednostką FlightAction machine learning. Ta jednostka uczenia maszynowego powinna wyodrębnić szczegóły akcji zarówno w przypadku planowania, jak i anulowania żądań oraz lokalizacji początkowej lub docelowej.

Ta jednostka FlightAction będzie ustrukturyzowana przy użyciu następującej jednostki uczenia maszynowego najwyższego poziomu i podentencji:

  • FlightAction
    • Akcja
    • Pochodzenie
    • Element docelowy

Aby ułatwić wyodrębnianie, należy dodać funkcje do podentii. Możesz wybrać funkcje na podstawie słownictwa, które mają być widoczne w wypowiedziach użytkownika, oraz wartości, które mają zostać zwrócone w odpowiedzi przewidywania.

Najlepsze rozwiązania

Planowanie schematu

Przed rozpoczęciem tworzenia schematu aplikacji należy określić, jak i gdzie zamierzasz używać tej aplikacji. Tym bardziej dokładne i szczegółowe planowanie, tym lepiej staje się twoja aplikacja.

  • Badanie użytkowników docelowych
  • Zdefiniuj kompleksowe osoby reprezentujące aplikację — głos, awatar, obsługa problemów (proaktywne, reaktywne)
  • Identyfikowanie kanałów interakcji użytkownika (takich jak tekst lub mowa) przekazywanie istniejących rozwiązań lub tworzenie nowego rozwiązania dla tej aplikacji
  • Podróż użytkownika końcowego
    • Czego oczekujesz, aby ta aplikacja nie robiła? Jakie są priorytety tego, co należy zrobić?
    • Jakie są główne przypadki użycia?
  • Zbieranie danych — informacje na temat zbierania i przygotowywania danych

Nie trenuj i publikuj przy użyciu każdej przykładowej wypowiedzi

Przed rozpoczęciem trenowania i publikowania dodaj 10 lub 15 wypowiedzi. Pozwala to zobaczyć wpływ na dokładność przewidywania. Dodanie pojedynczej wypowiedzi może nie mieć widocznego wpływu na wynik.

Nie używaj usługi LUIS jako platformy szkoleniowej

Usługa LUIS jest specyficzna dla domeny modelu językowego. Nie jest przeznaczona do pracy jako ogólna platforma szkoleniowa języka naturalnego.

Iteracyjne kompilowanie aplikacji przy użyciu wersji

Każdy cykl tworzenia powinien znajdować się w nowej wersji sklonowanej z istniejącej wersji.

Nie publikuj zbyt szybko

Zbyt szybkie publikowanie aplikacji i bez odpowiedniego planowania może prowadzić do kilku problemów, takich jak:

  • Aplikacja nie będzie działać w rzeczywistym scenariuszu na akceptowalnym poziomie wydajności.
  • Schemat (intencje i jednostki) może nie być odpowiedni, a jeśli utworzono logikę aplikacji klienckiej zgodnie ze schematem, może być konieczne jego ponowne wykonanie. Może to spowodować nieoczekiwane opóźnienia i dodatkowe koszty dla projektu, nad którym pracujesz.
  • Wypowiedzi dodawane do modelu mogą powodować uprzedzenia w stosunku do przykładowych wypowiedzi, które są trudne do debugowania i identyfikowania. Spowoduje to również trudności z usunięciem niejednoznaczności po zatwierdzeniu określonego schematu.

Monitorowanie wydajności aplikacji

Monitoruj dokładność przewidywania przy użyciu zestawu testów wsadowych.

Utrzymuj oddzielny zestaw wypowiedzi, które nie są używane jako przykładowe wypowiedzi ani wypowiedzi punktów końcowych. Ciągle ulepszaj aplikację dla zestawu testowego. Dostosowuj zestaw testów, aby odzwierciedlał rzeczywiste wypowiedzi użytkowników. Oceniaj każdą iterację lub wersję aplikacji za pomocą tego zestawu testów.

Nie twórz list fraz ze wszystkimi możliwymi wartościami

Podaj kilka przykładów na listach fraz, ale nie każdy wyraz lub frazę. Usługa LUIS uogólnia i uwzględnia kontekst.

Następne kroki

Zamiarów