Überspringen und zum Inhalt gehen →

Autor: Michael Jentsch

Die Macht der Parameter in der Huggingface Transformer-Textgenerierung

Die Huggingface Transformer-Methode „generate“ ist eine einfache Möglichkeit mit einem der aktuell 66.987 text-generation Modelle, automatisch Texte zu generieren. Dazu kann man z.B. folgenden einfachen Python code verwenden. Der Code lädt ein Model und den Tokenizer von Huggingface und führ die Inference auf einer CUDA kompatiblen NVIDIA GPU aus. Die Methode „model.generate()“ kann aber noch viel mehr. Die model.generate() Methode nimmt noch folgende optionale Parameter entgegen, mit denen man das Generieren der Antwort vom Text-Generation Model noch optimieren kann. Huggingface Transformer model.generate Parameter max_length: Die maximale Länge der zu generierenden Sequenz. Standardmäßig auf 20 gesetzt. Ein paar Beispiele Im Folgenden werde ich anhand von ein paar Beispielen einige der Parameter exemplarisch erläutern und ihre Funktionen im Kontext der Generierung von…

Kommentare geschlossen

xLSTM von Sepp Hochreiter ist fast da

Im „INDUSTRIAL AI PODCAST“ #230 vom 05.02.2024 war Sepp Hochreiter zusammen mir Johannes Brandstetter zu Gast, um von einer neuen LLM-Alternative „xLSTM“ zu berichten an der Sepp Hochreiter mit seinem Team gerade arbeitet und das laut Sepp Hochreiter das Potential hat, OpenAI aus dem Markt zu werfen. Noch ist nicht viel bekannt, da die Intellectual Property Rights noch in der Luft hängen, Sepp Hochreiter die Rechte am xLSTM in Europa/Österreich halten möchte und die Technologie noch nicht patentiert ist. Trotzdem habe ich mal versucht, die vorhandenen Informationen und Spekulationen zusammenzutragen. Nehmt es mir also nicht übel, wenn hier etwas nicht ganz korrekt ist bzw. sich noch ändert. Vieles davon sind Halbwahrheiten bzw. Gerüchte. Aber was genau ist xLSTM? Das neue…

Kommentare geschlossen

CodeFuse-DeepSeek-33b in 4bit auf dem Jetson Orin laufen lassen

Beim Surfen bin ich auf ein mir bisher unbekanntes Huggingface Leaderboard aufmerksam geworden, dass sich speziell auf „Big Code Models“ konzentriert und die Leistung Multi-Language Code-Generierungsmodellen anhand des HumanEval und des MultiPL-E Benchmarks vergleicht. https://huggingface.co/spaces/bigcode/bigcode-models-leaderboard Unter den Top-10 findet man die üblichen Verdächtigen. Aber auf Platz 1 steht CodeFuse-DeepSeek-33b. Davon habe ich bisher noch nichts gehört. Es erreicht 60.76 bei der Programmiersprache Java und übertrifft sogar DeepSeek-Coder-33b-instruct (52.03) und CodeLlama-70b (44.72). Grund genug sich CodeFuse-DeepSeek-33b mal genauer anzusehen. CodeFuse-DeepSeek-33b Unter https://huggingface.co/codefuse-ai/CodeFuse-DeepSeek-33B-4bits kann man lesen, dass CodeFuse-DeepSeek-33B ein 33B Code-LLM ist, das mit Hilfe von QLoRA anhand mehrerer codebezogenen Aufgaben auf dem Basismodell DeepSeek-Coder-33B feingetunt wurde. Das klingt vielversprechend. Die DeepSeek-Coder Familie benutze ich schon relativ lange und habe gute Erfahrungen…

Kommentare geschlossen

Gradio Machine Learning Web Apps GDPR kompatibel

Gradio ist ein Open-Source Python Package, mit dem man schnell und einfach eine Webanwendung für ein Machine Learning Model erstellen kann. Die Idee ist es, die Komplexität von Machine-Learning-Modellen zu reduzieren und eine einfache Möglichkeit zu haben, eine interaktive Machine Learning Web-Anwendungen zu erstellen. Eine einfache einführung in Gradio gibt es z.B. hier: Gradio wird auch von einigen Anwendungen als Web-Interface genutzt, um z.B. schnell und einfach auf ein LLM zugreifen zu können. Ich nutze z.B. gerne FastChat (https://github.com/lm-sys/FastChat) um eine Web-GUI für ein LLM zu erstellen. Mit folgenden 3 Zeilen kann man eine einfache Web-GUI für ein LLMs starten. Dieser Aufruf startet einen Gradio Webserver, der dann eine Chat-GPT ähnlich Oberfläche unter http://localhost:8001/ erzeugt und einen Zugriff auf die…

Kommentare geschlossen

SSHFS for Windows

Wer schon immer mal Dateien auf einem Server (z.B. Python, PHP, etc.) statt mit einem Vim in der Console in der lokalen IDE (z.B. IntelliJ, Eclipse oder Visual Studio Code) editieren wollte, hat mit „SSHFS-Win · SSHFS for Windows“ eine einfache Möglichkeit dies zu tun. Installation Die Installation erfolgt mit dem folgenden Kommando: winget install -h -e –id „WinFsp.WinFsp“ && winget install -h -e –id „SSHFS-Win.SSHFS-Win“ Dieses Command (Powerhell) startet den Download von „WinFsp.WinFsp“ und „SSHFS-Win.SSHFS-Win“ und führt direkt die Installation durch. Gefunden WinFsp 2023 [WinFsp.WinFsp] Version 2.0.23075 Diese Anwendung wird von ihrem Besitzer an Sie lizenziert. Microsoft ist nicht verantwortlich und erteilt keine Lizenzen für Pakete von Drittanbietern. Download läuft https://github.com/winfsp/winfsp/releases/download/v2.0/winfsp-2.0.23075.msi ██████████████████████████████ 2.10 MB / 2.10 MB Der Installer-Hash…

Kommentare geschlossen

Mit dem Milk-V Duo einen PWM-Lüfter steuern

Mein Jetson Orin hat seit einigen Monaten seinen Platz bei mir gefunden und läuft aktuell quasi permanent auf 65W und macht das Finetuning für diverse LLMs dabei wird er in dem Schrank leider sehr warm und die Wärme muss irgendwie aus dem Schrank raus. Noctua NF-A6x25 5V PWM-Lüfter Also habe ich mir einen Noctua NF-A6x25 5V PWM-Lüfter bestellt, um die Luft im Schrank etwas abzukühlen. Das Ziel ist es, die RPM des Lüfters über das PWM-Signal des Milk-V Duo zu steuern. Lüfter Der Noctua NF-A6x25 5V PWM-Lüfter ist ein 5Volt Lüfter, der auch bei hohen Drehzahlen noch sehr leise ist (19,3 dB(A)) und relativ wenig Strom (260mA) benötigt. Laut des WhitePapers kann man die Drehzahl über ein PWM-Signal steuern und…

Kommentare geschlossen

JavaDoc Dokumentation mit einem Large Language Model erstellen

Die Erstellung von JavaDoc-Dokumentation ist ein oft vernachlässigter Bestandteil der Softwareentwicklung. Eine gute JavaDoc Dokumentation ermöglicht eine bessere Zusammenarbeit im Team, eine klarere und verständlichere Codebasis und kann auch bei der Realisierung eines KI basierten Code-Assistenten helfen (dazu aber in einem anderen Beitrag mehr). Hier werde ich mich damit befassen, wie ein Large Language Model (LLM) bei der Erstellung von JavaDoc-Dokumentation behilflich sein kann. Dabei werde ich verschiedene Modelle miteinander verglichen, um ihre Vor- und Nachteile zu beleuchten. Was ist JavaDoc? JavaDoc ist ein Tool, das Teil des Java Development Kits (JDK) ist. Es ermöglicht Entwicklern, automatisch eine Dokumentation aus dem Java-Quellcode zu generieren. Durch die Hinzufügung von speziellen Kommentaren (tags) im Code können Entwickler die Struktur ihrer Software dokumentieren,…

Kommentare geschlossen

Win funktionieren LangChain Document Embeddings

LangChain ist ein Open Source Python (und wohl auch JavaScript) Framework, das die Erstellung von Anwendungen mit großen Sprachmodellen (LLMs) vereinfachen soll. https://python.langchain.com/ Möchte man z.B. einen RAG (Retrieval-Augmented Generation) Anwendung mit einem Huggingface Model erstellen, kann einem die LangChain Bibliothek eine Menge Arbeit abnehmen. Neo4j Vektor Index erstellen und verwenden Neo4j ist eine Open-Source-Graph Datenbank mit integrierter Unterstützung für Vector-Similarity-Search. Damit ist es möglich, in einer Vektor Datenbank nach Vektoren (Embedding) zu suchen, die dem Suchvektor am ähnlichsten sind. Verfügt man uber einen Index mit sehr vielen Embeddings kann man z.B. den Prompt in ein Embedding-Vektor umwandeln und die Relevanten Texte aus dem Vektor-Index selektieren und einem LLM als Kontext mitgeben. Details dazu habe ich schon einem hier behandelt.…

Kommentare geschlossen

Milk-V Duo IP-Adresse ändern

Wird der Milk-V Duo über USB mit dem PC verbunden, kann man über einen USB-RNDIS Netzwerkadapter darauf zugreifen. IP 192.168.42.1 Die IP-Adresse des Milk-V Duo ist immer 192.168.42.1. Um diese IP-Adresse zu ändern, muss die Wunsch-IP-Adresse in die folgenden Dateien eingetragen werden. IP-Adresse ändern Zum Ändern der IP-Adresse meldet man sich per ssh auf dem Milk-V Duo an. Nun öffnet man die Datei /mnt/system/usb-rndis.sh mit einem Editor. Z.B. mit dem vi Editor. und ändert die IP-Adresse z.B. auf 192.168.43.1. Die gleiche IP-Adresse wird auch in der Datei /mnt/system/usb.sh eingetragen. Der Befehl „ifconfig usb0 192.168.42.1“ wird dazu verwendet, um die IP-Adresse des Netzwerkinterfaces usb0 auf 192.168.42.1 zu setzen. In der /etc/dnsmasq.conf sieht der geänderte Eintrag dann wie folgt aus. Die Datei…

Kommentare geschlossen