Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
15
1 Vorwort
17
1.1 Zielsetzung des Buches
18
1.2 Zielgruppe
19
1.3 Was Sie schon wissen sollten
20
1.3.1 Verpflichtende Voraussetzungen
20
1.3.2 Optionale Voraussetzungen
20
1.4 Struktur des Buches
20
1.5 Wie man dieses Buch effektiv nutzt
24
1.6 Systemeinrichtung
25
1.6.1 Installation von Python
26
1.6.2 Installation der IDE
26
1.6.3 Download des Kursmaterials
28
1.6.4 Einrichtung der lokalen Python-Umgebung
28
1.6.5 Aktivieren der Umgebung
30
1.6.6 Test der Installation
31
1.7 Danksagung
32
1.8 Konventionen in diesem Buch
33
2 Einführung in die generative KI
35
2.1 Einführung in die künstliche Intelligenz
38
2.2 Die Säulen des Fortschritts in der generativen KI
42
2.2.1 Rechenleistung
42
2.2.2 Investitionen
44
2.2.3 Verbesserung der Algorithmen
45
2.3 Deep Learning
46
2.4 Schwache und allgemeine KI
48
2.5 Natural Language Processing (NLP)
51
2.5.1 NLP-Aufgaben
51
2.5.2 Architekturen
55
2.6 Large Language Models (LLMs)
56
2.6.1 Training
57
2.6.2 Daten
57
2.6.3 Vortrainiertes Modell
57
2.6.4 Instruktionsmodell (Instruction model)
57
2.6.5 Sicherheitsmodell (Safety model)
58
2.6.6 Evaluierung
59
2.7 Use-Cases
59
2.7.1 Kreatives Schreiben
59
2.7.2 Zusammenfassung
60
2.7.3 Chatbots
60
2.7.4 Übersetzung
60
2.7.5 Inhaltserzeugung
61
2.7.6 Bildung
61
2.7.7 Agentic Coding
61
2.8 Die Grenzen von LLMs
61
2.8.1 Halluzinationen
62
2.8.2 Verzerrungen und Vorurteile (Biases)
62
2.8.3 Kontextfenster und Token-Beschränkung (Context Window, Token Length Constraints)
62
2.9 Large Multimodal Models (LMMs)
62
2.9.1 Anwendungen
63
2.9.2 Herausforderungen
64
2.10 Generative KI-Anwendungen
64
2.10.1 Konsumenten
65
2.10.2 Business
65
2.10.3 Prosumer
66
2.11 Zusammenfassung
66
3 Vortrainierte Modelle
69
3.1 Was sind vortrainierte Modelle?
71
3.2 Hugging Face
71
3.3 Modellauswahl
72
3.4 Coding: Textzusammenfassung
73
3.5 Übung: Übersetzung
75
3.6 Coding: Zero-Shot-Klassifikation
77
3.7 Coding: Füllmaske
80
3.8 Coding: Frage-Antwort-Modelle
81
3.9 Coding: Erkennung benannter Entitäten (Named Entity Recognition)
83
3.10 Coding: Text-zu-Bild
85
3.11 Übung: Text-zu-Audio
87
3.12 Abschlussprojekt: Kunden-Feedback analysieren
88
3.13 Zusammenfassung
91
4 Large Language Models
93
4.1 Eine kurze Geschichte der Sprachmodelle
94
4.2 LLMs mithilfe von Python nutzen
95
4.2.1 Coding: OpenAI nutzen
96
4.2.2 Coding: OpenRouter nutzen
99
4.2.3 Multimodale Modelle
103
4.2.4 Coding: Multimodale Modelle
104
4.2.5 Coding: LLMs lokal betreiben
106
4.3 Modellparameter
109
4.3.1 Die Modelltemperatur
109
4.3.2 Top-p und Top-k
111
4.3.3 Empfehlungen
112
4.4 Modellauswahl
113
4.4.1 Leistungsfähigkeit
113
4.4.2 Wissensstand
114
4.4.3 On-Premises- vs. Cloud-Hosting
115
4.4.4 Open-Source, Open-Weight und proprietäre Modelle
115
4.4.5 Preis
115
4.4.6 Kontextfenster
115
4.4.7 Latenz
116
4.5 Messages
116
4.5.1 User
116
4.5.2 System
116
4.5.3 Assistent
117
4.6 Prompt Templates
117
4.6.1 Coding: ChatPromptTemplates
118
4.6.2 Coding: Verbesserung eines Prompts mit LangChain Hub
119
4.7 Chains
122
4.7.1 Coding: Eine einfache sequenzielle Chain
122
4.7.2 Coding: Parallele Chains
124
4.7.3 Coding: Router-Chain
126
4.7.4 Coding: Chain mit Gedächtnis
131
4.8 LLM-Schutz und -Sicherheit
135
4.8.1 LLM-Sicherheit
136
4.8.2 LLM-Schutz
137
4.9 Modellverbesserungen
143
4.10 Neue Trends
144
4.10.1 Reasoning-Modelle
145
4.10.2 Small-Language-Modelle
146
4.10.3 Test-Time Compute
148
4.11 Zusammenfassung
151
5 Prompt Engineering
153
5.1 Prompting – die Grundlagen
154
5.1.1 Prompt und Prompt Templates
154
5.1.2 Der Prompt-Engineering-Prozess
155
5.1.3 Vom Prompt zur Modellausgabe
155
5.1.4 Prompt-Komponenten
156
5.1.5 Explizites und implizites Prompting
157
5.1.6 Grundprinzipien
158
5.2 Meta-Prompting
164
5.3 Strukturierte Inputs
165
5.4 Coding: Few-Shot-Prompting
166
5.5 Chain-of-Thought
168
5.6 Zero-Shot Chain-of-Thought
169
5.7 Coding: Self-Consistency Chain-of-Thought
169
5.8 Coding: Prompt-Chaining
173
5.9 Coding: Self-Feedback
175
5.10 Zusammenfassung
180
6 Vektordatenbanken
183
6.1 Einleitung
183
6.2 Der Data-Ingestion-Prozess
186
6.3 Dokumente importieren
187
6.3.1 Ein erster Überblick
187
6.3.2 Coding: Eine einzelne Textdatei laden
188
6.3.3 Coding: Laden mehrerer Textdateien
190
6.3.4 Übung: Laden von Büchern von Project Gutenberg
193
6.4 Dokumente aufteilen
194
6.4.1 Coding: Chunking mit festen Größen
196
6.4.2 Coding: Strukturbasiertes Chunking
201
6.4.3 Coding: Semantisches Chunking
204
6.4.4 Coding: Benutzerdefiniertes Chunking
207
6.5 Einbettungen erstellen
211
6.5.1 Überblick
212
6.5.2 Coding: Wort-Einbettungen
213
6.5.3 Coding: Satzeinbettungen
220
6.5.4 Coding: Einbettungen mit LangChain erzeugen
224
6.6 Daten speichern
226
6.6.1 Auswahl einer Vektordatenbank
226
6.6.2 Coding: Lokale Vektordatenbank mit ChromaDB
227
6.6.3 Coding: Cloud-basierte Vektor-DB mit Pinecone
229
6.7 Daten abrufen
232
6.7.1 Berechnung der Ähnlichkeit
233
6.7.2 Coding: Rückgabe von Daten mittels ChromaDB
235
6.7.3 Coding: Rückgabe von Daten mittels Pinecone
237
6.8 Abschlussprojekt
239
6.8.1 Die Features der App
240
6.8.2 Datensatz
241
6.8.3 Vorbereitung der Vektordatenbank
241
6.8.4 Übung: Alle Genres aus der Vektordatenbank extrahieren
245
6.8.5 App-Entwicklung
246
6.9 Zusammenfassung
251
7 Retrieval-Augmented Generation
253
7.1 Einleitung
254
7.1.1 Retrieval-Prozess
256
7.1.2 Augmentierung
257
7.1.3 Generierung
257
7.2 Ein einfaches System zur Retrieval-Augmented Generation
258
7.2.1 Vorbereitung der Wissensbasis
258
7.2.2 Retrieval
260
7.2.3 Augmentierung
261
7.2.4 Generierung
262
7.2.5 Erstellung der RAG-Funktion
263
7.3 Fortgeschrittene Techniken
265
7.3.1 Fortgeschrittene Preä-Retrieval-Techniken
266
7.3.2 Fortgeschrittene Retrieval-Techniken
268
7.3.3 Fortgeschrittene Post-Retrieval-Techniken
286
7.4 Coding: Prompt-Caching
286
7.5 Evaluierung
292
7.5.1 Herausforderungen in der RAG-Evaluierung
293
7.5.2 Metriken
293
7.6 Zusammenfassung
296
8 Agentensysteme
297
8.1 Einführung in KI-Agenten
298
8.2 Verfügbare Frameworks
300
8.3 Einfache Agentensysteme
301
8.3.1 Agentenbasiertes RAG
301
8.3.2 ReAct
306
8.4 Agenten-Framework: LangGraph
310
8.4.1 Einfacher Graph: Assistent
310
8.4.2 Router-Graph
315
8.4.3 Graph mit Tools
319
8.5 Agenten-Framework: Microsoft Agent Framework
324
8.5.1 Konversation zweier Agenten
325
8.5.2 Human-in-the-Loop
329
8.6 Agenten-Framework: CrewAI
336
8.6.1 Einleitung
336
8.6.2 Installation
337
8.6.3 Einrichtung der Crew
338
8.7 Agenten-Framework: OpenAI Agents
350
8.7.1 Erste Schritte mit einem einzelnen Agenten
350
8.7.2 Arbeit mit mehreren Agenten
352
8.7.3 Agent mit Such- und Dateiabruf-Funktionalität
354
8.8 Agenten-Framework: Pydantic AI
356
8.9 Überwachung von Agentensystemen
359
8.9.1 AgentOps
359
8.9.2 Logfire
364
8.10 Zusammenfassung
366
9 Model Context Protocol
369
9.1 Was ist das Model Context Protocol?
370
9.2 Das M×N-Integrationsproblem
371
9.3 Architektur: Host, Client und Server
372
9.4 Finden von geeigneten MCP-Servern
374
9.5 Coding: Einen bestehenden MCP-Server einbinden
374
9.5.1 Einbindung mittels Extension-Panel
375
9.5.2 Einbindung über die Konfigurationsdatei
375
9.5.3 Auswahl der verwendeten MCP-Server
376
9.6 Coding: Einen eigenen MCP-Server entwickeln
377
9.6.1 Serverskript erstellen
377
9.6.2 Server testen
379
9.7 MCP in Agenten-Frameworks nutzen
383
9.8 Sicherheit und Grenzen
383
9.8.1 Berechtigungen und Scopes
384
9.8.2 Vertrauen bei der Installation
384
9.8.3 Angriffsarten
385
9.8.4 Grenzen des Protokolls
386
9.9 Zusammenfassung
387
10 Agentic Coding
389
10.1 Was ist Agentic Coding?
390
10.2 Die Werkzeuglandschaft
392
10.2.1 Harness
392
10.2.2 IDE vs. Coding-App und Terminal
394
10.2.3 Coding: Installation und Einrichtung unseres Agenten
395
10.3 Kontextmanagement
405
10.3.1 Verständnis der Codebasis durch den Agenten
406
10.3.2 AGENTS.md / CLAUDE.md
406
10.3.3 Kontextkompression
410
10.3.4 Subagenten
410
10.4 Skills
412
10.4.1 Aufbau
412
10.4.2 Einbindung eines vorhandenen Skills
413
10.4.3 Erstellung eines eigenen Skills
416
10.4.4 Probleme und Lösungen
417
10.5 Hooks
419
10.6 MCP-Anbindung
420
10.7 Arbeitsweisen und Workflows
422
10.7.1 Einführung
422
10.7.2 Superpowers
422
10.8 Coding: Ein Projekt mit OpenCode umsetzen
424
10.9 Mit lokalen Modellen arbeiten
425
10.10 Best Practices, Kosten und Grenzen
426
10.11 Zusammenfassung
427
11 Deployment
429
11.1 Die Anwendungsarchitektur
430
11.2 Die Deploymentstrategie
432
11.2.1 REST-API-Entwicklung
432
11.2.2 Deployment-Ziele
433
11.2.3 Coding: Lokales Deployment
434
11.3 Entwicklung einer eigenständigen Anwendung
442
11.4 Deployment auf Heroku
449
11.4.1 Erstellen einer neuen App
450
11.4.2 Download und Konfiguration der CLI
450
11.4.3 Eine app.py-Datei erzeugen
451
11.4.4 Procfile-Setup
451
11.4.5 Umgebungsvariablen
452
11.4.6 Die Python-Umgebung
452
11.4.7 Lokale Überprüfung des Ergebnisses
453
11.4.8 Los geht's: Das Deployment auf Heroku
453
11.4.9 Die App stoppen
455
11.5 Deployment auf Streamlit.io
456
11.5.1 Das GitHub-Repository anlegen
456
11.5.2 Eine neue App erstellen
457
11.6 Deployment auf Render
459
11.7 Zusammenfassung
461
12 Ausblick
463
12.1 Fortschritte in der Modellarchitektur
463
12.2 Grenzen und Probleme von LLMs
464
12.2.1 Halluzinationen
464
12.2.2 Vorurteile (Biases)
465
12.2.3 Falschinformationen
467
12.2.4 Geistiges Eigentum
467
12.2.5 Interpretierbarkeit
467
12.2.6 Jailbreaking LLMs
468
12.3 Regulatorische Entwicklungen
470
12.4 Künstliche allgemeine Intelligenz und künstliche Superintelligenz
470
12.5 KI-Fähigkeiten in der nahen Zukunft
471
12.6 Hilfreiche Ressourcen und Empfehlungen
473
12.7 Zusammenfassung
474
Über den Autor
477
Index
479