Bearbeiten

Share via


Konversationszusammenfassung

Azure KI Services

Die meisten Unternehmen bieten Kundendienstunterstützung, um Kunden bei Produktabfragen, Problembehandlung und Wartung oder Aktualisierung von Features oder Produkten an sich zu unterstützen. Um eine zufriedenstellende Lösung zu bieten, müssen Kundensupportspezialisten schnell mit akkuraten Informationen reagieren. OpenAI kann Organisationen mit Kundensupport auf vielfältige Weise unterstützen.

Hier erfahren Sie, wie Sie Zusammenfassungen von Kunden-Agent-Interaktionen mithilfe des Azure OpenAI GPT-3-Modells generieren. Es enthält eine beispielhafte End-to-End-Architektur, die die wichtigsten Komponenten veranschaulicht, die am Abrufen der Zusammenfassung einer Texteingabe beteiligt sind. Die Generierung der Texteingabe ist nicht Teil dieses Leitfadens. Der Schwerpunkt dieses Leitfadens besteht darin, den Prozess der Implementierung der Zusammenfassung einer Reihe von Beispielgesprächen zwischen Agent und Kunden zu beschreiben und die Ergebnisse verschiedener Ansätze für die Zusammenfassung zu analysieren.

Konversationsszenarien

  • Self-Service-Chatbots (vollständig automatisiert). In diesem Szenario können Kunden mit einem Chatbot interagieren, der von GPT-3 unterstützt und mit branchenspezifischen Daten trainiert wird. Der Chatbot kann Kundenfragen verstehen und basierend auf Antworten, die von einer Wissensdatenbank eingelernt wurden, angemessen antworten.
  • Chatbot mit Agentintervention (halbautomatisch). Fragen, die Kunden stellen, sind manchmal komplex und erfordern menschliches Eingreifen. In solchen Fällen kann GPT-3 eine Zusammenfassung der Konversation des Kunden mit dem Chatbot bereitstellen und dem Agent bei der schnellen Suche nach zusätzlichen Informationen aus einem großen Wissensdatenbank helfen.
  • Zusammenfassen von Transkripten (voll- oder halbautomatisch). In den meisten Kundensupportcentern müssen Agenten Unterhaltungen für die Aufzeichnungen, zukünftige Nachverfolgung, Schulungen und andere interne Prozesse zusammenfassen. GPT-3 kann automatisierte oder halbautomatische Zusammenfassungen bereitstellen, die wichtige Details von Unterhaltungen zur weiteren Verwendung erfassen.

Dieser Leitfaden konzentriert sich auf den Prozess zum Zusammenfassen von Transkripten mithilfe von Azure OpenAI GPT-3.

Im Durchschnitt benötigt ein Agent 5 bis 6 Minuten, um eine einzelne Agent-Kunden-Konversation zusammenzufassen. Angesichts der hohen Anzahl von Anforderungen, die Serviceteams an einem bestimmten Tag verarbeiten, kann diese zusätzliche Aufgabe das Team überlasten. OpenAI ist eine gute Möglichkeit, um Agenten bei diesen Zusammenfassungsaktivitäten zu unterstützen. So kann die Effizienz des Kundensupportprozesses verbessert und eine höhere Genauigkeit erzielt werden. Die Konversationszusammenfassung kann auf jede Kundensupportaufgabe angewendet werden, die die Interaktion zwischen Agent und Kunde umfasst.

Dienst für Konversationszusammenfassung

Die Zusammenfassung von Konversationen eignet sich in Szenarien, in denen Kundensupportgespräche einem Frage-Antwort-Format folgen.

Die Verwendung eines Zusammenfassungsdiensts bietet u. a. die folgenden Vorteile:

  • Höhere Effizienz: Es ermöglicht Kundendienstmitarbeitern, Kundengespräche schnell zusammenzufassen, sodass langes Hin- und Herreden überflüssig wird. Diese Effizienz trägt dazu bei, die Lösung von Kundenproblemen zu beschleunigen.
  • Verbesserter Kundendienst: Agents können Zusammenfassungen von Unterhaltungen in zukünftigen Interaktionen verwenden, um schnell die Informationen zu finden, die für die genaue Lösung von Kundenanliegen erforderlich sind.
  • Verbesserter Wissensaustausch: Die Zusammenfassung von Konversationen kann Kundendienstteams dabei helfen, Wissen schnell und effektiv miteinander zu teilen. Es stattet Kundendienstteams mit besseren Lösungen aus und hilft ihnen, schnelleren Support zu bieten.

Aufbau

Eine typische Architektur für eine Konversationszusammenfassung umfasst drei Standard Phasen: Vorverarbeitung, Zusammenfassung und Nachverarbeitung. Wenn die Eingabe eine verbale Unterhaltung oder eine beliebige Form von Sprache enthält, muss die Sprache in Text transkribiert werden. Weitere Informationen finden Sie unter Azure-Spracherkennungsdienst.

Hier sehen Sie eine Beispielarchitektur:

Diagramm einer Architektur für die Konversationszusammenfassung.

Laden Sie eine PowerPoint-Datei zu dieser Architektur herunter.

Workflow

  1. Sammeln von Eingabedaten: Geben Sie relevante Eingabedaten in die Pipeline ein. Wenn es sich bei der Quelle um eine Audiodatei handelt, müssen Sie sie mithilfe eines Sprachsynthesediensts (Text to Speech, TTS) wie Azure-Sprachsynthese Text in Text konvertieren.
  2. Vorverarbeiten der Daten: Entfernen Sie vertrauliche Informationen und alle unwichtigen Unterhaltungen aus den Daten.
  3. Einspeisen der Daten in die Zusammenfassung: Übergeben Sie die Daten über Azure OpenAI APIs in eine Äußerung. Kontextbezogene Lernmodelle umfassen Zero-Shot-, Few-Shot- oder benutzerdefinierte Modelle.
  4. Generieren einer Zusammenfassung: Das Modell generiert eine Zusammenfassung der Konversation.
  5. Nachverarbeitung der Daten: Wenden Sie einen Obszönitätsfilter und verschiedene Validierungsprüfungen auf die Zusammenfassung an. Fügen Sie der Zusammenfassung vertrauliche oder vertrauliche Daten hinzu, die während des Vorverarbeitungsschritts entfernt wurden.
  6. Auswerten der Ergebnisse: Überprüfen und bewerten Sie die Ergebnisse. Dieser Schritt kann Ihnen helfen, Bereiche zu identifizieren, in denen das Modell verbessert werden muss, und Fehler zu finden.

Ausführlichere Informationen zu den drei Hauptphasen finden Sie in den folgenden Abschnitten.

Vorverarbeiten

Das Ziel der Vorverarbeitung besteht darin, sicherzustellen, dass die für den Zusammenfassungsdienst bereitgestellten Daten relevant sind und keine vertraulichen Informationen enthalten.

Im Folgenden finden Sie einige Vorverarbeitungsschritte, mit denen Sie Ihre Rohdaten konditionieren können. Je nach Anwendungsfall müssen Sie möglicherweise einen oder mehrere Schritte anwenden.

  • Entfernen von personenbezogenen Informationen (Personally Identifiable Information, PII). Sie können die Conversational PII-API (Vorschau) verwenden, um PII aus transkribiertem oder geschriebenem Text zu entfernen. Dieses Beispiel zeigt die Ausgabe, nachdem die API PII entfernt hat:

    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
    
  • Entfernen irrelevanter Informationen. Kundenbetreuer beginnen Gespräche mit beiläufigen Gesprächen, die keine relevanten Informationen enthalten. Einer Unterhaltung kann ein Trigger hinzugefügt werden, um den Punkt zu identifizieren, an dem das Anliegen oder die relevante Frage zum ersten Mal angesprochen wird. Das Entfernen dieses Austauschs aus dem Kontext kann die Genauigkeit des Zusammenfassungsdiensts verbessern, da das Modell dann auf die relevantesten Informationen in der Konversation optimiert wird. Die Curie GPT-3-Engine ist eine beliebte Wahl für diese Aufgabe, da sie umfassend über Inhalte aus dem Internet trainiert wird, um diese Art von beiläufigen Unterhaltungen zu identifizieren.

  • Entfernen übermäßig negativer Unterhaltungen. Unterhaltungen können auch negative Stimmungen von unzufriedenen Kunden enthalten. Sie können Azure-Inhaltsfiltermethoden wie Azure Content Moderator verwenden, um Unterhaltungen, die vertrauliche Informationen enthalten, aus der Analyse zu entfernen. Alternativ bietet OpenAI einen Moderationsendpunkt, ein Tool, mit dem Sie überprüfen können, ob Inhalte den Inhaltsrichtlinien von OpenAI entsprechen.

Zusammenfassung

Der Endpunkt der Textvervollständigungs-API von OpenAI wird als Vervollständigungsendpunkt bezeichnet. Zum Starten des Textvervollständigungsprozesses ist eine Äußerung erforderlich. Prompt Engineering ist ein Prozess, der in großen Sprachmodellen verwendet wird. Der erste Teil der Befehlszeile enthält Anweisungen oder Beispiele für die gewünschte Aufgabe in natürlicher Sprache (in diesem Szenario eine Zusammenfassung). Mithilfe von Äußerungen können Entwickler der API Kontext bereitstellen, was dazu beitragen kann, dass sie relevantere und genauere Textvervollständigungen generiert. Das Modell vervollständigt dann die Aufgabe, indem es den wahrscheinlichsten nächsten Text vorhersagt. Diese Technik wird als kontextbezogenes Lernen bezeichnet.

Hinweis

Extraktive Zusammenfassung versucht, wichtige Informationen aus einem Text zu identifizieren und zu extrahieren und ihn zu gruppieren, um eine präzise Zusammenfassung zu erstellen, ohne die Bedeutung oder den Kontext zu verstehen.

Bei der abstrakten Zusammenfassung wird ein Text neu geschrieben, indem zuerst eine interne semantische Darstellung erstellt und dann mithilfe der Verarbeitung natürlicher Sprache eine Zusammenfassung erstellt wird. Dieser Prozess umfasst Paraphrasierung.

Es gibt drei Standardansätze für Trainingsmodelle für kontextbezogenes Lernen: Zero-Shot, Few-Shot und Feinabstimmung. Diese Ansätze variieren je nach Menge der aufgabenspezifischen Daten, die in das Modell eingegeben werden.

  • Zero-Shot: Bei diesem Ansatz werden keine Beispiele für das Modell bereitgestellt. Die einzige Eingabe ist die Aufgabenanforderung. Beim Zero-Shot-Lernen basiert das Modell auf Daten, mit denen GPT-3 bereits trainiert wurde (fast alle verfügbaren Daten aus dem Internet). Das Modell versucht, die jeweilige Aufgabe mit vorhandenen Kategorien zu verknüpfen, die es bereits gelernt hat, und antwortet entsprechend.

  • Few-Shot: Wenn Sie diesen Ansatz verwenden, fügen Sie eine kleine Anzahl von Beispielen in die Äußerung ein, die das erwartete Antwortformat und den Kontext veranschaulichen. Das Modell wird für seine Vorhersagen mit einer sehr kleinen Menge an Trainingsdaten bereitgestellt, in der Regel nur wenige Beispiele. Durch das Training mit einer geringen Anzahl von Beispielen kann das Modell verwandte, aber bisher unbekannte Aufgaben generalisieren und verstehen. Das Erstellen von Few-Shot-Beispielen kann schwierig sein, da Sie die Aufgabe, die das Modell ausführen soll, genau formulieren müssen. Ein häufiges Problem ist, dass Modelle, insbesondere kleinere, den in den Trainingsbeispielen verwendeten Schreibstil berücksichtigen.

    Die Hauptvorteile dieses Ansatzes sind eine erhebliche Verringerung des Bedarfs an aufgabenspezifischen Daten und eine geringere Wahrscheinlichkeit, eine zu enge Verteilung aus einem großen, aber schmalen Dataset zur Feinabstimmung zu erlernen.

    Mit diesem Ansatz ist es nicht möglich, die Gewichtungen des vortrainierten Modells zu aktualisieren.

    Weitere Informationen finden Sie unter Sprachmodelle sind Few-Shot-Lerner.

  • Feinabstimmung: Die Feinabstimmung ist der Prozess der Anpassung von Modellen, um ein bestimmtes gewünschtes Ergebnis aus Ihren eigenen Datasets zu erzielen. Dabei werden Modelle auf neue Daten umtrainiert. Weitere Informationen erfahren Sie unter Erfahren Sie, wie Sie ein Modell für Ihre Anwendung anpassen.

    Sie können diesen Anpassungsschritt verwenden, um Ihren Prozess zu verbessern, indem Sie:

    • Eine größere Gruppe von Beispieldaten einschließen.
    • Verwenden von herkömmlichen Optimierungstechniken mit Backpropagation, um die Gewichtungen des Modells neu anzupassen. Diese Techniken ermöglichen qualitativ hochwertigere Ergebnisse als die Zero-Shot- oder Few-Shot-Ansätze allein bieten können.
    • Den Few-Shot-Lernansatzes durch Trainieren der Modellgewichtungen mit spezifischen Äußerungen und einer bestimmten Struktur verbessern. Mit dieser Methode können Sie bessere Ergebnisse für eine größere Anzahl von Aufgaben erzielen, ohne Beispiele in der Eingabeaufforderung anzugeben. Dadurch wird weniger Text gesendet, und es werden weniger Token verarbeitet.

    Zu den Nachteilen gehören die Notwendigkeit eines großen neuen Datasets für jede Aufgabe, die Wahrscheinlichkeit einer schlechten Verallgemeinerung außerhalb der Verteilung und die Möglichkeit, falsche Merkmale der Trainingsdaten auszunutzen, was sehr wahrscheinlich zu einem unfairen Vergleich mit der menschlichen Leistung führt.

    Das Erstellen eines Datasets für die Modellanpassung unterscheidet sich vom Erstellen von Äußerungen für die Verwendung in anderen Modellen. Äußerungen für Vervollständigungsaufrufe verwenden oftmals entweder detaillierte Anweisungen oder Lerntechniken mit wenigen Durchgängen und bestehen aus mehreren Beispielen. Für die Optimierung empfehlen wir, dass jedes Trainingsbeispiel aus einem einzigen Eingabebeispiel und dessen gewünschter Ausgabe besteht. Sie brauchen innerhalb der Äußerung keine detaillierten Anweisungen oder Beispiele bereitzustellen.

    Wenn Sie die Anzahl der Trainingsbeispiele erhöhen, verbessern sich Ihre Ergebnisse. Es wird empfohlen, mindestens 500 Beispiele einzuschließen. In der Regel werden Tausende bis Hunderttausenden von bezeichneten Beispielen verwendet. Tests haben gezeigt, dass jede Verdoppelung der Datasetgröße zu einer linearen Erhöhung der Modellqualität führt.

In diesem Leitfaden werden die Engines curie-instruct/text-curie-001 und davinci-instruct/text-davinci-001 veranschaulicht. Diese Engines werden häufig aktualisiert. Die von Ihnen verwendete Version kann sich unterscheiden.

Nachbearbeitung

Es wird empfohlen, die Gültigkeit der Ergebnisse zu überprüfen, die Sie von GPT-3 erhalten. Implementieren Sie die Gültigkeitsprüfungen je nach Anwendungsfall mithilfe eines programmgesteuerten Ansatzes oder Klassifizierers. Die folgenden Überprüfungen sind wichtig:

  • Stellen Sie sicher, dass keine wichtigen Punkte übersehen werden.
  • Überprüfen Sie, ob sachliche Ungenauigkeiten auftreten.
  • Überprüfen Sie, ob die im Modell verwendeten Trainingsdaten Verzerrungen haben.
  • Stellen Sie sicher, dass das Modell Text nicht ändert, indem es neue Ideen oder Punkte hinzufügt. Dieses Problem wird als Halluzination bezeichnet.
  • Überprüfen sie auf Grammatik- und Rechtschreibfehler.
  • Verwenden Sie einen Inhaltsfilter wie Content Moderator, um sicherzustellen, dass keine unangemessenen oder irrelevanten Inhalte enthalten sind.

Führen Sie schließlich alle wichtigen Informationen wieder ein, die zuvor aus der Zusammenfassung entfernt wurden, z. B. vertrauliche Informationen.

In einigen Fällen wird auch eine Zusammenfassung der Unterhaltung zusammen mit dem ursprünglichen Transkript an den Kunden gesendet. In diesen Fällen umfasst die Nachbearbeitung das Anfügen des Transkripts an die Zusammenfassung. Sie kann auch das Hinzufügen von einleitenden Sätzen wie „Bitte sehen Sie sich die Zusammenfassung unten an“ umfassen.

Überlegungen

Es ist wichtig, Ihre Basismodelle mit einem branchenspezifischen Trainingsdataset zu optimieren und die Größe der verfügbaren Datasets zu ändern. Fein abgestimmte Modelle funktionieren am besten, wenn die Trainingsdaten mindestens 1.000 Datenpunkte enthalten und die zum Trainieren der Modelle verwendete Grundwahrheit (vom Menschen generierte Zusammenfassungen) von hoher Qualität ist.

Der Kompromiss sind die Kosten. Das Bezeichnen und Bereinigen von Datasets kann teuer sein. Um qualitativ hochwertige Trainingsdaten zu gewährleisten, müssen Sie möglicherweise Zusammenfassungen von Grundwahrheiten manuell überprüfen und Zusammenfassungen mit niedriger Qualität umschreiben. Beachten Sie die folgenden Punkte zur Zusammenfassungsphase:

  • Äußerungsengineering: Wenn Davinci mit wenig Anweisungen bereitgestellt wird, funktioniert es oft besser als andere Modelle. Um die Ergebnisse zu optimieren, experimentieren Sie mit verschiedenen Äußerungen für verschiedene Modelle.
  • Tokengröße: Eine Zusammenfassung, die auf GPT-3 basiert, ist auf insgesamt 4.098 Token beschränkt, einschließlich der Äußerung und der Vervollständigung. Um größere Passagen zusammenzufassen, unterteilen Sie den Text in Teile, die diesen Vorgaben entsprechen. Fassen Sie jeden Teil einzeln zusammen, und sammeln Sie dann die Ergebnisse in einer abschließenden Zusammenfassung.
  • Garbage In, Garbage Out: Trainierte Modelle sind nur so gut wie die Trainingsdaten, die Sie bereitstellen. Stellen Sie sicher, dass die Zusammenfassungen der Grundwahrheit in den Trainingsdaten gut für die Informationen geeignet sind, die Sie schließlich in Ihren Dialogen zusammenfassen möchten.
  • Stopppunkt: Das Modell beendet die Zusammenfassung, wenn es einen natürlichen Stopppunkt oder eine von Ihnen bereitgestellte Stoppsequenz erreicht. Testen Sie diesen Parameter, um zwischen mehreren Zusammenfassungen auszuwählen und zu überprüfen, ob Zusammenfassungen unvollständig sind.

Beispielszenario: Zusammenfassen von Transkripts in Callcentern

In diesem Szenario wird veranschaulicht, wie das Azure OpenAI-Zusammenfassungsfeature Kundendienstmitarbeitern bei Zusammenfassungsaufgaben helfen kann. Es testet die Ansätze Zero-Shot, Few-Shot und Feinabstimmung und vergleicht die Ergebnisse mit von Menschen generierten Zusammenfassungen.

Das in diesem Szenario verwendete Dataset besteht aus einer Reihe hypothetischer Unterhaltungen zwischen Kunden und Agenten im Xbox-Kundensupportcenter zu verschiedenen Xbox-Produkten und -Diensten. Der hypothetische Chat wird als Äußerung bezeichnet. Die von Menschen geschriebene abstrahierte Zusammenfassung wird als Abschluss bezeichnet.

Prompt Completion
Kunde: Frage zu XAIL

Agent: Hallo! Wie kann ich Ihnen heute helfen?

Kunde: Hallo, ich habe eine Frage zum Accessibility-Insider-Ring.

Agent: Okay. Dabei kann ich Ihnen sicherlich helfen.

Kunde: Muss ich mich für den Preview-Ring registrieren, um der Liga Accessibility-Liga beizutreten?

Agent: Nein. Sie können Ihre Konsole aus den Xbox Preview-Ringen herausnehmen und trotzdem an der Liga teilnehmen. Beachten Sie jedoch, dass einige Erlebnisse, die Ihnen zur Verfügung gestellt werden, möglicherweise erfordern, dass Sie einem Xbox Preview-Ring beitreten.

Kunde: Okay. Und ich kann mich später einfach für den Preview-Ring registrieren, ja?

Agent: Das ist richtig.

Kunde: Cool.
Der Kunde möchte wissen, ob er sich für Vorschauringe registrieren muss, um der Xbox Accessibility Insider League beizutreten. Der Agent antwortet, dass dies nicht verpflichtend ist, aber dass es für einige Erfahrungen erforderlich sein könnte.

Ideale Ausgabe. Das Ziel besteht darin, Zusammenfassungen zu erstellen, die dem folgenden Format folgen: „Kunde sagte x. Agent antwortete y.“ Ein weiteres Ziel besteht darin, wichtige Merkmale des Dialogs wie Kundenbeschwerde, vorgeschlagene Lösung und Folgeaktionen zu erfassen.

Hier sehen Sie ein Beispiel für eine Interaktion mit dem Kundensupport, gefolgt von einer umfassenden, von Menschen geschriebenen Zusammenfassung:

Dialogfeld

Kunde: Hallo. Ich habe eine Frage zum Game Pass.

Agent: Hallo. Wie geht es Ihnen heute?

Kunde: Gut.

Agent Ich sehe, dass Sie Hilfe mit dem Xbox Game Pass benötigen.

Kunde: Ja. Ich wollte wissen, wie lange ich auf die Spiele zugreifen kann, nachdem sie aus dem Game Pass entfernt wurden.

Agent: Sobald ein Spiel den Xbox Game Pass-Katalog verlässt, müssen Sie eine digitale Kopie aus der Xbox-App für Windows oder dem Microsoft Store erwerben, von einer Disc spielen oder eine andere Form der Berechtigung erhalten, um das Spiel fortsetzen zu können. Denken Sie daran, dass Xbox Mitglieder benachrichtigt, bevor ein Spiel aus dem Xbox Game Pass-Katalog genommen wird. Und als Mitglied können Sie jedes Spiel im Katalog mit bis zu 20 % Rabatt (oder zum besten verfügbaren rabattierten Preis) erwerben, um ein Spiel weiterhin zu spielen, nachdem es aus dem Katalog genommen wurde.

Kunde: Verstanden, vielen Dank

Zusammenfassung der Grundwahrheit

Der Kunde möchte wissen, wie lange er auf Spiele zugreifen kann, nachdem sie aus dem Game Pass genommen wurden. Der Agent teilt dem Kunden mit, dass er das Spiel kaufen muss, um weiterhin Zugriff zu haben.

Zero-shot

Der Zero-Shot-Ansatz ist nützlich, wenn Sie nicht über ausreichend bezeichnete Trainingsdaten verfügen. In diesem Fall gibt es nicht genügend Zusammenfassungen der Grundwahrheit. Die Äußerungen müssen mit Sorgfalt erstellt werden, um relevante Informationen extrahieren zu können. Das folgende Format wird verwendet, um allgemeine Zusammenfassungen aus Chats zwischen Kunden und Agenten zu extrahieren:

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

suffix = "The summary is as follows: "

Im Folgenden sehen Sie ein Beispiel, das zeigt, wie Sie ein Zero-Shot-Modell ausführen:

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

Ergebnisse und Beobachtungen

Die Ausgabe des Zero-Shot-Modells wird direkt aus dem Basismodell erzeugt. In diesem Fall fassen sowohl Curie als auch Davinci den Dialog ziemlich gut zusammen. Der einzige auffällige Unterschied ist, dass das Curie-Modell etwas weniger Details bietet. Curie beginnt die Zusammenfassung mit „Kunde fragt den Agent nach dem Xbox Game Pass“. Der entsprechende Satz in Davinci lautet „Kunde fragte, wie lange er auf Spiele zugreifen kann, nachdem sie den Xbox Game Pass-Katalog verlassen haben.“

Dialogfeld

Kunde: Hallo. Ich habe eine Frage zum Game Pass.

Agent: Hallo. Wie geht es Ihnen?

Kunde: Gut.

Agent: Ich sehe, dass Sie Hilfe mit dem Xbox Game Pass benötigen.

Kunde: Ja. Ich wollte wissen, wie lange ich auf die Spiele zugreifen kann, nachdem sie aus dem Game Pass entfernt wurden.

Agent: Sobald ein Spiel den Xbox Game Pass-Katalog verlässt, müssen Sie eine digitale Kopie aus der Xbox-App für Windows oder dem Microsoft Store erwerben, von einer Disc spielen oder eine andere Form der Berechtigung erhalten, um das Spiel fortsetzen zu können. Denken Sie daran, dass Xbox Mitglieder benachrichtigt, bevor ein Spiel aus dem Xbox Game Pass-Katalog genommen wird. Und als Mitglied können Sie jedes Spiel im Katalog mit bis zu 20 % Rabatt oder zum besten verfügbaren rabattierten Preis erwerben, um ein Spiel weiterhin zu spielen, nachdem es aus dem Katalog genommen wurde.

Grundwahrheit

Der Kunde möchte wissen, wie lange er auf Spiele zugreifen kann, nachdem sie aus dem Game Pass genommen wurden. Der Agent teilt dem Kunden mit, dass er das Spiel kaufen muss, um weiterhin Zugriff zu haben.

Davinci-Ergebnis

Der Kunde fragte, wie lange er auf Spiele zugreifen kann, nachdem sie den Xbox Game Pass-Katalog verlassen haben. Der Agent teilte ihnen mit, dass sie eine digitale Kopie des Spiels über die Xbox-App für Windows oder den Microsoft Store erwerben müssten, um es weiterhin spielen zu können. Der Agent erinnerte den Kunden auch daran, dass er benachrichtigt wird, bevor ein Spiel den Xbox Game Pass-Katalog verlässt. Als Mitglied kann der Kunde jedes Spiel im Katalog für bis zu 20 Rabatt oder zum besten verfügbaren rabattierten Preis erwerben.

Curie-Ergebnis

Der Kunde fragt den Agent zum Xbox Game Pass. Der Agent sagt dem Kunden, dass sobald ein Spiel den Xbox Game Pass-Katalog verlässt, der Kunde eine digitale Kopie aus der Xbox-App für Windows oder dem Microsoft Store erwerben, von einer Disc spielen oder eine andere Form der Berechtigung erhalten muss, um das Spiel fortsetzen zu können. Der Agent erinnert den Kunden auch daran, dass Xbox Mitglieder benachrichtigt, bevor ein Spiel den Xbox Game Pass-Katalog verlässt.

Few-shot

Wenn Sie den Few-Shot-Ansatz verwenden, wird das Modell mit einer kleinen Anzahl von Beispielen bereitgestellt.

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: "

Im Folgenden sehen Sie ein Beispiel, das zeigt, wie Sie ein Few-Shot-Modell ausführen:

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

Ergebnisse und Beobachtungen

Mit dem Few-Shot-Ansatz erfassen die Zusammenfassungen weiterhin wichtige Merkmale der Unterhaltung. Die Davinci-Zusammenfassung ist kompakter und näher an der Grundwahrheit. Curie fabriziert einige triviale Details.

Dialogfeld

Kunde: Hallo. Ich habe eine Frage zum Game Pass.

Agent: Hallo. Wie geht es Ihnen?

Kunde: Gut.

Agent: Ich sehe, dass Sie Hilfe mit dem Xbox Game Pass benötigen.

Kunde: Ja. Ich wollte wissen, wie lange ich auf die Spiele zugreifen kann, nachdem sie aus dem Game Pass entfernt wurden.

Agent: Sobald ein Spiel den Xbox Game Pass-Katalog verlässt, müssen Sie eine digitale Kopie aus der Xbox-App für Windows oder dem Microsoft Store erwerben, von einer Disc spielen oder eine andere Form der Berechtigung erhalten, um das Spiel fortsetzen zu können. Denken Sie daran, dass Xbox Mitglieder benachrichtigt, bevor ein Spiel aus dem Xbox Game Pass-Katalog genommen wird. Und als Mitglied können Sie jedes Spiel im Katalog mit bis zu 20 % Rabatt oder zum besten verfügbaren rabattierten Preis erwerben, um ein Spiel weiterhin zu spielen, nachdem es aus dem Katalog genommen wurde.

Grundwahrheit

Der Kunde möchte wissen, wie lange er auf Spiele zugreifen kann, nachdem sie aus dem Game Pass genommen wurden. Der Agent teilt dem Kunden mit, dass er das Spiel kaufen muss, um weiterhin Zugriff zu haben.

Davinci-Ergebnis

Der Kunde wollte wissen, wie lange er auf Spiele zugreifen kann, nachdem sie den Game Pass verlassen haben. Der Agent informiert, dass der Kunde, sobald ein Spiel den Xbox Game Pass-Katalog verlässt, eine digitale Kopie erwerben oder eine andere Form der Berechtigung erhalten muss, um das Spiel weiter spielen zu können.

Curie-Ergebnis

Kunde hat eine Frage zum Game Pass. Dem Kunden geht es gut. Der Agent benötigt Hilfe beim Xbox Game Pass. Der Kunde fragt, wie lange er auf die Spiele zugreifen kann, nachdem sie den Game Pass-Katalog verlassen haben. Der Agent sagt, dass sobald ein Spiel den Xbox Game Pass-Katalog verlässt, der Kunde eine digitale Kopie aus der Xbox-App für Windows oder dem Microsoft Store erwerben, von einer Disc spielen oder eine andere Form der Berechtigung erhalten muss, um das Spiel fortsetzen zu können. Der Kunde freut sich, dies zu hören und dankt Agent.

Feinabstimmung

Feinabstimmung: Prozess der Anpassung von Modellen, um ein bestimmtes gewünschtes Ergebnis aus Ihren eigenen Datasets zu erzielen.

Hier ist ein beispielhaftes Format:

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

Ergebnisse und Beobachtungen

Tests deuten darauf hin, dass ein fein abgestimmtes Curie-Modell zu Ergebnissen führt, die mit denen eines Few-Shot-Davinci-Modells vergleichbar sind. Beide Zusammenfassungen erfassen die Frage des Kunden und die Antwort des Agenten, ohne die Details zu Rabatten zu erfassen und ohne Inhalte hinzuzufügen. Beide Zusammenfassungen ähneln der Grundwahrheit.

Dialogfeld

Kunde: Hallo. Ich habe eine Frage zum Game Pass.

Agent: Hallo. Wie geht es Ihnen?

Kunde: Gut.

Agent: Ich sehe, dass Sie Hilfe mit dem Xbox Game Pass benötigen.

Kunde: Ja. Ich wollte wissen, wie lange ich auf die Spiele zugreifen kann, nachdem sie aus dem Game Pass entfernt wurden.

Agent: Sobald ein Spiel den Xbox Game Pass-Katalog verlässt, müssen Sie eine digitale Kopie aus der Xbox-App für Windows oder dem Microsoft Store erwerben, von einer Disc spielen oder eine andere Form der Berechtigung erhalten, um das Spiel fortsetzen zu können. Denken Sie daran, dass Xbox Mitglieder benachrichtigt, bevor ein Spiel aus dem Xbox Game Pass-Katalog genommen wird. Und als Mitglied können Sie jedes Spiel im Katalog mit bis zu 20 % Rabatt oder zum besten verfügbaren rabattierten Preis erwerben, um ein Spiel weiterhin zu spielen, nachdem es aus dem Katalog genommen wurde.

Grundwahrheit

Der Kunde möchte wissen, wie lange er auf Spiele zugreifen kann, nachdem sie aus dem Game Pass genommen wurden. Der Agent teilt dem Kunden mit, dass er das Spiel kaufen muss, um weiterhin Zugriff zu haben.

Curie-Ergebnis

Der Kunde möchte wissen, wie lange er auf Spiele zugreifen kann, nachdem sie aus dem Game Pass genommen wurden. Der Agent erklärt, dass sobald ein Spiel den Xbox Game Pass-Katalog verlässt, eine digitale Kopie aus der Xbox-App für Windows oder dem Microsoft Store erworben, von einer Disc gespielt oder eine andere Form der Berechtigung erhalten werden muss, um das Spiel fortsetzen zu können.

Zusammenfassung

Im Allgemeinen erfordert das Davinci-Modell weniger Anweisungen zum Ausführen von Aufgaben als andere Modelle wie z. B. Curie. Davinci eignet sich besser für die Zusammenfassung von Texten, die ein Verständnis des Kontexts oder einer bestimmten Sprache erfordern. Da Davinci das komplexeste Modell ist, ist seine Latenz höher als bei anderen Modellen. Curie ist schneller als Davinci und kann Unterhaltungen zusammenfassen.

Diese Tests zeigen, dass Sie bessere Zusammenfassungen generieren können, wenn Sie dem Modell mehr Anweisungen über Few-Shot oder Feinabstimmungen bereitstellen. Fein abgestimmte Modelle können der Struktur und dem Kontext, die aus einem Trainingsdataset gelernt wurden, besser entsprechen. Diese Funktion ist besonders nützlich, wenn Zusammenfassungen domänenspezifisch sind (z. B. das Generieren von Zusammenfassungen aus Notizen eines Arztes oder vom Online-Rezept-Kundensupport). Wenn Sie die Optimierung verwenden, haben Sie mehr Kontrolle über die Typen von Zusammenfassungen, die Ihnen angezeigt werden.

Für einen einfachen Vergleich finden Sie hier eine Zusammenfassung der Ergebnisse, die zuvor vorgestellt werden:

Grundwahrheit

Der Kunde möchte wissen, wie lange er auf Spiele zugreifen kann, nachdem sie aus dem Game Pass genommen wurden. Der Agent teilt dem Kunden mit, dass er das Spiel kaufen muss, um weiterhin Zugriff zu haben.

Zero-Shot-Ergebnis von Davinci

Der Kunde fragte, wie lange er auf Spiele zugreifen kann, nachdem sie den Xbox Game Pass-Katalog verlassen haben. Der Agent teilte ihnen mit, dass sie eine digitale Kopie des Spiels über die Xbox-App für Windows oder den Microsoft Store erwerben müssten, um es weiterhin spielen zu können. Der Agent erinnerte den Kunden auch daran, dass er benachrichtigt wird, bevor ein Spiel den Xbox Game Pass-Katalog verlässt. Als Mitglied kann der Kunde jedes Spiel im Katalog für bis zu 20 Rabatt oder zum besten verfügbaren rabattierten Preis erwerben.

Zero-Shot-Ergebnis von Curie

Der Kunde fragt den Agent zum Xbox Game Pass. Der Agent sagt dem Kunden, dass sobald ein Spiel den Xbox Game Pass-Katalog verlässt, der Kunde eine digitale Kopie aus der Xbox-App für Windows oder dem Microsoft Store erwerben, von einer Disc spielen oder eine andere Form der Berechtigung erhalten muss, um das Spiel fortsetzen zu können. Der Agent erinnert den Kunden auch daran, dass Xbox Mitglieder benachrichtigt, bevor ein Spiel den Xbox Game Pass-Katalog verlässt.

Few-Shot-Ergebnis von Davinci

Der Kunde wollte wissen, wie lange er auf Spiele zugreifen kann, nachdem sie den Game Pass verlassen haben. Der Agent informiert, dass der Kunde, sobald ein Spiel den Xbox Game Pass-Katalog verlässt, eine digitale Kopie erwerben oder eine andere Form der Berechtigung erhalten muss, um das Spiel weiter spielen zu können.

Few-Shot-Ergebnis von Curie

Kunde hat eine Frage zum Game Pass. Dem Kunden geht es gut. Der Agent benötigt Hilfe beim Xbox Game Pass. Der Kunde fragt, wie lange er auf die Spiele zugreifen kann, nachdem sie den Game Pass-Katalog verlassen haben. Der Agent sagt, dass sobald ein Spiel den Xbox Game Pass-Katalog verlässt, der Kunde eine digitale Kopie aus der Xbox-App für Windows oder dem Microsoft Store erwerben, von einer Disc spielen oder eine andere Form der Berechtigung erhalten muss, um das Spiel fortsetzen zu können. Der Kunde freut sich, dies zu hören und dankt Agent.

Feinabstimmungsergebnis von Curie

Der Kunde möchte wissen, wie lange er auf Spiele zugreifen kann, nachdem sie aus dem Game Pass genommen wurden. Der Agent erklärt, dass sobald ein Spiel den Xbox Game Pass-Katalog verlässt, eine digitale Kopie aus der Xbox-App für Windows oder dem Microsoft Store erworben, von einer Disc gespielt oder eine andere Form der Berechtigung erhalten werden muss, um das Spiel fortsetzen zu können.

Auswerten der Zusammenfassung

Es gibt mehrere Techniken zum Auswerten der Leistung von Zusammenfassungsmodellen.

Hier sind einige Beispiele:

ROUGE (Recall-Oriented Understudy for Gisting Evaluation). Diese Technik umfasst Measures zum automatischen Bestimmen der Qualität einer Zusammenfassung durch einen Vergleich der Zusammenfassung mit idealen, von Menschen erstellten Zusammenfassungen. Die Measures zählen die Anzahl sich überschneidender Einheiten (z. B. N-Gramm, Wortfolgen und Wortpaare) zwischen der bewerteten computergenerierten Zusammenfassung und den idealen Zusammenfassungen.

Hier sehen Sie ein Beispiel:

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. Diese Technik berechnet Ähnlichkeitswerte, indem generierte Zusammenfassungen und Referenzzusammenfassungen auf Tokenebene abgeglichen werden. Tokenübereinstimmungen werden berechnet, um die Kosinusähnlichkeit zwischen kontextualisierten Tokeneinbettungen aus BERT zu maximieren.

Hier sehen Sie ein Beispiel:

  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)

Ähnlichkeitsmatrix. Eine Ähnlichkeitsmatrix ist eine Darstellung der Ähnlichkeiten zwischen verschiedenen Entitäten in einer Zusammenfassungsauswertung. Sie können sie verwenden, um verschiedene Zusammenfassungen desselben Texts zu vergleichen und deren Ähnlichkeit zu messen. Die Ähnlichkeitsmatrix wird durch ein zweidimensionales Raster dargestellt, in dem jede Zelle ein Measure für die Ähnlichkeit zwischen zwei Zusammenfassungen enthält. Sie können die Ähnlichkeit mit verschiedenen Methoden messen, z. B. Kosinusähnlichkeit, Jaccard-Ähnlichkeit und Edit-Distanz. Anschließend verwenden Sie die Matrix, um die Zusammenfassungen zu vergleichen und zu bestimmen, welche Zusammenfassung den Originaltext am genauesten wiedergibt.

Hier sehen Sie einen Beispielbefehl, der die Ähnlichkeitsmatrix eines BERTScore-Vergleichs zweier ähnlicher Sätze generiert:

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

Der erste Satz („The cat is on the porch by the tree“) wird als Kandidat bezeichnet. Der zweite Satz wird als Referenz bezeichnet. Der Befehl verwendet BERTScore, um die Sätze zu vergleichen und eine Matrix zu generieren.

Die folgende Matrix zeigt die Ausgabe, die vom vorherigen Befehl generiert wird:

Diagramm einer Ähnlichkeitsmatrix.

Weitere Informationen finden Sie unter SummEval: Reevaluating Summarization Evaluation (SummEval: Neuauswerten der Zusammenfassungsauswertung). Ein PyPI-Toolkit für die Zusammenfassung finden Sie unter Summ-eval 0.892.

Verantwortungsvolle Verwendung

GPT kann hervorragende Ergebnisse liefern, aber Sie müssen die Ausgabe auf soziale, ethische und rechtliche Voreingenommenheiten und schädliche Ergebnisse überprüfen. Wenn Sie Modelle optimieren, müssen Sie alle Datenpunkte entfernen, die für das Lernen des Modells schädlich sein könnten. Sie können Red Teaming verwenden, um schädliche Ausgaben aus dem Modell zu identifizieren. Sie können diesen Prozess manuell implementieren und mit halbautomatischen Methoden unterstützen. Sie können Testfälle mithilfe von Sprachmodellen generieren und dann einen Klassifizierer verwenden, um schädliches Verhalten in den Testfällen zu erkennen. Schließlich sollten Sie eine manuelle Überprüfung der generierten Zusammenfassungen durchführen, um sicherzustellen, dass sie verwendet werden können.

Weitere Informationen finden Sie unter Red Teaming von Sprachmodellen mit Sprachmodellen.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Andere Mitwirkende:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte