Laten we een volledig lokale ChatGPT-achtige bot installeren op een Android-telefoon - met een paar commando's, sorry iPhone-mensen..
september 30, 2024 #Android LLMs #Generative A.I #A.IKorte demo
Dit draait op een betere telefoon dan degene in de handleiding en heeft een ander besturingssysteem. Als je hier meer over wilt weten, laat het me weten!
Installatie
Oké, in deze post gaan we een aantal dingen gebruiken die we al hebben geleerd, zoals Nix en F-Droid.
Als je dit op een macOS-, BSD- of Linux-laptop wilt doen, haal dan gewoon de one-liner voor de Nix-pakketbeheerder van hun website, en je bent klaar om te gaan. Je kunt dan simpelweg de paar commando's daarna uitvoeren. De kracht van Nix...
Aangezien we dit op onze Android-telefoon willen doen, moeten we de app Nix-On-Droid downloaden, en daarvoor hebben we de open-source app store F-Droid nodig. (Alles daar is gratis, mensen! Ik wil dat altijd benadrukken, en als je iets nuttigs ziet, steun de ontwikkelaars alsjeblieft.)

Laten we F-Droid ophalen van hun website of hun Git-repository als je het echt zelf wilt bouwen en naar je telefoon wilt pushen, maar als je dat al kunt, had je deze hint waarschijnlijk niet eens nodig.

Je telefoon zal waarschijnlijk om toestemming vragen om de installatie toe te staan en zal van tevoren wat paniek over het bestand creëren.

Dit gebeurt met alles buiten de Playstore, zelfs bij Google Chrome...

Het toestel zou je alsnog door de toestemming moeten loodsen, klik gewoon op de melding die je krijgt.

Als je je zorgen maakt, moedig ik je aan om zelf onderzoek te doen, altijd, niet alleen over de dingen die we onderwijzen.

Het kan een tijdje duren voordat de app alles heeft ingesteld en gekoppeld. De volgende stap is het vinden van Nix-on-Droid.

Dit is in wezen een terminalemulator en de Nix-pakketbeheerder die geconfigureerd en klaar voor gebruik is.

Nu moet je F-Droid waarschijnlijk toestemming geven om APK's te downloaden.

Nu dat geregeld is, moeten we de app openen, en deze zal vragen om een opslaglocatie. Ik heb hier niet mee gespeeld, maar theoretisch, als je een gerootte telefoon hebt (administratorrechten), zou je het overal moeten kunnen installeren. Ik heb echter niets getest, dus ik stel voor om de standaardlocatie te gebruiken om toegangsproblemen te voorkomen.

Geef het de tijd die het nodig heeft, vooral als je een oudere telefoon en/of een tragere internetverbinding hebt.

Ik stel voor om de ondersteuning voor Flakes uit te schakelen voor een snellere en gemakkelijkere eerste configuratie. Er zijn minder obstakels, en later, als je met een paar projecten wilt spelen, kun je het opnieuw inschakelen.

Ik heb het nu ingeschakeld omdat ik ermee ga spelen, en ik heb er geen probleem mee om te wachten tot het werkt. MAAR het zal erg lang duren, je zult waarschijnlijk vergeten zijn dat je er überhaupt mee bent begonnen als je Flakes inschakelt...

Het duurt lang en geeft een paar foutmeldingen...


En dan, als je bent vergeten wat je oorspronkelijk wilde doen...

Eindelijk zijn we door alle obstakels heen, laten we de paar commando's uitvoeren, maar laten we eerst controleren of Nix correct werkt (er zouden geen problemen moeten zijn, maar kopieer de fouten naar DuckDuckGo of ChatGPT als er problemen zijn).

# Kopieer de tekst / commando's één voor één en druk op Enter om ze uit te voeren (voor het geval sommige mensen dit nog nooit hebben gedaan)
# nix-shell installeert de pakketten alleen voor de huidige shell/sessie. Als je de app sluit, heb je deze apps niet meer... tenzij je het commando opnieuw uitvoert.

Visueel aantrekkelijk
Als dit allemaal goed werkt, laten we eindelijk de paar commando's uitvoeren.
De magie
# nix-env installeert de pakketten voor alle toekomstige shells/sessies. In principe hoef je nix-shell -p niet elke keer uit te voeren wanneer je iets wilt uitvoeren.
# Ik raad aan om dit ook met tmux te doen.
# Dit is een onderwerp voor een aparte blogpost, maar ollama is software waarmee je modelinference kunt uitvoeren.
Als je in dezelfde shell bent waar je htop en tmux hebt geïnstalleerd, voer dan tmux uit. Als dat niet het geval is, maak tmux beschikbaar voor jezelf en voer het uit.
Nu moet je CTRL+b+c op dat kleine virtuele toetsenbord indrukken (alle invoer voor tmux-commando's is klein geschreven). Als dat goed gaat, zou je nu 2 vensters moeten hebben (0 en 1).

Voer nu uit:
Druk nu op CTRL+b, maar druk deze keer op n of p, en voer dan uit:

# Dit is een klein model en het zou op best een paar telefoons moeten draaien!
# Dit zou op bijna elk apparaat snel moeten draaien.
# Heel klein. Ik heb het gebruikt om de video te maken.
# Of voer uit:
Wat je eigenlijk kwam halen!
Eerst de omgeving instellen: haal de F-Droid Open-Source App "store" en de Nix-on-Droid app. Of op andere apparaten gewoon de nix-pakketmanager van hun website en je bent klaar om te gaan.
Ten tweede, voer een paar opdrachten uit om de LLM-prompt te configureren:
Ten slotte voeren we nog een opdracht uit:
Ik heb de gids gemaakt en ik voer modellen uit op een oude Sony L2 (het is traag, maar het draait), ik heb de daadwerkelijke video van het draaien van de LLM op een iets betere telefoon gemaakt omdat ik ook het scherm moest opnemen. Als je een gids wilt over hoe ik alles heb ingesteld, laat het me weten.
Ik weet dat ik het misschien een beetje lang heb gemaakt, maar ik hoop dat iedereen een idee heeft van wat er aan de hand was en dat het allemaal voor jou heeft gewerkt!