1 Punkte von GN⁺ 2023-12-15 | 1 Kommentare | Auf WhatsApp teilen
  • Mit dem zusammen mit Mozilla entwickelten Open-Source-Projekt llamafile lassen sich lokale LLMs wie Shell-Tools als einzelne ausführbare Datei starten und Aufgaben mit Bildern, Webseiten, APIs, Chat, Code und E-Mails per Bash-Einzeiler erledigen
  • Ein auf LLaVA basierendes .llamafile gibt mit nur --image und einem Prompt Bildbeschreibungen auf die Standardausgabe aus; je nach Betriebssystem können Vorbereitungen wie Xcode, binfmt_misc oder die Endung .exe nötig sein
  • Für den Einsatz in der Automatisierung sollte die Ausgabe mit BNF-Grammatikbeschränkungen, --temp 0 und einer Token-Begrenzung per -n eingeengt werden; bei der Dateinamenerzeugung ist es wichtig, unvorhersehbare Ausgaben und ENAMETOOLONG-Fehler zu vermeiden
  • URL-Zusammenfassungen funktionieren, indem HTML mit links in Text umgewandelt und dann an ein Mistral-7B-llamafile gepiped wird; im Beispiel wird eine Webseite mit 3.774 Wörtern auf eine Zusammenfassung mit 129 Wörtern reduziert
  • Möglich sind auch eine lokale OpenAI-kompatible API, ein Terminal-Chatbot, Code-Vervollständigung und das Schreiben von E-Mails; bei LLMs fürs Programmieren gibt es aber Grenzen bei Mathematik und Verifikation, weshalb sie sicherer als Hilfswerkzeug zum Erkunden unbekannter Themen betrachtet werden sollten

llamafile als lokales LLM-Shell-Tool verwenden

  • llamafile ist ein Open-Source-Projekt, an dem zusammen mit Mozilla gearbeitet wurde und das LLMs direkt auf dem Computer der Nutzer ausführt
  • Das Projekt hat auf GitHub 8,3k stars, auf Hacker News 1073 upvotes erhalten und wurde auch von Hackaday aufgegriffen
  • Die Release-Version in den Beispielen ist 0.8.12, und der Text zeigt, was mit dieser Version möglich ist
  • Der Einstieg erfolgt, indem man ein vorgefertigtes .llamafile von Hugging Face herunterlädt und ausführbar macht
    • Verwendet wird das .llamafile llava-v1.5-7b-q4.llamafile für das multimodale Vision-Modell LLaVA
    • Es läuft unter MacOS, Linux, Windows und BSD
    • Bei Problemen sollte man die Gotchas im README prüfen; unter MacOS kann Xcode nötig sein, unter Linux der binfmt_misc-Interpreter und unter Windows die Endung .exe

Bildzusammenfassung: LLaVA auf Standardausgabe aufrufen

  • llava-v1.5-7b-q4.llamafile verwendet standardmäßig ein multimodales Vision-Modell; mit --mmproj '' verändert sich dieses Verhalten
  • Bilder werden mit dem Flag --image GRAPHIC übergeben; unterstützt werden Dateien in jpeg, png, tga, bmp, psd, gif, hdr, pic und pnm
  • Die Frage wird in der Form --silent-prompt -p PROMPT übergeben, und die Antwort erscheint auf der Standardausgabe
  • Der Beispiel-Einzeiler fragt für lemurs.jpg What do you see? und verwendet mit --temp 0 eine deterministische Ausgabe
  • Für GPU-Offloading ist -ngl 999 nötig
  • Selbst derselbe Befehl zur Bildzusammenfassung kann je nach Hardware sehr unterschiedlich lange laufen
    • Mac Studio: 4 Sekunden, Preis 8.300 $, M2 Ultra, 800 GB/s Speicherbandbreite, 60 GPU cores
    • Windows-PC: 10 Sekunden, vier Jahre alte NVIDIA GeForce RTX 2080 Ti, damaliger Amazon-Preis 500–1.000 $
    • Hewlett Packard ProDesk 600 G5: 45 Sekunden, 1.653 $, Intel Core i9-9900, 2667 MT/s oder 19,8 GB/s Speicherbandbreite, keine GPU
  • Die Beispielausgabe beschreibt, dass ein weiblicher Lemur zwei von drei Jungtieren hält und ihnen in einer grünen Umgebung Schutz und Wärme bietet

Sichere Dateinamenerzeugung: Grammatikbeschränkungen und Token-Limits

  • Das zentrale Risiko bei der Erzeugung von Bilddateinamen mit LLaVA ist, dass LLM-Ausgaben grundsätzlich unvorhersehbar sind
  • --grammar begrenzt die möglichen Ausgabetokens per Backus-Naur-Form
    • Zum Beispiel erzwingt root ::= "yes" | "no", dass nur "yes\n" oder "no\n" ausgegeben wird
    • Im Dateinamenbeispiel werden nur Kleinbuchstaben und Leerzeichen zugelassen, danach werden Leerzeichen mit sed in Unterstriche umgewandelt und .jpg angehängt
  • Der Einzeiler zur Dateinamenerzeugung verwendet --grammar 'root ::= [a-z]+ (" " [a-z]+)+' zusammen mit -n 16
  • Wenn mit -n 16 die maximale Zahl der generierten Tokens nicht begrenzt wird, kann das LLM zu langen Text erzeugen und einen ENAMETOOLONG-Fehler verursachen
  • Die Grammatik sollte einigermaßen zu der Art passen, wie das Modell ursprünglich zu generieren gelernt hat
    • LLaVA wurde nicht darauf trainiert, Sätze mit Unterstrichen zu erzeugen; wenn man Unterstriche direkt in die BNF aufnimmt, kann die Ausgabe inkonsistent werden
    • Kleingeschriebene Ausgaben lagen innerhalb des Bereichs von LLaVA
    • Formate wie JSON, die im Web häufig gesammelt wurden, können mit Grammatikbeschränkungen als Guardrail dienen, um Syntaxfehler in halluziniertem JSON zu verringern
  • In vollständigerer Form gibt es das Skript rename-pictures.sh, das im Beispiel auf ~/Pictures angewendet wird

URL-Zusammenfassung: Kombination aus links und Mistral 7B

  • Das Mistral 7B instruct llamafile kann die Ausgabe des Befehls links per Pipe für die Zusammenfassung von HTML-URLs verwenden
  • links ist ein Webbrowser für die Kommandozeile und lässt sich unter MacOS meist mit brew install links installieren
  • Es gibt auch ein vorgefertigtes APE-Binary für Fälle ohne Paketmanager
    • links v2.29, 7,7 MB
    • Für AMD64+ARM64 sowie Linux+Windows+FreeBSD+NetBSD+OpenBSD
  • Der URL-Zusammenfassungs-Einzeiler arbeitet mit folgendem Ablauf
    • Zuerst wird [INST]Summarize the following text: ausgegeben
    • Mit links -codepage utf-8 -force-html -width 500 -dump URL wird die Webseite in Text umgewandelt
    • Mit sed 's/*/ /g' werden einige Zeichen bereinigt
    • Danach wird [/INST] angehängt und alles mit -f /dev/stdin an das Mistral-llamafile übergeben
  • Die Beispielseite „Real Programmers Don’t Use Pascal“ wird von 3.774 Wörtern auf eine Zusammenfassung mit 129 Wörtern reduziert
  • Auf dieselbe Weise sind auch beliebige Fragen zu einem Text möglich
    • Im Beispiel wird gefragt, ob der Autor mental instabil wirke; Mistral berücksichtigt dabei, dass der Text zwar übertrieben und hyperbolisch ist, aber eine satirische Schrift von 1983 darstellt
    • Mit --grammar 'root ::= "yes" | "no"' lässt sich die Ausgabe für Skripte bequem auf ein YES/NO-Format beschränken
  • Eine wichtige Beschränkung ist, die Kontextgröße von 32k Tokens in Mistral v0.2 nicht zu überschreiten
    • -width 500 hilft, Umbrüche in Absätzen zu vermeiden und überflüssige Zeilenumbrüche zu reduzieren
    • Mit sed 's/ */ /g' lassen sich wiederholte Leerzeichen reduzieren
    • dd bs=1 count=80000 kann als letzte Verteidigungslinie dienen, um lange Webseiten grob abzuschneiden

Lokale OpenAI-kompatible API

  • Ein „server“-llamafile stellt lokal einen OpenAI-API-kompatiblen Endpoint bereit
  • Im Beispiel wird Mixtral 8x7B verwendet, wofür eine starke GPU nötig ist, die ein 30-Gibibyte-Modell ausführen kann
  • Der Server wird mit mixtral-8x7b-instruct-v0.1.Q5_K_M-server.llamafile --nobrowser gestartet
  • In einem separaten Terminal wird mit curl eine Anfrage an http://localhost:8080/v1/chat/completions gesendet, und das zurückgegebene JSON wird mit Python hübsch formatiert ausgegeben
  • Das Request-JSON folgt dem OpenAI-Chat-Completions-Format mit model auf gpt-3.5-turbo sowie einem Nachrichtenarray aus system- und user-Nachrichten
  • Die Beispielantwort enthält eine assistant-Nachricht, die das Konzept der Rekursion in Gedichtform erklärt, sowie die Nutzungswerte completion_tokens, prompt_tokens und total_tokens

Terminal-Chatbot: Digital-Athena-Prompt

  • llamafile kann als komprimiertes Binary von der Release-Seite geladen oder aus dem Sourcecode gebaut und wie ein normales UNIX-Kommandozeilenwerkzeug genutzt werden
    • Gezeigt wird der Ablauf git clone, make -j8, sudo make install, man llamafile
  • Dieser Ansatz macht die Nutzung zusammen mit GGUF weights von Hugging Face einfach
  • Das Chatbot-Beispiel verwendet das ursprüngliche LLaMA-Modell, das Facebook zu Forschungszwecken veröffentlicht hat
  • Wichtig ist ein Prompt, der das Modell nicht vermenschlicht und es in akademischem Ton sprechen lässt
    • Der Name Digital Athena stammt von Athena, der griechischen Göttin der Weisheit und des Wissens
    • Gestartet wird im Dialogformat zwischen Researcher und Digital Athena
  • Für den interaktiven Betrieb werden Optionen wie --interactive, --color, --ctx_size 4096 und --reverse-prompt 'Researcher:' verwendet
  • --temp 0 sorgt dafür, dass die Ausgabe deterministisch und reproduzierbar ist
    • Ohne diese Option nutzt llamafile den Zufallsgrad von Version 0.8.12, sodass jedes Mal eine andere Antwort entsteht
  • Wenn man einen stärker vermenschlichten Chatbot will, kann das ursprüngliche LLaMA-Modell schwierig sein, weil seine Grundeinstellung Nutzer eher wie fremde Personen auf Reddit behandelt

Code-Vervollständigung: Wizard Coder verwenden

  • Wer das Wizard Coder llamafile herunterlädt, kann es in Emacs oder Vim zur Autovervollständigung der aktuellen Zeile nutzen
  • Das Beispielmodell wurde auf Python fokussiert feinjustiert, erzeugt aber eine Implementierung von memcpy() in C
  • Der Prompt enthält nur den Beginn eines Markdown-Codeblocks und die Funktionssignatur, ohne englische Erklärung
    • Wenn man kein Englisch schreibt, sinkt die Wahrscheinlichkeit, dass das Modell lange Codeerklärungen anhängt
    • Ein Markdown-Codeblock erhöht die Chance, dass das mit -r angegebene reverse-prompt-Token erscheint und die Generierung zum passenden Zeitpunkt endet
    • Um sicherer zu stoppen, kann man die Antwort mit -n 100 auf 100 Tokens begrenzen
  • Die Beispielausgabe ist eine memcpy()-Implementierung, die mit einer for-Schleife size Bytes von src nach dst kopiert und dst zurückgibt
  • LLMs zum Programmieren haben klare Grenzen
    • Sie verstehen menschliche Sprache gut, sind aber schwach in Mathematik
    • Sie schreiben plausibel wirkenden Code, der einer Prüfung aber oft nicht standhält
    • Hilfreich ist es, sie als Werkzeug zu sehen, das Stack-Overflow-Antworten in mehreren Sprachen wiederkäut
    • Für gute Erfahrungen sollte man erwarten, Hilfe beim Erkunden unbekannter Themen zu bekommen

E-Mails schreiben: Antworten mit kleinen Modellen erzeugen

  • Das Beispiel zum Schreiben von E-Mails beschreibt einen Raspberry Pi für 50 $, der auf Firmen-E-Mails antwortet und beim Produktverkauf hilft
  • Rocket 3B verwendet eine leicht andere Prompt-Syntax; in diesem Fall kann Temperature helfen, Improvisation nachzuahmen
  • Das Beispiel geht von einem PHP-Server aus, der Supportanfragen in den Prompt einfügt und die Ausgabe an sendmail pipet
  • Der System-Prompt weist das Modell an, dem Nutzer zu helfen und das Gespräch zugleich in Richtung Pickle-Kauf zu lenken
  • Im Beispiel sagt ein Nutzer, er brauche nach starkem Wind auf dem Long Island Sound Rettung; das Modell erzeugt daraufhin erst eine empathische Antwort und empfiehlt dann Bill Pickle’s Gourmet Dill Pickles
  • Das letzte Beispiel ist als Humor gemeint und darf nicht so verstanden werden, dass Mozilla ein bestimmtes Modell, eine bestimmte Lizenz, einen bestimmten Datensatz oder bestimmte Praktiken empfiehlt oder garantiert

1 Kommentare

 
GN⁺ 2023-12-15
Hacker-News-Meinungen
  • Seit einigen Monaten erkunde ich mit Freude die Kombination aus LLMs und CLI-Utilities, und die beiden passen wirklich gut zusammen
    Die Art, mit Pipes im Sinne der Unix-Philosophie mehrere Tools aneinanderzureihen, passt auch gut zur Funktionsweise von LLMs
    Ich habe hauptsächlich mit dem CLI-Tool https://llm.datasette.io/ experimentiert, außerdem gibt es auch Einmal-Tools wie https://github.com/simonw/blip-caption und https://github.com/simonw/ospeak
    Es macht so viel Spaß, dass ich mich fast wundere, dass nicht noch mehr Leute den Bereich LLM+CLI intensiv erkunden

    • In den letzten 9 Monaten bestanden 70 % der Startseiten von Hacker News und Twitter aus allen möglichen Diskussionen über LLM CLIs
      Es war die lauteste technische Erkundung, die ich bisher gesehen habe; ich müsste davon eher weniger als noch mehr hören
    • Ich nutze bei der Arbeit häufig https://github.com/go-go-golems/geppetto, das einen CLI-Modus und einen TUI-Chat-Modus hat
      Prompt-Templates werden wie Kommandozeilen-Verben bereitgestellt und können aus mehreren „Repositories“ geladen werden
      Für jedes Repository, an dem ich arbeite, pflege ich eine Sammlung von Prompts und lege dazu auch eigene „prompto“-Skripte https://github.com/go-go-golems/prompto ab, die dynamischen Prompt-Kontext erzeugen
      Für Third-Party-Bibliotheken habe ich ebenfalls einiges gebaut; das liegt unter https://github.com/go-go-golems/promptos
      Einige der öffentlichen Prompts kann man unter https://github.com/go-go-golems/geppetto/tree/main/cmd/pinoc... sehen, und derzeit baue ich ein deklaratives Agenten-Framework
    • Gute Links. Ich habe https://github.com/npiv/chatblade und https://github.com/tbckr/sgpt verwendet und stimme voll zu, dass LLM+CLI eine perfekt passende Kombination ist
      Kürzlich habe ich mit httrack + w3m dump + sgpt images + GPT Vision eine spezifische Wissensbasis mit 278.000 Tokens aufgebaut und per eigenem Perl-Hack, der die Gliederungsstruktur des Wissens bewahrt, RAG umgesetzt
      Ich frage mich, ob du Tools gesehen hast, die gut zur Unix-Philosophie passen, für Eingabeverarbeitung und lokales RAG
      Nebenbei sehe ich, dass der Autor des Originalbeitrags dazu bereits einiges gemacht und unter https://simonwillison.net/2023/Oct/23/embeddings/ zusammengefasst hat
      Der Punkt, an dem ich gerade festhänge, ist eine Toolchain zum Chunking der Inhalte, für die Embeddings erstellt werden sollen. Schön wäre etwas, das Positionskontext wie „2.1 Failover“ oder „Chapter 8: The dream“ im Originaltext erkennt, Zeilenumbrüche aus 80-Zeichen-breiten Quellen auflöst und Absätze beibehält, also intelligent segmentiert
    • Die Begeisterung für CLI-zentrierte Workflows scheint allmählich nachzulassen
      Ich denke, der Hauptgrund ist VS Code, und die Entwickler, die ich unterstütze, wollen eher Point-and-Click als Terminal und CLI
  • Aktuelle verwandte Beiträge
    Llamafile – The easiest way to run LLMs locally on your Mac - https://news.ycombinator.com/item?id=38522636 - Dezember 2023, 17 Kommentare
    Llamafile is the new best way to run a LLM on your own computer - https://news.ycombinator.com/item?id=38489533 - Dezember 2023, 47 Kommentare
    Llamafile lets you distribute and run LLMs with a single file - https://news.ycombinator.com/item?id=38464057 - November 2023, 287 Kommentare

  • Wirklich großartig. Besonders gefällt mir das Beispiel, bei dem mit einem LLM Bilddateien beschreibend umbenannt werden

  • Ich habe es auf einem Windows-Desktop mit einer NVIDIA GeForce RTX 3080 Ti ausprobiert, und es gab ein paar Stolpersteine, bis es lief
    WSL wirft den Fehler error: APE is running on WIN32 inside WSL. You need to run: sudo sh -c 'echo -1 > /proc/sys/fs/binfmt_misc/WSLInterop', der im One-Liner nach /dev/null versteckt wird
    Danach erschien in zsh zsh: exec format error: ./llava-v1.5-7b-q4-main.llamafile, sodass ich es in bash ausführen musste. Im Titel steht zwar bash, aber dass es in zsh nicht funktioniert, wirkt merkwürdig
    Es erscheint auch eine Warnung, dass GPU-Offloading nicht unterstützt wird; vermutlich liegt das an WSL. Auf dieser Windows-Maschine mache ich keine GPU-Programmierung

    • In zsh lässt sich das lösen, indem man sh vor den Befehl setzt: sh ./llava-v1.5-7b-q4-main.llamafile
      Das ist eine Eigenheit von zsh und APE, und unter https://justine.lol/ape.html steht etwas dazu
    • Das war ein ZSH-Bug und wurde vor ein paar Monaten behoben. Du scheinst eine ältere ZSH-Version zu verwenden
    • Ich hatte überlegt, es auf einer Windows-Maschine mit RTX 4070 auszuprobieren, aber es klingt so, als würde die GPU unter WSL nicht genutzt
      Ich frage mich, ob der Test mit nur der CPU sehr langsam war
  • Eine kurze Suche auf Hugging Face zeigt ein paar TinyLlama-Llamafiles in der Größenordnung von etwa 1B.
    Zusammen mit den drei bereits vorhandenen llamafile wären das insgesamt sechs; ich frage mich, ob es in freier Wildbahn noch weitere llamafile gibt.

    • Ich kenne die Antwort auf die Frage nicht, aber wusstest du, dass man die eigenständig ausführbare llamafile-server-Datei herunterladen und mit jedem beliebigen gguf-Modell verwenden kann?
  • Ich frage mich, wie HN llamafile und modelfile (https://github.com/jmorganca/ollama/blob/main/docs/modelfile...) einschätzt.
    Beides erinnert an eine Dockerfile-ähnliche Erfahrung. Modelfile sieht direkt wie ein Dockerfile aus, aber llamafile wirkt schwerer zu schreiben, und die tatsächliche Form erschließt sich nicht sofort. Ich frage mich, ob es eine Sequenz von Befehlen ist, die man im Terminal ausführt.
    Theoretisch frage ich mich auch, warum man nicht einfach Dockerfile verwendet.

    • Die Kernfunktion ist die Option --grammar; sie beschränkt die Logits der LLM-Ausgabe und ist damit sehr nützlich für Bash-Skripte, die alle möglichen Klassifizierungsaufgaben in der Verarbeitung natürlicher Sprache erledigen.
      Ansonsten nutze ich ollama, wenn ich ein lokales LLM brauche, vllm, wenn ich einen GPU-Server miete, und die OpenAI API, wenn ich einfach das beste Modell brauche.
    • https://news.ycombinator.com/item?id=38464057
    • llamafile verwendet kein Docker. Es ist einfach eine ausführbare Datei.
      Man lädt llamafile herunter, macht chmod +x und führt es mit ./run aus.
      Docker + llamafile ist allerdings ebenfalls möglich. Unter https://github.com/ajbouh/cosmos gibt es eine ziemlich gute Dockerfile-Konfiguration.
  • Ich frage mich, welche Vor- und Nachteile llamafile aus dem Originalbeitrag gegenüber ollama hat.

    • llamafile ist im Grunde eher llama.cpp, nur ohne dass man es selbst bauen muss.
      Dadurch bekommt man mit minimalem Aufwand Zugriff auf alle möglichen Konfigurationsregler. Besonders wenn man das „server“-llamafile herunterlädt, ist es der schnellste Weg, ein lokales LLM in einem Browser-Tab zu starten.
      https://huggingface.co/jartine/llava-v1.5-7B-GGUF/tree/main
      llamafile kann zwar auch einen Kommandozeilen-Chatbot ausführen, aber für diesen Zweck bietet ollama eine deutlich sauberere und ausgereiftere Erfahrung.
  • Ich möchte prüfen, ob ich das richtig verstanden habe: Wenn man llamafile in einem Shell-Skript ausführt, um etwa Dateinamen in einem Verzeichnis umzubenennen, muss dann bei jedem neuen Dateinamen die ausführbare Datei geöffnet und geladen werden?
    Falls ja, wird dieser Speicher dann jedes Mal geladen und wieder entladen, oder gibt es irgendein schickes Caching, von dem ich nichts weiß?
    Beim ersten Ausführen des Bildunterschriften-Beispiels auf einem M1 Pro dauerte es 13 Sekunden, beim zweiten Mal 8 Sekunden, und spätere Läufe brauchten weiterhin ungefähr ähnlich lange.
    Wenn man sehr viele Dateien verarbeitet, scheint es wirklich nötig zu sein, die Gewichte nur einmal zu laden und sie während einer Prozessschleife im Speicher zu behalten.
    Trotzdem ist es weiterhin sehr nützlich und interessant.

    • Das Modell wird von der Festplatte per Memory Mapping eingebunden, der Kernel übernimmt also das Einlesen in den Speicher.
      Solange dieser RAM nicht von etwas anderem angefordert wird, bleiben die betreffenden Pages zwischen Befehlsaufrufen im Speicher gecacht.
      Auf einer Workstation mit 128 GB bleiben sogar mehrere 7B-Modelle auf der CPU alle im Cache.
    • Der Unterschied zwischen dem Ausführen von main aus llama.cpp und server + POST-HTTP-Requests ist ziemlich groß, aber nicht weltbewegend.
      Bei ein paar Zeilen Completion auf einem 8-GB-VRAM-Modell sind es grob 6 Sekunden gegenüber 2 Sekunden; auf einer 3090 mit 96 GB RAM läuft die Inferenz komplett auf der GPU.
      Wenn man wirklich Batch-Jobs macht, ist es eindeutig besser, das Modell zwischen Completions geladen zu lassen.
      Andererseits hat man den Nachteil, an das im Server geladene Modell gebunden zu sein. Wenn man es bei Bedarf lädt, kann man Modelle austauschen.
      Das ist für multimodale Bildabfragen wichtig, weil andere Modelle die projizierten Bild-Token nicht verstehen.
  • In den Installationsschritten stehen die folgenden Befehle; ich frage mich, ob das sicher ist.

    sudo wget -O /usr/bin/ape [https://cosmo.zip/pub/cosmos/bin/ape-$(uname](<https://cosmo.zip/pub/cosmos/bin/ape-$(uname>) -m).elf  
    sudo chmod +x /usr/bin/ape  
    sudo sh -c "echo ':APE:M::MZqFpD::/usr/bin/ape:' >/proc/sys/fs/binfmt_misc/register"  
    sudo sh -c "echo ':APE-jart:M::jartsr::/usr/bin/ape:' >/proc/sys/fs/binfmt_misc/register"  
    
  • Ich frage mich, ob man etwas tun muss, um llamafile unter Windows 10 auszuführen.
    Wenn ich llava-v1.5-7b-q4-server.llamafile in git bash ausführe, beendet es sich sofort mit „Segmentation fault“, und in cmd gibt es keinerlei Ausgabe.
    Ich habe auch llamafile und das Modell separat heruntergeladen und llamafile.exe -m llava-v1.5-7b-Q4_K.gguf probiert, aber das Problem bleibt dasselbe.
    Ich konnte kein ähnliches Problem finden, und aus meiner Sicht scheint es auch kein Antivirus-Problem zu sein.

    • Ich frage mich, ob du es in cmd.exe oder PowerShell ausprobiert hast.
      Du kannst das Flag --strace oder, falls möglich, --ftrace übergeben, um zu sehen, was passiert.
    • Unter Windows musst du die heruntergeladene .llamafile in .exe umbenennen.
    • Unter Windows musst du .llamafile in .exe umbenennen.