26. Februar 2024 von Phuong Huong Nguyen und Veronika Tsishetska
Massengenerierung von maschinell erstellten Zusammenfassungen mit Aleph Alpha Luminous
Im Rahmen redaktioneller Arbeiten ist die Suche nach geeigneten oder gar relevanten Quellen sehr aufwändig. Für diese redaktionellen Tätigkeiten wird in erster Linie auf fachspezifische Wissensdatenbanken zurückgegriffen, die ihrerseits sehr viele Einträge enthalten. Zusammenfassungen zu den jeweiligen Einträgen einer Wissensdatenbank erleichtern dem Suchenden die Einschätzung, ob ein Eintrag relevant sein könnte. Zusammenfassungen zu jedem Eintrag einer Wissensdatenbank sind daher notwendig, um die tägliche redaktionelle Arbeit zu erleichtern und effizienter zu gestalten.
In diesem Blog-Beitrag möchten wir das Konzept früherer Beiträge im adesso Blog - beispielsweise zum Thema "Maschinenerstellte Zusammenfassung von Texten mit Aleph Alpha Luminous über R" - aufgreifen und aus einem realisierten Kundenprojekt berichten. In diesem Kontext kamen Textgrößen vor, die die durchschnittliche Länge des gängigen „Summarization Test Data Set: CNN/Daily Mail“ bei weitem übertrafen.
Wissensquellen werden häufig im PDF-Format verbreitet. Um aus diesem Quellformat eine maschinelle Zusammenfassung erzeugen zu können, muss zunächst eine Transformation von PDF (oder anderen Formaten wie Bild, Video etc.) in Text erfolgen. Anschließend kann der Text einem Sprachmodell wie Aleph Alpha Luminous zugeführt werden, um eine Zusammenfassung zu erzeugen. Im Kontext einer professionellen Tätigkeit, die Entscheidungen auf der Grundlage von Zusammenfassungen treffen muss, ist es unerlässlich, dass die Zusammenfassungen einem ähnlichen Schema folgen. Im ersten Teil dieses Beitrags geht es um die Vorverarbeitung von Texten, im zweiten Teil wird die maschinelle Generierung von Zusammenfassungen aus bestehenden Texten ausführlich beschrieben.
Beschreibung PDF2Text Parsing: Die Vorverarbeitung von Text für die Aufgabe der Generierung von Zusammenfassungen
Um (mit vertretbarem Aufwand) aus großen Sprachmodellen eine exakte Zusammenfassung zu generieren, ist die Voraussetzung von textuellen Eingabedaten für das Sprachmodell zu schaffen. Häufig sind die Quelldaten als PDF-Dateien gespeichert. Daher ist der erste Schritt in unserer Abstractgenerierungspipeline das Parsen der PDF-Dateien in Textdateien. Nach dem Parsing-Prozess enthält der Text meist noch Rauschen. Das sind unnötige Tokens, die für die Korrektheit oder den Inhalt des Abstracts keine Rolle spielen, aber trotzdem Geld kosten würden, wenn sie im Sprachmodell verarbeitet würden. Daher ist die Textbereinigung ein wichtiger Schritt, um das Rauschen zu entfernen und die Daten für den nächsten Schritt vorzubereiten. Der Kontext der Daten kann eine wichtige Rolle dabei spielen, wie wir die Textbereinigung angehen. Beispielsweise erfordern Webseitendaten andere Bereinigungsschritte als Berichte (mit weniger Metadatenstandards) oder Zeitschriftenartikel (mit mehr Metadatenstandards wie DOI, ISBN, Referenzen usw.). Da unsere Daten unterschiedlich sind, entwickeln wir im Allgemeinen einen Textbereinigungsprozess, der für die zu erwartende Mehrheit unserer Datentypen so weit wie möglich optimiert ist. Ein weiteres Kriterium für die Definition der Textbereinigungspipeline ist die Art der Natural Language Processing (NLP) Aufgabe. Für die Aufgabe der Zusammenfassungsgenerierung folgen wir der im Folgenden vorgestellten Textreinigungspipeline. Für andere NLP-Aufgaben kann jedoch eine entsprechende Erweiterung der Textreinigungspipeline in Betracht gezogen werden.
Im Zusammenhang mit der Generierung von Zusammenfassungen spielen Abschnitte, die keine direkte inhaltliche Information zum gemeinsamen Thema liefern, keine Rolle und werden als Rauschen bezeichnet. Wenn der Text viele Geräusche enthält, können diese in LLM-Modellen zu falsch generierten Zusammenfassungen führen. Außerdem werden sie als Token berechnet. Daher dient die Entfernung von Geräuschen aus der Texteingabe nicht nur der Erhöhung der Korrektheit der generierten Zusammenfassungen, sondern auch der Kostenreduktion.
Die am häufigsten verwendeten Datentypen in unserem Kundenbeispiel sind Berichte, Zeitschriftenartikel und Bücher. Diese Datenschemata haben typischerweise die Eigenschaft, dass sie den Literaturabschnitt meist am Ende enthalten und jede Seite wahrscheinlich Kopf- und Fußzeilen enthält. Der Literaturabschnitt und seine nachfolgenden Abschnitte sowie Kopf- und Fußzeilen werden als Rauschen betrachtet. Außerdem sollten alle Sonderzeichen, die keine Bedeutung haben, aus den Texteingaben entfernt werden. Die folgende Abbildung zeigt unsere Optimierungspipeline für das Parsen der PDF-Datei in Text.
Um die Daten zu bereinigen, wird die PDF-Datei zunächst mit Hilfe der Bibliotheken PDFMinerPDFasHTMLLoader
und BeautifulSoup
in das LXML-Format umgewandelt. Diese Zwischenkonvertierung hilft bei der Lokalisierung von wichtigen und unwichtigen Informationen. Danach erfolgt die Bereinigung. Wir entfernen Schritt für Schritt den Literaturabschnitt und seine Nachfolger, Kopf- und Fußzeilen, Seitenzahlen, URL-Links und alle Sonderzeichen, die nicht in der Liste {A-Za-z0-9ÄÖÜäöüß.!?_$%&:;@,-}
enthalten sind. Der extrahierte Text wird dann mit Hilfe des Aleph Alpha Luminous Modells zusammengefasst. Die detaillierte Beschreibung erfolgt im nächsten Abschnitt.
Beschreibung der maschinellen Zusammenfassung: Die Generierung von geführten Zusammenfassungen mit Aleph Alpha
Die Generierung einer Zusammenfassung erfolgt in zwei Schritten. Bevor der Text in der ersten Stufe zusammengefasst wird, wird er zunächst vorverarbeitet. Um handhabbare Texteinheiten zu erzeugen, wird der Text in Segmente zerlegt, aus denen Sätze mit Angabe der minimalen und maximalen Wortanzahl gebildet werden. Diese Sätze werden dann zu Abschnitten, so genannten Chunks, zusammengefasst und dem Sprachmodell zur Verarbeitung in der ersten Stufe übergeben. Jeder Chunk wird in eine prägnante Zusammenfassung umgewandelt. Dazu wird eine Aleph-Alph-Kette mit dem unten angegebenen Prompt erzeugt. Anschließend wird „map_llm_chain“ auf jeden Chunk angewendet.
map_prompt_template = """### Instruction:
Firstly, give the following text a concise and informative title, focusing on capturing the central themes or key subjects present in the text. Then, summarize the text. Only extract this information as JSON.
### Input:
{{text}}
### Response:
{"title":"""
aa_model = AlephAlpha(
model=self.model[0],
maximum_tokens=self.maximum_tokens[0],
stop_sequences=["###"],
aleph_alpha_api_key=self.aleph_alpha_api_key[0],
presence_penalty = 0,
frequency_penalty = 0.5
)
map_llm_chain = LLMChain(llm=aa_model, prompt=map_prompt)
def process_chunk(chunk_text):
return map_llm_chain.apply([{"text": chunk_text}])
Als Ergebnis der ersten Stufe der Zusammenfassung liegen kleine, überschaubare Abschnitte („chunks“), eine Zusammenfassung für jeden Abschnitt („chunk summaries“) und eine Überschrift für jeden Abschnitt („chunk titles“) vor.
Bevor die Ergebnisse der ersten Stufe in die zweite Stufe der Zusammenfassungsgenerierung überführt werden, werden die chunks in Gruppen („topics“) eingeteilt. Dies geschieht mit Hilfe des Louvain Community Search Algorithmus. Die bereits gruppierten Abschnitte werden entsprechend der mit dem Louvain-Algorithmus gefundenen Communities gruppiert, um eine umfassendere und kohärentere Zusammenfassung zu erstellen. Eine Aleph Alpha Map-Reduce-Kette wird verwendet, um aus den verknüpften Abschnitten eine Textzusammenfassung zu generieren. Spezifische Prompts werden verwendet, um zusätzliche Zusammenfassungen zu verschiedenen Aspekten des Textes zu generieren, wie zum Beispiel Ziel, Methodik, Ergebnisse und Implikationen. Für jeden Aspekt gibt es einen "Map Prompt" und einen "Combine Prompt" (siehe Beispiel unten).
map_prompt_template = """Write a 75-100 word summary of the following text concentrating on the purpose of the described study/ research:
{text}
CONCISE SUMMARY:"""
### Instruction:
Please provide a clear, concise answer within 125 words to the following question. {{ question }} If there is no answer, say "NO_ANSWER_IN_TEXT".
### Input:
Text: {{ text }}
### Response:
Im oben angegebenen „combine prompt“ wird eine Frage zu dem jeweiligen Aspekt eingesetzt.
questions:
- What is the purpose, or intention of the study/research described in the following text? What was the study/research done for?
- How was the study/research described in the following text conducted regarding the design, methodology, techniques, or approach?
- What are the findings, outcomes, results, or discoveries of the study/ research described in the following text?
- What are the implications, suggestions, impacts, drawbacks or limitations stemming from the findings of the study/ research described in the following text without directly reiterating the findings?
Die Map-Reducer-Kette mit der entsprechenden Kombination von Map- und Combine-Prompts je nach Aspekt wird auf die verknüpften Abschnitte angewendet. Die Verkettung der Ergebnisse jeder Chain (der Antworten auf alle Fragen) führt zu einer endgültigen Zusammenfassung des Textes.
map_llm = AlephAlpha(
model=self.model[0],
maximum_tokens=self.maximum_tokens[0],
stop_sequences=["###"],
aleph_alpha_api_key=self.aleph_alpha_api_key[0],
presence_penalty = 0,
frequency_penalty = 0.5
)
reduce_llm = AlephAlpha(
model=self.model[0],
maximum_tokens=self.maximum_tokens[0],
stop_sequences=["###"],
aleph_alpha_api_key=self.aleph_alpha_api_key[0],
presence_penalty = 0,
frequency_penalty = 0.5
)
output_purpose = chain({"input_documents": docs}, return_only_outputs=True)
purpose = output_purpose["output_text"]
output_method = chain2({"input_documents": docs}, return_only_outputs=True)
method = output_method["output_text"]
output_findings = chain3({"input_documents": docs}, return_only_outputs=True)
findings = output_findings["output_text"]
output_implications = chain4({"input_documents": docs}, return_only_outputs=True)
implications = output_implications["output_text"]
final_summary = "Purpose: " + str(purpose) + "\n" + "Method: " + str(method) + "\n" + "Findings: " + str(findings) + "\n" + "Implications: " + str(implications)
Überschriften von Chunks, die zur selben Community gehören, werden ebenfalls mit einer Aleph Alpha Chain zusammengefasst, so dass es für jede Gruppe nur eine Überschrift gibt.
title_prompt_template = """Write an informative title that summarizes each of the following groups \ of titles. Make sure that the titles capture as much information as possible, and are different from each other:
{text}
Return your answer in a numbered list, with new line separating each title:
1. Title 1
2. Title 2
3. Title 3
TITLES:
"""
title_llm = AlephAlpha(
model=self.model[0],
maximum_tokens=self.maximum_tokens[0],
stop_sequences=["###"],
aleph_alpha_api_key=self.aleph_alpha_api_key[0],
presence_penalty = 0,
frequency_penalty = 0.5
)
title_llm_chain = LLMChain(llm=title_llm, prompt=title_prompt)
Als Ergebnis erhält man nach der zweiten Stufe der Synthesegenerierung Zwischenergebnisse der Map-Reducing-Kette („intermediate results“). Nachfolgend sind zwei Beispiele dargestellt. Die Ergebnisse werden derzeit weiter optimiert, um eine stärkere Trennung zwischen Methode und Ergebnissen zu generieren.
Quelle 1: Working Papers des KVF NRW, Nr. 10
Original Zusammenfassung
Fast Fashion wird in kürzester Zeit produziert, getragen und entsorgt. Ziel der Studie ist die Entwicklung von Käuferclustern im Bekleidungssektor sowie deren Information und Aufklärung. Die Konsumenten sollen wieder zu einem verantwortungsvolleren Verhalten beim Kauf, bei der Aufbewahrung und beim Recycling von Kleidung angeregt werden.
Ergebnis von Aleph Alpha Luminous
- Ziel: Die Studie wurde durchgeführt, um die Motive und Barrieren für den Kauf von Fast Fashion sowie die tatsächlichen Barrieren für nachhaltige Mode zu ermitteln. Die Ergebnisse beider Komponenten dienten als Grundlage für die Entwicklung eines quantitativen Fragebogens zur Ermittlung der Motive für den Kauf von Fast Fashion sowie der tatsächlichen Barrieren für nicht nachhaltige Mode.
- Methode: Die Studie/Forschung wurde mit einem Mixed-Methods-Ansatz durchgeführt. Es wurden qualitative Interviews mit Konsumentinnen und Konsumenten durchgeführt. Die Ergebnisse wurden mittels qualitativer Inhaltsanalyse ausgewertet. Die Ergebnisse beider Komponenten dienten als Grundlage für die Entwicklung eines quantitativen Fragebogens, um die Motive für den Kauf von Fast Fashion sowie die tatsächlichen Barrieren für nicht nachhaltigen Konsum zu ermitteln. Die vorliegende Studie untersucht die Motive und Barrieren für den Kauf von Fast Fashion.
- Ergebnis: Die Ergebnisse der Studie zeigen, dass Schülerinnen und Schüler in der Grundschule und in der Sekundarstufe lernen, wie wichtig die Wertschätzung von Kleidung ist und wie sie durch nachhaltiges Einkaufen Ressourcen sparen können. In der Sekundarstufe sollten die Schülerinnen und Schüler über die Umweltauswirkungen ihres Kleidungskaufs aufgeklärt werden.
Quelle 2: Artikel des MDPI
Original Zusammenfassung
Die Ethik der Fast-Fashion-Industrie wurde durch das Aufkommen neuer Konsumparadigmen wie Anti-Konsumismus und nachhaltiger Konsum in Frage gestellt. Das Ziel dieser Studie ist es, die konzeptuelle Struktur von Fast-Fashion-Vermeidungsüberzeugungen zu untersuchen, die zu Anti-Fast-Fashion-Konsum geführt haben. Es wurden Daten von Konsumentinnen im Alter zwischen 20 und 39 Jahren erhoben, die Erfahrung mit dem Kauf von Fast Fashion-Marken in Korea und Spanien haben. Die Struktur der Vermeidungsüberzeugungen wurde mit Hilfe einer Faktorenanalyse zweiter Ordnung verglichen und die Daten mittels multipler Regression analysiert. Die Struktur der Vermeidungsüberzeugungen zeigte eine zufriedenstellende Validität und Reliabilität in Korea, während Deindividuation und Fremdheit als negative Überzeugungen in Spanien nicht enthalten waren. Eine Analyse des Zusammenhangs zwischen negativen Überzeugungen und Antikonsum zeigte, dass Deindividuation und Fremdheit in Korea einen positiven Einfluss auf den Antikonsum von Fast Fashion hatten. In Spanien wirkten sich schlechte Leistungen und Verantwortungslosigkeit positiv aus, während ein zu modischer Stil die Ablehnung von Fast Fashion negativ beeinflusste. Diese Ergebnisse sind ein Beitrag zur Literatur über den Anti-Konsum von Fast Fashion als Teil der Bewegung für ethischen Bekleidungskonsum. Wir können den Antikonsum von Fast Fashion durch globale Konsumentinnen und Konsumenten verstehen, den aktuellen Status von Fast Fashion auf dem globalen Markt diagnostizieren und sogar zukünftige Richtungen für Fast-Fashion-Einzelhändler vorschlagen.
Ergebnis von Aleph Alpha Luminous
- Ziel: Das Ziel dieser Studie ist es, den Anti-Fast-Fashion-Konsum globaler Verbraucherinnen und Verbraucher zu untersuchen. Konkret verfolgt die Studie zwei Ziele. Erstens versucht diese Studie, die konzeptionelle Struktur der Anti-Fast-Fashion-Überzeugungen in Korea und Spanien zu empfehlen, indem sie die von Kim und Kollegen vorgeschlagene konzeptionelle Struktur verwendet. Die Ergebnisse zeigen, dass koreanische Konsumentinnen und Konsumenten Fast Fashion meiden, wenn sie Fast Fashion als fremdartig und undifferenziert wahrnehmen.
- Methode: Die Studie wurde anhand eines interkulturellen Vergleichs zwischen Spanien und Korea durchgeführt. Die Studie ergab, dass es signifikante Unterschiede in den kulturellen Werten, Überzeugungen und Verhaltensweisen zwischen den beiden Ländern gibt. Es gibt jedoch auch einige Ähnlichkeiten in Bezug auf soziale Normen, Sitten und Gebräuche. Die Studie hat auch gezeigt, dass es einige Unterschiede in der wirtschaftlichen Entwicklung und der Einführung von Technologien zwischen den beiden Ländern gibt.
- Ergebnis: Die Studie hat gezeigt, dass es erhebliche Unterschiede zwischen den beiden Ländern in Bezug auf kulturelle Werte, Überzeugungen und Verhaltensweisen gibt. Es gibt jedoch auch einige Ähnlichkeiten in Bezug auf soziale Normen, Sitten und Gebräuche. Die Studie zeigte auch, dass es einige Unterschiede in der wirtschaftlichen Entwicklung und der Einführung von Technologien zwischen den beiden Ländern gibt.
Die Studie untersuchte die psychologische Dissidenz und die kulturelle Distanz, die durch die Beschädigung der individuellen Identität unter dem kulturellen Druck des Fast-Fashion-Konsums entstehen.
Fazit
Die Implementierung der automatischen Zusammenfassungsgenerierung für Utopia mit Hilfe von Aleph Alpha Luminous ermöglicht die effiziente Verarbeitung und Extraktion relevanter Informationen aus einer großen Anzahl von PDF-Dateien. Der Prozess gliedert sich in zwei Hauptphasen, wobei der ersten Phase die Vorverarbeitung des Textes und die Generierung von "Chunks" vorausgeht.
Die Vorverarbeitung beginnt mit dem Parsen von PDF-Dateien in Textformate, gefolgt von einer umfassenden Textbereinigung. Dieser Schritt ist entscheidend, um Rauschen zu entfernen und sicherzustellen, dass die generierten Zusammenfassungen präzise und relevant sind. Besonderes Augenmerk wird auf die Entfernung von "Rauschen" gelegt, wie beispielsweise Literaturhinweise, Kopf- und Fußzeilen sowie unwichtige Sonderzeichen.
In der ersten Phase der Abstractgenerierung werden die bereinigten Texte in überschaubare "Chunks" aufgeteilt, aus denen prägnante Abstracts generiert werden. Diese "chunks" bilden die Grundlage für die zweite Phase, in der sie thematisch gruppiert werden. Die Anwendung einer Aleph Alpha Map-Reducer-Kette ermöglicht die Generierung umfassender Zusammenfassungen verschiedener Aspekte des Textes unter Verwendung spezifischer Prompts für Zweck, Methodik, Ergebnisse und Implikationen.
Das Ergebnis ist eine abschließende Zusammenfassung des Textes, die in klare Abschnitte gegliedert ist und einen umfassenden Überblick über verschiedene Aspekte des Inhalts bietet. Die angewandte Methode trägt dazu bei, den Arbeitsablauf zu erleichtern, indem sie die effiziente Verarbeitung großer Mengen an Wissensdaten ermöglicht.
Ihr möchtet gern mehr über spannende Themen aus der adesso-Welt erfahren? Dann werft auch einen Blick in unsere bisher erschienenen Blog-Beiträge.
Auch interessant: