Lass uns einen komplett lokalen ChatGPT-ähnlichen Bot auf einem Android-Handy installieren - mit ein paar Befehlen, sorry iPhone-Leute..

September 30, 2024 #Android LLMs #Generative A.I #A.I

Kurze Demo

Das läuft auf einem besseren Handy als dem in der Anleitung und hat ein anderes Betriebssystem. Wenn du mehr darüber wissen möchtest, lass es mich wissen!

Einrichtung

Okay, in diesem Beitrag nutzen wir einige der Dinge, die wir bereits gelernt haben, wie Nix und F-Droid.

Falls du das auf einem MacOS-, BSD- oder Linux-Laptop machen möchtest, hol dir einfach den Nix-Paketmanager-Einzeiler von ihrer Website und du bist startklar. Du kannst einfach die paar Befehle danach ausführen. Die Macht von Nix...

Da wir das auf unserem Android-Handy machen wollen, müssen wir die App Nix-On-Droid herunterladen, und dafür brauchen wir den Open-Source-App-Store F-Droid. (Alles ist dort kostenlos, Leute! Ich möchte immer darauf hinweisen, und wenn ihr etwas Nützliches seht, unterstützt bitte die Entwickler.)

msg

Lass uns F-Droid von ihrer Seite oder ihrem Git-Repository holen, falls du es wirklich selbst bauen und auf dein Handy pushen willst, aber wenn du das bereits kannst, brauchtest du vermutlich diesen Hinweis nicht mal.

msg

Nun wird dein Handy vermutlich nach Berechtigungen fragen, um die Installation zu erlauben und schon vorab Panik über die Datei schieben.

msg

Das passiert bei allem, was außerhalb des Playstores liegt, sogar bei Google Chrome...

msg

Das Telefon sollte dich trotzdem durch das Aktivieren der Berechtigung führen, klick einfach auf die Nachricht, die du bekommst.

msg

Falls du dir darüber Sorgen machst, ermutige ich dich, deine eigene Recherche zu allem zu machen, immer, nicht nur bei den Dingen, die wir lehren.

msg

Es könnte eine Weile dauern, bis die App alles eingerichtet und verknüpft hat. Der nächste Schritt ist, Nix-on-Droid zu finden.

msg

Das ist im Grunde ein Terminalemulator und der Nix-Paketmanager, der konfiguriert und einsatzbereit ist.

msg

Jetzt musst du vermutlich F-Droid erlauben, APKs herunterzuladen.

msg

Jetzt, wo das erledigt ist, müssen wir die App öffnen, und sie wird uns nach einem Speicherort fragen. Ich habe damit nicht herumgespielt, aber theoretisch, wenn du ein gerootetes Handy hast (Administratorzugriff), solltest du es überall installieren können. Ich habe jedoch nichts getestet, daher schlage ich vor, den standardmäßig vorgeschlagenen Speicherort zu verwenden, um Zugriffsprobleme zu vermeiden.

msg

Gib ihm die Zeit, die es braucht, besonders wenn du ein älteres Telefon und/oder eine langsamere Internetverbindung hast.

msg

Ich schlage vor, die Flake-Unterstützung für eine schnellere und einfachere Erstkonfiguration zu deaktivieren. Es gibt weniger Hindernisse, und später, wenn du mit einigen Projekten herumspielen möchtest, kannst du es wieder aktivieren.

msg

Ich habe es jetzt aktiviert, weil ich damit herumspielen werde, und ich habe kein Problem damit, zu warten, um es zum Laufen zu bringen. ABER es wird sehr lange dauern, du wirst wahrscheinlich vergessen haben, dass du überhaupt damit angefangen hast, wenn du Flakes aktivierst...

msg

Es dauert lange und wirft ein paar Fehler...

msg msg

Und dann, wenn du vergessen hast, was du ursprünglich tun wolltest...

msg

Endlich sind wir durch alle Hindernisse gesprungen, lass uns die paar Befehle ausführen, aber zuerst stellen wir sicher, dass Nix richtig läuft (es sollten keine Probleme auftreten, aber kopiere die Fehler in DuckDuckGo oder ChatGPT, wenn es welche gibt).

msg

# Kopiere den Text / die Befehle einzeln und drücke Enter, um sie auszuführen (Für den Fall, dass manche Leute so etwas noch nie gemacht haben)

whoami 

ls -a

nix-shell -p htop tmux

# nix-shell installiert die Pakete nur für die aktuelle Shell/Sitzung. Wenn du die App schließt, hast du diese Apps nicht mehr... Es sei denn, du führst den Befehl erneut aus.

htop

msg

Optisch ansprechend

Wenn das alles gut funktioniert, lass uns endlich die paar Befehle ausführen.

Die Magie

nix-env -iA nixpkgs.ollama

# nix-env installiert die Pakete für alle zukünftigen Shells/Sitzungen. Im Grunde musst du nix-shell -p nicht jedes Mal ausführen, wenn du etwas ausführen möchtest.

# Ich empfehle, dies auch mit tmux zu tun.

# Dies ist ein Thema für einen eigenen Blogbeitrag, aber ollama ist Software, die es ermöglicht, Modellinferenz auszuführen.

Falls du dich in derselben Shell befindest, in der du htop und tmux installiert hast, führe tmux aus. Wenn nicht, mache tmux verfügbar und führe es aus.

tmux

Nun möchtest du STRG+b+c auf der kleinen virtuellen Tastatur drücken (alle Eingaben für tmux-Befehle sind in Kleinbuchstaben). Okay, wenn das gut geklappt hat, solltest du jetzt 2 Fenster haben (0 und 1).

msg

Führe jetzt aus:

ollama serve

Drücke jetzt STRG+b, aber diesmal drücke n oder p danach und führe dann aus:

msg

# Dies ist ein kleines Modell und sollte auf vielen Handys funktionieren!

ollama run tinyllama:1.1b-chat-v0.6-q4_K_M # Du kannst auch q4_K_S für ein noch kleineres Modell ausprobieren.
ollama run tinyllama:1.1b-chat-v0.6-q3_K_S
# Dieses sollte auf fast jedem Gerät schnell laufen.
# Sehr klein. Ich habe es verwendet, um das Video zu machen.

# Oder führe aus:

ollama run tinyllama:1.1b-chat-v0.6-q5_K_S # Für ein größeres Modell, bedenke, dass größere Modelle langsamer sein werden.

Was du tatsächlich wolltest!

Zuerst die Umgebung einrichten: Hole dir den F-Droid Open-Source-App-"Store" und die Nix-on-Droid App. Oder auf anderen Geräten einfach den Nix-Paketmanager von ihrer Seite holen und du bist bereit.

Zweitens führe ein paar Befehle aus, um den LLM-Prompt zu konfigurieren:


nix-env -iA nixpkgs.ollama nixpkgs.tmux

bash

tmux # Ctrl+b und c auf der virtuellen Tastatur drücken, um 2 Fenster zu erhalten.

bash

ollama serve # in einem Fenster, dann Ctrl+b und n, um zum nächsten Fenster zu wechseln.

Schließlich führen wir noch einen Befehl aus:


ollama run tinyllama:1.1b-chat-v0.6-q3_K_S # Und du wartest einen Moment, bis das Modell heruntergeladen wird und dich auffordert – je nach deiner Verbindung.

Ich habe den Leitfaden erstellt und führe Modelle auf einem alten Sony L2 aus (es ist langsam, aber es läuft), das tatsächliche Video von der Ausführung des LLM habe ich auf einem etwas besseren Telefon gemacht, weil ich auch den Bildschirm aufnehmen musste. Wenn du eine Anleitung möchtest, wie ich alles eingerichtet habe, lass es mich wissen.

Ich weiß, ich habe es wahrscheinlich etwas lang gemacht, aber ich hoffe, dass jeder eine Vorstellung davon hatte, was vor sich ging und dass alles für dich funktioniert hat!