Large Language Model (LLM) auf Raspberry Pi 5 installieren – eine Anleitung

Symbolbild LLM Àhnlich wie Chat GPT lÀuft auf einen Raspberry PI

LLM wie Chat GPT lÀuft auf einen Raspberry Pi

In diesem spannenden Tutorial dreht sich alles um ein LLM (Large Language Model) wie ChatGPT, das wir auf einem Raspberry Pi 5 zum Leben erwecken. Stell dir vor: Ein preisgĂŒnstiger, tragbarer Computer, der so klein ist, dass er in deine Tasche passt, wird zur Schaltzentrale fortschrittlicher Technologie.

Hinweis zum LLM auf Raspberry Pi 5

Aber halt, bevor wir starten: Es gibt da ein paar Dinge, die du wissen solltest. Der Raspberry Pi ist super, aber er hat seine Grenzen – vor allem, wenn es um große Sprachmodelle (LLM) geht. Keine Sorge, wir haben dafĂŒr eine Lösung! Wir nutzen einfach eine schlankere Version des Modells, die quantisierten Modelle. Diese sind zwar etwas einfacher gestrickt, mit weniger Parametern und Schichten, aber sie können immer noch eine Menge! So bekommst du fast die ganze Power des Originals, aber passend fĂŒr unseren kleinen Raspberry Pi. Spannend, oder? Lass uns loslegen!

WARENKORB

KĂŒhlen mit dem Raspberry Pi Active Cooler

Wenn du deinen Raspberry Pi auch unter Last schön kĂŒhl halten möchtest, wĂ€hrend er mit einem LLM hantiert, solltest du ĂŒber die Anschaffung eines Raspberry Pi Active Coolers nachdenken. Dieser aktive KĂŒhler, oder auch LĂŒfter genannt, ist ein echter Lebensretter fĂŒr deinen kleinen Computer. Er sorgt dafĂŒr, dass die Temperatur auch bei intensiver Nutzung angenehm niedrig bleibt. So kann dein Raspberry Pi auch anspruchsvolle Aufgaben wie das Betreiben großer Sprachmodelle meistern, ohne ins Schwitzen zu kommen. Ein kleines, aber feines Zubehör, das einen großen Unterschied machen kann.

Dieser Mini-LĂŒfter sorgt dafĂŒr, dass der Pi auch bei hohen Belastungen kĂŒhl und leise bleibt, was fĂŒr optimale Leistung und Langlebigkeit entscheidend ist.

Inferenz mit Llama.cpp

Der Goldstandard fĂŒr lokale Modellinferenz bei LLMs ist LLaMA-cpp, entwickelt von Georgi Gerganov. Keine AbhĂ€ngigkeiten, keine GPU benötigt, du musst es nur auf einen Modellsnapshot zeigen, den du separat herunterlĂ€dst.

Klone das Llama.cpp-Repository

git clone https://github.com/ggerganov/llama.cpp

Als NĂ€chstes navigiere mit dem cd-Befehl zum geklonten Verzeichnis:

cd llama.cpp

Jetzt kompiliere den Code mit dem make-Befehl:

make

Ich habe das quantisierte Microsoft phi-2 Modellgewicht aus dem Hugging Face-Repository heruntergeladen. Phi-2 ist eine ausgezeichnete Wahl fĂŒr die AusfĂŒhrung von LLM-Aufgaben auf dem Raspberry Pi. Achte darauf, genĂŒgend Speicherplatz zu haben, wenn du die grĂ¶ĂŸeren Modelle ausfĂŒhrst. Um Fehler zu vermeiden, lade bitte nur die .gguf Modell-Dateien herunter, bevor du den Modus ausfĂŒhrst.

FĂŒhre den folgenden Befehl aus, um es zu starten:

./main -m ./phi-2.Q4_K_M.gguf --color \
-c 2048 --temp 0.7 --repeat_penalty 1.1 -n -1 -i --n-predict -2 \
-p "bitte sag mir, wer Robert Oppenheimer ist:"

<pre> Wenn es ordnungsgemĂ€ĂŸ funktioniert, wird folgender Hinweis angezeigt.

Robert Oppenheimer war ein amerikanischer theoretischer Physiker, am besten bekannt fĂŒr seine Arbeit am Manhattan-Projekt wĂ€hrend des Zweiten Weltkriegs. Er war auch Professor an der University of California, Berkeley, und spielte eine SchlĂŒsselrolle in der Entwicklung der Atombombe. <br>> <br>llama_print_timings: Ladezeit = 736,10 ms<br>llama_print_timings: Beispielzeit = 152,55 ms / 53 DurchlĂ€ufe (2,88 ms pro Token, 347,43 Tokens pro Sekunde)<br>llama_print_timings: Auswertungszeit fĂŒr den Prompt = 1605,74 ms / 20 Tokens (80,29 ms pro Token, 12,46 Tokens pro Sekunde)<br>llama_print_timings: Auswertungszeit = 10321,61 ms / 53 DurchlĂ€ufe (194,75 ms pro Token, 5,13 Tokens pro Sekunde)<br>llama_print_timings: Gesamtzeit = 56993,36 ms / 73 Tokens<br>

Das Resultat ist 5 tokens/sec.

LLaMA-cpp unterstĂŒtzt verschiedene LLMs, einschließlich Mistral 7B Instruct v0.2. Ersetze ‘./path/to/model.gguf’ durch den tatsĂ€chlichen Pfad zu Ihrer heruntergeladenen Modelldatei.

./main -m ./mistral-7b-instruct-v0.2.Q4_K_M.gguf --color \<br>-c 2048 --temp 0.7 --repeat_penalty 1.1 -n -1 -i --n-predict -2 \<br>-p "please tell me who is robert oppenheimer:"

Beispielausgabe mit Mistral 7B Instruct v0.2:

please tell me who is robert oppenheimer: Robert Oppenheimer (April 22, 1904 – February 18, 1967) was an American physicist and leader in the development of the atomic bomb during World War II. He is often referred to as the "Father of the Atomic Bomb" for his role in managing the Los Alamos Laboratory where the weapon was designed and built. After the war, he became a leading scientific advisor to the US government on nuclear weapons and international disarmament. However, his security clearance was revoked after allegations of Communist ties, ending his career in science.<br>llama_print_timings: load time =  741.32 ms<br>llama_print_timings: sample time = 32.26 ms /  131 runs  ( 0.25 ms per token, 4060.88 tokens per second)<br>llama_print_timings: prompt eval time = 2105.43 ms / 12 tokens ( 175.45 ms per token,  5.70 tokens per second)<br>llama_print_timings: eval time =  56629.44 ms /  131 runs  ( 432.29 ms per token,  2.31 tokens per second)<br>llama_print_timings:  total time = 114989.98 ms /  143 tokens

Resultat in 2 tokens/sec.

Inferenz mit Ollama

Ollama bietet dir eine benutzerfreundlichere Möglichkeit, LLMs auf deinem lokalen Rechner zum Laufen zu bringen. Um zu starten, lade das Ollama-CLI herunter und installiere es mit dem folgenden Befehl.

curl https://ollama.ai/install.sh | sh

Die Ausgabe wird wie folgt sein:

% Gesamt    % Erhalten % Xferd  Durchschnittliche Geschwindigkeit   Zeit    Zeit     Zeit  Aktuell
                                 Dload  Upload   Gesamt   Verbraucht    Verbleibend  Geschwindigkeit
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0>>> Herunterladen von ollama...
100  8422    0  8422    0     0  13497      0 --:--:-- --:--:-- --:--:-- 13518
######################################################################## 100.0%######################################################################### 100.0%
>>> Installation von ollama in /usr/local/bin...
>>> Erstellen des Ollama-Benutzers...
>>> HinzufĂŒgen des Ollama-Benutzers zur Render-Gruppe...
>>> HinzufĂŒgen des aktuellen Benutzers zur Ollama-Gruppe...
>>> Erstellen des Ollama-Systemd-Dienstes...
>>> Aktivieren und Starten des Ollama-Dienstes...
Erstellter Symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service.
>>> Die Ollama-API ist jetzt unter 0.0.0.0:11434 verfĂŒgbar.
>>> Installation abgeschlossen. FĂŒhre "ollama" von der Kommandozeile aus.
WARNUNG: Keine NVIDIA-GPU erkannt. Ollama wird im Nur-CPU-Modus laufen.
Wenn keine GPU erkannt wird, lÀuft Ollama im Nur-CPU-Modus, was die Geschwindigkeit beeintrÀchtigen kann.

Wenn keine GPU erkannt wird, wird Ollama im CPU-Modus ausgefĂŒhrt, was sich auf die Geschwindigkeit auswirken kann.

Dann fĂŒhre den folgenden Befehl aus, um Microsoft Phi-2 herunterzuladen und zu starten:

ollama run phi --verbose

Du solltest eine Àhnliche Ausgabe wie die folgende sehen:

Ziehe Manifest 
<br>
Ziehe 04778965089b
 100% ▕████████████████▏ 1.6 GB                         <br>
Ziehe 7908abcab772
 100% ▕████████████████▏ 1.0 KB                         <br>
Ziehe 774a15e6f1e5
 100% ▕████████████████▏   77 B                         <br>
Ziehe 3188becd6bae
 100% ▕████████████████▏  132 B                         <br>
Ziehe 0b8127ddf5ee
 100% ▕████████████████▏   42 B                         <br>
Ziehe 4ce4b16d33a3
 100% ▕████████████████▏  555 B                         <br>
ÜberprĂŒfe sha256-Digest <br>
Schreibe Manifest <br>
Entferne nicht benötigte Schichten <br>
Erfolg 
Bitte sag mir, wer Robert Oppenheimer ist<br>
      Robert Oppenheimer war ein renommierter Physiker, Akademiker und MilitÀrwissenschaftler, der eine <br>
      SchlĂŒsselrolle in der Entwicklung der Atombombe wĂ€hrend des Zweiten Weltkriegs spielte. Er ist weithin bekannt fĂŒr seine <br>
      Arbeit am Manhattan-Projekt, wo er als Direktor des Los Alamos National <br>
      Laboratory diente. Nach dem Krieg engagierte er sich in der wissenschaftlichen Gemeinschaft und war maßgeblich <br>
      an der Schaffung des Gebiets der Kernphysik beteiligt. Oppenheimers Forschung trug wesentlich dazu bei, <br>
      unser VerstĂ€ndnis des Atoms und seiner potenziellen Anwendungen, einschließlich Kernenergie und <br>
      Medizin, zu verbessern.
Gesamtdauer:       25.58233235s<br>
Ladedauer:        606.444”s<br>
Auswertungsdauer der Aufforder

Dies wird das Modell herunterladen und Informationen zum Fortschritt des Downloads anzeigen. Anschließend kannst du mit dem Modell interagieren, indem du Eingabeaufforderungen “eingeben” und “Antworten” erhĂ€ltst.

Diesen Befehl kannst du auch fĂŒr das Mistral-Modell ausfĂŒhren:

ollama run mistral --verbose

Folgenden Output wirst du erhalten

Robert Oppenheimer was an American theoretical physicist and professor of physics at the <br>University of California, Berkeley. He is best known for his role in the Manhattan Project <br>during World War II, where he led the team that designed and built the atomic bombs used by the <br>United States against the cities of Hiroshima and Nagasaki. The development of the atomic bomb <br>is considered to be one of the greatest scientific achievements of the 20th century. After the <br>war, Oppenheimer became the first director of the Los Alamos National Laboratory in New Mexico <br>and later served as the chairman of the General Advisory Committee of the United States Atomic <br>Energy Commission. In the late 1940s and early 1950s, however, Oppenheimer fell out of favor <br>with the U.S. government due to his political views and was eventually stripped of his security <br>clearance. He continued to work in physics but was never able to regain the prominence he had <br>enjoyed before.<br><br>total duration:       2m8.905908665s<br>load duration:        504.04”s<br>prompt eval count:    20 token(s)<br>prompt eval duration: 10.248923s<br>prompt eval rate:     1.95 tokens/s<br>eval count:           207 token(s)<br>eval duration:        1m58.655013s<br>eval rate:            1.74 tokens/s

Beachte, dass grĂ¶ĂŸere Modelle normalerweise langsamere Ausgabezeiten haben. Zum Beispiel generiert Phi-2 (2,7 Milliarden Parameter) etwa 4 Tokens pro Sekunde, wĂ€hrend Mistral (7 Milliarden Parameter) etwa 2 Tokens pro Sekunde erzeugt.

Abschluss und Ausblick

Wir sind nun am Ende unseres spannenden Abenteuers angelangt, in dem wir gelernt haben, wie man ein ChatGPT-Ă€hnliches großes Sprachmodell auf dem Raspberry Pi 5 betreibt. Ich hoffe, dieser Leitfaden war hilfreich und inspirierend fĂŒr dich. Mit ein wenig Geduld und KreativitĂ€t hast du gesehen, dass selbst ein kleiner Raspberry Pi mĂ€chtige LLMs handhaben kann.

Ob du nun eigene Projekte umsetzt, mit Sprachmodellen experimentierst oder einfach nur Spaß an der Technik hast – die Möglichkeiten sind nahezu grenzenlos. Denke immer daran, dass das Lernen und Experimentieren mit neuen Technologien ein fortlaufender Prozess ist. Bleib neugierig, probiere Neues aus und vor allem: Hab Spaß dabei!

Shakhizat Nurgaliyev

Wir sind begeistert, dir heute einen spannenden Artikel prĂ€sentieren zu können, der uns von Shakhizat Nurgaliyev zur VerfĂŒgung gestellt wurde. Shakhizat ist ein leidenschaftlicher Entwicklungsingenieur fĂŒr eingebettete Systeme mit einer beeindruckenden Expertise in den Bereichen Robotik und Internet der Dinge (IoT). Seine Spezialisierung liegt in der Entwicklung autonomer und intelligenter Systeme, die maschinelles Lernen nutzen, um auf ihre Umgebung zu reagieren. Von der Konzeption bis zur Programmierung bringt er umfangreiche Erfahrung mit, die maßgeblich zur Weiterentwicklung von Robotik und IoT beitrĂ€gt.

In seinem Artikel wird Shakhizat uns Einblicke in die faszinierende Welt des Betreibens von ChatGPT-Ă€hnlichen Sprachmodellen auf einem Raspberry Pi 5 geben. Dieses DIY-Projekt, das die Grenzen der Technologie auslotet, zeigt uns, wie wir fortschrittliche Sprachmodelle in einer handlichen und erschwinglichen Form nutzen können. Es ist eine großartige Gelegenheit, von einem Experten auf diesem Gebiet zu lernen und in die Welt der kreativen Technologie einzutauchen.


Die mobile Version verlassen