Projekte
Dieser Blog läuft seit dem 09. April 2019 auf einem Raspberry Pi und ist seitdem erstaunlicherweise sehr stabil. WordPress nutzt auch nicht allzu viele Ressourcen, insbesondere für meinen Anwendungsfall, da ich nicht hunderte von Zugriffen pro Tag erwarte, sodass freie Kapazitäten für andere Anwendungen möglich sind.
Das jetzige Setup beinhaltet eine out-of-the-box WordPress Installation mit docker-compose und einem Backup Skript welches die Daten in die private Dropbox cloud laden. In dieser Blog Serie würde ich gerne einen kleinen EInblick in meine Installation geben und euch zeigen, wie ihr euch dies selbst einrichten könnt.
Meine Interessen
Kürzlich veröffentlicht
Wie man zwei Zeitstempel in gleiche Teile teilt
TLDR: pd.date_range(start=s, end=e, periods=period) Problem Wie kann man gleichmäßige Zeitabstände zwischen zwei Zeitstempeln erzeugen? Mein erster Gedanke, wenn es darum geht, gleichmäßig verteilte Zahlen zu erstellen, ist die Verwendung von linspace. Dazu müssten die Datumsangaben in Unix-Zeitstempel umgewandelt, die entsprechenden…
Doppelte Schlüssel bei der Erstellung einer Json aus einem Python Dict
TLDR: Ein dictionary in json behandelt alle Schlüssel als String, während ein Python Dictionay nicht nur zwischen dem Inhalt, sondern auch dem Datentyp unterscheidet (siehe Stackoverflow). Wenn man ein Dictionary in einem json speichert und das Dictionary daraus wieder lädt,…
ChatGPT als Debug Assistant
Ich habe versucht, einen Flask Restful Endpoint mit dem webargs-Framework zu implementieren, welches ich bereits 2020 verwendet habe. Obwohl ich den alten Code kopiert und einige winzige Anpassungen am Request-Aufruf vorgenommen habe, konnte ich ihn 2023 nicht mehr zum Laufen…
Superset Guest Token mit Python erstellen, um Superset Dashboard zu embedden
Das große Ziel ist es, ein Superset Dashboard in einer Webanwendung z.B. in REACT einzubetten. Um das zu erreichen, muss unter anderem ein Guest Token (Service Account) erstellt werden. Da dieser Prozess (meiner Meinung nach) nicht ganz ausreichend gut dokumentiert…
Airflow – “Fill Dagbag” dauert zu lange
TLDR: Es ist möglich, DAGs mit nur einem Skript dynamisch zu erstellen. Bei der Ausführung der Tasks wird jedoch das ursprüngliche DAG-Skript noch einmal geparset. Dies führt zu unnötigen Parsing-Iterationen von DAGs, die nicht zum aktuellen Task zugehörig sind. Beobachtung:…
Pytorch – Skalartyp Float erwartet, aber Double gefunden
TLDR: Der Standard-Datentyp eines Numpy-Arrays ist double/float64. Wenn ein Tensor aus diesem Array mit torch.as_tensor() erstellt wird, nimmt er diesen Datentyp an. Der Standarddatentyp eines neuronalen Netzwerkmodells ist allerdings float32. Die Verwendung des float64 Tensors als Eingabe für das NN-Modell…
Migration von Kubernetes in ein VCN Natives Cluster in der OCI
Euer managed Kubernetes Cluster in der OCI könnte eine kleine Anzeige besitzen, die besagt, dass eine “Migration erforderlich” ist. Das liegt daran, dass in früheren Releases (vor dem 16. März die der Kubernetes API-Endpunkt von der Container Engine zwar bereitgestellt,…
WSL 2 auf Windows 10 – Aktivieren Sie das Windows-Feature “VM-Plattform”, und stellen Sie sicher, dass die Virtualisierung im BIOS aktiviert ist.
Vor einiger Zeit habe ich WSL 2 auf Windows 10 korrekt installiert, ausgeführt und auch damit gearbeitet. Allerdings habe ich danach mit dem Android-Emulator BlueStack herumgespielt, der Hyper-V verwendet. Nachdem ich alle Einstellungen vorgenommen hatte, um BlueStack zum Laufen zu…
Fehler beim Training eines Languagemodels – RuntimeError the expanded size of the tensor (100) must match the existing size (64) at non singleton dimension 1.
Kontext Ich habe ein neues Sprachmodell von Grund auf mit dem Huggingface-Frameworkes und einem vorkonfiguriertem Roberta-Modells auf einem eigenen Datensatz trainiert. Nun wollt ich einen neuen Datensatz mit Hilfe des trainierten Modells vektorisieren. Beobachtung Es trat ein Fehler auf: RuntimeError…
SentenceTransformer – float object is not subscriptable
TLDR: np.nan Objekte sind fom Typ float Beobachtung Um numerische Repräsentationen für Dokumente (sogenannte Embeddings) zu erstellen habe ich mich dem SentenceTransformer (v2.2.0) bedient, allerdings wurde in vereinzelten Fällen der Fehler “TypeError: ‘float’ object is not subscriptable” geworfen. Der traceback…
Kürzlich veröffentliche Beiträge
Doppelte Schlüssel bei der Erstellung einer Json aus einem Python Dict
TLDR: Ein dictionary in json behandelt alle Schlüssel als String, während ein Python Dictionay nicht nur zwischen dem Inhalt, sondern auch dem Datentyp unterscheidet (siehe Stackoverflow). Wenn man ein Dictionary in einem json speichert und das Dictionary daraus wieder lädt, muss man aufpassen, dass man nicht implizit den ursprünglichen numerischen…
Superset Guest Token mit Python erstellen, um Superset Dashboard zu embedden
Das große Ziel ist es, ein Superset Dashboard in einer Webanwendung z.B. in REACT einzubetten. Um das zu erreichen, muss unter anderem ein Guest Token (Service Account) erstellt werden. Da dieser Prozess (meiner Meinung nach) nicht ganz ausreichend gut dokumentiert ist, versuche ich diese Lücke mit diesem Blogbeitrag zu schließen…
Airflow – “Fill Dagbag” dauert zu lange
TLDR: Es ist möglich, DAGs mit nur einem Skript dynamisch zu erstellen. Bei der Ausführung der Tasks wird jedoch das ursprüngliche DAG-Skript noch einmal geparset. Dies führt zu unnötigen Parsing-Iterationen von DAGs, die nicht zum aktuellen Task zugehörig sind. Beobachtung: Wir haben ein Skript, welches dynamisch DAGs und enthaltene Tasks…
Migration von Kubernetes in ein VCN Natives Cluster in der OCI
Euer managed Kubernetes Cluster in der OCI könnte eine kleine Anzeige besitzen, die besagt, dass eine “Migration erforderlich” ist. Das liegt daran, dass in früheren Releases (vor dem 16. März die der Kubernetes API-Endpunkt von der Container Engine zwar bereitgestellt, aber nicht in das eigene VCN integriert wurde (oracle doc)….
Statistiken, Statistiken, Statistiken!
Kubernetes pod steckt im pending Status fest. Nodes had no available volume.
Airflow Tasks werden nicht zur spezifizierten Zeit ausgeführt
Anbinden von Block volume an eine VM Instanz in der OCI
Im Rahmen meines Forschungsseminars und zu Testzwecken, wollte ich die auf der Oracle Cloud Infrastructure (OCI) kostenlos zur Verfügung stehenden Produkte nutzen, um einige Tests durchzuführen. Hierbei ergaben sich allerdings einige, eigentlich triviale Probleme, bei der Anbindung eines zusätzlichen Block Volumes an eine bestehende VM Instanz. TLDR:Nachdem der Block Volume…
Objekte im OCI bucket verschieben
Wie man zwei Zeitstempel in gleiche Teile teilt
Pytorch – Skalartyp Float erwartet, aber Double gefunden
TLDR: Der Standard-Datentyp eines Numpy-Arrays ist double/float64. Wenn ein Tensor aus diesem Array mit torch.as_tensor() erstellt wird, nimmt er diesen Datentyp an. Der Standarddatentyp eines neuronalen Netzwerkmodells ist allerdings float32. Die Verwendung des float64 Tensors als Eingabe für das NN-Modell ist somit nicht kompatibel und führt zu der entsprechenden Fehlermeldung…
Fehler beim Training eines Languagemodels – RuntimeError the expanded size of the tensor (100) must match the existing size (64) at non singleton dimension 1.
Kontext Ich habe ein neues Sprachmodell von Grund auf mit dem Huggingface-Frameworkes und einem vorkonfiguriertem Roberta-Modells auf einem eigenen Datensatz trainiert. Nun wollt ich einen neuen Datensatz mit Hilfe des trainierten Modells vektorisieren. Beobachtung Es trat ein Fehler auf: RuntimeError the expanded size of the tensor (100) must match the…
SentenceTransformer – float object is not subscriptable
TLDR: np.nan Objekte sind fom Typ float Beobachtung Um numerische Repräsentationen für Dokumente (sogenannte Embeddings) zu erstellen habe ich mich dem SentenceTransformer (v2.2.0) bedient, allerdings wurde in vereinzelten Fällen der Fehler “TypeError: ‘float’ object is not subscriptable” geworfen. Der traceback bezieht sich auf die tokenizer Funktion, die wir uns hier…
Visuelle Erklärung der Multi-Head Attention
Warum ändert sich bei einer Änderung der Anzahl der Heads eines Transformermodell nicht dessen Anzahl an Parametern? – Das war die Frage, die ich mir gestellt habe. Nachdem ich die entsprechende Matrizenmultiplikation nachvollzogen und zu einem entsprechendem Ergebnis gekommen bin, möchte ich dieses Wissen weitergeben und versuchen, den Multi Head…
Evaluierung des Trainers der Transformer Bibliothek
Innerhalb des Transformer Frameworkes kann ein Trainer Objekt lästigen Code für die Konfiguration der Traningspipeline einsparen. Mit den TrainingArguments können zusätzliche Parameter eingestellt werden. Eine der wichtigen Argumente ist die evaluation_strategy, welche als Standartwert “no” besitzt. Dies besagt, dass keine Evaluation während des Trainings stattefindet. Diese kann entsprechend umgestelllt werden…
Unterschied zwischem dem Tokenizer und PreTrainedTokenizer
Da ich recht zufällig in des Transformers framework reingezogen wurde, hatte ich anfangs einige Probleme gehabt, die verschiedenen Komponenten zu verstehen. In diesem Beitrag würde ich gerne mein Verständnis zum Tokenizer teilen und wie man special_tokens einbauen kann, um sie später in einem languagemodel Training zu verwenden. Achtung. Dies sind…
Objekterkennung – Ein Überblick zur Mean Average Precision (mAP)
ChatGPT als Debug Assistant
Ich habe versucht, einen Flask Restful Endpoint mit dem webargs-Framework zu implementieren, welches ich bereits 2020 verwendet habe. Obwohl ich den alten Code kopiert und einige winzige Anpassungen am Request-Aufruf vorgenommen habe, konnte ich ihn 2023 nicht mehr zum Laufen bringen. Indem ich ChatGPT um Hilfe bat, erlangte ich ein…
WSL 2 auf Windows 10 – Aktivieren Sie das Windows-Feature “VM-Plattform”, und stellen Sie sicher, dass die Virtualisierung im BIOS aktiviert ist.
Vor einiger Zeit habe ich WSL 2 auf Windows 10 korrekt installiert, ausgeführt und auch damit gearbeitet. Allerdings habe ich danach mit dem Android-Emulator BlueStack herumgespielt, der Hyper-V verwendet. Nachdem ich alle Einstellungen vorgenommen hatte, um BlueStack zum Laufen zu bringen, stellte ich fest, dass mein WSL 2 nicht mehr…
WordPress – The editor has encountered an unexpected error
Automatisches Ausführen eines Videos in Windows
#3 WordPress backup und was zu beachten ist
Es gibt verschiedene Möglichkeiten ein Backup von WordPress zu erstellen, je nach dem wie viel Vorwissen und Nutzerrechte vorhanden sind. In diesem Post möchte ich einige Möglichkeiten durchgehen. Dazu müssen wir wissen, was wir überhaupt sichern müssen und wie wir dies tun können. Aktuell habe ich ein automatisiertes Backup Skript…
#2 Allgemeine Probleme und Migration
Das Repository sollte direkt out-of-the-box eine lauffähige WordPress Instanz erstellen. In diesem Post möchte ich jedoch über allgemeine Fehlerbehandlung und Probleme berichten, die mir bei der Vorbereitung der Images unter gekommen sind. Ich kann keine Bilder hochladen oder plugins runterladen. Caddy funktioniert nicht mehr, startet jedes mal neu. Migration Wieso…
#1 Installation von WordPress auf einem Raspberry Pi mit Hilfe von Docker-Compose in unter 10 Minuten
Mit Hilfe dieser Schritt für Schritt Anleitung kann unter Verwendung von Docker-Compose eine WordPress Instanz in unter 10 Minuten auf dem Raspberry Pi hochgezogen werden. Vorbereitung / Anforderungen: Zu allererst brauchen wir einen Domain Namen. Wenn du WordPress auf deinem Raspberry Pi von zu Hause aus hosten möchtest, wirst du…
#0 Einführung in Docker und WordPress
Dieser Post soll eine kurze Einführung zu Docker und WordPress sowie die darunterliegenden Services geben und veranschaulichen wie diese miteinander interagieren. 1. Was ist Docker? 2. Was ist WordPress ? 3. Was steckt hinter WordPress ? 3.1. Caddy als Webserver 3.2. MySQL und MariaDB als Datenbank 3.3. PHP-FPM 4. Wichtige…
Einrichtung von WordPress mit Docker auf dem RaspberryPi
Wie WordPress mit Hilfe von Docker auf dem Raspberry Pi zum laufen gebracht wird. Wieso sollten wir das? Der größte Vorteil ist wohl, dass wir damit herumspielen können und uns austoben können wie wir wollen. Ein sauberes Löschen wird ermöglicht, indem wir dann die Container entfernen. Der Raspberry Pi kann…