In den vorangegangenen Lektionen lag der Fokus auf der Optimierung von Prompts und dem Abruf von Informationen (RAG). Am Tag 22 widme ich mich der Erstellung eines Agenten, der aktiv Werkzeuge nutzen kann. Das ReAct-Konzept: Reasoning and Acting Sprachmodelle (LLMs) besitzen die Fähigkeiten in der Textgenerierung, weisen jedoch Schwächen bei exakten Berechnungen oder dem Zugriff auf Echtzeitdaten auf. Um diese Lücke zu schließen, wurde das ReAct-Paradigma („Reasoning and Acting“) entwickelt. Das Konzept kombiniert zwei Prozesse: Reasoning (Überlegen)Das Modell analysiert die Eingabe und plant die nächsten Schritte (ähnlich wie bei Chain-of-Thought). Acting (Handeln)Das Modell entscheidet, ein externes Werkzeug (Tool) aufzurufen, um spezifische Informationen zu erhalten oder Berechnungen durchzuführen. Ablauf DSPy abstrahiert diesen komplexen Prozess durch das Modul dspy.ReAct. Definition des Werkzeugs…
Kommentare geschlossenjentsch.io Beiträge
Large Language Models (LLMs) haben einen Reifegrad erreicht, der über rein quantitative Parameter wie Token-Durchsatz oder Parameteranzahl hinausgeht. Modelle werden zunehmend durch spezifische Antwortcharakteristiken und Verhaltensmuster differenziert, die ich hier unter dem Begriff der „Modell-Persönlichkeit“ zusammengefasse. Diese resultieren primär aus den verwendeten Trainingsdatensätzen, den Verfahren des Reinforcement Learning from Human Feedback (RLHF) sowie den systemseitigen Pre-Prompts. Ich habe in den letzten Monaten und Jahren viele unterschiedliche Modelle genutzt und mis sind dabei folgende Unterschiede bei den Modellen aufgefallen. Google Gemini 3 (Der Oktopus) Gemini 3 zeichnet sich durch eine native Verarbeitung unterschiedlicher Datenmodalitäten aus. Die Architektur ist darauf optimiert, massive Kontextfenster (bis zu 2 Millionen Tokens) systematisch zu erforschen. Aktuell ist es meine erste Wahl, wenn ich bereit bin, die…
Kommentare geschlossenDer Tag 21 der DSPy-Challenge dient dem Rückblick auf die dritte Woche und der technischen Vertiefung der Retrieval Augmented Generation (RAG). Nachdem ich in den vergangenen Tagen die Grundlagen von RAG, den Umgang mit Multi-Hop-Fragen und die Integration eigener Daten behandelt habe, liegt der Fokus nun auf der qualitativen Verbesserung des Retrieval-Schritts mit Hilfe von HyDE. Hypothetical Document Embeddings (HyDE) Eine häufige Schwachstelle in RAG-Systemen ist die Diskrepanz zwischen der Suchanfrage und den gespeicherten Dokumenten. Während Fragen oft kurz und prägnant sind, beinhalten die Dokumente detaillierte Kontexte. Dies kann dazu führen, dass die Vektorähnlichkeitssuche keine optimalen Ergebnisse liefert. Eine Lösung für dieses Problem werde ich heute mit Hypothetical Document Embeddings (HyDE) implementieren. Die Kernidee von HyDE besteht darin, nicht die…
Kommentare geschlossenDieser Blog-Beitrag beleuchtet die Evaluierung des KI-Modells IQuest-Coder-V1-40B-Instruct-GGUF. Die Durchführung der Tests erfolgt mittels llama.cpp auf einem HP ZBook Ultra G1a, ausgestattet mit einem AMD Ryzen AI Max+ PRO 395 Prozessor und 128 GB Arbeitsspeicher. Ziel dieser Untersuchung ist es, die Leistungsfähigkeit des Modells unter realen Hardware-Bedingungen zu analysieren. Das IQuest-Coder-V1-40B-Instruct-Modell, entwickelt von IQuestLab, ist ein 40-Milliarden-Parameter-Modell, das auf der CodeLlama-Architektur basiert. Es wurde speziell für Aufgaben im Bereich der Code-Generierung und -Verständnis trainiert. Die Modellbeschreibung hebt dessen Fähigkeiten in verschiedenen Benchmarks hervor, darunter HumanEval, MBPP und GSM8K. Auf dem HumanEval-Benchmark erreicht das Modell eine Pass@1-Rate von 72,1%, während auf MBPP eine Pass@1-Rate von 70,5% erzielt wird. Diese Werte positionieren das Modell im oberen Bereich der verfügbaren Sprachmodelle für Code-Aufgaben.…
Kommentare geschlossenDie Implementierung eines Retrieval Augmented Generation (RAG) Systems ermöglicht es großen Sprachmodellen (LLMs), auf spezifisches, nicht im Trainingsdatensatz enthaltenes Wissen zuzugreifen. Während in den vorangegangenen Tagen der Challenge grundlegende RAG-Konzepte behandelt wurden, liegt der Fokus an Tag 20 auf der Integration eigener, lokaler Daten. Dieser Beitrag beschreibt die Erstellung einer RAG-Pipeline in DSPy, die lokale Dokumente indiziert und mithilfe derQdrant Vektordatenbank durchsuchbar macht. Konzept und Architektur Ein RAG-System für eigene Daten besteht in DSPy aus drei Hauptkomponenten: Die DatenquelleUnstrukturierter Text, der in Vektoren (Embeddings) umgewandelt wird. Das Retrieval Model (RM)Eine Komponente, die semantisch relevante Abschnitte sucht. Hierfür wird Qdrant verwendet, eine leistungsfähige Open-Source-Vector-Search-Engine mit der ich in der Vergangenheit schon viel gute Erfahrungen habe. Das DSPy-ProgrammEin Modul, das den Retriever…
Kommentare geschlossenIn diesem Blogpost teste ich, wie man den neuen VECTOR-Datentyp in MariaDB 11 verwendet. Wie wird er definiert? Wie speichert MariaDB die Daten? Welche Abfragen sind möglich – und wo liegen die aktuellen Grenzen? Ziel ist es, ein Bild davon zu bekommen, ob sich MariaDB mit VECTOR als Backend für moderne KI- und RAG-Szenarien eignet oder ob man weiterhin auf spezialisierte Vektordatenbanken setzen sollte. In der Vergangenheit habe ich meistens Qdrant oder ChromaDB verwendet und musste dann immer 2 Datenbank-Verbindungen in der App managen. Eine SQL Datenbank und eine Vector-Datenbank. Mit dem Datentyp VECTOR in MariaDB könnte das ein Ende haben. Datenbank erstellen und Benutzerrechte vergeben Der erste Schritt ist die Erstellung der Datenbank selbst. In meinem Test nenne ich…
Kommentare geschlossenIn diesem Artikel zeige ich Schritt für Schritt, wie man MariaDB 11.8 auf Ubuntu 24.04 (noble) installiert – ohne Root-Passwort, sondern mit dem sicheren Unix-Socket-Login über sudo. Ziel der Installation Vorbereitung: Repository-Management installieren Bevor man ein externes Repository einbinden kann, muss sichergestellt werden, dass alle nötigen Werkzeuge installiert sind. Erklärung Ohne diese Pakete schlägt die Repository-Einbindung später still oder mit kryptischen Fehlern fehl. MariaDB Signing Key importieren MariaDB signiert seine Pakete. Der Schlüssel wird nicht global, sondern nur repository-spezifisch installiert – so wie es Best Practice ist. Erklärung Vorteil: Der Schlüssel gilt nur für dieses Repo, nicht für das ganze System. Keyring überprüfen Mit dem folgenden Befehl kann man prüfen, ob die pgp Datei ein OpenPGP Public Key ist. Ausgabe:…
Kommentare geschlossenIn komplexen RAG-Systemen (Retrieval Augmented Generation) stammt der Kontext oft aus heterogenen Quellen. Dies führt zwangsläufig zu Situationen, in denen abgerufene Informationen inkonsistent sind oder sich direkt widersprechen. Ein robustes System darf diese Widersprüche nicht ignorieren oder willkürlich eine Information priorisieren, sondern muss sie erkennen und transparent machen. Strategien zur Konfliktbewältigung in RAG-Systemen Sprachmodelle tendieren dazu, Antworten zu glätten. Werden einem LLM widersprüchliche Fakten im Kontext präsentiert (z. B. „Die Hauptstadt ist X“ und „Die Hauptstadt ist Y“), versucht das Modell oft, eine der beiden Optionen ohne Begründung zu wählen oder beide unlogisch zu vermischen. Dies führt zu Halluzinationen oder faktisch falschen Aussagen. Um die Zuverlässigkeit zu erhöhen, müssen Strategien implementiert werden, die den Umgang mit Ambivalenz steuern: Explizite Instruktion…
Kommentare geschlossenIn den vorangegangenen Einheiten habe ich eine einfache RAG-Pipeline (Retrieval Augmented Generation) implementiert. Diese Systeme funktionieren gut, solange die Antwort auf eine Frage in einem einzigen Textabschnitt zu finden ist. In der Realität erfordern viele Anfragen jedoch das Verknüpfen von Informationen aus unterschiedlichen Quellen. Am 18. Tag der Challenge liegt der Fokus auf sogenannten Multi-Hop-Fragen. Es wird erläutert, wie die Architektur eines DSPy-Moduls angepasst werden muss, um iterative Suchprozesse durchzuführen und komplexe Zusammenhänge aufzulösen. Theorie: Die Herausforderung von Multi-Hop-QA Eine Multi-Hop-Frage ist eine Anfrage, die nicht durch einen einzelnen Abrufschritt (Retrieval) beantwortet werden kann, sondern logische Zwischenschritte erfordert. Ein klassisches Beispiel lautet: „In welcher Stadt wurde der Autor von ‚Harry Potter‘ geboren?“ Ein Standard-RAG-System führt eine Vektorsuche basierend auf der…
Kommentare geschlossenAn Tag 17 der 30-Tage-DSPy-Challenge liegt der Fokus auf der systematischen Verbesserung einer bestehenden Retrieval Augmented Generation (RAG) Pipeline. Eine RAG-Pipeline habe ich gestern bereits implementiert. Nun probiere ich, wie der DSPy-Optimizer genutzt werden können, um die Qualität der generierten Antworten automatisiert zu steigern. Die Rolle von Optimizern in DSPy Ein DSPy-Optimizer, auch Teleprompter genannt, ist ein Algorithmus, der die Prompts automatisch optimiert. Anstatt Prompts manuell zu verfeinern (Prompt Engineering), lernt der Optimizer aus Daten, wie die Anweisungen an das Sprachmodell (LLM) formuliert sein müssen, um die bestmögliche Leistung zu erzielen. Der Prozess funktioniert wie folgt: TrainingsdatensatzDer Optimizer benötigt einen Satz von Beispiel-Fragen und den dazugehörigen, qualitativ hochwertigen Antworten. EvaluierungsmetrikEine Metrik ist erforderlich, um die Qualität der vom LLM generierten…
Kommentare geschlossen







