Udostępnij za pośrednictwem


Opcje rozpoznawania intencji i wyodrębniania encji dla obciążeń aplikacji inteligentnych

Rozpoznawanie intencji i wyodrębnianie jednostek są kluczowymi składnikami rozumienia języka naturalnego.

Rozpoznawanie intencji polega na zidentyfikowaniu celu użytkownika lub celu stojącego za jego danymi wejściowymi. Na przykład, jeśli użytkownik mówi: "Chcę zarezerwować lot", jego intencją jest zarezerwowanie lotu. Rozpoznawanie intencji pomaga agent zrozumieć, jakie działania należy podjąć na podstawie żądania użytkownika.

Wyodrębnianie encji polega na identyfikowaniu i wyodrębnianiu określonych informacji z danych wejściowych użytkownika. Encjami mogą być takie elementy, jak daty, nazwy, lokalizacje lub inne istotne dane. Na przykład w zdaniu „Zarezerwuj lot do Nowego Jorku 15 września” „Nowy Jork” i „15 września” są encjami.

Agent używa intencji, aby zrozumieć cel użytkownika, a jednostki do zidentyfikowania określonych szczegółów potrzebnych do wykonania zadania. W związku z tym rozpoznawanie intencji i wyodrębnianie encji umożliwiają agent dostarczanie dokładnych i wydajnych odpowiedzi na zapytania użytkowników.

Podczas projektowania obciążenia aplikacji inteligentnej należy wybrać najlepszą opcję rozpoznawania intencji i wyodrębniania encji, aby upewnić się, że obciążenie aplikacji inteligentnej zapewnia pozytywne doświadczenia użytkownika.

Definicje

Termin Definicja
NLU Rozumienie języka naturalnego to podzbiór przetwarzania języka naturalnego w AI, który koncentruje się na maszynowym zrozumieniu tekstu.
CLU Rozumienie języka konwersacyjnego to funkcja Azure AI, która umożliwia tworzenie niestandardowych modeli NLU.
LLM Duży model językowy to rodzaj modelu AI zaprojektowanego w celu rozumienia i generowania języka ludzkiego.
model GPT Generatywny, wstępnie przeszkolony transformator odnosi się do rodziny dużych modeli językowych, które używają architektury transformatora do zrozumienia i wygenerowania tekstu podobnego do ludzkiego.
Łączenie dynamiczne Łańcuch dynamiczny to metoda automatyzowania wyzwalaczy dla akcji generatywnych. Zamiast ręcznie definiować każdy możliwy temat lub frazę wyzwalającą, dynamiczne łańcuchy pozwalają sztucznej inteligencji określić, które tematy lub akcje wtyczek muszą zostać wywołane w oparciu o kontekst konwersacji.

Wybór odpowiedniej opcji rozpoznawania intencji i wyodrębniania jednostek w obciążeniu aplikacji inteligentnej obejmuje kilka kluczowych kwestii:

  • Encje wstępnie utworzone a encje standardowe: oceń, czy wstępnie utworzone encje dostarczane przez Microsoft Copilot Studio spełniają Twoje potrzeby. Wstępnie utworzone encje obejmują typowe typy informacji, takie jak daty, liczby i nazwy. Jeśli aplikacja wymaga wiedzy specyficznej dla domeny, może być konieczne utworzenie encji niestandardowych.

  • Złożoność danych wejściowych użytkownika: rozważ złożoność i zmienność danych wejściowych użytkownika. W przypadku prostych scenariuszy mogą wystarczyć wstępnie utworzone encje. W przypadku bardziej złożonych interakcji mogą być konieczne encje niestandardowe i zaawansowane konfiguracje, takie jak wyrażenia regularne (regex).

  • Wypełnianie miejsc na wartość: ustal, czy aplikacja wymaga proaktywnego wypełniania miejsc na wartość, gdzie agent aktywnie wyszukuje i wypełnia brakujące informacje z danych wejściowych użytkownika. Wypełnianie gniazd może poprawić wrażenia użytkownika, zmniejszając potrzebę zadawania pytań uzupełniających.

  • Wydajność i skalowalność: oceń wydajność i skalowalność wybranej metody. Jednostki niestandardowe i złożone konfiguracje często wymagają większej mocy obliczeniowej i mogą mieć wpływ na czasy odpowiedzi.

  • Łatwość konserwacji: rozważ łatwość obsługi i aktualizowania encji. Wstępnie utworzone encje są łatwiejsze w zarządzaniu, podczas gdy encje niestandardowe wymagają ciągłych dostosowań w miarę rozwoju aplikacji.

Wybierz pomiędzy standardową technologią NLU, usługą Azure CLU lub łączeniem dynamicznym

W Copilot Studio temat lub akcję można wyzwolić przy użyciu standardowego modelu NLU, łącząc go lub zastępując niestandardowym modelem Azure CLU, lub całkowicie zastępując model NLU łączeniem dynamicznym, czyli modelem opartym na dużym modelu językowym GPT.

Standardowy model NLU Niestandardowy model Azure CLU Łączenie dynamiczne
Pro Domyślny, gotowy do użycia model, który jest wstępnie wytrenowany, z wieloma wstępnie zdefiniowanymi typami jednostek.

Konfiguracja odbywa się poprzez dodanie fraz wyzwalających i encji niestandardowych (zamkniętych list z wartościami i synonimami lub wyrażeń regularnych).
Obsługuje więcej języków z modelami natywnymi.

Obsługuje dostosowywanie modelu wyzwalania intencji w celu lepszego rozpoznawania intencji lub spełniania określonych wymagań branżowych.

Umożliwia złożone wyodrębnianie encji (na przykład tego samego typu).

Wyodrębnianie encji może również używać standardowego NLU w Copilot Studio.
Używa dużego modelu językowego GPT i jest wstępnie wytrenowany na szerszym spektrum danych.

Może obsługiwać wiele intencji i łańcuchów tematów i/lub wtyczek.

Automatycznie generuje pytania dotyczące brakujących danych wejściowych i odpowiada na złożone encje i pytania z kontekstu konwersacji.

Konfiguracja odbywa się poprzez opisanie tematów, akcji wtyczek, danych wejściowych i wyjściowych.
Wada Rozpoznawanie pojedynczej intencji na zapytanie.

Brak możliwości rozszerzania. Nie można modyfikować zachowania modelu ani go dostrajać. Jest dostarczany w stanie, w jakim się znajduje.

Wypełnianie miejsc na wartość w wielu encjach tego samego typu w tym samym zapytaniu wymaga uściślenia dla każdego z nich (na przykład miast źrodłowych i docelowych).
Rozpoznawanie pojedynczej intencji na zapytanie.

Konfiguracja odbywa się w Azure za dodatkową opłatą.

Ma własne limity usług, które należy ocenić.

Intencje Azure CLU i tematy Copilot Studio muszą być starannie zsynchronizowane.
Ponieważ jest to funkcja generatywnej AI, tempo zużywania licencji na wiadomości jest wyższe niż w przypadku zwykłego wyzwalania tematu.

Frazy wyzwalające i wypełnianie slotów

Podczas tworzenia inteligentnych obciążeń aplikacji należy używać natywnych możliwości, aby usprawnić rozpoznawanie intencji i usprawnić konwersacje. Zacznij od zidentyfikowania fraz wyzwalających temat z istniejących baz danych FAQ i transkrypcji czatu, aby upewnić się, że oczekiwane frazy są trafne i dokładne. Zastanów się, w jaki sposób będziesz używać encji; Na przykład, czy będziesz używać wyrażeń regularnych do znajdowania identyfikatorów zamówień, wstępnie utworzonych encji dla wiadomości e-mail, czy zamkniętych list dla typów operacji z synonimami. Zaplanuj również sposób testowania wyzwalaczy tematów za pomocą przykładowych fraz, aby zweryfikować i uściślić dokładność procesów rozpoznawania intencji i wyodrębniania jednostek. Dowiedz się więcej w temacie Zagadnienia dotyczące wdrażania i testowania.

Frazy wyzwalające

Frazy wyzwalające trenują model NLU agenta. Pomagają agentowi rozpoznawać i trafnie reagować na wypowiedzi użytkowników, definiując konkretne frazy, które wyzwalają określone tematy. Właściwa konfiguracja tych fraz wyzwalających zapewnia, że agent może poprawnie zidentyfikować intencje użytkownika i odpowiednio zareagować. Gdy agent nie ma pewności, który temat wyzwolić, może zasugerować maksymalnie trzech potencjalnych kandydatów do tematu (wiele tematów dopasowanych do tematu systemowego) lub powrócić do odpowiedzi domyślnej, jeśli nie zostanie zidentyfikowany żaden temat. Mechanizm ten pomaga utrzymać płynność konwersacji i zapewnia, że agent może skutecznie obsługiwać szeroki zakres danych wejściowych użytkownika.

Wyodrębnianie encji i wypełnianie gniazd

Ekstrakcja encji i wypełnianie miejsc na wartość są ważnymi elementami w opracowywaniu skutecznych agentów. Procesy te umożliwiają agent efektywne pozyskiwanie i wykorzystywanie informacji poprzez identyfikowanie i wyodrębnianie odpowiednich szczegółów z zapytań użytkowników.

Wyodrębnianie encji polega na analizowaniu danych wejściowych użytkownika w celu zidentyfikowania określonych fragmentów informacji. Na przykład w zapytaniu „Chcę zamówić trzy duże niebieskie koszulki” model NLU agenta powinien wyodrębnić następujące encje:

  • Ilość: 3
  • Kolor: niebieski
  • Rozmiar: duży
  • Typ przedmiotu: koszulka

Wypełnianie miejsc na wartość to proces używania tych wyodrębnionych encji w celu uzupełnienia informacji niezbędnych do wykonania danego zadania. W tym przykładzie agent rozpoznaje temat jako zamówienie i wypełnia wymagane miejsca wyodrębnionymi jednostkami. Agent jest w stanie zrozumieć prośbę użytkownika bez zadawania kolejnych pytań, usprawniając interakcję.

Wyodrębnianie encji i wypełnianie miejsc na wartość umożliwiają agentom bardziej efektywną obsługę złożonych zapytań, zapewniając dokładne i kontekstowo istotne odpowiedzi oraz ulepszając doświadczenie użytkownika.

Więcej informacji:

Integracja Microsoft Copilot Studio z Azure CLU

Integracja modelu CLU z agentem Copilot Studio może znacznie zwiększyć możliwości agenta. Ta integracja obejmuje mapowanie intencji Azure CLU na tematy Copilot Studio, dzięki czemu agent może dokładniej zrozumieć intencje użytkownika i odpowiedzieć na nie. Ponadto wstępnie utworzone encje Copilot Studio mogą być używane wraz z encjami Azure CLU, zapewniając solidną strukturę wyodrębniania encji.

Rozważając tę integrację, ważne jest, aby ocenić, czy obciążenie inteligentnej aplikacji wymaga Azure CLU. Na przykład Azure CLU obsługuje więcej języków, słowniki specyficzne dla branży i złożone wyodrębnianie encji, co może być niezbędne dla Twojej aplikacji. Wyodrębnianie encji niestandardowych za pomocą Azure CLU może również włączyć dyskretne lub "szczęśliwe" wypełnianie gniazd, co umożliwia agent obsługę scenariuszy, takich jak identyfikowanie miast źródłowych i docelowych w jednej frazie bez zadawania pytań uzupełniających.

Innym ważnym aspektem jest upewnienie się, że limity i przydziały usługi Azure CLU są zgodne z użyciem dla agenta. Jeśli na przykład przewidujesz mniej niż 1 000 wywołań wymagających rozpoznawania intencji na minutę, możesz skonfigurować Azure CLU przy użyciu warstwy S. Ta konfiguracja gwarantuje, że agent może obsłużyć oczekiwane obciążenie bez przekraczania limitów usług lub ponoszenia nieoczekiwanych kosztów.

Więcej informacji:

Zagadnienia dotyczące struktur tematycznych

Skuteczne ustrukturyzowanie tematów jest ważne dla tworzenia naturalnych i bezproblemowych rozmów. Tematy to odrębne ścieżki konwersacji, które po połączeniu umożliwiają użytkownikom płynną interakcję z agent. Poniżej przedstawiono kilka kluczowych zagadnień dotyczących projektowania struktur tematycznych:

  • Tematy oparte na wyzwalaczu: te tematy są aktywowane na podstawie wypowiedzi użytkownika i służą jako punkty wejścia. Zdefiniuj jasne frazy wyzwalające dla tych tematów. Jeśli frazy wyzwalające nakładają się na siebie w wielu tematach, rozważ wdrożenie tematu zbiorczego, który może przekierowywać do odpowiedniego tematu po zadaniu pytań wyjaśniających. Dzięki wyodrębnianiu encji i wypełnianiu gniazd te pytania wyjaśniające można pominąć, jeśli niezbędne informacje zostały już podane.

  • Tematy oparte na przekierowaniach: te tematy są wyzwalane przez akcje, działania lub zdarzenia przekierowania i mogą być wywoływane przez wiele innych tematów. Powinny być zaprojektowane tak, aby były wielokrotnego użytku i modułowe, ze zmiennymi wejściowymi i wyjściowymi, aby ułatwić bezproblemową integrację z różnymi ścieżkami konwersacji.

  • Tematy z podwójnym wyzwalaczem: niektóre tematy mogą być wyzwalane przez rozpoznawanie intencji lub jawne przekierowanie. Ta elastyczność pozwala na bardziej dynamiczne i responsywne rozmowy.

  • Wzmacnianie konwersacji i tematy rezerwowe: tworzenie tematów rezerwowych w sytuacjach, w których żaden pasujący temat nie jest wyzwalany przez zapytanie użytkownika. Te tematy mogą oferować ogólne odpowiedzi lub sugerować odpowiednie tematy w celu utrzymania przepływu konwersacji.

Podejście projektowe:

  • Tematy niestandardowe dla kluczowych scenariuszy: opracuj kilka niestandardowych tematów dla kluczowych scenariuszy z odpowiednimi frazami wyzwalającymi i przekierowaniami. Używaj struktury tematów nadrzędny-podrzędny do zarządzania złożonymi interakcjami. W przypadku nierozpoznanych intencji zaimplementuj odpowiedzi generatywne i mechanizmy rezerwowe.

  • Tematy uściślające: zaplanuj użycie tematów uściślających dla operacji, które wymagają objaśnienia pytań. Na przykład operacje na kontach użytkowników mogą wymagać objaśnienia typu operacji (na przykład tworzenie, odblokowywanie, wstrzymywanie) i używanego systemu (na przykład SAP, ServiceNow, Microsoft).

  • Unikanie powielania: aby uniknąć powielania zawartości, utwórz tematy wielokrotnego użytku dla ścieżek dialogowych, które muszą być powtarzane. Te tematy wielokrotnego użytku mogą być wywoływane przez temat nadrzędny, a po zakończeniu konwersacja może wznowić logikę tematu nadrzędnego.

Więcej informacji:

Obsługa nierozpoznanych intencji

Skuteczne zarządzanie nierozpoznanymi intencjami zapewnia płynne wrażenia użytkownika. Nierozpoznane intencje występują, gdy agent nie rozumie wypowiedzi użytkownika i nie ma pewności wystarczającej do wyzwolenia istniejącego tematu. Oto kilka sugestii dotyczących obsługi tych scenariuszy:

  • Zarządzanie nierozpoznanymi intencjami: na początku należy kierować nierozpoznane intencje do tematu systemowego Wzmacnianie Kkonwersacji, który wyszukuje odpowiedzi w publicznych witrynach internetowych i zasobach firmowych, takich jak witryny SharePoint. Jeśli nie zostaną znalezione żadne istotne informacje, system może powrócić do środowiska podobnego do ChatGPT, korzystając z niestandardowego monitu systemowego z modelem Azure OpenAI GPT-4. Takie podejście gwarantuje, że użytkownicy otrzymują pomocne odpowiedzi nawet wtedy, gdy zapytania są nieplanowane.

  • Integracja z systemami zewnętrznymi: zastanów się, czy integrujesz się z systemami zewnętrznymi w ramach strategii rezerwowej. Na przykład integracja z modelem Azure OpenAI GPT-4 przy użyciu żądań HTTP w celu zapewnienia zgodnego środowiska podobnego do ChatGPT.

  • Monitorowanie użycia tematów rezerwowych: regularnie sprawdzaj procent konwersacji, które wymagały użycia tematów awaryjnych. Wykorzystaj te spostrzeżenia, aby wzbogacić istniejące tematy lub utworzyć nowe, zapewniając, że agent stale poprawia swoje możliwości rozumienia i reagowania.

  • Temat rezerwowy i odpowiedzi generatywne: rezerwowy temat systemowy jest wyzwalany, gdy nie zostanie zidentyfikowany pasujący temat. Jeśli odpowiedzi generatywne są włączone, temat dotyczący wzmacniania konwersacji jest wyzwalany najpierw w przypadku zdarzeń o nieznanej intencji, a następnie w przypadku tematu rezerwowego zgodnie z wymaganiami. To warstwowe podejście pomaga skutecznie zarządzać nierozpoznanymi intencjami.

  • Użyj wzmocnienia konwersacji i tematów rezerwowych: użyj odpowiedzi generatywnych, aby przeszukiwać różne źródła danych lub integrować się z innymi systemami, takimi jak Azure Cognitive Service dla języka. Ta usługa może obsługiwać duże ilości par pytań i odpowiedzi i zawiera model pogawędek dla przypadkowych pytań.

  • Podstawowe scenariusze i tematy niestandardowe: upewnij się, że podstawowe scenariusze i tematy zostały odpowiednio zdefiniowane i są prawidłowo obsługiwane za pomocą tematów niestandardowych. Jasno zdefiniuj wyniki tych tematów, aby utrzymać ustrukturyzowany i wydajny przepływ konwersacji.

Lokalizacja i języki

Podczas tworzenia agenta należy wziąć pod uwagę języki i rynki, które musi obsługiwać obciążenie aplikacji inteligentnych. Lokalizacja i obsługa języków są kluczowymi czynnikami, które zapewniają, że obciążenie inteligentnej aplikacji spełnia potrzeby różnych baz użytkowników. Oto kilka sugerowanych podejść:

  • Jeden agent na język: To podejście polega na utworzeniu osobnego agenta dla każdego języka. Zapewnia, że każdy agent jest w pełni zoptymalizowany pod kątem specyficznego języka; Jednak obsługa wielu agentów może wymagać dużej ilości zasobów.

  • Jeden agent dla wielu języków (skonfigurowane tłumaczenia): przy takim podejściu pojedynczy agent obsługuje wiele języków, a tłumaczenia są dostarczane w ramach konfiguracji agenta. Takie podejście wymaga aktualizowania tłumaczeń za każdym razem, gdy agent jest aktualizowany lub dodawana jest nowa treść. Zapewnia równowagę między efektywnym gospodarowaniem zasobami a obsługą językową, ale wymaga starannego zarządzania aktualizacjami tłumaczeń.

  • Jeden agent dla wielu języków (tłumaczenia w czasie rzeczywistym): ta metoda używa agenta przekazywania w celu zapewnienia tłumaczeń w czasie rzeczywistym w czasie wykonywania. Pozwala to na szybkie wdrożenie większej liczby języków i zmniejsza potrzebę częstych aktualizacji tłumaczeń. Wprowadza jednak zależność od agenta przekazywania i warstwy tłumaczenia w czasie rzeczywistym, takiej jak Azure Service Copilot i Azure Cognitive Services Translator.

Kluczowe kwestie:

  • Języki i rynki: języki i rynki, które musi obsługiwać Twój agent, wpływają na Twoją strategię lokalizacji.

  • Agent jednojęzyczny a wielojęzyczny: zdecyduj, czy chcesz opracować pojedynczego agenta, który obsługiwać wiele języków, czy oddzielnych agentów dla każdego języka. Ta decyzja zależy od czynników, takich jak dostępność zasobów, możliwości konserwacji i złożoność używanych języków.

  • Czas tłumaczenia: zastanów się, czy tłumaczenia powinny być ustawiane w fazie konfiguracji, czy dostarczane w czasie rzeczywistym w czasie wykonywania. Skonfigurowane tłumaczenia zapewniają stabilność i kontrolę, a tłumaczenia w czasie rzeczywistym zapewniają elastyczność i szybkie wdrażanie.

Więcej informacji: