Meta Llama 3.1 405B soll Maßstäbe setzen
Meta will mit dem freien Large Language Model Meta Llama 3.1 405B eine neue Ära einläuten, in der Open Source den Weg vorgibt und nicht länger in Bezug auf Leistung und Fähigkeiten hinter den…
Meta will mit dem freien Large Language Model Meta Llama 3.1 405B eine neue Ära einläuten, in der Open Source den Weg vorgibt und nicht länger in Bezug auf Leistung und Fähigkeiten hinter den…
Die Geschwindigkeit bei der lokalen Ausführung großer Sprachmodelle (LLMs) wird in Zukunft zu einem entscheidenden Kriterium für die CPU/GPU-Auswahl werden. Das gilt insbesondere für Software-Entwickler, die LLMs lokal nutzen möchten anstatt alle Daten an Anbieter wie ChatGPT in die Cloud zu übertragen.
Umso verblüffender ist es, dass es dafür aktuell kaum brauchbare Benchmarks gibt. In Anknüpfung an meinen Artikel Sprachmodelle lokal ausführen und mit Hilfe des Forum-Feedbacks habe ich die folgende Abbildung zusammengestellt.
Die Geschwindigkeit in Token/s wird — zugegeben unwissenschaftlich — mit der Ausführung des folgenden Kommandos ermittelt:
ollama run llama2 "write a python function to extract email addresses from a string" --verbose
oder
ollama run llama3 "write a python function to extract email addresses from a string" --verbose
Bei den Tests ist llama3
um ca. 10 Prozent langsamer als llama2
, liefert also etwas weniger Token/s. Möglicherweise liegt dies ganz einfach daran, dass das Sprachmodell llama3
in der Standardausführung etwas größer ist als llama2
(7 versus 8 Mrd. Parameter). Aber an der Größenordnung der Ergebnisse ändert das wenig, die Werte sind noch vergleichbar.
Beachten Sie, dass die im Diagramm angegebenen Werte variieren können, je nach installierten Treiber, Stromversorgung, Kühlung (speziell bei Notebooks) etc.
Helfen Sie mit! Wenn Sie Ollama lokal installiert haben, posten Sie bitte Ihre Ergebnisse zusammen mit den Hardware-Eckdaten im Forum. Verwenden Sie als Sprachmodell llama2
bzw. llama3
in der Defaultgröße (also mit 7 bzw. 8 Mrd. Parameter, entspricht llama2:7b
oder llama3:8b
). Das Sprachmodell ist dann ca. 4 bzw. 5 GByte groß, d.h. die Speicheranforderungen sind gering. (Falls Sie das LLM mit einer dezidierten GPU ausführen, muss diese einen ausreichend großen Speicher haben, in dem das ganze Sprachmodell Platz findet. Je nach Betriebssystem sind u.U. zusätzliche Treiber notwendig, damit die GPU überhaupt genutzt wird.)
Ich werde das Diagramm gelegentlich mit neuen Daten aktualisieren.
Der Facebook-KOnzern Meta hat mit Llama 3 die nächste Generation seines Large Language Modells (LLM) vorgestellt.
ChatGPT, Copilot & Co. verwenden Large Language Models (LLMs). Diese werden auf leistungsstarken Servern ausgeführt und als Cloud-Services angeboten. Das funktioniert wunderbar. Aber nicht jeder will Daten, Text und Code ständig in die Cloud hochladen. Kann man also — mit »gewöhnlicher« Hardware — LLMs auch lokal ausführen?
Tatsächlich ist das verblüffend einfach. Das Tool der Wahl heißt Ollama. Was Docker für Container ist, ist Ollama für LLMs!
Ollama kann ziemlich mühelos unter Linux, macOS und Windows installiert werden. Unter Windows und macOS starten Sie Ollama als Hintergrunddienst mit einer winzigen grafischen Oberfläche (im Prinzip nur ein Icon, das den Status anzeigt). Unter Linux richten Sie den Dienst mit systemctl
ein:
systemctl enable --now ollama
Jetzt können Sie Ollama mit dem gleichnamigen Kommando im Terminal ausführen. Mit ollama run <llmname>
installieren Sie eines der öffentlich verfügbaren Sprachmodelle (mehr dazu im nächsten Abschnitt) und können dann im Textmodus Kommandos ausführen:
ollama run llama2
>>> I need a regex to verify a date in US format. Can you help?
Of course! To match a date in the format of "MM/DD/YYYY" (month-day-year)
or "MM/DD/YYYY HH:MM AM/PM", you can use the following regular expression:
\b(\d{1,2}/\d{1,2}/\d{4})|(\d{1,2}/\d{1,2}/\d{4} \d{0,2})?\b
Here's a breakdown of how this regex works:
* \b: Matches a word boundary (the start or end of a word) to ensure
we're matching the entire date field.
* (\d{1,2}/\d{1,2}/\d{4}): Matches the month/day/year format. The
(\d{1,2}) captures the month and day as individual digits (0-2
digits for the month and 1-2 digits for the day). The / separates
the date components.
* |: Or, used to match the alternative format.
* (\d{1,2}/\d{1,2}/\d{4} \d{0,2})?: Matches the month/day/year with
time format. The (\d{1,2}) captures the month and day as individual
digits (0-2 digits for the month and 1-2 digits for the day). The /
separates the date components. The \d{0,2} matches the time component
(0-2 digits representing the hour and minute).
* \b: Matches a word boundary to ensure we're matching the entire date field again.
Note that this regex will match both US and international dates in the
"MM/DD/YYYY" format, as well as dates in the "MM/DD/YYYY HH:MM AM/PM"
format. If you need a more specific format (e.g., only US dates),
feel free to modify the regex accordingly.
Manche Sprachmodelle können auch Deutsch (nochmals llama2), wenngleich die sprachliche Qualität mitunter nur mittelmäßig ist.
>>> Was ist der Dopplereffekt?
Der Dopplereffekt ist ein physikalischer Effekt, der durch die Beugung von
Lichtwellen verursacht wird, wenn diese durch eine mediummässige Materie
passt. In einer bestimmten Umgebung oder Situation kann das Licht, das durch
eine bestimmte Fläche oder ein Objekt passt, sich "verlangsamen" und eine
Dopplereffekthelligkeit erzeugen.
Der Dopplereffekt ist ein spezifischer Effekt, der auf der Beugung von
Lichtwellen basiert. Wenn Licht durch ein Medium passt, wird es durch die Faser
des Mediums beugt und umgestaltet. Die Intensität des Lichts, das durch ein
Medium passt, kann sich durch den Dopplereffekt ändern.
Im Alltag können wir den Dopplereffekt beispielsweise bei der Anähnlichkeit von
Objekten in einer Ferne sehen. Wenn ein Auto oder eine andere Objekte in der
Ferne auf uns zukommt, wird es durch die Luft des Raumes beugt und erscheint
größer und weiter weg, als es tatsächlich ist.
Der Dopplereffekt kann auch in anderen Bereichen wie der Optik, Elektrotechnik
oder Medizin verwendet werden. Zum Beispiel können Dopplereffekte in der
Medizin verwendet werden, um die Blutungen in einem Körperteil zu bestimmen.
Es gibt verschiedene Arten von Dopplereffekten, darunter:
* LichtDopplereffekt: Der Effekt, den das Licht erzeugt, wenn es durch ein
Medium passt.
* ZeitDopplereffekt: Der Effekt, den die Zeit erzeugt, wenn sie durch ein
Objekt oder eine bestimmte Umgebung verändert wird.
* Räumliche Dopplereffekte: Der Effekt, den die räumliche Position von Objekten
oder der Standort eines Beobachters auf die Erscheinung des Dopplereffekts
ausübt.
Insgesamt ist der Dopplereffekt ein interessanter und wichtiger
physikalischerEffekt, der in vielen Bereichen der Wissenschaft und Technologie
Verwendung findet.
Ollama stellt seine Funktionen über eine REST-API zur Verfügung und kann somit lokal auch durch eigene Scripts und Editor-Plugins (z.B. Continue für VSCode) genutzt werden. Natürlich gibt es auch Module/Bibliotheken für diverse Sprachen, z.B. für Python.
Die bekanntesten Sprachmodelle sind zur Zeit GPT-3.5 und GPT-4. Sie wurden von der Firma openAI entwickelt und sind die Basis für ChatGPT. Leider sind die aktellen GPT-Versionen nicht öffentlich erhältlich.
Zum Glück gibt es aber eine Menge anderer Sprachmodelle, die wie Open-Source-Software kostenlos heruntergeladen und von Ollama ausgeführt werden können. Gut geeignet für erste Experimente sind llama2
, gemma
und mistral
. Einen Überblick über wichtige, Ollama-kompatible LLMs finden Sie hier:
Noch viel mehr LLMs finden Sie auf HuggingFace, einer öffentlichen Plattform für KI-Forscher und -Anwender:
Viele Sprachmodelle stehen in unterschiedlicher Größe zur Verfügung. Die Größe wird in der Anzahl der Parameter gemessen (7b = 7 billions = 7 Milliarden). Die Formel »größer ist besser« gilt dabei nur mit Einschränkungen. Mehr Parameter versprechen eine bessere Qualität, das Modell ist dann aber langsamer in der Ausführung und braucht mehr Platz im Arbeitsspeicher. Die folgende Tabelle gilt für llama2, einem frei verfügbaren Sprachmodell der Firma Meta (Facebook & Co.).
Name. Parameter Größe
---------- ---------- --------
llama2 7 Mrd. 4 GB
llama2:13b 13 Mrd. 7 GB
llama2:70b 70 Mrd. 39 GB
Wenn Sie llama2:70b ausführen wollen, sollte Ihr Rechner über 64 GB RAM verfügen.
Update: Quasi zugleich mit diesem Artikel wurde llama3 fertiggestellt (Details und noch mehr Details). Aktuell gibt es zwei Größen, 8b (5 GB) und 80b (40 GB).
Ollama kann aber auch KI-Modelle zur Bildverarbeitung ausführen, z.B. LLaVA (siehe https://ollama.com/blog/vision-models).
ollama run llava:13b
>>> describe this image: raspap3.jpg
Added image 'raspap3.jpg'
The image shows a small, single-board computer like the Raspberry Pi 3, which is
known for its versatility and uses in various projects. It appears to be connected
to an external device via what looks like a USB cable with a small, rectangular
module on the end, possibly an adapter or expansion board. This connection
suggests that the device might be used for communication purposes, such as
connecting it to a network using an antenna. The antenna is visible in the
upper part of the image and is connected to the single-board computer by a
cable, indicating that this setup could be used for Wi-Fi or other wireless
connectivity.
The environment seems to be an indoor setting with wooden flooring, providing a
simple and clean background for the electronic components. There's also a label
on the antenna, though it's not clear enough to read in this image. The setup
is likely part of an electronics project or demonstration, given the simplicity
and focus on the connectivity equipment rather than any additional peripherals
or complex arrangements.
Eigentlich eine ganz passable Beschreibung für das folgende Bild!
Es ist erstaunlich, wie rasch die Qualität kommerzieller KI-Tools — gerade noch als IT-Wunder gefeiert — zur Selbstverständlichkeit wird. Lokale LLMs funktionieren auch gut, können aber in vielerlei Hinsicht (noch) nicht mit den kommerziellen Modellen mithalten. Dafür gibt es mehrere Gründe:
Auch das Budget für das Trainingsmaterial ist größer.
Kommerzielle Modelle sind oft größer und laufen auf besserer Hardware. Das eigene Notebook ist mit der Ausführung (ganz) großer Sprachmodelle überfordert. (Siehe auch den folgenden Abschnitt.)
Wodurch zeichnet sich die geringere Qualität im Vergleich zu ChatGPT oder Copilot aus?
Wenn Sie LLMs zum Coding verwenden, passt der produzierte Code oft weniger gut zur Fragestellung.
Die Antworten werden je nach Hardware viel langsamer generiert. Der Rechner läuft dabei heiß.
Die meisten von mir getesteten Modelle funktionieren nur dann zufriedenstellend, wenn ich in englischer Sprache mit ihnen kommuniziere.
Als Minimal-Benchmark haben Bernd Öggl und ich das folgende Ollama-Kommando auf diversen Rechnern ausgeführt:
ollama run llama2 "write a python function to extract email addresses from a string" --verbose
Die Ergebnisse dieses Kommandos sehen immer ziemlich ähnlich aus, aber die erforderliche Wartezeit variiert beträchtlich!
Update: Grafische Darstellung der Geschwindigkeit unter https://kofler.info/mini-benchmark-fuer-die-ausfuehrung-lokaler-sprachmodelle/
Lenovo T16, Linux. 12th Gen Intel i5-1250P cores=12, 32 GiB RAM, Alder Lake-P Integrated Graphics Controller
total duration: 4m7.981004535s
load duration: 979.201µs
prompt eval count: 31 token(s)
prompt eval duration: 3.061771s
prompt eval rate: 10.12 tokens/s
eval count: 478 token(s)
eval duration: 4m4.913456s
eval rate: 1.95 tokens/s
Lenovo P1 (2018), Linux. Intel i8750H 6 cores / 12 threads, 32 GiB RAM, NVIDIA Quadro P1000
Die GPU wurde nicht genutzt.
total duration: 1m48.168754835s
load duration: 204.369µs
prompt eval duration: 146.12ms
prompt eval rate: 0.00 tokens/s
eval count: 629 token(s)
eval duration: 1m48.021933s
eval rate: 5.82 tokens/s
MacBook Air 2020, M1, 8GiB RAM
total duration: 52.303529042s
load duration: 4.741221334s
prompt eval count: 31 token(s)
prompt eval duration: 331.908ms
prompt eval rate: 93.40 tokens/s
eval count: 567 token(s)
eval duration: 47.211456s
eval rate: 12.01 tokens/s
MacBook Air M2 2023, 24 GB
total duration: 35.853232792s
load duration: 5.297790333s
prompt eval count: 32 token(s)
prompt eval duration: 211.272ms
prompt eval rate: 151.46 tokens/s
eval count: 617 token(s)
eval duration: 30.343375s
eval rate: 20.33 tokens/s
MacBook Pro M3 Pro 2023, 36 GB
total duration: 28.392226667s
load duration: 5.532561667s
prompt eval count: 31 token(s)
prompt eval duration: 119.313ms
prompt eval rate: 259.82 tokens/s
eval count: 667 token(s)
eval duration: 22.740198s
eval rate: 29.33 tokens/s
Bzw. mit llama3:8b
: 26,6 tokens/s.
Windows PC i7 64GB RAM + Nvidia 3070
total duration: 12.9912206s
load duration: 5.2628606s
prompt eval count: 31 token(s)
prompt eval duration: 83.136ms
prompt eval rate: 372.88 tokens/s
eval count: 514 token(s)
eval duration: 7.644094s
eval rate: 67.24 tokens/s
Linux PC, AMD Ryzen 5 7600 64 GB RAM + Nvidia RTX3090 mit 24 GB RAM
(mit llama3)
total duration: 5.008054596s
load duration: 899.374µs
prompt eval duration: 17.275ms
prompt eval rate: 0.00 tokens/s
eval count: 473 token(s)
eval duration: 4.948306s
eval rate: 95.59 tokens/s
Grundsätzlich kann Ollama GPUs nutzen (siehe auch hier und hier). Im Detail hängt es wie immer vom spezifischen GPU-Modell, von den installierten Treibern usw. ab. Wenn Sie unter Linux mit einer NVIDIA-Grafikkarte arbeiten, müssen Sie CUDA-Treiber installieren und ollama-cuda
ausführen. Beachten Sie auch, dass das Sprachmodell im Speicher der Grafikkarte Platz finden muss, damit die GPU genutzt werden kann.
Apple-Rechner mit M1/M2/M3-CPUs sind für Ollama aus zweierlei Gründen ideal: Es gibt keinen Ärger mit Treibern, und der gemeinsame Speicher für CPU/GPU ist vorteilhaft. Die GPUs verfügen über so viel RAM wie der Rechner. Außerdem bleibt der Rechner lautlos, wenn Sie Ollama nicht ununterbrochen mit neuen Abfragen beschäftigen. Allerdings verlangt Apple leider vollkommen absurde Preise für RAM-Erweiterungen.
Zum Schluss noch eine Bitte: Falls Sie Ollama auf Ihrem Rechner installiert haben, posten Sie bitte Ihre Ergebnisse des Kommandos ollama run llama2 "write a python function to extract email addresses from a string" --verbose
im Forum!
Weitere Links zum Thema GPU/NPU-Nutzung:
Experten des Security-Anbieters Sophos haben ein Benchmark-System zur Einschätzung des Nutzens von Large-Language-Modelle (LLMs) für die Cybersicherheit erstellt.
Die KI-Forschungsgruppe Laion hat das freie Llama-Modell für Deutsch angepasst. Das soll vor allem die englischsprachige Dominanz brechen.
Zahlreiche große Sprachemodelle (LLMs) wie etwa GPT-4 oder das intern von Google eingesetzte Palm sind zwar mehrsprachig, offene und frei verfügbare Sprachmodelle sind in den allermeisten Fällen jedoch ausschließlich in Englisch verfügbar. Die in Deutschland initiierte offene KI-Forschungsgruppe Laion setzt dem mit LeoLM (Linguistically Enhanced Open Language Model) nun ein deutschsprachiges Modell entgegen.
Das Modell basiert auf dem frei verfügbaren Llama-2-Modell und ist derzeit mit 7 oder 13 Milliarden Parametern nutzbar. Diese Größen dürften sich dank einiger Optimierungen dafür eignen, auch auf heimischen Rechnern und Grafikkarten ausgeführt zu werden, statt ausschließlich im Rechenzentrum. Darüber hinaus heißt es in der Ankündigung, dass ein Modell mit 70 Milliarden Parametern bereits in Arbeit sei. Trainiert wird das Modell mit Unterstützung von HessianAI, einem Forschungsverbund mehrerer hessischer Universitäten, und dessen Supercomputer 42, der mehr als 600 Nvidia A100 Karten nutzt.
Als Grund für die Arbeiten nennen die Beteiligten, dass die Qualität von Llama 2 inzwischen zwar an kommerzielle und proprietäre Modelle heranreiche. Da das Training dafür aber hauptsächlich mit englischsprachigen Daten durchgeführt worden sei, enthalte das Modell zahlreiche Verzerrungen, die etwa auf die US-Kultur oder die Sprache selbst zurückzuführen seien. “Wir versuchen, diese Probleme in der Fallstudie für deutsche Sprache zu lindern, indem wir viele der modernen Techniken anwenden, um ein wirklich fähiges, lokalisiertes und zweisprachiges LLM zu entwickeln”, schreibt Laion dazu.
Das Team passt Llama für Deutsch mit einer zweiten sogenannten Pre-Training-Phase an. Dabei wird das bestehende Llama-Modell auf Grundlage eines weiteren deutschen Text-Korpus weiter trainiert. Dazu wird Oscar genutzt. Zum Überprüfen der Ergebnisse des so trainierten Modells haben die Beteiligten darüber hinaus bisher nur in Englisch verfügbare Benchmarks ins Deutsche übersetzt. Wie zu erwarten liefert LeoLM dabei dann auf Deutsch leicht bessere Ergebnisse, schneidet aber auf Englisch leicht schlechter ab als Llama 2. Dabei seien die Vorteile durch die Verbesserungen für Deutsch aber deutlich wichtiger als die leichten Verschlechterungen für Englisch, was zeige, dass auch bereits gelernte Inhalte mit der genutzten Vorgehensweise erhalten bleiben können.
Der Beitrag Laion: Riesiges Sprachmodell für Deutsch trainiert erschien zuerst auf Linux-Magazin.
Meta veröffentlicht sein generatives Sprachmodell LLama 2 kostenlos für Geschäftskunden und Forscher. Llama 2 sei zudem Open Source, teilt Meta mit.Daneben stelle man auch die Modellgewichte und den Startcode für das vortrainierte Modell und die fein abgestimmten Versionen der Konversation zur Verfügung, heißt es weiter.
Ab sofort sei Llama 2 im Azure-KI-Modellkatalog verfügbar. Entwickler könnten damit arbeiten und ihre cloud-native Tools für Contenfilterung und Sicherheitsfunktionen nutzen. Llama 2 sei auch für die lokale Ausführung unter Windows optimiert. Zudem sei Llama 2 auch über Amazon Web Services (AWS), Hugging Face und andere Anbieter verfügbar, teilt Meta mit. Llama ist ein Multi-Modal-Modell, das Bilder, Text und Code generieren kann.
Mehr Informationen und den Download gibt es hier. Auf Github ist eine kurze Anleitung zum Download und der Lizenz verfügbar.
Der Beitrag KI: Meta macht LLama 2 kostenlos für Geschäftskunden erschien zuerst auf Linux-Magazin.