Podsumowanie konwersacji

Azure AI services

Większość firm zapewnia obsługę klienta, aby pomóc klientom w zakresie zapytań dotyczących produktów, rozwiązywania problemów i utrzymywania lub uaktualniania funkcji lub samego produktu. Aby zapewnić zadowalające rozwiązanie, specjaliści pomocy technicznej klienta muszą szybko reagować na dokładne informacje. Interfejs OpenAI może pomóc organizacjom w obsłudze klienta na różne sposoby.

W tym przewodniku opisano sposób generowania podsumowań interakcji agenta klienta przy użyciu modelu GPT-3 usługi Azure OpenAI. Zawiera kompleksową architekturę przykładową, która ilustruje kluczowe składniki związane z uzyskaniem podsumowania danych wejściowych tekstu. Generowanie danych wejściowych tekstu wykracza poza zakres tego przewodnika. Celem tego przewodnika jest opisanie procesu implementowania podsumowania zestawu przykładowych rozmów agenta-klienta i analizowania wyników różnych podejść do podsumowania.

Scenariusze konwersacji

  • Samoobsługowe czatboty (w pełni zautomatyzowane). W tym scenariuszu klienci mogą wchodzić w interakcje z czatbotem obsługiwanym przez bibliotekę GPT-3 i szkolić się na danych specyficznych dla branży. Czatbot może poznać pytania klientów i odpowiednio odpowiedzieć na podstawie odpowiedzi uzyskanych na podstawie baza wiedzy.
  • Czatbot z interwencją agenta (częściowo zautomatyzowany). Pytania zadawane przez klientów są czasami złożone i wymagają interwencji człowieka. W takich przypadkach GPT-3 może dostarczyć podsumowanie konwersacji customer-chatbot i pomóc agentowi w szybkim wyszukiwaniu dodatkowych informacji z dużego baza wiedzy.
  • Podsumowywanie transkrypcji (w pełni zautomatyzowane lub częściowo zautomatyzowane). W większości centrów pomocy technicznej klientów agenci muszą podsumowywać konwersacje dotyczące rejestrowania, przyszłych działań następczych, szkoleń i innych procesów wewnętrznych. GPT-3 może dostarczać zautomatyzowane lub półautomazowane podsumowania, które przechwytują ważne szczegóły konwersacji do dalszego użycia.

Ten przewodnik koncentruje się na procesie podsumowania transkrypcji przy użyciu usługi Azure OpenAI GPT-3.

Średnio podsumowanie jednej konwersacji agenta klienta zajmuje od 5 do 6 minut. Biorąc pod uwagę duże ilości zespołów obsługi żądań w danym dniu, to dodatkowe zadanie może przeciążyć zespół. OpenAI to dobry sposób na pomoc agentom w działaniach związanych z podsumowywaniem. Może zwiększyć wydajność procesu obsługi klienta i zapewnić lepszą precyzję. Podsumowanie konwersacji można zastosować do dowolnego zadania pomocy technicznej klienta, które obejmuje interakcję agenta-klienta.

Usługa podsumowania konwersacji

Podsumowanie konwersacji jest odpowiednie w scenariuszach, w których konwersacje pomocy technicznej klienta są zgodne z formatem pytań i odpowiedzi.

Oto niektóre korzyści wynikające z korzystania z usługi podsumowania:

  • Zwiększona wydajność: umożliwia agentom obsługi klienta szybkie podsumowywanie rozmów klientów, eliminując potrzebę długich wymiany z powrotem i z powrotem. Ta wydajność pomaga przyspieszyć rozwiązywanie problemów klientów.
  • Ulepszona obsługa klienta: Agenci mogą używać podsumowań konwersacji w przyszłych interakcjach, aby szybko znaleźć informacje potrzebne do dokładnego rozwiązania problemów klientów.
  • Ulepszone udostępnianie wiedzy: podsumowanie konwersacji może pomóc zespołom obsługi klienta w szybkim i efektywnym udostępnianiu wiedzy ze sobą. Udostępnia zespołom obsługi klienta lepsze rozwiązania i pomaga im zapewnić szybszą pomoc techniczną.

Architektura

Typowa architektura składnika podsumowania konwersacji ma trzy główne etapy: przetwarzanie wstępne, podsumowywanie i przetwarzanie końcowe. Jeśli dane wejściowe zawierają konwersację słowną lub dowolną formę mowy, należy transkrypować mowę na tekst. Aby uzyskać więcej informacji, zobacz Azure speech to text service (Usługa zamiany mowy na tekst na platformie Azure).

Oto przykładowa architektura:

Diagram przedstawiający architekturę podsumowania konwersacji.

Pobierz plik programu PowerPoint tej architektury.

Przepływ pracy

  1. Zbieranie danych wejściowych: przekaż odpowiednie dane wejściowe do potoku. Jeśli źródło jest plikiem audio, musisz przekonwertować go na tekst przy użyciu usługi zamiany tekstu na mowę (TTS), takiej jak zamiana tekstu na mowę na platformę Azure.
  2. Wstępne przetwarzanie danych: usuń poufne informacje i wszelkie nieistotne konwersacje z danych.
  3. Przekaż dane do podsumowania: przekaż dane w wierszu polecenia za pośrednictwem interfejsów API usługi Azure OpenAI. Modele uczenia kontekstowego obejmują model zero-shot, kilka zdjęć lub model niestandardowy.
  4. Generowanie podsumowania: model generuje podsumowanie konwersacji.
  5. Po przetworzeniu danych: zastosuj filtr wulgaryzmów i różne testy poprawności do podsumowania. Dodaj poufne lub poufne dane, które zostały usunięte podczas przedprocesu, wróć do podsumowania.
  6. Oceń wyniki: Przejrzyj i oceń wyniki. Ten krok może pomóc w zidentyfikowaniu obszarów, w których należy ulepszyć model i znaleźć błędy.

Poniższe sekcje zawierają więcej szczegółów na temat trzech głównych etapów.

Proces wstępny

Celem wstępnego przetwarzania jest zapewnienie, że dane dostarczone do usługi podsumowania są istotne i nie zawierają poufnych informacji.

Poniżej przedstawiono kilka wstępnych kroków przetwarzania, które mogą pomóc w warunkuniu danych pierwotnych. W zależności od przypadku użycia może być konieczne zastosowanie jednego lub wielu kroków.

  • Usuń dane osobowe (PII). Możesz użyć interfejsu API analizy konwersacyjnej (wersja zapoznawcza), aby usunąć dane osobowe z transkrypcji lub tekstu pisanego. W tym przykładzie pokazano dane wyjściowe po usunięciu interfejsu API:

    Document text: Parker Doe has repaid all of their loans as of
          2020-04-25. Their SSN is 999-99-9999. To contact them, use 
          their phone number 555-555-0100. They are originally from 
          Brazil and have Brazilian CPF number 998.214.865-68 
    Redacted document text: ******* has repaid all of their
          loans as of *******. Their SSN is *******. To contact 
          them, use their phone number *******. They are originally from Brazil and have Brazilian CPF number 998.214.865-68
    
    ...Entity 'Parker Doe' with category 'Person' got redacted
    ...Entity '2020-04-25' with category 'DateTime' got redacted
    ...Entity '999-99-9999' with category 'USSocialSecurityNumber' got redacted
    ...Entity '555-555-0100' with category 'PhoneNumber' got redacted
    
  • Usuń dodatkowe informacje. Agenci klienta rozpoczynają rozmowy z przypadkowymi wymianami, które nie zawierają odpowiednich informacji. Wyzwalacz można dodać do konwersacji, aby zidentyfikować punkt, w którym najpierw rozwiązano problem lub istotne pytanie. Usunięcie tej wymiany z kontekstu może poprawić dokładność usługi podsumowania, ponieważ model jest następnie dostrojony do najbardziej odpowiednich informacji w konwersacji. Aparat Curie GPT-3 jest popularnym wyborem dla tego zadania, ponieważ jest szkolony szeroko, za pośrednictwem zawartości z Internetu, aby zidentyfikować tego typu swobodną rozmowę.

  • Usuń nadmiernie negatywne konwersacje. Konwersacje mogą również obejmować negatywne tonacje od niezadowolonych klientów. Metody filtrowania zawartości platformy Azure, takie jak Usługa Azure Content Moderator, umożliwiają usuwanie konwersacji zawierających poufne informacje z analizy. Alternatywnie interfejs OpenAI oferuje punkt końcowy moderowania— narzędzie, którego można użyć do sprawdzenia, czy zawartość jest zgodna z zasadami zawartości openAI.

Składnik podsumowania

Punkt końcowy interfejsu API uzupełniania tekstu interfejsu OPENAI jest nazywany punktem końcowym uzupełniania. Aby rozpocząć proces uzupełniania tekstu, wymaga monitu. Inżynieria monitu to proces używany w modelach językowych. Pierwsza część monitu zawiera instrukcje języka naturalnego lub przykłady określonego zadania żądanego (w tym scenariuszu podsumowanie). Monity umożliwiają deweloperom udostępnianie pewnego kontekstu interfejsowi API, co może pomóc w wygenerowaniu bardziej odpowiednich i dokładnych uzupełniania tekstu. Następnie model wykonuje zadanie, przewidując najbardziej prawdopodobny następny tekst. Ta technika jest znana jako uczenie w kontekście .

Uwaga

Wyodrębnianie podsumowań próbuje zidentyfikować i wyodrębnić istotne informacje z tekstu i pogrupować je w celu utworzenia zwięzłego podsumowania bez zrozumienia znaczenia lub kontekstu.

Podsumowanie abstrakcyjne ponownie zapisuje tekst, tworząc najpierw wewnętrzną reprezentację semantyczną, a następnie tworząc podsumowanie przy użyciu przetwarzania języka naturalnego. Ten proces obejmuje parafrasowanie.

Istnieją trzy główne podejścia do trenowania modeli uczenia w kontekście: zero-shot, kilka strzałów i dostrajanie. Te podejścia różnią się w zależności od ilości danych specyficznych dla zadania, które są dostarczane do modelu.

  • Zero-shot: W tym podejściu nie podano żadnych przykładów do modelu. Żądanie zadania jest jedynym wejściem. W uczeniu zero-shot model opiera się na danych, które GPT-3 są już trenowane (prawie wszystkie dostępne dane z Internetu). Podejmuje próbę powiązania danego zadania z istniejącymi kategoriami, o których już dowiedział się i odpowiednio reaguje.

  • Kilka strzałów: w przypadku korzystania z tego podejścia w wierszu polecenia uwzględnisz niewielką liczbę przykładów, które pokazują oczekiwany format odpowiedzi i kontekst. Model jest dostarczany z bardzo małą ilością danych treningowych, zazwyczaj tylko kilka przykładów, aby kierować przewidywaniami. Trenowanie przy użyciu małego zestawu przykładów umożliwia modelowi uogólnienie i zrozumienie powiązanych, ale wcześniej niezaużytych zadań. Tworzenie tych przykładów z kilkoma strzałami może być trudne, ponieważ muszą wyjaśnić zadanie, które ma zostać wykonane przez model. Często zaobserwowanym problemem jest to, że modele, zwłaszcza małe, są wrażliwe na styl pisania używany w przykładach treningowych.

    Głównymi zaletami tego podejścia jest znaczne zmniejszenie zapotrzebowania na dane specyficzne dla zadań i zmniejszenie potencjału uczenia się zbyt wąskiej dystrybucji z dużego, ale wąskiego zestawu danych dostrajania.

    Dzięki temu podejściu nie można zaktualizować wag wstępnie wytrenowanego modelu.

    Aby uzyskać więcej informacji, zobacz Language Models are few-shot learnings (Modele językowe są nieliczne).

  • Dostrajanie: Dostrajanie jest procesem dostosowywania modeli w celu uzyskania konkretnego żądanego wyniku z własnych zestawów danych. Obejmuje ponowne trenowanie modeli na nowych danych. Aby uzyskać więcej informacji, zobacz Dowiedz się, jak dostosować model dla aplikacji.

    Możesz użyć tego kroku dostosowywania, aby ulepszyć proces, wykonując następujące czynności:

    • Uwzględnienie większego zestawu przykładowych danych.
    • Używanie tradycyjnych technik optymalizacji z użyciem backpropagation w celu odczytania wag modelu. Te techniki umożliwiają wyższą jakość wyników niż podejścia zero-shot lub kilka strzałów zapewniają sobie.
    • Ulepszanie podejścia do uczenia kilku strzałów przez trenowanie wag modelu za pomocą konkretnych monitów i określonej struktury. Ta technika umożliwia uzyskanie lepszych wyników w szerszej liczbie zadań bez konieczności podawania przykładów w wierszu polecenia. Wynik jest mniejszy niż tekst wysyłany i mniej tokenów.

    Wady obejmują potrzebę dużego nowego zestawu danych dla każdego zadania, potencjał słabej uogólnienia poza dystrybucją oraz możliwość wykorzystania fałszywych funkcji danych szkoleniowych, co skutkuje dużymi szansami na niesprawiedliwe porównanie z wydajnością człowieka.

    Tworzenie zestawu danych na potrzeby dostosowywania modelu różni się od projektowania monitów o użycie z innymi modelami. Monity o ukończenie często używają szczegółowych instrukcji lub technik uczenia kilku strzałów i składają się z wielu przykładów. W celu dostrajania zalecamy, aby każdy przykład trenowania składał się z jednego przykładu wejściowego i żądanych danych wyjściowych. Nie musisz podawać szczegółowych instrukcji ani przykładów w wierszu polecenia.

    W miarę zwiększania liczby przykładów szkoleniowych wyniki są poprawiane. Zalecamy uwzględnienie co najmniej 500 przykładów. Zazwyczaj używa się między tysiącami i setkami tysięcy oznaczonych przykładami. Testowanie wskazuje, że każde podwojenie rozmiaru zestawu danych prowadzi do liniowego wzrostu jakości modelu.

W tym przewodniku przedstawiono aparaty curie-instruct/text-curie-001 i davinci-instruct/text-davinci-001. Te aparaty są często aktualizowane. Używana wersja może być inna.

Po przetworzeniu

Zalecamy sprawdzenie poprawności wyników uzyskanych z GPT-3. Zaimplementuj kontrole poprawności przy użyciu podejścia programowego lub klasyfikatorów, w zależności od przypadku użycia. Oto kilka kontroli krytycznych:

  • Sprawdź, czy nie pominięto żadnych znaczących punktów.
  • Sprawdź, czy nie ma faktycznych niedokładności.
  • Sprawdź wszelkie uprzedzenia wprowadzone przez dane treningowe używane w modelu.
  • Sprawdź, czy model nie zmienia tekstu, dodając nowe pomysły lub punkty. Ten problem jest znany jako halucynacja.
  • Sprawdź, czy występują błędy gramatyczne i pisowni.
  • Użyj filtru wulgaryzmów zawartości, takiego jak Content Moderator , aby upewnić się, że nie uwzględniono nieodpowiedniej lub nieistotnej zawartości.

Na koniec ponownie wprowadź wszelkie istotne informacje, które zostały wcześniej usunięte z podsumowania, takie jak informacje poufne.

W niektórych przypadkach do klienta jest również wysyłane podsumowanie konwersacji wraz z oryginalną transkrypcją. W takich przypadkach przetwarzanie końcowe obejmuje dołączenie transkrypcji do podsumowania. Może również obejmować dodawanie zdań ołowiu, takich jak "Zobacz podsumowanie poniżej".

Kwestie wymagające rozważenia

Ważne jest, aby dostosować modele podstawowe przy użyciu zestawu danych szkoleniowych specyficznych dla branży i zmienić rozmiar dostępnych zestawów danych. Dostosowane modele działają najlepiej, gdy dane treningowe zawierają co najmniej 1000 punktów danych, a podstawowe (generowane przez człowieka podsumowania) używane do trenowania modeli są wysokiej jakości.

Kompromis jest kosztem. Proces etykietowania i czyszczenia zestawów danych może być kosztowny. Aby zapewnić wysokiej jakości dane treningowe, może być konieczne ręczne sprawdzenie podsumowań podstaw i ponowne zapisywanie podsumowań o niskiej jakości. Rozważ następujące kwestie dotyczące etapu podsumowania:

  • Monitowanie inżynierii: w przypadku niewielkiej instrukcji davinci często działa lepiej niż inne modele. Aby zoptymalizować wyniki, poeksperymentuj z różnymi monitami dotyczącymi różnych modeli.
  • Rozmiar tokenu: sumator oparty na GPT-3 jest ograniczony do łącznie 4098 tokenów, w tym monitu i ukończenia. Aby podsumować większe fragmenty, rozdziel tekst na części zgodne z tymi ograniczeniami. Podsumuj poszczególne części indywidualnie, a następnie zbierz wyniki w końcowym podsumowaniu.
  • Odśmiec elementy bezużyteczne: wytrenowane modele są tak dobre, jak podane dane treningowe. Upewnij się, że podsumowanie podstawowych faktów w danych treningowych jest odpowiednie dla informacji, które w końcu chcesz podsumować w oknach dialogowych.
  • Punkt zatrzymania: model zatrzymuje podsumowanie, gdy osiągnie naturalny punkt zatrzymania lub sekwencji zatrzymania, którą podajesz. Przetestuj ten parametr, aby wybrać spośród wielu podsumowań i sprawdzić, czy podsumowania wyglądają niekompletne.

Przykładowy scenariusz: podsumowanie transkrypcji w centrach połączeń

W tym scenariuszu pokazano, jak funkcja podsumowania usługi Azure OpenAI może pomóc agentom obsługi klienta w zadaniach podsumowania. Testuje metody zero-shot, few-shot i dostrajania oraz porównuje wyniki z podsumowaniami wygenerowanymi przez człowieka.

Zestaw danych używany w tym scenariuszu jest zestawem hipotetycznych rozmów między klientami i agentami w centrum pomocy technicznej klienta Xbox dotyczącym różnych produktów i usług Xbox. Hipotetyczny czat jest oznaczony etykietą Monit. Podsumowanie abstrakcyjne napisane przez człowieka jest oznaczone etykietą Ukończenie.

Monit Zakończenie
Klient: pytanie dotyczące XAIL

Agent: Witaj! Jak mogę ci pomóc dzisiaj?

Klient: Witam, mam pytanie dotyczące pierścienia niejawnego testera ułatwień dostępu

Agent: Ok. Z pewnością mogę ci w tym pomóc.

Klient: Czy muszę zarejestrować się w celu uzyskania dostępu do ringu w wersji zapoznawczej, aby dołączyć do ligi ułatwień dostępu?

Agent: Nie. Możesz pozostawić konsolę poza pierścieniami Xbox Preview i nadal dołączyć do Ligi. Należy jednak pamiętać, że niektóre środowiska udostępnione mogą wymagać dołączenia do pierścienia xbox preview.

Klient: Dobrze. I mogę po prostu zarejestrować się w celu uzyskania wersji zapoznawczej pierścień później tak?

Agent: To jest poprawne.

Klient: Słodki.
Klient chce wiedzieć, czy należy zarejestrować się w celu uzyskania dostępu do pierścieni w wersji zapoznawczej, aby dołączyć do niejawnego programu Xbox Accessibility Insider League. Agent odpowiada, że nie jest to obowiązkowe, ale niektóre środowiska mogą tego wymagać.

Idealne dane wyjściowe. Celem jest utworzenie podsumowań, które są zgodne z tym formatem: "Klient powiedział x. Agent odpowiedział y." Innym celem jest przechwycenie ważnych funkcji okna dialogowego, takich jak skarga klienta, sugerowane rozwiązanie i działania następcze.

Oto przykład interakcji z pomocą techniczną klienta, a następnie kompleksowe, napisane przez człowieka podsumowanie:

Okno dialogowe

Klient: Witaj. Mam pytanie o przepustkę gry.

Agent: Witaj. Jak robisz dzisiaj?

Klient: Jestem dobry.

Agent. Widzę, że potrzebujesz pomocy w przypadku subskrypcji Xbox Game Pass.

Klient: Tak. Chciałem wiedzieć, jak długo mogę uzyskać dostęp do gier po opuszczeniu gry pass.

Agent: Gdy gra opuści katalog Xbox Game Pass, musisz kupić kopię cyfrową z aplikacja Xbox dla systemu Windows lub Microsoft Store, grać z dysku lub uzyskać inną formę uprawnień do kontynuowania gry. Pamiętaj, że konsola Xbox powiadomi członków przed opuszczeniem katalogu Xbox Game Pass. Jako członek możesz kupić dowolną grę w katalogu przez maksymalnie 20% zniżki (lub najlepszą dostępną cenę dyskontową), aby kontynuować grę po opuszczeniu katalogu.

Klient: Got it, thanks

Podsumowanie podstaw prawdy

Klient chce wiedzieć, jak długo mogą uzyskiwać dostęp do gier po opuszczeniu usługi Game Pass. Agent informuje klienta, że będzie musiał kupić grę, aby kontynuować dostęp.

Zero-shot

Podejście zero-shot jest przydatne, gdy nie masz danych treningowych z etykietami. W tym przypadku nie ma wystarczającej liczby podsumowań prawdy. Ważne jest, aby starannie zaprojektować monity, aby wyodrębnić odpowiednie informacje. Następujący format służy do wyodrębniania ogólnych podsumowań z czatów agenta klienta:

prefix = "Please provide a summary of the conversation below: "

suffix = "The summary is as follows: "

Oto przykład pokazujący sposób uruchamiania modelu zero-shot:

rouge = Rouge()
# Run zero-shot prediction for all engines of interest
deploymentNames = ["curie-instruct","davinci-instruct"] # also known as text-davinci/text-instruct
for deployment in deploymentNames:
url = openai.api_base + "openai/deployments/" + deployment + "/completions?api-version=2022-12-01-preivew"
response_list = []
rouge_list = []
print("calling..." + deployment)
for i in range(len(test)):
response_i = openai.Completion.create(
engine = deployment,
prompt = build_prompt(prefix, [test['prompt'][i]], suffix),
temperature = 0.0,
max_tokens = 400,
top_p = 1.0,
frequence_penalty = 0.5,
persence_penalty = 0.0,
stop=["end"] # We recommend that you adjust the stop sequence based on the dataset
)
scores = rouge.get_scores(normalize_text(response_i['choices'][ 0]['text']),test['completion'][i])
rouge_list += [scores[0]['rouge-1']['f']],
response_list += [response_i]
summary_list = [normalize_text(i['choices'][0]['text']) for i in response_list]
test[deployment + "_zeroshotsummary"] = summary_list
test[deployment + "_zeroshotroguescore"] = rouge_list

Wyniki i obserwacje

Dane wyjściowe modelu zero-shot są generowane bezpośrednio z modelu podstawowego. W tym przypadku zarówno Curie, jak i Davinci podsumowują okno dialogowe dość dobrze. Jedyną zauważalną różnicą jest to, że model Curie zapewnia nieco mniej szczegółów. Curie rozpoczyna podsumowanie z komunikatem "Klient pyta agenta o dostęp do gry Xbox". Odpowiednie zdanie w Davinci to "Klient zapytał, jak długo mogą uzyskiwać dostęp do gier po opuszczeniu katalogu pass gry Xbox".

Okno dialogowe

Klient: Witaj. Mam pytanie o przepustkę gry.

Agent: Witaj. Jak leci?

Klient: Jestem dobry.

Agent: Widzę, że potrzebujesz pomocy w przypadku usługi Xbox Game Pass.

Klient: Tak. Chciałem wiedzieć, jak długo mogę uzyskać dostęp do gier po opuszczeniu gry pass.

Agent: Gdy gra opuści katalog dostępu do gier Xbox, musisz kupić kopię cyfrową z aplikacja Xbox dla systemu Windows lub Microsoft Store, grać z dysku lub uzyskać inną formę uprawnień do kontynuowania gry. Pamiętaj, że konsola Xbox powiadomi członków przed opuszczeniem katalogu Xbox Game Pass. Jako członek możesz kupić dowolną grę w katalogu do 20% zniżki lub najlepszą dostępną cenę dyskontową, aby kontynuować grę po opuszczeniu katalogu.

Prawda naziemna

Klient chce wiedzieć, jak długo mogą uzyskiwać dostęp do gier po opuszczeniu usługi Game Pass. Agent informuje klienta, że będzie musiał kupić grę, aby kontynuować dostęp.

Wynik davinci

Klient zapytał, jak długo mogą uzyskiwać dostęp do gier po opuszczeniu katalogu pass gry Xbox. Agent powiedział im, że będą musieli kupić cyfrową kopię gry z aplikacja Xbox dla okien lub sklepu Microsoft w celu kontynuowania gry. Agent przypomniał również klientowi, że zostanie powiadomiony przed opuszczeniem katalogu z dostępem do gier Xbox. jako członek klient może kupić dowolną grę w katalogu do 20 off lub najlepszą dostępną obniżoną cenę.

Wynik Curie

Klient pyta agenta o dostęp do gry Xbox. Agent informuje klienta, że po opuszczeniu katalogu subskrypcji Xbox game pass klient będzie musiał kupić kopię cyfrową z aplikacja Xbox dla systemu Windows lub sklepu Microsoft Play z dysku lub uzyskać inną formę uprawnień do kontynuowania gry. Agent przypomina również klientowi, że konsola Xbox powiadomi członków przed opuszczeniem katalogu z dostępem do gier Xbox.

Kilka strzałów

W przypadku użycia podejścia z kilkoma strzałami model jest dostarczany z niewielką liczbą przykładów.

context_primer = "Below are examples of conversations and their corresponding summaries:"

prefix = "Please provide a summary of the conversation below: "

suffix = "The summary is as follows: "

Oto przykład pokazujący sposób uruchamiania modelu kilku strzałów:

train_small = train[]
train_small_json = train_small.to_dict(orient='records')
compiled_train_prompt = build_prompt_fewshot(prefix,context_primer, train_small_json, suffix)

for deployment in deploymentNames:
url = openai.api_base + "openai/deployments/" + deployment + "/completions?api-version=2022-12-01-preivew"
response_list = []
rouge_list = []
print("calling..." + deployment)
for i in range(len(test)):
response_i = openai.Completion.create(
engine = deployment,
prompt = compiled_train_prompt+build_prompt(prefix, [test['prompt'][i]], suffix),
temperature = 0.0,
max_tokens = 400,
top_p = 1.0,
frequence_penalty = 0.5,
persence_penalty = 0.0,
stop=["end"] # We recommend that you adjust the stop sequence based on the dataset
)
scores = rouge.get_scores(normalize_text(response_i['choices'][ 0]['text']),test['completion'][i])
rouge_list += [scores[0]['rouge-1']['f']],
response_list += [response_i]
summary_list = [normalize_text(i['choices'][0]['text']) for i in response_list]
test[deployment + "_fewshot"] = summary_list
test[deployment + "_FSscore1"] = rouge_list

Wyniki i obserwacje

W przypadku podejścia z kilkoma zrzutami podsumowania nadal przechwytują istotne funkcje konwersacji. Podsumowanie Davinci jest bardziej kompaktowe i bliżej podstaw prawdy. Curie tkaninuje kilka trywialnych szczegółów.

Okno dialogowe

Klient: Witaj. Mam pytanie o przepustkę gry.

Agent: Witaj. Jak leci?

Klient: Jestem dobry.

Agent: Widzę, że potrzebujesz pomocy w przypadku usługi Xbox Game Pass.

Klient: Tak. Chciałem wiedzieć, jak długo mogę uzyskać dostęp do gier po opuszczeniu gry pass.

Agent: Gdy gra opuści katalog Xbox Game Pass, musisz kupić kopię cyfrową z aplikacja Xbox dla systemu Windows lub Microsoft Store, grać z dysku lub uzyskać inną formę uprawnień do kontynuowania gry. Pamiętaj, że konsola Xbox powiadomi członków przed opuszczeniem katalogu Xbox Game Pass. Jako członek możesz kupić dowolną grę w katalogu do 20% zniżki lub najlepszą dostępną cenę dyskontową, aby kontynuować grę po opuszczeniu katalogu.

Prawda naziemna

Klient chce wiedzieć, jak długo mogą uzyskiwać dostęp do gier po opuszczeniu usługi Game Pass. Agent informuje klienta, że będzie musiał kupić grę, aby kontynuować dostęp.

Wynik davinci

klient chciał wiedzieć, jak długo mogą uzyskać dostęp do gier po opuszczeniu gry pass. Agent informuje, że gdy gra opuści katalog dostępu do gier Xbox, klient będzie musiał kupić kopię cyfrową lub uzyskać inną formę uprawnień do kontynuowania gry.

Wynik Curie

klient ma pytanie o przepustkę gry. klient jest dobry. agent potrzebuje pomocy z dostępem do gry Xbox. klient pyta, jak długo mogą uzyskiwać dostęp do gier po opuszczeniu katalogu dostępu do gier. Agent informuje, że po opuszczeniu katalogu subskrypcji Xbox game pass klient będzie musiał kupić kopię cyfrową z aplikacja Xbox dla okien lub sklepu Microsoft Play z dysku lub uzyskać inną formę uprawnień do kontynuowania gry. klient chętnie to usłyszy i dzięki agentowi.

Dostrajanie

Dostrajanie to proces dostosowywania modeli w celu uzyskania konkretnego żądanego wyniku z własnych zestawów danych.

Oto przykładowy format:

{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}

Wyniki i obserwacje

Testowanie sugeruje, że dostosowany model Curie prowadzi do wyników, które są porównywalne z modelem Davinci kilka strzałów. Oba podsumowania przechwytują pytanie klienta i odpowiedź agenta bez przechwytywania szczegółów dotyczących rabatów i bez dodawania zawartości. Oba podsumowania są podobne do podstawowej prawdy.

Okno dialogowe

Klient: Witaj. Mam pytanie o przepustkę gry.

Agent: Witaj. Jak leci?

Klient: Jestem dobry.

Agent: Widzę, że potrzebujesz pomocy w przypadku usługi Xbox Game Pass.

Klient: Tak. Chciałem wiedzieć, jak długo mogę uzyskać dostęp do gier po opuszczeniu gry pass.

Agent: Gdy gra opuści katalog Xbox Game Pass, musisz kupić kopię cyfrową z aplikacja Xbox dla systemu Windows lub Microsoft Store, grać z dysku lub uzyskać inną formę uprawnień do kontynuowania gry. Pamiętaj, że konsola Xbox powiadomi członków przed opuszczeniem katalogu Xbox Game Pass. Jako członek możesz kupić dowolną grę w katalogu do 20% zniżki lub najlepszą dostępną cenę dyskontową, aby kontynuować grę po opuszczeniu katalogu.

Prawda naziemna

Klient chce wiedzieć, jak długo mogą uzyskiwać dostęp do gier po opuszczeniu usługi Game Pass. Agent informuje klienta, że będzie musiał kupić grę, aby kontynuować dostęp.

Wynik Curie

klient chce wiedzieć, jak długo mogą uzyskiwać dostęp do gier po opuszczeniu gry. agent wyjaśnia, że gdy gra opuści katalog dostępu do gier Xbox, będą musieli kupić kopię cyfrową z aplikacja Xbox dla okien lub sklepu Microsoft Play z dysku lub uzyskać inną formę uprawnień do kontynuowania gry.

Wnioski

Ogólnie rzecz biorąc, model Davinci wymaga mniejszej liczby instrukcji do wykonywania zadań niż inne modele, takie jak Curie. Davinci lepiej nadaje się do podsumowywania tekstu, który wymaga zrozumienia kontekstu lub określonego języka. Ponieważ Davinci jest najbardziej złożonym modelem, jego opóźnienie jest wyższe niż w przypadku innych modeli. Curie jest szybszy niż Davinci i jest w stanie podsumować rozmowy.

Te testy sugerują, że można wygenerować lepsze podsumowania, gdy podasz więcej instrukcji do modelu za pomocą kilku strzałów lub dostrajania. Lepiej dostrojone modele są zgodne ze strukturą i kontekstem poznanym na podstawie zestawu danych treningowych. Ta funkcja jest szczególnie przydatna, gdy podsumowania są specyficzne dla domeny (na przykład generowanie podsumowań z notatek lekarza lub pomocy technicznej klienta na receptę online). Jeśli używasz dostrajania, masz większą kontrolę nad typami wyświetlanych podsumowań.

Na potrzeby łatwego porównania poniżej przedstawiono podsumowanie przedstawionych wcześniej wyników:

Prawda naziemna

Klient chce wiedzieć, jak długo mogą uzyskiwać dostęp do gier po opuszczeniu usługi Game Pass. Agent informuje klienta, że będzie musiał kupić grę, aby kontynuować dostęp.

Davinci zero-shot wynik

Klient zapytał, jak długo mogą uzyskiwać dostęp do gier po opuszczeniu katalogu pass gry Xbox. Agent powiedział im, że będą musieli kupić cyfrową kopię gry z aplikacja Xbox dla okien lub sklepu Microsoft w celu kontynuowania gry. Agent przypomniał również klientowi, że zostanie powiadomiony przed opuszczeniem katalogu z dostępem do gier Xbox. Jako członek klient może kupić dowolną grę w katalogu do 20 off lub najlepszą dostępną cenę obniżoną.

Curie zero-shot wynik

Klient pyta agenta o dostęp do gry Xbox. Agent informuje klienta, że po opuszczeniu katalogu subskrypcji Xbox game pass klient będzie musiał kupić kopię cyfrową z aplikacja Xbox dla systemu Windows lub sklepu Microsoft Play z dysku lub uzyskać inną formę uprawnień do kontynuowania gry. Agent przypomina również klientowi, że konsola Xbox powiadomi członków przed opuszczeniem katalogu z dostępem do gier Xbox.

Davinci kilka strzałów wynik

klient chciał wiedzieć, jak długo mogą uzyskać dostęp do gier po opuszczeniu gry pass. Agent informuje, że gdy gra opuści katalog dostępu do gier Xbox, klient będzie musiał kupić kopię cyfrową lub uzyskać inną formę uprawnień do kontynuowania gry.

Curie kilka strzałów wynik

klient ma pytanie o przepustkę gry. klient jest dobry. agent potrzebuje pomocy z dostępem do gry Xbox. klient pyta, jak długo mogą uzyskiwać dostęp do gier po opuszczeniu katalogu dostępu do gier. Agent informuje, że po opuszczeniu katalogu subskrypcji Xbox game pass klient będzie musiał kupić kopię cyfrową z aplikacja Xbox dla okien lub sklepu Microsoft Play z dysku lub uzyskać inną formę uprawnień do kontynuowania gry. klient chętnie to usłyszy i dzięki agentowi.

Wynik dostrajania Curie

klient chce wiedzieć, jak długo mogą uzyskiwać dostęp do gier po opuszczeniu gry. agent wyjaśnia, że gdy gra opuści katalog dostępu do gier Xbox, będą musieli kupić kopię cyfrową z aplikacja Xbox dla okien lub sklepu Microsoft Play z dysku lub uzyskać inną formę uprawnień do kontynuowania gry.

Ocenianie podsumowania

Istnieje wiele technik oceny wydajności modeli podsumowania.

Oto kilka:

ROUGE (zorientowany na kompletność understudy do oceny Gisting). Ta technika obejmuje miary automatycznego określania jakości podsumowania, porównując je z idealnymi podsumowaniami utworzonymi przez ludzi. Miary zliczają liczbę nakładających się jednostek, takich jak n-gram, sekwencje słów i pary wyrazów, między generowanym przez komputer podsumowaniem, które jest oceniane, a idealnymi podsumowaniami.

Oto przykład:

reference_summary = "The cat ison porch by the tree"
generated_summary = "The cat is by the tree on the porch"
rouge = Rouge()
rouge.get_scores(generated_summary, reference_summary)
[{'rouge-1': {'r':1.0, 'p': 1.0, 'f': 0.999999995},
  'rouge-2': {'r': 0.5714285714285714, 'p': 0.5, 'f': 0.5333333283555556},
  'rouge-1': {'r': 0.75, 'p': 0.75, 'f': 0.749999995}}]

BertScore. Ta technika oblicza wyniki podobieństwa, wyrównając wygenerowane i referencyjne podsumowania na poziomie tokenu. Wyrównania tokenów są obliczane chciwie, aby zmaksymalizować podobieństwo cosinus między kontekstowymi osadzaniami tokenów z BERT.

Oto przykład:

  import torchmetrics
  from torchmetrics.text.bert import BERTScore
  preds = "You should have ice cream in the summer"
  target = "Ice creams are great when the weather is hot"
  bertscore = BERTScore()
  score = bertscore(preds, target)
  print(score)

Macierz podobieństwa. Macierz podobieństwa to reprezentacja podobieństw między różnymi jednostkami w ocenie podsumowania. Można go użyć do porównywania różnych podsumowań tego samego tekstu i mierzenia ich podobieństwa. Jest reprezentowana przez dwuwymiarową siatkę, w której każda komórka zawiera miarę podobieństwa między dwoma podsumowaniami. Podobieństwo można zmierzyć przy użyciu różnych metod, takich jak podobieństwo cosinusu, podobieństwo Jaccard i edytować odległość. Następnie użyjesz macierzy, aby porównać podsumowania i określić, która z nich jest najbardziej dokładną reprezentacją oryginalnego tekstu.

Oto przykładowe polecenie, które generuje macierz podobieństwa porównania BERTScore dwóch podobnych zdań:

bert-score-show --lang en -r "The cat is on the porch by the tree"
                          -c "The cat is by the tree on the porch"
                          -f out.png

Pierwsze zdanie: "Kot znajduje się na ganku przez drzewo", jest określany jako kandydat. Drugie zdanie jest określane jako odwołanie. Polecenie używa narzędzia BERTScore do porównywania zdań i generowania macierzy.

Poniższa macierz wyświetla dane wyjściowe wygenerowane przez poprzednie polecenie:

Diagram przedstawiający macierz podobieństwa.

Aby uzyskać więcej informacji, zobacz SummEval: Ponowne ocenianie oceny podsumowania. Aby zapoznać się z zestawem narzędzi PyPI do podsumowania, zobacz Summ-eval 0.892.

Odpowiedzialne użycie

GPT może uzyskać doskonałe wyniki, ale musisz sprawdzić dane wyjściowe pod kątem uprzedzeń społecznych, etycznych i prawnych oraz szkodliwych wyników. Podczas dostosowywania modeli należy usunąć wszelkie punkty danych, które mogą być szkodliwe dla modelu, aby dowiedzieć się. Możesz użyć czerwonego tworzenia zespołu, aby zidentyfikować wszelkie szkodliwe dane wyjściowe z modelu. Ten proces można zaimplementować ręcznie i obsługiwać przy użyciu metod półautomazowanych. Przypadki testowe można wygenerować przy użyciu modeli językowych, a następnie użyć klasyfikatora do wykrywania szkodliwego zachowania w przypadkach testowych. Na koniec należy wykonać ręczną kontrolę wygenerowanych podsumowań, aby upewnić się, że są one gotowe do użycia.

Aby uzyskać więcej informacji, zobacz Red Teaming Language Models with Language Models (Czerwone tworzenie zespołu modeli językowych przy użyciu modeli językowych).

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Główny autor:

Inny współautor:

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki