- 1. Einführung: KI, LLMs und Ihre Java-AnwendungenÂ
- Klärung individueller Lernziele und Erwartungen der Teilnehmer.Â
- Was ist Künstliche Intelligenz (KI) eigentlich? Eine kurze Einordnung.Â
- Large Language Models (LLMs) entmystifiziert: Was steckt dahinter für Java Entwickler?Â
- Kernkonzepte von LLMs aus Entwicklersicht (vereinfacht: Transformer, Attention).Â
- Die Evolution der LLMs und ihr wachsendes Potenzial für die Java-Anwendungsentwicklung.Â
- Typische Anwendungsfälle: Wann und wo ist der Einsatz von LLMs in Java-Projekten sinnvoll?Â
- LLMs im Vergleich zu menschlicher Intelligenz: Stärken, Schwächen und Synergien im Softwarekontext.Â
- Typische Limitierungen und Herausforderungen von LLMs (z.B. Bias, Halluzinationen ein erster Überblick).Â
- Chancen und neue Möglichkeiten durch LLM-gestützte Anwendungen im Java-Ökosystem.Â
- 2. LLMs anbinden: Provider, APIs und lokale Optionen für JavaÂ
- Überblick über führende LLM-Provider (z.B. OpenAI, Anthropic, Google) und deren Plattformen.Â
- Auswahlkriterien für LLM-Provider in Java-Projekten (Modellperformance, Kosten, Datenprivacy, Java-Kompatibilität).Â
- Verbindungsmethoden zu LLM-Services aus Java-Anwendungen:Â
- Nutzung populärer Java-SDKs (z.B. LangChain4j, konzeptionell Spring AI - Fokus auf Prinzipien, nicht auf ein spezielles Framework).Â
- Direkte API-Nutzung (HTTP-Requests, Authentifizierung, Fehlerbehandlung).Â
- Praktische Nutzung gängiger LLM-APIs mit Java (z.B. Chat Completions).Â
- Self-Hosting von LLMs für Java-Anwendungen:Â
- Optionen, Werkzeuge (z.B. OpenLLM, vLLM, Hugging Face Transformers mit Inference Endpoints) und Überlegungen.Â
- Vor- und Nachteile des lokalen Betriebs (Hardwareanforderungen, Wartung vs. Kontrolle, Datenschutz).Â
- Verständnis von LLM-Modelleigenschaften und deren Einfluss auf die AuswahlÂ
- (Architekturen, Fähigkeiten, Limitierungen, Parameter wie Größe und Token-Limits).Â
- 3. Effektives Prompt Engineering für Java-EntwicklerÂ
- Grundprinzipien des effektiven Prompt Designs: Klarheit, Spezifität, Kontext, Rollenzuweisung (Persona).Â
- Das "Setup" eines Prompts: Systemnachrichten, Kontextinjektion und Stilvorgaben.Â
- Die "Instruction" präzise formulieren: Aufgabenstellung für das LLM.Â
- Iterative Prompt-Entwicklung und Teststrategien im Java-Umfeld.Â
- Fortgeschrittene Prompting-Techniken:Â
- Zero-Shot, One-Shot und Few-Shot Prompting.Â
- Chain-of-Thought (CoT) Prompting zur Lösung komplexer Probleme.Â
- Step Decomposition: Aufgaben in kleinere, handhabbare Schritte zerlegen.Â
- Umgang mit Prompt-Beschränkungen (Token Limits) und dynamischer Kontextualisierung.Â
- Struktur und Formatierung von Prompts für optimale LLM-Verarbeitung (z.B. Delimiter).Â
- Kontextintegration aus Code und Dokumentation für Java-spezifische Aufgaben.Â
- 4. Output-Verarbeitung und Function Calling in JavaÂ
- Anfordern strukturierter LLM-Outputs (z.B. JSON, XML) und deren Verarbeitung in Java.Â
- Strategien zur Validierung, Bereinigung (Sanitization) und zum Mapping von LLM-Antworten auf Java-Datenstrukturen.Â
- LLM Function Calling (Tool Use): Konzept, Anwendungsfälle und Implementierungsmuster in Java.Â
- Definition von aufrufbaren Java-Funktionen/Tools.Â
- Parameterübergabe, Ergebnisverarbeitung und Sicherheitsaspekte bei derÂ
- Integration mit Java Business Logic.Â
- Entwurfsmuster für Real-Time LLM-Interaktionen in Java (z.B. Chatbots, virtuelle Assistenten).Â
- Umgang mit Konversationshistorie und Session-Management.Â
- Techniken zur Latenzoptimierung (z.B. Streaming vs. Batching).Â
- 5. Fortgeschrittene LLM-Architekturen: RAG und Vektordatenbanken mit JavaÂ
- Retrieval-Augmented Generation (RAG):Â
- Konzept, Architektur und typische Anwendungsfälle (z.B. Q&A über eigene Dokumente, aktuellere Informationen für LLMs).Â
- Komponenten einer RAG-Pipeline: Datenaufnahme (Ingestion), Aufbereitung (Chunking), Indexierung, Retrieval und Augmentierung der Prompts.Â
- Implementierungsmuster und Best Practices für RAG-Pipelines in Java-Anwendungen (Demonstration mit Spring AI als Beispiel).Â
- Text Embeddings:Â
- Grundlagen: Was sind Embeddings und wie repräsentieren sie semantischeÂ
- Bedeutung?Â
- Erzeugung von Text Embeddings mit LLMs über Java.Â
- Nutzung von Embeddings in Java für Aufgaben wie semantische Suche, Dokumentenähnlichkeit und Clustering.Â
- Arbeiten mit Vektordatenbanken in Java:Â
- Vorstellung des Konzepts von Vektordatenbanken und deren Java-Anbindung (allgemein).Â
- Speichern, Indexieren und Abfragen von Embedding-Sammlungen mit SQL-ähnlichen Konzepten.Â
- Orchestrierung komplexer LLM-Workflows in Java, die Retrieval, Generierung und Post-Processing kombinieren.Â
- 6. Multimodale LLM-Anwendungen mit Java entwickelnÂ
- Einführung in Multimodale KI: Verarbeitung von Text, Audio, Bild und Video durch LLMs.Â
- Potenziale und Herausforderungen multimodaler Anwendungen im Java-Kontext.Â
- Verarbeitung von Bild- und Video-Input in Java:Â
- Grundlegende Techniken zur Vorverarbeitung (z.B. Resizing, Encoding).Â
- Integration mit Java-Bibliotheken für Bild-/Videoverarbeitung (z.B. konzeptionellÂ
- OpenCV, JavaCV).Â
- Sprachverarbeitung in Java-Anwendungen:Â
- Integration von Speech-to-Text (STT) Pipelines (Audioaufnahme, Transkription).Â
- Integration von Text-to-Speech (TTS) Lösungen (Sprachsynthese, Stimmanpassung).Â
- Nutzung integrierter multimodaler LLMs aus Java-Anwendungen heraus (allgemeine Konzepte).Â
- Vergleich: Standalone STT/TTS-Lösungen vs. direkt integrierte multimodale LLMs.Â
- Best Practices für die Entwicklung multimodaler Anwendungen in JavaÂ
- (I/O-Management, Concurrency, UX-Design, Barrierefreiheit).Â
- 7. Entwicklung intelligenter Agenten mit Java und LLMsÂ
- Konzepte und Architekturen intelligenter Agenten (autonom, reaktiv, proaktiv, sozial; Typen: reaktiv, deliberativ, kollaborativ, lernend).Â
- Vorstellung von Frameworks und Bibliotheken für die Agenten-Entwicklung mit Java-Unterstützung (Überblick und Auswahlkriterien).Â
- Design und Implementierung LLM-basierter Agenten in Java:Â
- State Management und Gedächtnis (Kurzzeit, Langzeit).Â
- Prompt Engineering für Agenten-Aufgaben und Multi-Step Reasoning.Â
- Nutzung von Function Calling für Tool-Interaktion.Â
- Antwortvalidierung und Ergebnisverarbeitung.Â
- Model Context Protocol (MCP):Â
- Einführung in das MCP als Standard für Tool- und Datenintegration.Â
- Entwicklung eines eigenen MCP-Servers in Java (Beispiel).Â
- Clientseitige MCP-Integration in Java-Agenten zum Einbinden des eigenen Servers (Beispiel).Â
- Grundlagen der Agent-to-Agent Kommunikation und Multi-Agenten-Systeme (MAS):Â
- Kommunikationsparadigmen (z.B. Peer-to-Peer, Publish/Subscribe).Â
- Überblick über Standardprotokoll-Konzepte.Â
- Koordinationsstrategien in MAS.Â
- Skalierbarkeits- und Managementaspekte für Java-Agenten (Threading, Ressourcen).Â
- 8. Betrieb und Optimierung von LLM-Anwendungen in JavaÂ
- Performance Tuning für LLM-basierte Java-Anwendungen:Â
- Techniken zur Reduktion von Inferenzlatenz (konzeptionell).Â
- Strategien zur Optimierung von Durchsatz und Speichernutzung (konzeptionell).Â
- Kostenmanagement und -optimierung:Â
- Strategien zur Kostenreduktion bei LLM-Nutzung (Modellauswahl, Prompt-Optimierung, Caching).Â
- Framework zur Berechnung und Schätzung von Kosten für LLM-Inferenz und -Deployment.Â
- Modell Fine-Tuning für spezifische Java-Anwendungsfälle:Â
- Grundlagen: Wann ist Fine-Tuning sinnvoll?Â
- Überblick über den Fine-Tuning-Prozess (Datenvorbereitung, Training, Evaluation - ohne tiefgehende ML-Kenntnisse).Â
- Parameter-effiziente Fine-Tuning Methoden (z.B. LoRA - konzeptionell).Â
- Umgang mit API Rate Limits und Quotas von LLM-Providern.Â
- Strategien zur Orchestrierung von LLM-Aufrufen und komplexen Workflows.Â
- Konzepte zur Multi-Provider-Nutzung (z.B. für Failover, Kostenoptimierung).Â
- Logging und Monitoring von LLM-Interaktionen und Performance in Java-Anwendungen.Â
- 9. Herausforderungen, Sicherheit und Integration in bestehendeÂ
- Java-SystemeÂ
- Umgang mit typischen LLM-Herausforderungen:Â
- Erkennen und Mitigieren von Halluzinationen und Bias.Â
- Strategien zum Umgang mit veraltetem Wissen der Modelle.Â
- Robuste Fehlerbehandlung in LLM-basierten Java-Anwendungen:Â
- Identifizierung und Kategorisierung gängiger LLM-Fehlermodi.Â
- Implementierung von Retry-Mechanismen und Fallback-Strategien.Â
- LLM-spezifische Sicherheitsrisiken und Gegenmaßnahmen in Java:Â
- Prompt Injection: Angriffsvektoren und Verteidigungsstrategien.Â
- Schutz vor Data Poisoning und Model Theft (konzeptionell).Â
- Input-Validierung und Sanitization zur Absicherung von LLM-Interaktionen.Â
- Content Moderation und Output-Filterung zur Einhaltung von Richtlinien.Â
- Architekturmuster und Best Practices für die Integration von LLM-Funktionen in bestehende Java-Enterprise-Systeme.Â
- 10. Recht, Compliance, Testing und Ausblick für LLM-Anwendungen in JavaÂ
- Â Rechtliche Rahmenbedingungen:Â
- Der EU AI Act: Relevanz, Risikoklassen und Anforderungen für die Entwicklung von LLM-Anwendungen in Java.Â
- DSGVO-Compliance: Datenschutzaspekte bei der Verarbeitung von (potenziell) personenbezogenen Daten mit LLMs in Java-Anwendungen.Â
- Testing und Evaluierung von LLM-basierten Java-Systemen:Â
- Methoden und Strategien zur Überprüfung von Genauigkeit, Kohärenz, Bias und Sicherheit der LLM-Outputs.Â
- Ansätze für Regressionstests und Integrationstests im Java-Kontext.Â
- Abgrenzung der Schulung (Zusammenfassung der Alleinstellungsmerkmale und des Fokus).Â
- Zukünftige Entwicklungen und Trends im Bereich LLMs und Java-Anwendungsentwicklung.Â
- Ethische Überlegungen und verantwortungsvoller Umgang mit LLM-Technologie.Â
- Raum für praktische Übungen und Projekte (z.B. Entwicklung eines RAG-basierten Chatbots, Implementierung eines Agenten, Testen einer LLM-Integration - je nach Zeit und Teilnehmerinteresse).Â
- Abschlussdiskussion, Feedback und nächste Schritte für die Teilnehmer.
LernzieleNach dieser Schulung können die Teilnehmer eigenständig anspruchsvolle KI-Funktionalitäten mit LLMs in Java-Anwendungen integrieren - inklusive Prompt Engineering, Agentensysteme, Embeddings und RAG-Architekturen -, um professionelle und produktionsfähige Lösungen zu realisieren, die technischen, wirtschaftlichen und rechtlichen Anforderungen gerecht werden.
ZielgruppenDieser Kurs richtet sich an Java-Entwickler sowie Software-Architekten. Grundlegende Java-Kenntnisse werden benötigt; hilfreich, aber nicht zwingend, sind Erfahrungen mit APIs, HTTP, JSON, Build-Tools oder Java-Frameworks. KI-Vorkenntnisse sind nicht erforderlich.