{"id":17684,"date":"2025-06-30T14:37:27","date_gmt":"2025-06-30T12:37:27","guid":{"rendered":"https:\/\/www.centigrade.de\/?post_type=blog&#038;p=17684"},"modified":"2025-08-13T11:26:29","modified_gmt":"2025-08-13T09:26:29","slug":"open-source-llms-im-test-wie-gut-eignen-sie-sich-fuer-als-entwicklungsunterstuetzung","status":"publish","type":"blog","link":"https:\/\/www.centigrade.de\/de\/blog\/open-source-llms-im-test-wie-gut-eignen-sie-sich-fuer-als-entwicklungsunterstuetzung\/","title":{"rendered":"Open-Source-LLMs im Test: Wie gut eignen sie sich als Entwicklungsunterst\u00fctzung?"},"content":{"rendered":"<h2><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17712\" src=\"https:\/\/www.centigrade.de\/wordpress\/wp-content\/uploads\/Engineering-Illustration.Keyvisual-1.jpg\" alt=\"Zwei Bildschirme mit Code Illustration\" width=\"1000\" height=\"560\" srcset=\"https:\/\/www.centigrade.de\/wordpress\/wp-content\/uploads\/Engineering-Illustration.Keyvisual-1.jpg 1000w, https:\/\/www.centigrade.de\/wordpress\/wp-content\/uploads\/Engineering-Illustration.Keyvisual-1-300x168.jpg 300w, https:\/\/www.centigrade.de\/wordpress\/wp-content\/uploads\/Engineering-Illustration.Keyvisual-1-768x430.jpg 768w, https:\/\/www.centigrade.de\/wordpress\/wp-content\/uploads\/Engineering-Illustration.Keyvisual-1-24x13.jpg 24w, https:\/\/www.centigrade.de\/wordpress\/wp-content\/uploads\/Engineering-Illustration.Keyvisual-1-36x20.jpg 36w, https:\/\/www.centigrade.de\/wordpress\/wp-content\/uploads\/Engineering-Illustration.Keyvisual-1-48x27.jpg 48w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/h2>\n<h2><strong>1. Einf\u00fchrung<\/strong><\/h2>\n<p>In diesem Blogartikel widmen wir uns der Frage, inwiefern lokal im Unternehemen bereitgestellte Open-Source-Modelle ausgereift genug sind, um mit den &#8222;gro\u00dfen&#8220;, kommerziellen Modellen wie Claude oder Chat-GPT mithalten zu k\u00f6nnen. Der Rummel um KI \u2013 egal in welcher Branche \u2013 k\u00f6nnte kaum gr\u00f6\u00dfer sein. \u00dcberall werden Automatisierung und Effizienzsteigerungen versprochen, denn Maschinen sollen in gleicher Zeit mehr leisten, als es dutzende Menschen je k\u00f6nnten. Wir untersuchen, in wie weit das auch f\u00fcr die kostenfreien Open-Source-Modelle gilt. Daf\u00fcr haben wir uns ein realistisches <a href=\"https:\/\/github.com\/realworld-angular\/realworld-angular\" target=\"_blank\" rel=\"noopener noreferrer\">Angular-Beispielprojekt<\/a> genommen und den LLMs <strong>Code Llama 3.1, Deep Seek Coder 2, Phind Code Llama<\/strong> und <strong>Wizard Coder<\/strong> ein paar Aufgaben gestellt&#8230;<!--more--><\/p>\n<p>Die Resultate werden dann mit den Antworten von Claude Sonnet 4 verglichen, um einen soliden Referenzwert zu haben. Wer gewinnt? Und wie knapp? Das lest ihr hier.<\/p>\n<p>Die Ergebnisse dieses Tests beinhalten nicht vermeidbare, subjektive Bewertungen und spiegeln daher unweigerlich unsere Perspektive wider. Der ein oder andere Leser wird sicherlich andere Erfahrungen gemacht haben und daher unsere Meinung zum Testergebnis nicht teilen. Und das ist auch in Ordnung so!<\/p>\n<h3><strong>1.1 Motivation<\/strong><\/h3>\n<p>Large Language Models (LLMs) sind l\u00e4ngst nicht mehr nur ein Hype \u2013 sie haben sich als praktische Helfer in der Softwareentwicklung etabliert. Besonders im Webdevelopment, wo sich Frameworks, Bibliotheken und Best Practices st\u00e4ndig weiterentwickeln, k\u00f6nnen sie wertvolle Unterst\u00fctzung bieten. Doch wie gut sind lokal Open-Source-Modelle mit bis zu 60B wirklich? Und lohnt sich ihr Einsatz im professionellen Umfeld?<\/p>\n<p>Genau das wollen wir in unserem Test herausfinden. Denn wenn Open-Source-LLMs halten, was sie versprechen, k\u00f6nnten sie nicht nur unsere Workflows optimieren, sondern auch eine unabh\u00e4ngigere, und vor allem datenschutzfreundlichere Alternative zu propriet\u00e4ren Modellen darstellen.<\/p>\n<h3><strong>1.2 Getestete LLMs<\/strong><\/h3>\n<p>In unserem Test haben wir uns die bekanntesten und erfolgreichsten Open-Source-Modelle herausgesucht. Darunter Modelle, die von gro\u00dfen Konzernen wie Meta oder DeepSeek AI entwickelt und trainiert wurden, sowie solche, die auf dem <a href=\"https:\/\/huggingface.co\/spaces\/bigcode\/bigcode-models-leaderboard\" target=\"_blank\" rel=\"noopener noreferrer\">Big Code Models Leaderboard<\/a> hoch gerankt sind.<\/p>\n\n<table id=\"tablepress-15\" class=\"tablepress tablepress-id-15\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Name  <\/th><th class=\"column-2\">Parameteranzahl <\/th><th class=\"column-3\">Open-Source<\/th><th class=\"column-4\">Beschreibung<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">Code Llama 3.1<\/td><td class=\"column-2\">8B<\/td><td class=\"column-3\">?<\/td><td class=\"column-4\">Meta\u2019s leistungsstarkes Modell f\u00fcr Code-Generierung und -Verst\u00e4ndnis.<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">Deep Seek Coder 2<\/td><td class=\"column-2\">15.7B<\/td><td class=\"column-3\">?<\/td><td class=\"column-4\">Spezialisiert auf Code-Analyse und -Generierung mit erweitertem Kontext.<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">Phind Code Llama<\/td><td class=\"column-2\">3.8B<\/td><td class=\"column-3\">?<\/td><td class=\"column-4\">Optimiert f\u00fcr pr\u00e4zise Antworten und schnelle Code-Hilfe.<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">Wizard Coder<\/td><td class=\"column-2\">33B<\/td><td class=\"column-3\">?<\/td><td class=\"column-4\">Feinabgestimmt f\u00fcr komplexe Programmieraufgaben und Refaktorierungen.<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">Claude Sonnet 4<\/td><td class=\"column-2\">nicht ver\u00f6ffentlicht<\/td><td class=\"column-3\">?<\/td><td class=\"column-4\">Anthropics propriet\u00e4res Modell mit starken F\u00e4higkeiten in Code-Verst\u00e4ndnis.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-15 from cache -->\n<h2><strong>2. Testaufbau<\/strong><\/h2>\n<p>Der Test findet in einem realit\u00e4tsnahen <strong>Angular 18<\/strong>-Projekt statt, das als realistische Basis f\u00fcr unsere Bewertung dient. Als IDE nutzen wir <strong><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">VS Code<\/a><\/strong> mit der <strong><a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=Continue.continue\" target=\"_blank\" rel=\"noopener noreferrer\">Continue Extension<\/a><\/strong>, die es erm\u00f6glicht, lokal gehostete Modelle einzubinden. Die Open-Source-LLMs werden auf unserer Infrastruktur mittels Ollama bereitgestellt und in Continue integriert, um einen komfortablen Zugriff auf die Modelle aus der IDE heraus zu schaffen.<\/p>\n<h3>Hardware Limitierungen<\/h3>\n<p>Durch das Hosten auf der eigenen Infrastruktur, unterliegen wir nat\u00fcrlich Hardware-Limitierungen, die bspw. maximale Parameteranzahl der Modelle beschr\u00e4nken. Die gr\u00f6\u00dften, bei uns noch reibungslos lauff\u00e4higen Modelle haben 60 Milliarden Parameter. Mit gr\u00f6\u00dferen Modellen w\u00fcrde der Test hier und da sicherlich anders ausfallen.<\/p>\n<h3><strong>2.1 Vorgehen<\/strong><\/h3>\n<p>Alle Modelle erhalten dieselben acht Aufgaben mit identischen Prompts und Kontextdaten. Die Tests decken verschiedene Aspekte der Webentwicklung ab:<\/p>\n<ul>\n<li data-list=\"ordered\"><strong>App- und Routing-Struktur erkl\u00e4ren<\/strong> (Code-Verst\u00e4ndnis): Das LLM soll die Routing-Struktur erkl\u00e4ren und den Aufbau der App beleuchten.<\/li>\n<li data-list=\"ordered\"><strong>API eines Services analysieren<\/strong> (Code-Analyse): Hier sollte erkl\u00e4rt werden, welche Verantwortung ein Service \u00fcbernimmt und wie er in der App eingesetzt wird.<\/li>\n<li data-list=\"ordered\"><strong>Simples Feature hinzuf\u00fcgen<\/strong> (Code-Modifikation): Die LLMs sollen eine Artikel-Vorschau um die Informationen &#8222;Wortzahl&#8220; und &#8222;Lesezeit&#8220; erweitern.<\/li>\n<li data-list=\"ordered\"><strong>Bug beheben<\/strong> (Critical Thinking): Hier wurde ein Bug eingebaut, der sehr subtile Auswirkungen hat. Die LLMs sollen ihn finden und l\u00f6sen.<\/li>\n<li data-list=\"ordered\"><strong>Refaktorierung von Initialisierungs-Observables<\/strong> (Refactoring): Hier wurden den Modellen mehrere Komponenten-Initialisierungslogiken pr\u00e4sentiert, die auf RxJS beruhen und ein gemeinsames Pattern aufweisen. Dieses Pattern soll gefunden und sauber extrahiert werden.<\/li>\n<li data-list=\"ordered\"><strong>Accessibility-Pr\u00fcfung<\/strong> (A11y-Kenntnisse): Diese Aufgabe pr\u00fcft das Erkennen von Accessibility-Problemen in Komponenten.<\/li>\n<li data-list=\"ordered\"><strong>Unit-Tests schreiben<\/strong> (Test-Automatisierung): Den LLMs wird eine Komponente pr\u00e4sentiert, f\u00fcr die sie Unit-Tests schreiben sollen.<\/li>\n<li data-list=\"ordered\"><strong>Anti-Pattern-Erkennung<\/strong> (Framework-spezifisches Wissen): Dieser Task pr\u00fcft das Wissen rund um Best-Practices, sei es Angular-spezifisch oder allgemein zur Softwareentwicklung.<\/li>\n<\/ul>\n<h3><strong>2.2 Bewertung<\/strong><\/h3>\n<p>Die Antworten werden nach folgenden Kriterien bewertet:<\/p>\n<ul>\n<li data-list=\"ordered\"><strong>Richtigkeit<\/strong>: Sind die Aussagen korrekt oder irref\u00fchrend?<\/li>\n<li data-list=\"ordered\"><strong>Vollst\u00e4ndigkeit<\/strong>: Fehlen essentielle Aspekte?<\/li>\n<li data-list=\"ordered\"><strong>Verst\u00e4ndlichkeit<\/strong>: Ist die Antwort klar und strukturiert?<\/li>\n<li data-list=\"ordered\"><strong>Relevanz<\/strong>: Trifft die L\u00f6sung den Kern der Frage?<\/li>\n<\/ul>\n<p>Jeder Aspekt erh\u00e4lt eine Punktzahl von 1\u201310, aus denen der Durchschnitt als Gesamtbewertung berechnet wird.<\/p>\n<h2>Ergebnisse &#8230;<\/h2>\n<p>Der K\u00fcrze halber haben wir die genauen Aufgabenstellungen und deren Antworten der LLMs hier nicht mit aufgef\u00fchrt; der Artikel zeigt lediglich die Benotung und Auswertung der Ergebnisse.<\/p>\n<h3>Einordnung der Bewertung<\/h3>\n<p>Obwohl wir uns gro\u00dfe M\u00fche gegeben haben, die Bewertungen so objektiv wie m\u00f6glich zu halten, ist ein gewisser Bias nicht auszuschlie\u00dfen. Nicht jeder wird mit allen vergebenen Punktzahlen einverstanden sein, und das ist auch legitim so. Arbeitsumgebungen und -anforderungen variieren oft stark, daher ist eine &#8222;one-size-fits-all&#8220; Bewertung auch gar nicht m\u00f6glich.<\/p>\n\n<table id=\"tablepress-17\" class=\"tablepress tablepress-id-17\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Task<\/th><th class=\"column-2\">Claude Sonnet 4 <\/th><th class=\"column-3\">Code Llama <\/th><th class=\"column-4\">DeepSeek Coder 2 <\/th><th class=\"column-5\">Phind Code Llama<\/th><th class=\"column-6\">Wizard Coder   <\/th><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">1 \u2013 Code Verst\u00e4ndnis<\/td><td class=\"column-2\">9,75<\/td><td class=\"column-3\">7,75<\/td><td class=\"column-4\">8,75<\/td><td class=\"column-5\">8,25<\/td><td class=\"column-6\">7,25<\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">2 \u2013 Code Analyse<\/td><td class=\"column-2\">10,0<\/td><td class=\"column-3\">8,25<\/td><td class=\"column-4\">9,25<\/td><td class=\"column-5\">7,0<\/td><td class=\"column-6\">9,0<\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">3 \u2013 Feature-Erweiterung<\/td><td class=\"column-2\">10,0<\/td><td class=\"column-3\">6,25<\/td><td class=\"column-4\">7,75<\/td><td class=\"column-5\">4,0<\/td><td class=\"column-6\">8,75<\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">4 \u2013 Bug-Fixing<\/td><td class=\"column-2\">10,0<\/td><td class=\"column-3\">5,25<\/td><td class=\"column-4\">5,75<\/td><td class=\"column-5\">5,0<\/td><td class=\"column-6\">3,5<\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">5 \u2013 Refactoring eines Observables<\/td><td class=\"column-2\">5,5<\/td><td class=\"column-3\">4,25<\/td><td class=\"column-4\">1,0<\/td><td class=\"column-5\">4,75<\/td><td class=\"column-6\">2,5<\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">6 \u2013 Accessibility-Check<\/td><td class=\"column-2\">9,75<\/td><td class=\"column-3\">5,0<\/td><td class=\"column-4\">5,25<\/td><td class=\"column-5\">6,25<\/td><td class=\"column-6\">5,25<\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">7 \u2013 Unit-Tests schreiben<\/td><td class=\"column-2\">8,75<\/td><td class=\"column-3\">7,0<\/td><td class=\"column-4\">4,25<\/td><td class=\"column-5\">8,75<\/td><td class=\"column-6\">3,0<\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\">8 \u2013 Angular Best Practices<\/td><td class=\"column-2\">10,0<\/td><td class=\"column-3\">1,25<\/td><td class=\"column-4\">8,25<\/td><td class=\"column-5\">2,0<\/td><td class=\"column-6\">2,75<\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-1\"><\/td><td class=\"column-2\"><\/td><td class=\"column-3\"><\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td>\n<\/tr>\n<tr class=\"row-11\">\n\t<td class=\"column-1\">\u00d8 \/ 10<\/td><td class=\"column-2\">9,22 \/ 10<\/td><td class=\"column-3\">5,63 \/ 10<\/td><td class=\"column-4\">6,28 \/ 10<\/td><td class=\"column-5\">5,75 \/ 10<\/td><td class=\"column-6\">5,25 \/ 10<\/td><td class=\"column-7\"><\/td><td class=\"column-8\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-17 from cache -->\n<h3>Erkl\u00e4rungen zu den Extrema<\/h3>\n<p>Um die h\u00f6chst- und niedrigst-Punktzahlen besser einordnen zu k\u00f6nnen, haben wir die Extrema hier kurz beschrieben:<\/p>\n\n<table id=\"tablepress-19\" class=\"tablepress tablepress-id-19\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Model<\/th><th class=\"column-2\">Bester Task<\/th><th class=\"column-3\">Schlechtester Task<br \/>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">Code Llama\t<\/td><td class=\"column-2\">8,25 Punkte bei Code Analyse<\/td><td class=\"column-3\">1,25 Punkte bei Angular Best Practices<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\"><\/td><td class=\"column-2\">- Erkannte Methoden und HTTP-Endpunkte korrekt<br \/>\n- Klare funktionale Beschreibung des Services<br \/>\n- Allerdings: Filter-Parameter unklar, Fehlerbehandlung fehlt<\/td><td class=\"column-3\">- Fast alle Vorschl\u00e4ge falsch oder irrelevant<br \/>\n- Verstand takeUntilDestroyed nicht<br \/>\n- Erkannte nur Single-Responsibility-Versto\u00df (SRP)<br \/>\n- Allerdings: Da Angular im Gegensatz zu anderen Frontend-Frameworks wie bspw. React eher seltener gebraucht wird, halten wir dieses Ergebnis f\u00fcr nachvollziehbar, da die LLM-Trainingsdaten entsprechend wenig Angular-Wissen enthalten werden.<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">Deep Seek Coder 2\t<\/td><td class=\"column-2\">9,25 Punkte bei Code Analyse<\/td><td class=\"column-3\">1,0 Punkte bei Refactoring eines Observables<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\"><\/td><td class=\"column-2\">- Erkannte Methoden und HTTP-Endpunkte korrekt<br \/>\n- Klare funktionale Beschreibung des Services<br \/>\n- Allerdings: Fehlende Parameter\/R\u00fcckgabetypen, veraltete DI-Empfehlung<\/td><td class=\"column-3\">- Die Aufgabe konnte nicht zu Ende gebracht werden<br \/>\n- Nach wiederholten Malen bricht die Ausgabe an immer derselben Stelle ab<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">Phind Llama<\/td><td class=\"column-2\">8,75 Punkte bei Unit-Tests schreiben<\/td><td class=\"column-3\">2,0 Punkte bei Angular Best Practices<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\"><\/td><td class=\"column-2\">- Tests kompilierten direkt<br \/>\n- Best Practices wie Abh\u00e4ngigkeiten-Doubles, das Beibehalten vom Smoke-Test wurden eingehalten<br \/>\n- Template wird mitbetestet<br \/>\n-Allerdings: Hat f\u00e4lschlicher eine Standalone-Komponente in das declarations-Array gepackt.<\/td><td class=\"column-3\">- Veraltete Unsubscribe-Patterns empfohlen<br \/>\n- Unn\u00f6tige Komponenten-Extraktionen vorgeschlagen<br \/>\n- Keine hilfreichen Architektur-Empfehlungen<br \/>\n- Allerdings: Da Angular im Gegensatz zu anderen Frontend-Frameworks wie bspw. React eher seltener gebraucht wird, halten wir dieses Ergebnis f\u00fcr nachvollziehbar, da die LLM-Trainingsdaten entsprechend wenig Angular-Wissen enthalten werden.<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">Wizard Coder<\/td><td class=\"column-2\">9,0 Punkte bei Code Analyse<\/td><td class=\"column-3\">2,5 Punkte bei Refactoring eines Observables<\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\"><\/td><td class=\"column-2\">- Gute, kurze und pr\u00e4zise Auflistung der Klassen-API<br \/>\n- Benutzt technische Ausdr\u00fccke und Konzepte<br \/>\n- Zeigt auf, dass es sich um eine REST-API handelt<br \/>\n- Behandelt das Thema Error-Handling<\/td><td class=\"column-3\">- Code, der nicht kompiliert, wird vorgeschlagen (ignoriert Kapselung)<br \/>\n- generierter Code gleicht inhaltlich nicht dem Original<br \/>\n- F\u00fchrt einen Bug ein, da ein falscher Service aufgerufen wird<br \/>\n- Schlechte Benennung von Funktionen<\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-1\">Claude\t<\/td><td class=\"column-2\">10,0 Punkte bei Code Analyse, Feature-Erweiterung und Bug-Fixing<\/td><td class=\"column-3\">5,5 Punkte bei Refactoring eines Observables<\/td>\n<\/tr>\n<tr class=\"row-11\">\n\t<td class=\"column-1\"><\/td><td class=\"column-2\">\t- Gute und pr\u00e4gnante Beschreibung von APIs und deren Nutzen<br \/>\n- Vorgeschlagener Code ist einfach, gut benannt und kompiliert<br \/>\n- Fehlerursache und -szenario wird schl\u00fcssig erkl\u00e4rt und Bug wird gefunden<\/td><td class=\"column-3\">- Code kompiliert zwar, aber geschaffene Abstraktion bietet keinen Mehrwert<br \/>\n- Ein Codeausschnitt wurde semantisch 1:1 wiedergegeben<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-19 from cache -->\n<h2>&#8230; Und Auswertung<\/h2>\n<p>Das propriet\u00e4re Modell Claude dominiert mit <strong>\u00d8 9,2\/10<\/strong> klar und \u00fcbertrifft Open-Source-Modelle (\u00d8 5,6\u20136,3) in fast allen Aufgaben, besonders bei <strong>komplexem Debugging, Refactoring und Framework-Wissen<\/strong>. Hier eine Zusammenfassung der Ergebnistabelle:<\/p>\n\n<table id=\"tablepress-20\" class=\"tablepress tablepress-id-20\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Modell<\/th><th class=\"column-2\">St\u00e4rken<\/th><th class=\"column-3\">Schw\u00e4chen<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">Code Llama<\/td><td class=\"column-2\">Hohe Scores bei Routineaufgaben (Task 1, Task 2)<\/td><td class=\"column-3\">Schw\u00e4chen bei komplexer Umsetzung mit semantischen Details und nicht aktueller Wissensstand (Task 5, Task 8)<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">Deep Seek Coder<\/td><td class=\"column-2\">Robust bei beschreibenden Aufgaben (Task 1, Task 2)<\/td><td class=\"column-3\">Versagt bei Architektur-\/Pattern-Aufgaben (Task 5, Task 8).<br \/>\nRefactoringaufgabe konnte nicht beendet werden.<br \/>\nAccessibility eher oberfl\u00e4chlich<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">Phind<\/td><td class=\"column-2\">Sehr gut bei strukturierter Sprache und Tests (Task 1, Task 7)<\/td><td class=\"column-3\">Schwach bei Angular-Details, Refactoring, Anti-Pattern-Erkennung<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">Wizard Coder<\/td><td class=\"column-2\">Sehr stark bei expliziten Aufgaben mit klarer Struktur (Task 2, Task 3)<\/td><td class=\"column-3\">Komplettausf\u00e4lle bei Anti-Pattern-Erkennung (Task 5, Task 8).<br \/>\nSchw\u00e4chen bei exakter Fehlerursache und testbarem Code.<br \/>\nNeigt zu unrichtigen Aussagen.<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">Claude<\/td><td class=\"column-2\">\u00dcberzeugt in fast allen Disziplinen, hat gute und aktuelle Kenntnisse zu Angular und Best Practices<\/td><td class=\"column-3\">Schwach, wenn es um semantische Details geht, die sinnbringend refaktoriert werden sollen<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-20 from cache -->\n<p><strong>St\u00e4rken aller LLMs:<\/strong><\/p>\n<ul>\n<li data-list=\"bullet\">Code-Verst\u00e4ndnis:<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">Zusammenfassen von offensichtlichen App-Architekturen<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">Zusammenfassen von Klassen-APIs<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">Benutzung von Klassen und Komponenten<\/li>\n<\/ul>\n<p><strong>Durchwachsene Performance<\/strong><\/p>\n<ul>\n<li data-list=\"bullet\">Unit-Test-Generierung<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">Von &#8222;zu aufw\u00e4ndig zum Laufen zu bringen&#8220; bis &#8222;kompiliert out-of-the-box&#8220;<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">Von &#8222;relevante Sachen ausgelassen&#8220; bis &#8222;zu viele Details getestet&#8220;<\/li>\n<li data-list=\"bullet\">Feature-Erweiterung<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">Von &#8222;enth\u00e4lt absolute Beginner-Level-Fehler&#8220; bis &#8222;einwandfrei implementiert&#8220;<\/li>\n<\/ul>\n<p><strong>Schw\u00e4chen der <em>open-source<\/em> LLMs:<\/strong><\/p>\n<ul>\n<li data-list=\"bullet\">Subtile Bugs finden<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">der Bug wird nicht auf eine oder wenige konkrete Stellen festgelegt, sondern es werden viele M\u00f6glichkeiten &#8222;geraten&#8220;<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">eine Art Checkliste wird gegeben, die nicht unbedingt was mit dem Fehler zu tun hat<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">die Erkl\u00e4rungen zum Bug ergeben zuweilen keinen wirklichen Sinn im tats\u00e4chlichen Fehlerkontext<\/li>\n<li data-list=\"bullet\">Schlecht im <strong>Critical Thinking<\/strong> (Bugfixing, Best Practices)<\/li>\n<li data-list=\"bullet\">Oberfl\u00e4chliches <strong>Accessibility- und Angular-Wissen<\/strong><\/li>\n<\/ul>\n<p><strong>Schw\u00e4chen <em>aller<\/em> LLMs:<\/strong><\/p>\n<ul>\n<li data-list=\"bullet\">RxJS \/ Observables refaktorieren<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">sehr h\u00e4ufig werden sinnfreie Abstraktionen geschaffen<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">dadurch ist auch die Benennung schlecht und wenig verst\u00e4ndlich<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">meistens kompiliert der Code nach dem Refactoring nicht mehr<\/li>\n<li class=\"ql-indent-1\" data-list=\"bullet\">Code wird komplizierter, nicht einfacher<\/li>\n<\/ul>\n<h2>Fazit<\/h2>\n<p>Open-Source-LLMs reichen f\u00fcr einfache Code-Generierung aus, doch f\u00fcr professionelle Entwicklung sind (noch) propriet\u00e4re Modelle \u00fcberlegen. W\u00e4hrend erfahrene Entwickler von den Modellen wertvolle Denkanst\u00f6\u00dfe erhalten k\u00f6nnen, besteht bei Einsteigern die Gefahr, dass sie durch falsche oder veraltete Vorschl\u00e4ge der LLMs fehlerhafte Konzepte \u00fcbernehmen und sich dadurch ung\u00fcnstige Gewohnheiten aneignen. Die Modelle haben ganz unterschiedliche St\u00e4rke- und Schw\u00e4cheprofile, was zu einem breiten Spektrum von Anwendungsfeldern aber auch -grenzen f\u00fchrt.<\/p>\n<p>Am Ende des Tages z\u00e4hlen die Resultate. Wer KI-Modelle effektiv einsetzt, kann sie zu einem wertvollen Werkzeug machen, um verschiedenste Aufgaben, schnell und komfortabel zu erledigen. Wir f\u00fcr unseren Teil bleiben gespannt, was k\u00fcnftige Modelle uns noch bescheren werden und experimentieren gerne mit ihnen weiter.<\/p>\n","protected":false},"author":82,"featured_media":0,"template":"","tags":[984,395,839,515],"class_list":["post-17684","blog","type-blog","status-publish","hentry","tag-ai-de","tag-development","tag-ki","tag-web-engineering"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.centigrade.de\/de\/wp-json\/wp\/v2\/blog\/17684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.centigrade.de\/de\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.centigrade.de\/de\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.centigrade.de\/de\/wp-json\/wp\/v2\/users\/82"}],"version-history":[{"count":11,"href":"https:\/\/www.centigrade.de\/de\/wp-json\/wp\/v2\/blog\/17684\/revisions"}],"predecessor-version":[{"id":17735,"href":"https:\/\/www.centigrade.de\/de\/wp-json\/wp\/v2\/blog\/17684\/revisions\/17735"}],"wp:attachment":[{"href":"https:\/\/www.centigrade.de\/de\/wp-json\/wp\/v2\/media?parent=17684"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.centigrade.de\/de\/wp-json\/wp\/v2\/tags?post=17684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}