Interessant, mit Vulkan scheint das den Faktor 2 auszumachen. Mein Benchmark oben ist aber mit llama.cpp, von dem einige behaupten, es würde auch noch mal etwas Performance gegenüber ollama rausholen. Ob das stimmt?
der Vorteil der DGX ist das viele RAM. Wenn du ein kleines Model
testest, spielt das keine Rolle.
Anzahl der Cuda-Cöre und Tensor-Cöre sowie Speicherbandbreite sollten aber auch eine Rolle spielen, meine ich. Meines Wissens hat die RTX5060 da auch nur die halbe Speicherbandbreite gegenüber der RTX5070.
ich hab auf meinem Windows-Notebook unter Ollama verschiedene Modelle installiert.
Leider kenne ich mich noch nicht aus. Wie kann ich die Modellgeschwindigkeit messen?
hello
Hello! It's nice to meet you. Is there something I can help you with or would you like to chat?
/set verbose
Set 'verbose' mode.
hello
Hello again! It seems like we're having a very friendly and repetitive conversation so far. Would you like to
break the ice and talk about something specific, or just enjoy the hello's for a bit longer?
14,7
total duration: 35.4693132s
load duration: 76.2597ms
prompt eval count: 46 token(s)
prompt eval duration: 2.2488908s
prompt eval rate: 20.45 tokens/s
eval count: 43 token(s)
eval duration: 33.1142414s
eval rate: 1.30 tokens/s
Es braucht 46,7 GB GPU Speicher wobei nur 14,7 GB von der Grafikkarte genommen wird.
Hätte erwartet, dass die RTX5060 da viel mehr Vorsprung vor dem SparkDGX
rausholt, wenn das Model komplett im GDDR7 liegt.
Das könnte daran liegen, dass nicht alles auf der GPU läuft sondern ein nicht unerheblicher Teil auf der CPU und diese dann über den "dünnen" Bus meines AM4 Boards mit der GPU kommunizieren muss. Bei mir ist ein Kern der CPU zu 100% ausgelastet, wenn das Modell läuft. Hier wäre es interessant zu sehen, wie schnell es läuft wenn jemand ein AM5 Board mit DDR5 und einer RTX5060 hat.
Ich mache meine Tests im Moment mit llama.cpp. Wenn man in den Code schaut, sieht man, dass dort die Modelle relativ kurz in C++ kodiert sind: https://github.com/ggml-org/llama.cpp/tree/master/src/models
Die Gigabyte großen Files mit den Gewichten müssen getrennt von dieser Modellbasis heruntergeladen werden. Daraus ergibt sich eine interessante Erkenntnis: Man kann darauf nur die von Unsloth oder Hugging Face heruntergeladenen Modelle laufen lassen, wenn in der Codebasis schon die passende Modellstruktur vorhanden ist. Das bedeutet: Wenn es neue Modelle mit anderen Strukturen gibt, muss man llama.cpp updaten.
Ist das DDR4 oder 5? Und was wuerde das ausmachen?
Bin auch gerade am ueberlegen aufzuruesten. Problem ist nur die Grafikkarten haben maximal 32GB, also eher zu wenig und sind dann mit 4000Euro schon relativ teuer. Kann man eigentlich zwei solche Karten reinstecken und zusammen arbeiten lassen? Wie skaliert das dann?
Oder lieber auf Geschwindigkeit verzichten und den PC auf 128GB bringen. Zwar langsamer, aber intelligenter.
Ich hab mich erst mal entschieden meinen Rechner nur auf 48GB aufzuruesten, also die arme Leute Loesung und dann in 2-3Jahren eine Grafikkarte mit 64GB Vram zu kaufen. Ich denke sobald die ganzen KI-Rechenzentren zusammengebrochen sind weil sie merken das wir KI lieber lokal halten wollen, wird die Hardware wieder etwas billiger werden.
BTW: Da mein Rechner natuerlich mikrosoftfreie Zone ist lege ich eigentlich Wert darauf nichts von NVidia zu kaufen, wie machen sich AMD in dem Zusammenhang? Hat da einer bereits Erfahrungen?
Da mein Rechner natuerlich mikrosoftfreie Zone ist lege ich
eigentlich Wert darauf nichts von NVidia zu kaufen, wie machen sich AMD
in dem Zusammenhang? Hat da einer bereits Erfahrungen?
Kleiner Fun-Fact am Rande: AMD-Chefin Lisa Su und Nvidia-Chef Jensen Huang sind miteinander verwandt. Sie sind Großcousine und Großcousin. Nachzulesen im sehr empfehlenswerten Buch "The Thinking Machine: Jensen Huang, Nvidia, and the World's Most Coveted Microchip".
Dort steht auch, wie Jensen CUDA über Jahre mit Millionenaufwand entwickeln lies und dafür fast als CEO von einer Investmentfirma abgesetzt wurde. AMD hat das nicht gemacht und versucht ROCM gleichzuziehen, indem sie Open-Source Entwickler dafür einspannen um irgendwie den Rückstand aufzuholen. https://github.com/ROCm/rocm
Nur leider hinken sie NVIDIA dabei um einiges hinterher, die CUDA so eng mit ihrer Hardware verzahnt haben und gar nicht mehr alle Hardwaredetails offen legen, sodass man für die KI-Beschleuniger CUDA verwenden muss.
Llama.cpp kann man scheinbar für ROCM compilieren und muss nicht zwingend den Vulkan-Treiber nehmen:
(leider muss ich den link als Screenshot posten, weil MC-net denkt, es wäre Spam)
Meine Eingabe war: "Im deutschsprachigen Raum erschienen Anfang der sechziger Jahre zwei Buchtitel mit Abenteuergeschichten, nämlich Casey Jones der Lokomotivführer. Für die Jugend erzählt und Casey Jones fährt wieder, beide von der Autorin Margret Haas."
Es scheint tatsächlich schneller zu sein. Das Modell gemma-4-E2B läuft jetzt mit 143 token/sec auf der RTX5060 statt wie am Anfang dieses Threads mit 94 token/sec.
Stromverbrauch aus dem Energiemonitor bei Batteriebetrieb ausgelesen, ca. 10 Watt für "idle desktop" abgezogen. Also nur grober Schätzwert, und vermutlich sind iGPU und CPU thermisch limitiert.
Zweiter Lauf am Netzteil hatte fast dieselben Werte.
War mein erster Versuch mit der NPU, vielleicht hab ich da auch was falsch konfiguriert.
Der hat eine 13Tops int8 NPU eingebaut, kann also auch schon die Modelle ein wenig beschleunigen. Ich weiß nicht, ob zwischen GPU und NPU verteilen kann, um die Modelle noch etwas schneller zu machen.
CPU schneller als CPU? Wahrscheinlich könnte man mit llama.cpp Einfluss nehmen. In dem Video wird auf die Parameter wie "--n-gpu-layers" eingegangen, um die Verteilung der Rechenleistung etwas zu steuern.
Was benutzt ihr eigentlich fuer die Kommunikation mit der KI?
Ich hatte bisher aider benutzt. Soweit ganz nett, aber dann dachte ich mir hm..muesste doch auch irgendwie in Emacs gehen. Und jep, hat natuerlich schon jemand gemacht.
Das ist cool! Hab mich gerade mit Qwen3-Coder:latest ueber ein Testprogramm unterhalten. Hat ein paar Sachen angemerkt und dann meine Software auf chinesisch kommentiert. Seufz! :-D
BTW: Qwen3-Coder:latest sind 18GB. Laeuft hier lokal in 48GB DDR4, meine olle Graka hat nur 8GB Vram. Ist lahm, aber fuer so kleine Sachen okay. Antwortzeiten so im einstelligen Sekundenbereich. Klar, haette lieber eine Radeon AI Pro R9700, aber 1500Kroets? Da warten wir mal ab bis sich die Hysterie am Markt etwas gelegt hat...
Was benutzt ihr eigentlich fuer die Kommunikation mit der KI?
Man kann llama.cpp mit ./llama-cli starten, dann kann man es mit dem Browser bedienen. Die Oberfläche sieht dann OpenWebUI sehr ähnlich, welches ich auch benutzte.
Probiere quen3.6:35b mit der 4 bit Quantisierung von unsloth. Das läuft bei mir zusammen mit der 8GB RTX5060 und llama.cpp mit bis zu 30token/sec, was gar nicht mal so schlecht ist.
Was benutzt ihr eigentlich fuer die Kommunikation mit der KI?
Wir haben in der Firma eine Art KI-Server aufgebaut, um KI-Fähigkeiten in eigene Software-Projekte einzubauen, nur chatten ist langweilig. Die LLMs laufen unter Ollama, im Server-Mode auf Port 11434, HTTP mit POST.
Das nennt sich wohl REST-API, der Prompt (Frage/Aufgabe und Parameter) muss in JSON verpackt werden, die Antwort kommt ebenso ...
Man kann llama.cpp mit ./llama-cli starten, dann kann man es mit dem
Browser bedienen.
Ja gut, aber wie nutzt du das dann? Immer hin und her kopieren? Das scheint mir kein Zustand. Ich will jetzt nicht unbedingt Werbung fuer Emacs machen, aber schau dir mal an was Ellama fuer eine Funktionalitaet bietet.
Probiere quen3.6:35b mit der 4 bit Quantisierung von unsloth. Das läuft
bei mir zusammen mit der 8GB RTX5060 und llama.cpp mit bis zu
30token/sec, was gar nicht mal so schlecht ist.
Hab ich natuerlich auch schon gemacht. Klar ist schneller. Denke gerade darueber nach 400Euro fuer eine RX9060 mit 16Gig rauszuhauen.
In dem Zusammenhang mal einen Tip. Ich habe aktuell eine 7-8Jahre alte RX550 mit 8GB Vram. Mein Rechner lief immer bombenstabil! Aber mit den KIs ist er gerne mal voll brutal mit merkwuerdig blinkenden Grafikbildschirm verreckt wenn die 10min gedacht haben. Sowas ist fuer Linux extrem untypisch.
Hab dann die Graka ausgebaut, zerlegt, komplett gereinigt, mit Pressluft ausgeblasen, alle Kontakte an PCIe und am Stromstecker mit Kontakt 60 abgeschubbert, abgespuelt und wieder zusammengebaut. Jetzt laeuft die Kiste stabil! Wenn man nicht so ein Hartcorezocker ist dann laufen solche Karten normalerweise nur im Leerlauf und das fuehrt wohl dazu das die in ihren Ecken einiges an Staub einlagern.
BTW: Mir ist noch nicht ganz klar wie ollama die Rechnenlast verteilt. Obwohl ich auch fette KI Modelle habe die niemals in den Grafikspeicher passen, sehe ich mit dem amd-tool das die Grafikkarte bei diesen groesseren Modellen trotzdem zu 100% laeuft. Die wird also trotz Hauptspeicher immer irgendwie mitgenutzt.
Wir haben in der Firma eine Art KI-Server aufgebaut, um KI-Fähigkeiten
in eigene Software-Projekte einzubauen, nur chatten ist langweilig. Die
LLMs laufen unter Ollama, im Server-Mode auf Port 11434, HTTP mit POST.
Wenn ich alles richtig verstanden habe, bin da ja auch noch Einsteiger, ist das genau das was ich aktuell lokal bei mir auf dem Rechner laufen habe. Also auch Ollama. Darueber connecten sich dann die Clients wie Emacs/Ellama oder Aider. Bloss das es bei mir alles auf einem Rechner laeuft.
Ja, in der Firma haette ich das auch gerne. Bloss mach das mal der IT Abteilung klar. :-D
Wir haben in der Firma eine Art KI-Server aufgebaut, um KI-Fähigkeiten
in eigene Software-Projekte einzubauen,
Da stellt sich mir noch eine Frage. :-)
Ich selber bin ja nur eine Einzelperson und werde kaum mehr wie eine Anfrage laufen haben, aber in einer Firma koennte es ja sein das viele Leute dann so einen Server nutzen. Wie skaliert das dann? Braucht man dann eine noch fettere Grafikkarte? Oder muss der Server entsprechend Ram haben um, sagen wir mal 5-10 Leute gleichzeitig, bedienen zu koennen?
Wir haben in der Firma eine Art KI-Server aufgebaut, um
KI-Fähigkeiten
in eigene Software-Projekte einzubauen,
Da stellt sich mir noch eine Frage. :-)
Ich selber bin ja nur eine Einzelperson und werde kaum mehr wie eine
Anfrage laufen haben, aber in einer Firma koennte es ja sein das viele
Leute dann so einen Server nutzen. Wie skaliert das dann?
Der größte Leistungszuwachs wird durch die Anzahl der GPUs und dem beigeordneten VRAM erzielt. Ich hab schon mal recherchieren lassen, ob ein LLM von mehreren Grafikkarten profitieren kann - dem ist wohl nicht so.
Also mögl. viel VRAM, am Besten 24...32GB und das wird (gegenwärtig) teuer
beigeordneten VRAM erzielt. Ich hab schon mal recherchieren lassen, ob
ein LLM von mehreren Grafikkarten profitieren kann - dem ist wohl nicht
so.
Doch, es gibt bei Youtube ein Video wo sich jemand einen Rechner mit zwei 32GB Vram Karten von Ati aufgebaut hat. Der zeigt auch das er darin dann groessere Modelle laufen lassen kann wie 32GB, also die Karten werden dann schon beide fuer ein Modell genutzt. Er sagt aber auch das man bei kleinen Modellen darauf achten sollte nur eine Karte zu aktivieren weil sonst der Workload auch auf zwei Karten verteilt wird und das ist dann weniger schnell als wenn alles auf einer Karte laeuft.
Aber von den Kosten mal abgesehen, ich glaube nicht das man einen Rechner mit zwei solcher Karten haben moechte. Der heizt einen dann die Bude mit 1000W auf. Okay, bei einer Firma mag das angehen.
Wenn wir programmieren dann ja nicht irgendwelchen Standardkram sondern "Embedded". Es scheint mir also Notwendig der KI ein paar Dinge bereitzustellen auf die sie sich beziehen kann. Also im Grund das Zeug das ihr alle gelesen habt und auswendig im Kopf habt. :-D
Datenblaetter und Applikationen passend zum verwendeten Controller
Beschreibung der verwendeten Hardware, externer Quarz ja/nein, Frequenz, wo ist was angeschlossen.
Ich hab das selbst noch nicht umgesetzt, wollte es aber in der naechsten Zeit machen.
Ein anderes, ziemlich wichtiges Thema ist "skills.md" für die Agentensystem, in denen man die eigenen Abläufe beschreibt und mit denen man die System auf die eigenen Vorgehensweise optimieren kann: https://www.mdskills.ai/de/specs/skill-md
Ich habe im letzten Jahr etwas mit RAG experimentiert. Die Ergebnisse waren enttäuschend. Das liegt in erster Linie an der Vektorsuche.
Bei ganz kleinen Datenbanken mit wenigen Dokumenten oder bei Datenbanken, die nur sehr unterschiedliche Dokumente enthalten, mag das noch gehen. Wenn man aber z.B. Datenblätter per KI durchsuchen will, ähneln sich die Inhalte dieser Dokumente sehr. Die reine Vektorsuche findet dann die Chunks, die am besten zur Frage passen. Der Chunk enthält aber keine Metadaten - d.h. die Vektorsuche berücksichtigt z.B. das Bauteil, das ja nicht überall im Text neu erwähnt wird, nicht. Man erhält also in vielen Fällen eine Antwort, die zwar zum Inhalt der Frage passt, sich aber nicht auf das gewünschte Bauteil bezieht.
In dem verlinkten Artikel steht ganz unten ein Absatz, der mit "Der nächste logische Ausbau" beginnt. Die Punkte, die darin erwähnt sind, scheinen für eine nutzbare Anwendung unerlässlich zu sein. Und die sind wesentlich aufwändiger als die Skripte für das einfache RAG.
Die reine Vektorsuche
findet dann die Chunks, die am besten zur Frage passen. Der Chunk
enthält aber keine Metadaten
Du kannst beim indizieren die Metadaten hinzufügen, als "title","summary", "metadata":{"chip":"NE555","type":"datasheet"}...
Dann instruierst deine KI, dass bei Suche nach Datenblättern das "chip"-Feld möglichst mit in die Suchanfrage soll, oder bei den Antwort-Chunks kontrolliert werden soll, ob die Antwort auch zum richtigen Datenblatt gehört.
Ist halt keine schlüsselfertige Lösung, wo du einfach einfach einen Ordner an PDFs reinwerfen kannst. Aber jetzt auch nicht so der Riesen-Aufwand ein kleines LLM in den Import-Prozess zu hängen, was dir für jedes PDF einmalig die Metadaten im passenden Format extrahiert.
Ich lege ein wenig Wert auf eine korrekte Einordnung, weil ich die Threads oft als Nachschlagewerk nutze und dann ist es unpraktisch, wenn zu viele Themen vermischt sind.
Ich habe im letzten Jahr etwas mit RAG experimentiert. Die Ergebnisse
waren enttäuschend. Das liegt in erster Linie an der Vektorsuche.
Bei ganz kleinen Datenbanken mit wenigen Dokumenten oder bei
Datenbanken, die nur sehr unterschiedliche Dokumente enthalten, mag das
noch gehen. Wenn man aber z.B. Datenblätter per KI durchsuchen will,
ähneln sich die Inhalte dieser Dokumente sehr. Die reine Vektorsuche
findet dann die Chunks, die am besten zur Frage passen. Der Chunk
enthält aber keine Metadaten - d.h. die Vektorsuche berücksichtigt z.B.
das Bauteil, das ja nicht überall im Text neu erwähnt wird, nicht.
Vielleicht wäre im diesem Fall eine klassische Volltext-Suchmaschine wie OpenSearch besser geeignet. Die kann auch Vektorsuche, bei Bedarf auch kombiniert mit klassischen, bei Bedarf auch unscharfen Suchlgorithmen über indizierte Daten und Tfidf zur Gewichtung von Worten anhand ihrer Häufigkeiten. Bei Elastic- und OpenSearch lassen sich die PDFs auch gleich über ein Plugin mit Apache Tika (iirc) einlesen.
Vielleicht wäre im diesem Fall eine klassische Volltext-Suchmaschine wie
OpenSearch besser geeignet. Die kann auch Vektorsuche ...
Es geht ja bei Weitem nicht nur um Suche, sondern auch um
Zusammenfassung und Interpretation ... seltsame Anmerkung.
Zusammenfassung und Interpretation ist Aufgabe des LLM. Dazu braucht es aber den richtigen Input, deshalb ist der Einwand mit OpenSearch/Elastic durchaus berechtigt. Shit In - Shit Out.