Beantwortung von Fragen aus der Unternehmensdokumentation mit Transformers meistern | von Gabriel Secco | Juni 2023

0
27


Einführung

Bei der Beantwortung von Fragen (QA) kommt die Leistungsfähigkeit von Sprachmodellen der Herausforderung entgegen, wertvolle Informationen aus dezentraler, unzusammenhängender oder sogar veralteter Dokumentation in Ihrem Unternehmen zu extrahieren. Im heutigen informationsreichen Zeitalter ist die Fähigkeit, schnell präzise Antworten aus unzähligen Textual content- und Quellensammlungen abzurufen, wichtiger denn je.

Dieses Tutorial vermittelt Ihnen das Wissen und die Fähigkeiten, um die ersten Schritte der QS-Struktur Ihres Unternehmens aufzubauen. Am Ende dieses Tutorials werden Sie Schritt für Schritt verstehen, wie Sie die Produktivität Ihres Unternehmens steigern können, indem Sie den Menschen die Informationen und richtigen Antworten näher bringen.

Sammeln Sie Ihre Daten

Für den Aufbau eines leistungsstarken QA-Programs ist die Erfassung relevanter Daten von entscheidender Bedeutung. In diesem Thema zeigen wir einen Beispielprozess zum Sammeln von Informationen aus Wikipedia mithilfe von Python und zum Speichern dieser für die spätere Datenverarbeitung.

Daten aus Wikipedia beziehen:

import json
import wikipediaapi

def collect_wiki_data(matters, save_to_file=True):
# Initialize a Wikipedia session
wiki_wiki = wikipediaapi.Wikipedia('en')
# Acquire data from Wikipedia
knowledge = []
for subject in matters:
web page = wiki_wiki.web page(subject)
if web page.exists():
article_data = {
'title': web page.title,
'abstract': web page.abstract,
'sections': []
}
for part in web page.sections:
article_data['sections'].append({
'title': part.title,
'content material': part.textual content
})
knowledge.append(article_data)

if save_to_file:
# Save the collected knowledge to a file in knowledge folder.
for article in knowledge:
with open(f'knowledge/{article["title"]}.txt', 'w') as f:
print(f"Writing {article['title']} to file")
f.write(f"Title: {article['title']}")
f.write(f"Abstract: {article['summary']}")
f.write("Sections:")
for part in article['sections']:
f.write(f" - {part['title']}: {part['content']}")
f.shut()
return knowledge

def save_wiki_data(matters):
knowledge = collect_wiki_data(matters)
# Save the collected knowledge to a file in knowledge folder.
with open('knowledge/_all_data.txt', 'w') as f:
f.write(json.dumps(knowledge))

def predominant():
# Outline a listing of matters or search queries
matters = ['Artificial intelligence', 'Machine learning', 'Data science', 'Neural networks', 'Deep learning', 'Natural language processing', 'Computer vision', 'Reinforcement learning', 'Supervised learning', 'Unsupervised learning', 'Semi-supervised learning', 'Recommender systems', 'Data mining', 'Big data', 'Data engineering', 'Data visualization', 'Data analysis', 'Data wrangling', 'Data modeling', 'Data munging', 'Data architecture', 'Data collection', 'Data governance', 'Data quality', 'Data security', 'Data integrity', 'Data enrichment', 'Data transformation', 'Data fusion', 'Data lake', 'Data warehouse', 'Data mart', 'Data silo', 'Data asset', 'Data asset framework', 'Data asset management', 'Data asset metadata', 'Data asset owner', 'Data asset quality']
save_wiki_data(matters)

if __name__ == "__main__":
predominant()

Fragen stellen

Wir werden untersuchen, wie man mit Hugging Face Transformers Fragen beantwortet. Wir werden ein vorab trainiertes Transformatormodell verwenden, um Antworten aus einem bestimmten Kontext (unserem Quelltext aus Wikipedia) zu extrahieren. Siehe den folgenden Code:

from transformers import pipeline
import os

# immediate for query
q = enter("What's your query? ")

# Load the mannequin
mannequin = pipeline('question-answering')
# Load the info
knowledge = ""
with open("knowledge/_all_data.txt", "r") as f:
knowledge = f.learn()
f.shut()

next_q = True
whereas next_q:
# Get the reply
reply = mannequin(query=q, context=knowledge)
print(f"Query: {q}")
print(f"Reply: '{reply['answer']}' with rating {reply['score']}")
# Immediate for one more query
next_q = enter("Do you will have one other query? (y/n) ")
if next_q == "y":
q = enter("What's your query? ")
else:
next_q = False
print("Goodbye!")

Schlussfolgerungen

Ergebnisse

Die Wirksamkeit des QA-Programs, das mithilfe von Hugging Face Transformers und einem Unternehmensdokumentationskorpus aufgebaut wurde, ermöglichte kurze Antworten auf spezifische Fragen wie:

Query: what was the primary laptop to beat a world champion chess participant?
Reply: 'Deep Blue' with rating 0.9719266891479492

Auf andere einfache Fragen gab das Modell eine schlechte Antwort:

Query: what alphago did ?
Reply: 'AlphaGo' with rating 0.3987176716327667
Anticipated: gained 4 out of 5 video games of Go in a match with Go champion Lee Sedol

Obwohl die Antwort mit einer niedrigen Punktzahl angezeigt wird, befanden sich diese Informationen direkt neben dem alphaGo-Zitat im Korpus.

Einschränkungen

Die Beantwortung grundlegender Fragen (Single Span) mithilfe von Transformatormodellen hat ihre Grenzen. Erstens sind diese Modelle darauf ausgelegt, prägnante Antworten innerhalb eines bestimmten Bereichs des Eingabedokuments zu liefern. Sie haben möglicherweise Schwierigkeiten mit Fragen, die mehrere Abschnitte oder komplexe Überlegungen erfordern, die über eine einzelne Passage hinausgehen.
Es ist wichtig, sich dieser Einschränkungen bei der Beantwortung von Fragen in einem einzigen Zeitbereich bewusst zu sein und bei der Bearbeitung komplexer Fragen oder Quellen mit gegensätzlichen Informationen kritisches Denken, Faktenprüfung und die Berücksichtigung mehrerer Perspektiven zu üben.



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here