KI-Codierung: Ein Spektrum der Mensch-KI-Zusammenarbeit

2025-08-02
KI-Codierung: Ein Spektrum der Mensch-KI-Zusammenarbeit

Dieser Artikel untersucht Strategien für KI-unterstütztes Codieren und beschreibt den Prozess als ein Spektrum der Mensch-KI-Zusammenarbeit. Von minimaler KI-Abhängigkeit (ähnlich der Diskussion von Problemen mit Kollegen eines anderen Unternehmens) bis hin zur maximalen Abhängigkeit (Delegieren von Aufgaben an einen Junior-Programmierer) beschreibt der Autor verschiedene Interaktionsstufen und betont die Wichtigkeit der Wahl der richtigen Strategie je nach Kontext, wobei die Lerntiefe und die Effizienz ausgeglichen werden.

Mehr lesen
Entwicklung Code-Zusammenarbeit

Eine Komödie der Irrtümer: Meine Amateur-Suchbibliothek vs. Elasticsearch

2025-06-06
Eine Komödie der Irrtümer: Meine Amateur-Suchbibliothek vs. Elasticsearch

Der Autor vergleicht seine Pandas-basierte Volltextsuchbibliothek SearchArray mit Elasticsearch anhand des BEIR-Benchmarks. Die Ergebnisse sind demütigend: SearchArray schneidet in allen Bereichen deutlich schlechter ab als Elasticsearch. Der Artikel untersucht die Gründe und hebt Optimierungen in produktionsreifen Suchmaschinen wie den WAND-Algorithmus und effiziente invertierte Indizes hervor. Das Fehlen dieser Optimierungen in SearchArray führt zu schlechter Performance. Der Autor folgert, dass SearchArray für das Prototyping mit kleineren Datensätzen geeignet ist, nicht aber für große Retrieval-Systeme.

Mehr lesen
Entwicklung

Suchmaschinen mit LLMs aufladen: Ein günstiger und schneller Ansatz

2025-04-09
Suchmaschinen mit LLMs aufladen: Ein günstiger und schneller Ansatz

Dieser Artikel beschreibt den Aufbau eines schnellen und kostengünstigen Suchdienstes mithilfe von Large Language Models (LLMs). Der Autor implementiert eine FastAPI-Anwendung, die ein leichtgewichtiges LLM (Qwen2-7B) aufruft und Google Kubernetes Engine (GKE) Autopilot für die automatisierte Clusterverwaltung nutzt, um eine strukturierte Analyse von Suchanfragen zu erreichen. Der Build und das Deployment von Docker-Images, kombiniert mit einem Valkey-Caching-Mechanismus, verbessern die Performance und Skalierbarkeit erheblich. Dieser Ansatz vermeidet häufige Aufrufe teurer Cloud-APIs, senkt die Kosten und zeigt das Potenzial, LLMs auf lokaler Infrastruktur auszuführen, und bietet eine neue Perspektive auf den Aufbau intelligenterer und schnellerer Suchmaschinen.

Mehr lesen
Entwicklung

Dumme LLM-Suchrichter mit klassischem ML besiegen

2025-01-24
Dumme LLM-Suchrichter mit klassischem ML besiegen

Der Autor untersucht die Verwendung eines lokalen LLMs als Suchrelevanz-Richter, eine kostengünstige Alternative zu OpenAI. Einzelne LLM-Urteile sind unzuverlässig, daher schlägt der Artikel vor, die Bewertungen mehrerer Produktattribute (Name, Klassifizierung, Beschreibung usw.) mehrerer LLMs mithilfe von klassischem maschinellem Lernen (z. B. Entscheidungsbäume) zu kombinieren, um die Genauigkeit zu verbessern. Experimente zeigen, dass dieser Ansatz menschliche Präferenzen vorhersagen und die Logik hinter menschlichen Labels aufdecken kann, was die Optimierung von Suchmaschinen unterstützt.

Mehr lesen
Entwicklung

Wegwerfkode statt Design-Dokumente bevorzugen: Eine effizientere Softwareentwicklungsmethode

2024-12-15
Wegwerfkode statt Design-Dokumente bevorzugen: Eine effizientere Softwareentwicklungsmethode

In der Softwareentwicklung ist die traditionelle Methode, zuerst ein Design-Dokument zu erstellen und dann schrittweise zu entwickeln, nicht immer effizient. Der Autor Doug Turnbull schlägt eine "Coding-Binge"-Methode vor: Ein Prototyp wird schnell mit einem temporären PR implementiert, frühzeitiges Feedback vom Team eingeholt, das Design verfeinert und dann schrittweise in produktionsfähige PRs zerlegt. Diese Methode fördert schnelle Iteration, frühzeitiges Auffinden von Problemen und betrachtet den Code selbst als beste Dokumentation. Obwohl Design-Dokumente in bestimmten Situationen nützlich sind, plädiert der Autor für "zeigen statt erzählen" und nutzt Code-Prototypen für schnelle Validierung und Iteration, um eine effizientere Softwareentwicklung zu erreichen.

Mehr lesen
Entwicklung Code-Prototyp