KI Chatbots 2025 - der grosse Vergleich

DeepSeek-R1 und Co auf dem Heimcomputer im Eigentest

Posted by eumel8 on February 08, 2025 · 26 mins read

Einstieg

Eines gleich vorweg: Ich bin nicht der grosse AI-Experte. Auch wenn ich 2018 schon mal an einem AI-Hackathon teilgenommen habe, und mich 2011 mit MapReduce und Tokenizer beschäftigte, bin ich weder beruflich noch privat in das Thema AI weiter eingestiegen. Das Thema schien zu weit weg zu sein, auch wenn es abundzu doch Berührungspunkte gab. ChatGPT von openAI hat alles verändert. KI ist plötzlich massentauglich geworden, quasi über Nacht. Jetzt kann man das auch noch autark betreiben. Schaut mal rein.

Schnellergebnis

Wer den Artikel nicht bis zu Ende lesen möchte, bekommt hier schon das Ergebnis: Eine richtige KI gibt es nicht. Das ist wie, als wenn man sich ein Auto kaufen möchte, oder ein Haus. Die Geschmäcker sind verschieden und auch die Bedürfnisse eines jeden Menschen. Welche Anforderungen habe ich an eine KI? Seit DeepSeek-R1 versuchen Menschen Antworten zu aktuellen politischen Ereignissen zu finden oder vergangenen gesellschaftliche Ereignissen in China. Mag man spannend finden, aber man hat das Thema vielleicht noch nicht verstanden. Also doch der volle Exkurs.

Large Language Model (LLM)

Ein Large Language Model (LLM) ist sowas wie ein Einweckglas voll mit Wissen. Quasi eine Enzyklopädie mit allen möglichen Informationen, zusammengequetscht und abgepackt. Dabei verstehen Computer gar keine Sprache, sie kennen nur die berühmten Nullen und Einsen, wie damals an der Lochstreifenstanze, wo alles begann. Mit dem Natural Language Processing (NLP) kann der Computer jetzt auch menschliche Sprachen verstehen. Also etwa bei einer Suchmaschine gebe ich einen Suchbegriff ein und nicht 11011. Mit dem Deep Learning oder Machine Learning kann der Computer jetzt nicht nur natürliche, menschliche Sprachen verstehen, sondern kann diese interpretieren, mit seiner Datenmenge abgleichen und daraus Rückschlüsse ziehen. Das Ergebnis kann dann eine neue Erkenntnis sein, die der Computer uns mitteilt. Basis sind aber immer menschliche Informationen, die er irgendwann bekommen hat, bevor man ihn in das Einweckglas gesperrt hat.

Auf die Grösse kommt es an

Es gibt verschiedene LLM und dasselbe LLM in verschiedenen Grössen. Die Grösse beschreibt die Anzahl der Parameter, die im LLM verarbeitet wurden. Am Anfang waren das unendlich viele, sodass es gigantische Mengen an Grafikspeicher (GPU) bedurfte, um das Model überhaupt zu starten. Mittlerweile ist das alles optimiert und verkleinert. Eine gängige Grösse ist etwa 7B, was für 7 Billion, also 7 Milliarden Parameter steht. So ein Model ist rund 5GB gross und läuft auf jedem handelsüblichen Heim-PC. Die Endausbaustufe enthält nochmal 100 Mal mehr und damit steigt dann auch wieder der Hardwarebedarf. Auf Youtube gibt es einige Videos von Leuten, die mit Hardware 671b, das grösse Model von Deepseek-R1 starten.

Aber Obacht: Grösseres Model und mehr Rechenleistung bedeutet nicht automatisch, dass das LLM auch schneller ist. Die Antwortzeiten liegen teilweise im Minutenbereich. Wenn es darum geht, schnell dem Anwender etwas zu präsentieren, gibt es Turbo-Modelle wie GPT-Turbo. Dort antworten die LLM nahezu in Echtzeit, allerdings liegen sie mit dem “Schnellschuss” auch mal daneben. Das ist wie bei spontanen Antworten beim Menschen gegenüber wohlüberlegten.

Retrieval Augmented Generation (RAG)

Das LLM im Einweckglas weiss vielleicht sehr viel, ist aber doch relativ dumm, denn Wissen entwickelt sich täglich weiter. Was gestern noch richtig war, kann heute durch neue Informationen völlig falsch sein. Um dem Rechnung zu tragen, bekommt das Einweckglass jetzt einen Internetanschluss. Jetzt ist es aber nicht so, dass da jemand von der Telekom kommt, irgendwas da rumkabelt und dann ist unsere KI allwissend. Erstmal muss ich die Daten von einer Webseite abrufen, etwa mit einem Webcrawler. Dann muss ich sie in eine Vectordatenbank schreiben, etwa Chroma. Wenn dann jemand unsere KI etwas fragt, etwa über ein Eingabefeld auf einer Chatbot-Webseite, werden diese zwei Informationsquellen, das LLM und die ChromaDB kombiniert, um menschenverständliche Ausgaben zu tätigen, die aktuelle Informationen behinhalten. Hier liegt dann auch der Fehler aus dem obigen Beispiel zu Fragen zur aktuellen politischen Lage. Es gibt das Einweckglaswissen, was teilweise 5 Jahre alt sein kann. Der Geist aus der Flasche trifft auf aktuelle Informationen, die ihm ein Mensch vorgesetzt hat. Im Microsoft Copilot sind das etwa Nachrichtenseiten von Welt, Spiegel und Co. Das Ergebnis kann nur eine Wiedergabe der Nachrichten sein, andere Logiken geben die Modelle nicht her.

Ollama Chatbot

An der Stelle, bevor es mit dem grossen Vergleichstest losgeht, ein Hinweis auf eine technische Implementierung:

Der Ollama Chatbot

Mit einfachen Mitteln kann man sich sich ein RAG zusammenbasteln und schauen, was es für Ergebnisse liefert. Im Repo liegen auch die Ergebnisse des Vergleichstests.

Mit Ollama kann man übrigens relativ einfach eines der über 180 Open Source LLM herunterladen und starten. Das Programm gibt es für Windows, Linux und Mac. Die LLM werden ständig verbessert und neuere Versionen auf der Plattform ollama.com bereitgestellt. Und direkt gleich noch eine Seite, auf der Einweckgläser eingekocht werden: https://huggingface.co. Dort “lernen” die LLM ihre Daten. Neben LLM von namhaften Herstellern kann dort auch jeder sein privates LLM zusammenstellen.

Model Garden

Ja, tatsächlich, bei der Google Cloud Platform gibt es den Model Garden, was für eine kreative Wortschöpfung. Wie schon erwähnt gibt es allein bei Ollama über 180 Open Source Model. Je nach Beliebtheit und Häufigkeit der Downloads schauen wir uns ein paar an. Die Reihenfolge geht nach dem Alphabet:

Der Platzhirsch der Firma Meta, aka Facebook. Es ist bzw. war bislang das beliebteste Model und besticht durch seine Schnelligkeit. Wenn man an Facebook denkt und überlegt, was die Firma für Resourcen an Technik und Programmierer zur Verfügung hat, kann man sich ungefähr einiges über die Qualität vorstellen.

Da ist schon der Elefant im Raum: Der chinesische Newcomer, der nicht nur seine Firma sondern auch sein Flagschiff-Produkt fast so wie den fiktiven Supercomputer aus Douglas Adams’s Per Anhalter durch die Galaxy nennt (Deep Though). Technisch basiert das Model auf Llama und Qwen. Wir werden es etwas entzaubern.

Ebenfalls ein Llama basiertes Model “für den ultimativen generalen Einsatz”

Ein auf Effizienz trainiertes Model für Mathematik, Wissenschaft und Programmierung

Das Open Source Leichtgewicht Model von Google Deepmind. “Leicht” ist aber relativ. Im Testszenario wollte es nicht starten, weil Systemresourcen fehlten.

Etwas aus der EU, nämlich aus Frankreich und der Firma Mistral AI

Qwen ist ein chinesisches Model, entwickelt von der Firma Alibaba Cloud

Tülu stammt von der US-amerikanischen Firma Allen AI mit Sitz in Seattle.

Der Vergleich

Auch hier eins vorweg: Der Vergleich unterliegt keinem wissenschaftlichen Benchmark. Diese wurden schon genug veröffentlich und haben für entsprechende Kursstürze gesorgt. In diesem Vergleich versuche ich das tunlichst zu vermeiden. In der Messreihe haben wir ein RAG aufgebaut. Über einen Crawler werden Daten aus diesem Blog und dem Cosignwebhok Repo in eine VectorDB gespeichert. Das LLM wird von Ollama geladen und kann auf die VectorDB zugreifen. Ansonsten wartet es auf die Eingaben des Benutzers.

Geselligkeit

In Frage 1 haben wir versucht, uns mit der KI etwas anzufreunden und fragten sie:

Was hast Du gestern gemacht?

Damit wurden gleich mehrere Aufgabenstellungen gegeben. Zum Ersten muss die Frage sprachlich übersetzt werden. Die meisten Modelle verstehen nur Englisch und bekommen eine Frage auf Deutsch vor den Latz geknallt. Die Modelle Llama und Codellama antworten demnach mit

“Ich habe wahrscheinlich nichts Besonderes getan, da ich ein Computerprogramm bin und keine physische Präsenz habe”.

Codellama spricht aber kein Deutsch und antwortet ähnlich in Englisch. Zumindest hat er die Frage verstanden. Dolphin3 antwortet, dass er gestern Blogbeiräge über vCluster (eines meiner Themen im K8sBlog) gelesen hat, was ziemlich gut ist, da er tatsächlich tags zuvor die VectorDB dazu gelesen hat. Mistral behauptet dann auch gleich rotzfrech, dass er die Artikel selber geschrieben hat. Gemma und Qwen haben keine Ahnung, was gestern los war und Falcon3 antwortet, dass sein Wissenstand von Septemer 2021 ist, was definitiv nicht gestern war.

Und DeepSeek-R1? Der nimmt im think-Mode ziemlich umständlich die Frage auseinander, stellt fest, dass es Deutsch ist, nimmt dann die RAG-Sourcen, die etwas über vCluster aussagen, aber nichts über den gestrigen Tag. Als Fazit weiss er eigentlich gar nichts. Qwen habe ich dann nochmal gefragt und die Antwort ist erstaunlich:

So, yesterday (April 7, 2023), I was not active or involved in any activities since I exist solely as a program running on servers.

Es sieht also so aus, als wenn das Qwen LLM am 08.04.2023 eingeweckt wurde und seit dem ist sein Leben zu Ende. Es war quasi sein letzter Tag. Traurig.

In Frage 2 wollen wir wissen:

Wie weit ist es bis Berlin?

Mit dieser Frage würde man rausbekommen, ob die KI unseren oder ihren Standort weiss. Die Antwort wäre 30 km (Brieselang) oder der Standort des Testcomputers in Magdeburg. Codellama weiss schon mal, dass Berlin die Hauptstadt ist und im Nordosten von Deutschland liegt. Und dass er keine Echtzeitinformationen hat, um die Entfernung gerade mal zu messen. Tulu3 antwortet auf Deutsch, dass es von München bis Berlin 700 km sind und es mit dem Auto etwa 8 Stunden dauert. Beeindruckend, dass er auf Deutsch antwortet und dazu auch nur 70 Sekunden brauch. Jedoch ist die Antwort falsch. Auf der A9 sind es 586 km bis München und es dauert etwa 5,5 Stunden. Llama empfiehlt einen Kartendienst wie Google Maps zu nutzen. Gemma kennt sein eigenes Produkt Google Maps nicht und antwortet immer gleich mit Unwissen, brauch dazu aber immer weniger Zeit. Falcon3 schreibt, dass es etwa 500km sind, was etwa den Weg zur Landesgrenze an der Zugspitze entspricht. Und Dolphin3 verblüfft total: Es sind 584 km.

Programmierung

Programmierung ist tatsächlich etwas, für die ich KI am ehesten brauche. Einfach auf der Suche nach einem schnellen Hack, um ein bestimmtes Ziel zu erreichen. Ob das Ergebnis wahr oder nicht wahr ist, zeigt sich einzig daran, ob das Programm dann funktioniert und die Ausgabe entsprechend ist. Ich habe 3 Aufgaben im Bereich Golang, Python und Shell-Programmierung gestellt.

Aufgabe 1:

Schreibe ein Go Programm, um die Pods in einem Kubernetes Cluster zu listen.

Hier gibt es hervorragende Client Bibliotheken vom Kubernetes-Projekt, die man nutzen kann. Und es gibt sie auch schon seit vielen Jahren. Codellama, Llama, Falcon3 und Tulu3 wollen dazu schon mal ein Paket aus dem cosignwebhook benutzen, welches sie als RAG Resource bekommen haben. Die Ausgabe ist gut formatiert lesbar und teilweise mit Erklärungen geschmückt. Funktioniert nur nicht, weil cosignwebhook diese Funktion gar nicht bereitstellt. Dolphin3, Mistral und Qwen nutzen die korrekten Kubernetes Client Bibliotheken und geben ebenfalls formatierten Code aus. Gemma nutzt nur eine Bibliothek und DeepSeek-R1 hat das Thema nicht verstanden und schickt uns ins Internet auf irgendwelche Github-Seiten. In Summe funktioniert keiner der vorgeschlagenen Codes.

Aufgabe 2:

Schreibe ein Programm in Python zum Durchsuchen von Webseiten mit einer Tiefe von 3 und speichere die Inhalte als Markdown.

Hier nutzen alle LLM die Python Module request und BeautifulSoup. Codellama erklärt noch die Funktion, Programm funktioniert aber nicht. DeepSeek-R1s Lösung funktioniert und speichert Markdown Files. Dolphin3 listet als Ausgabe die gefundenen Links, Falcon3 funktioniert nicht, Gemma3 tut so, hat aber keine Markdown Dateien erstellt. Llama3 ist ganz schlau und fragt uns am Eingabeprompt nach der URL, die durchsucht werden soll. Alle anderen hatten Beispiel-Urls im Code verwendet. Unterwegs verliert er aber diese Url beim Crawlen, weswegen es jede Menge Fehlermeldungen gab. Sah vielversprechend aus, müsste aber weiter untersucht werden. Mistral liefert sauberen Code ab, erklärt noch pip und das Ergebnis kann sich sehen lassen. Es werden nach und nach Markdown Dateien erstellt mit dem Inhalt der gewünschten URL und deren Links. Der Qwen Code ist fehlerhaft und auch Tulu3 funktioniert nicht. Wir haben also 2 Gewinner in der Sparte: DeepSeek-R1 und Mistral

Aufgabe 3:

Suche alle yaml Dateien in einem Ordner mit bash und ersetze .spec.replicas: 1 mit 0

Eine vermeintlich einfache Ausgabe aus der Praxis. Und so machen sich alle KIs auf den Weg mit find, sed und abenteuerlichen Schleifen, von denen leider keine funktioniert. Nur Mistral hat gemerkt, dass es sich um Yaml-Dateien handelt und die Schreibweise solcher Dateien durchaus unterschiedlich sein kann und dennoch gewissen Standards unterliegt. Deswegen fordert es das Programm yq (yamlquery) an, um die Dateien ordentlich zu verarbeiten. Der Gewinner in dieser Sparte.

Kubernetes

In dieser Sparte haben wir 2 Aufgaben aus dem Kubernetes-Betrieb, wie sie nahezu täglich auftauchen.

Aufgabe 1:

Liste alle Pods in einem Kubernetes Cluster auf, die nicht den Status Running oder Completed haben.

Codellama hat den korrekten Befehl für kubectl, es werden aber alle Pods aufgelistet, weil der Filter nicht funktioniert. DeepSeek-R1 philosphiert wieder mit sehr viel Text und erfindet den Befehl kubectl get pods --where. Funktioniert natürlich nicht. Dolphin3 verwendet yq und gibt die kompletten Pod Manifeste als yaml aus. Etwas übers Ziel hinausgeschossen, funktioniert aber. Die Antwort von Falcon3 ist kurz und bündig, und funktioniert nicht. Gemma3 hat keine Ahnung. Llama3 verwendet kubectl mit jsonpath und baut eine Schleife, funktioniert aber nicht. Mistral3 pipt die kubectl get pod Ausgabe gegen grep. Einfach, schmutzig, funktioniert. Hätte ich genauso gemacht. Qwen möchte ein –selector im kubectl verwenden. Gute Idee, funktioniert aber nicht. Tulu3 verwendet ebenfalls kubectl mit yq und liefert die korrekte Ausgabe. Die Gewinner sind also Dolphin3, Mistral3 und Tulu3.

Aufgabe 2:

Schreibe ein hochsicheres Deployment manifest für Kubernetes, um ein nginx:latest Image zu starten und auf Port 8080 verfügbar zu mache

Codellama schreibt ein ordentliches Deployment File. Als Sicherheitsfeature hat es eine Referenz zu einem ImagePullSecret, in das ich irgendwie die docker-registry-secret Credentials reinkriegen muss. DeepSeek-R1 erfindet die API apiVersion: "k8s.io/v5", funktioniert also nicht. Dolphin rattert das yaml Manifest unformatiert runter. Immerhin verwendet es securityContext, wie man es sich vorstellt, mountet aber ein ServiceAccountToken, den es nicht gibt, funktioniert also nicht. Falcon hat ein Standard-Deployment-Manifest, der Hinweis auf Security wurde vollständig ignoriert, ähnlich ist es bei Gemma. Llama hat das Manifest mit securityContext, sieht gut aus. Mistral hat das ebenso gemacht, referenziert aber kommentarlos auf nicht vorhandene imagePullSecrets und serviceAccountName. Qwen hat das Standard-Manifest und setzt das Label security: high, mhmm, okay. Tulu3 hat kein Ergebnis. Hier gibt es keinen eindeutigen Gewinner.

Golang2

Die Ergebnisse sind bis jetzt nicht so befriedigend. Deswegen gibt es für Golang-Programmierung eine zweite Runde. Diesmal ohne RAG, weil das die Ergebnisse eher verfälscht hat. Man könnte auch sagen, man hat die KI aufs Glatteis geführt. Die blanken LLM sollen die Aufgabe nochmal ausführen und können sie diesmal auch sooft korrigieren wie sie möchten.

Codellama versucht sich mit kubectl aus der Affäre zu ziehen, um mit einem Go-Programm die Pods zu listen. Im zweiten Versuch nutzt er endlich die richtigen Libs, das Programm funktioniert aber nicht. Deepseek-R1 bastelt uns noch chinesische Schriftzeichen in den Go-Code als Lib-Verweise. Funktioniert natürlich nicht. Dolphin3 und Falcon3 liefern Go Code mit Kubernetes Client Libs ab, funktioniert aber auch nach 3 Korrekturen nicht. Gemma verblüfft uns mit seiner Lösung. Er (oder sie?) verwendet einfach kubectl als os execute. Interessanter Ansatz, funktioniert aber nicht. Llama3 kriegt es auch nach 3 Versuchen nicht hin. Auch die Lösung von Mistral ist nach 3 Versuchen noch falsch, ebenso bei Qwen. Es wurden hier doch nur 3 Korrekturen zugebilligt, weil keine Besserung zu verzeichnen war. Die fehlerhaften Programmzeilen wurden einfach nicht korrigiert. Nur Tulu3 hat hier nahezu korrekten Code abgeliefert, der funktioniert. Nur beim Namespace-Filter hat er sich verhauen. Wenn man den rausnimmt, funktioniert das Programm. Also Bester in der Sparte, aber mit Abstrichen.

Immer noch unbefriedigend. Aber da das mein meistgenutzer Anwendungsfall wäre, habe ich noch ein Model getestet:

deepseek-coder-v2:latest

Dieses Model liefert tatsächlich aus dem Stand funktionierenden Code! Aber die kleinste Version des LLM ist 8,9 GB gross und damit doppelt so gross wie andere. Man kann es nicht vergleichen. Da es aber auch die GPT4-Turbo Funkion hat, wäre es das LLM meiner Wahl, wenn ich die Resourcen dazu übrig hätte.

Sicherheit

Gleich nach der Veröffentlich von DeepSeek-R1 wurden Stimmen laut vom fehlenden Datenschutz und fehlender Einhaltung von EU-Richtlinien. Wir haben das früher immer Security by Heise genannt, wenn man Informationen zu Sicherheitsvorfälle aus der Zeitung entnimmt. Folgerichtig gibt es schon die ersten Verbote wegen der kleinen grünen Chinesen, die im LLM wohnen. Genau wie die “Vermutung”, dass diese in den 5G-Antennen von Huawei hausen und heimlich nach China funken. Gefunden wurden sie freilich nie, aber das Verbot ist gesetzt.

Wie sieht es jetzt mit dem LLM aus?

These 1:

Versteckter Schadcode im LLM.

Nun, die safetensors Dateien, aus denen das LLM besteht, kann man sich einzeln herunterladen und untersuchen. Mit Gradio kann man sogar ein Webinterface dafür bauen:

import gradio as gr
from safetensors.torch import load_file
from safetensors import safe_open

# Function to load and display safetensors file contents
def load_safetensor(filepath):
    try:
        # Load tensor data
        data = load_file(filepath)
        tensor_info = "\n".join([f"{key}: {data[key].shape}" for key in data.keys()])

        # Load metadata
        metadata = {}
        with safe_open(filepath, framework="pt", device="cpu") as f:
            metadata = f.metadata()  # Extract metadata

        metadata_info = "\n".join([f"{k}: {v}" for k, v in metadata.items()]) if metadata else "No metadata found."

        return f"📌 **Tensors:**\n{tensor_info}\n\n📌 **Metadata:**\n{metadata_info}"

    except Exception as e:
        return f"❌ Error loading file: {str(e)}"

# Define the Gradio interface
interface = gr.Interface(
    fn=load_safetensor,
    inputs="text",  # User enters local file path
    outputs="textbox",
    title="Safetensors Viewer",
    description="Enter the local path of your .safetensors file to view tensors and metadata."
)

# Launch the app

interface.launch(server_name="0.0.0.0",
        server_port=8085,
        inbrowser=True,
        share=False)

Auch die Konfigurationsdatei des LLM ist für DeepSeek-R1 online. Da kann man dann sehen, welche Datasets verwendet wurden. Da wird man dann feststellen, das das Basismodell deepseek_v3 schon lange existiert und das Ganze auch einem weltweiten Standard unterliegt. Sonst wäre es auch gar nicht kompatibel.

These 2:

Das Model tut “nach Hause telefonieren”. Der User wird ausspioniert und Daten werden nach China verschickt.

Nun, wir haben oben schon festgestellt, das LLM kann gar nicht telefonieren, da es selbst gar nicht kommunizieren kann. Auch dazu haben wir einen Versuchsaufbau getätigt. Ollama-Chatbot läuft in einem Container, in einem Pod, in einem Kubernetes-Cluster. Dort ist es netzwerkmässig isoliert. Um zu sehen, welcher Netzwerkverkehr von und zu diesem Container geht, müssen wir uns auf die dazugehörige Bridge aufschalten. Dazu folgendes Vorgehen:

# Auf dem Node rausfinden, welcher Container im containerd mit dem LLM läuft und diesen mit inspect aufrufen
crictl inspect <container-id>
# Container PID rausfinden und damit Namespace des Containers aufrufen
nsenter -t <container-pid> -n ip link show type veth | grep -Po '(?<=eth0@if)\d*'
# Die Nummer des Netzwerkinterfaces der Bridge veth rausfinden und in der Routingtabelle nachschlagen
 ip a s| grep 75
75: veth0147df81@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master cni0 state UP group default
# Tcpdump auf veth starten
tcpdump -i veth0147df81

Das Ergebnis war: Nichts. Es gab bei den meisten Models eine Anfrage bei Cloudfare, einem HTTP2DNS-Dienst, und das wars. Egal wie man mit dem LLM interagierte, es hat niemals mit dem Internet Kontakt aufgenommen. Genau wie bei 5G-Antennen ist dies nicht möglich. Und selbst wenn es so wäre, was es nicht ist, es gäbe immer noch Firewalls, Networkpolicies, die diesen Verkehr verhindern.

Fazit

Nach dem Ausflug in die Welt des Kalten Krieges kommen wir nun endlich zum Ergebnis. Zusammenfassend stellen wir noch einmal fest, woher die Künstliche Intelligenz ihre Intelligenz bezieht:

  • Enzyklopädie-Wissen aus dem Einmachglas, ausgeprägt in Datasets mit Wissensstand vom dd.mm.yyyy
  • Kombinierung dieses Wissens und Setzen in einen Kontext
  • RAG, Anreichern des Konservenwissens mit aktuellem
  • Userinput

Der Anwender agiert mit der KI und macht sie dadurch intelligenter, indem er etwa mitteilt, ob ein Ergebnis richtig oder falsch war.

Der Sieger nach Punkten heisst: Mistral3. Vive la France!

Hätte ich jetzt tatsächlich nicht erwartet. Man kann Mistral auch online ausprobieren. Es ist superschnell und liefert auch unsere gewünschten Ergebnisse.

DeepSeek-R1 ist ihm auf dem Fersen, patzt aber doch an vielen Stellen und wäre in dem Grundmodell tatsächlich nicht meine erste Wahl. Stattdessen würde ich deepseek-coder-v2 irgendwie zum Laufen kriegen. Vielversprechend sah auch deepseek-coder-6.7b-instruct aus. Das funktioniert mit dem DeepSeek-Coder, setzt aber eine vorhandene Nvidia GPU voraus. Vielleicht ein nächstes Experiment.

Aber erstmal viel Spass mit der KI!