Skip to content

Tag 1 Block 4: Einführung in Retrieval Augmented Generation (RAG)

Überblick

In diesem Block lernen wir die Grundlagen von Retrieval Augmented Generation (RAG) kennen - eine leistungsstarke Methode, um Large Language Models (LLMs) mit externen Daten anzureichern.


Lernziele

  • Verstehen, was RAG ist und warum es für Finance, Risk und Controlling relevant ist
  • Kennenlernen der grundlegenden Komponenten einer RAG-Pipeline
  • Erlernen des Ladens verschiedener Dokumenttypen mit LangChain
  • Durchführen erster praktischer Übungen mit Finanzdokumenten

Was ist Retrieval Augmented Generation (RAG)?

RAG kombiniert zwei Schlüsselkonzepte: 1. Retrieval: Das Abrufen relevanter Informationen aus einer Datenbasis 2. Generation: Die Erstellung von Antworten durch ein LLM basierend auf diesen Informationen


Warum RAG für Finance, Risk und Controlling?

  • Aktualität: LLMs haben nur Wissen bis zu ihrem Trainingszeitpunkt
  • Genauigkeit: Reduziert Halluzinationen durch Faktenverankerung
  • Compliance: Nachvollziehbarkeit der Antworten durch Quellenangaben
  • Vertraulichkeit: Interne Daten bleiben im Unternehmen

Anwendungsfälle in Finance, Risk und Controlling

  • Automatisierte Beantwortung von Finanzfragen basierend auf Quartalsberichten
  • Risikoanalyse durch Auswertung interner Dokumente
  • Compliance-Prüfung durch Abgleich mit Regularien
  • Controlling-Assistenten für schnellen Zugriff auf Kennzahlen

Grundlegende Komponenten einer RAG-Pipeline

  1. Dokumentenladung: Einlesen verschiedener Dokumenttypen
  2. Dokumentenaufteilung: Zerlegung in handhabbare Chunks
  3. Vektorisierung: Umwandlung von Text in numerische Repräsentationen
  4. Speicherung: Ablage in einer Vektordatenbank
  5. Retrieval: Abrufen relevanter Dokumente
  6. Generation: Erstellung von Antworten durch ein LLM

LangChain als Framework

LangChain ist ein Python-Framework, das: - Die Erstellung von LLM-Anwendungen vereinfacht - Modulare Komponenten für jeden Schritt der RAG-Pipeline bietet - Eine große Community und viele Integrationen hat

from langchain.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma

Dokumentenladung mit LangChain

LangChain bietet über 80 verschiedene Loader für: - Textdateien (.txt, .md) - Office-Dokumente (.docx, .pptx, .xlsx) - PDFs - E-Mails - Webseiten - Datenbanken - APIs


Beispiel: Laden eines PDF-Dokuments

from langchain.document_loaders import PyPDFLoader

# Laden eines Jahresberichts
loader = PyPDFLoader("jahresbericht_2023.pdf")
documents = loader.load()

print(f"Anzahl der geladenen Seiten: {len(documents)}")
print(f"Erste Seite: {documents[0].page_content[:100]}...")

Beispiel: Laden einer Excel-Datei

from langchain.document_loaders import UnstructuredExcelLoader

# Laden einer Finanztabelle
loader = UnstructuredExcelLoader("finanzkennzahlen.xlsx")
documents = loader.load()

print(f"Anzahl der extrahierten Elemente: {len(documents)}")

Beispiel: Laden von Webinhalten

from langchain.document_loaders import WebBaseLoader

# Laden von Finanzinformationen aus dem Web
loader = WebBaseLoader("https://www.bundesbank.de/de/statistiken")
documents = loader.load()

print(f"Geladene Inhalte: {len(documents)}")

Metadaten verstehen und nutzen

Jedes Dokument in LangChain hat: - page_content: Den eigentlichen Textinhalt - metadata: Zusätzliche Informationen wie Quelle, Seitenzahl, etc.

# Beispiel für Metadaten
print(documents[0].metadata)
# Ausgabe: {'source': 'jahresbericht_2023.pdf', 'page': 0}

Herausforderungen beim Dokumentenladen

  • Formatvielfalt: Unterschiedliche Dokumenttypen erfordern verschiedene Loader
  • Strukturierte vs. unstrukturierte Daten: Tabellen vs. Fließtext
  • Qualität der Extraktion: Besonders bei PDFs mit komplexem Layout
  • Große Dateien: Speicher- und Performanceprobleme

Übungsaufgaben

  1. Laden Sie einen Jahresbericht als PDF
  2. Extrahieren Sie Daten aus einer Excel-Tabelle mit Finanzkennzahlen
  3. Laden Sie Informationen von einer Finanz-Website

Ausblick auf den nächsten Block

Im nächsten Block werden wir uns mit der Aufteilung von Dokumenten und der Erstellung von Vektordatenbanken beschäftigen - wichtige Schritte, um große Dokumentmengen effizient durchsuchbar zu machen.


Ressourcen