Blog Archive

Whisper-based video text extraction tool
Whisper is a speech-to-text model built by OpenAI which can be easily run on local hardware, even with the largest model sizes. I will present a Streamlit-based tool to easily extract text snippets from video files using the Whisper model without being reliant on the command line. Read More ›

NVIDIA DeepStream for highly performant video stream analytics
If, like me, you have ever been experimenting with applying deep learning models for video stream processing to perform object detection or scene classification, you will probably run into approaches where Python scripts are used to extract each individual frame from a video file in a loop and feed each of the frames to a model individually. In this blog post I will present a much more performant approach based on NVIDIA's DeepStream toolkit. Read More ›

Running a Self-Hosted LLM for Email Address Classification
Recently I was asked to come up with a solution to classify a large list of tens of thousands of email addresses based on their details. Although the original request was a bit different, for this blog post I will make the example of classifying the addresses as being from a personal email provider (like Gmail, Yahoo, etc.) or from a business or other institution. I will demonstrate an approach how to use a self-hosted Zephyr-7B model using the Litserve package to perform this task very efficiently. Read More ›

Installing Nextcloud Plugin on TrueNAS CORE With Letsencrypt Support in 2024
Nowadays it feels that the TrueNAS CORE community is shrinking every month. I have been a user of this solution for more than 8 years now, but some aspects of the system like plugins have never matured to a degree where they are really usable. I have been using the Nextcloud plugin for years now (after having upgraded from ownCloud), but updating the plugin from either the designated plugin architecture of from the Nextcloud management screens is quite often painful and tends to break the jail if there are major upgrades on key components like PHP. Read More ›

Running a Large Language Model on Your Own Hardware
Last November ChatGPT has held its first anniversary, after having reached a user base of 180 million active users, making this the fastest adopted technology with an internet user base ever. Now we are a year in, I’d like to explore how the open-source world has caught up with ChatGPT’s success. What is the current state of affairs when comparing open source LLMs to the closed source and proprietary models from OpenAI and others? Is open-source technology able to match or surpass the technology brought by OpenAI in 2022? Read More ›

A Natural Language Query Dashboard on Your SAP S4/HANA Data
Retrieval Augmented Generation (RAG) allows for adding knowledge from external sources into a Large Language Model (LLM) prompt. In this blog post I will be using this approach for using an LLM to retrieve data from an SAP S4/HANA system and visualizing the data using Streamlit. You will learn how to build a dashboard converting natural language questions into data visualizations using only a minimal amount of code! Read More ›

Rider and Team Detection in Tour De France Races Using Computer Vision
With the Tour de France 2023 having started last weekend there will be lots of media coverage of the world’s toughest cycle race in the next weeks. If you are a regular viewer of these races you will probably recognize a few situations where you found it difficult to exactly determine who you are watching on the screen. In this blog post I am presenting a way to do augment the race with rider and team recognition capabilities to make it easier to detect riders and follow what is happening during the race. Read More ›

Querying Complex Database Schemas With GPT and Langchain
GPT-based models have several inherent problems such as correctly aggregating figures in tabular structures and getting access to corporate data in database system. I will show an approach for connecting GPT to your custom database schema using the Langchain Python package. This allows text-based queries to be executed on the custom database schema, showing impressive results in GPTs ability to formulate complex SQL queries to the database and retrieving the correct information. Read More ›

Infusing ChatGPTs Body of Knowledge With Your Custom Documents
One of the major drawbacks of GPT-based models is their lack of knowledge about custom documents living in knowledge bases in large organizations. In this blog post I will demonstate a way to set up adding custom documents into the body of knowledge of GPT-based models. Read More ›

Exploring Question Answering From Tabular Data With GPT-3 and TAPAS
Large language models are emerging as a tool for solving many information and knowledge-related matters. Back in 2020 GPT-3 made huge improvements in the way that humans are able to interact with an AI, where the model showcased its ability to engage in compelling conversations with a human counterpart. In this article I will showcase how these large language models can be used for answering questions from data stored in tabular form, just as the majority of the world's business data. Read More ›

SAP HANA Cloud Machine Learning Challenge - Preventing employee churn
In December 2022 SAP held a machine learning competition called “I quit!” attended by 50 participants to showcase the machine learning capabilities of SAP HANA Cloud. The idea is to predict from a database of employees who is the most probable to be leaving his or her job in the short term, based on historical information of employees which have quit recently. Read More ›

Beyond Static Image Generation: Taking Stable Diffusion to the Next Level
In my last blog post I have shown how to download the Stable Diffusion model weights and set up an image generation workflow yourself using the Stable Diffusion model as provided by the Huggingface Transformers library. Although these text-to-image generation results can be pretty awesome, you can get similar results by interfacing with the DALL-E 2 playground which is publicly accessible without being on a wait list nowadays. Read More ›

Join the AI-Based Image Generation Revolution With Stable Diffusion
The AI field is advancing in an incredible pace and 2022 has been shaken up by a few major announcements of algorithms able to generate fantastic images just by providing a text prompt. Some incredible work has been done by the OpenAI team which introduced DALL-E 2 to the public in March 2022, but also by Google Research who introduced Imagen a few months later. Read More ›

Master Data Attribute Recommendation using SAP AI Core and T5 Transformers
Master data maintenance is a time-consuming activity for many businesses. Companies like retailers selling large amounts of different articles or manufacturing companies processing raw materials into finished goods can easily collect databases containing hundreds of thousands of master data items, which in turn may possess many hundreds of attributes. This blog post proposes a way of populating these attributes by applying a transformer-based Large Language Model. Read More ›

A no-code introduction to Reinforcement Learning
In my previous blog post on reinforcement learning I demonstrated a way to get a gentle introduction into this field by using Keras-RL2. While writing that I found it quite difficult to get an overview of the many reinforcement learning frameworks available today which all have different levels of maturity. In this post I will dive into how to set up a reinforcement learning experiment using stable-baselines 3 which provides you an even quicker way to get started. Read More ›

Simple Multicore programming in Python
I recently had written a Python program to perform some performance calculations over the results from a regression model. The program was not too complex but the sheer number of calculations to be performed made it quite slow and resulted in a runtime of several hours. In my search for a way to utilize the multiple cores of the machine the program was running on I came across the Ray package from https://www.ray.io/ which makes it very easy to distribute a single-core process onto multiple cores. Read More ›

Bulk import of CSV data into HANA using Node.js and xargs
In this post I will present a fast solution for loading CSV data into HANA by using Node.js. In the last year I have been working with Node.js as a generic command line programming tool I have noticed that as it has been optimized for fast I/O many problems are really faster when converted into JavaScript and run in Node.js. Read More ›

Timelapse data exploration of NYC taxi rides
Back in 2014 the city of New York put online a dataset with yellow cab rides comprising a full year of data. Back then I remember struggling quite a bit with managing the sheer volume of the dataset involved, trying out various alternatives for reading in the full dataset. After a few years SAP introduced an “Express edition” of their HANA in-memory database which allowed you to run a 32 GB database just from your own hardware. That was enough to load a full years’ worth of data and be able to analyze it using a standard SQL approach. Read More ›

Explainable Forecasting Using HANA and APL
This is part 2 in a two-part series of blogs on large-scale and explainable forecasting using APL. In part 1 I have outlined a way to utilize the APL library for in-database training of a regression model in HANA in order to be used together with an external Node.js inference script. In this part of the blog I will dive deeper into built-in functionality to retrieve insights into a trained model which is called the ‘model debrief’. Read More ›

Large-scale Forecasting Using HANA, APL and Node.js
Last year I became involved in a project for a retailer based in The Netherlands who had finished construction of a new distribution center. This new innovative DC is fully mechanized and is operated with a minimal amount of personnel, which is different from conventional distribution centers where sudden large order spikes are fulfilled by having more staff pick these orders in parallel. This blog post describes my work of developing a large-scale machine learning model to forecasting the goods movements between various parts of the supply chain. Read More ›