ServiceLB has some limitations that one may want to alleviate. This guide walks through replacing k3s’s default ServiceLB with MetalLB. This guide covers MetalLB’s architecture (controller and speakers), installation via Helm, and configuration of IP address pools and layer 2 advertisements, how to use it and the Traefik ingress configuration. Rationale for using MetalLB for k3s By default, k3s…
As deep learning models grow, trying to get a finer and finer grasp of reality, the number of parameters composing them increased, making training more and more expensive. Here we delve into Low-Rank Adaptation LoRA, a method aiming to reduce the dimensionality of the training space within deep learning models during fine-tuning. The dimensionality dilemma Training a Deep learning model from…
Music production for guitar has a lot of options on Linux. We will see how to install the required software, and how to use Guitarix together with Ardour either with the standalone version of Guitarix or with an embedded version inside Ardour. Software installation and configuration Install Ardour , a music production software under the GPLv2 license. For Archlinux run: sudo pacman -S ardour For…
SymPy is a lightweight symbolic mathematics library for Python under the 3-clause BSD license that can be used either as a library or in an interactive environment. It features symbolic expressions, solving equations, plotting and much more! Creating and using functions Creating a function is as simple as using variables and putting them into a mathematical expression: 1 2 3 4 from sympy.abc…
Understanding what makes a software Free (as in freedom) has been going on since the beginning of the Free Software movement in the 80’s (at least). This led to the Free Software licenses, which help users to control the technology they use. However, considering the peculiarities of Artificial Intelligence (AI) software, one may wonder whether those licenses account for those. Free Software…
As deep learning models get better at representing human language, telling whether a text was written by a human being or a deep learning model becomes harder and harder. And because language models reproduce text found online (often without attribution); the risk of considering their output as if they were written by a human changes the reading experience for the reader. The last year has been…
Deep learning have made dramatic improvements over the last decades. Part of this is attributed to improved methods that allowed training wider and deeper neural networks. This can also be attributed to better hardware, as well as the development of techniques to use this hardware efficiently. All of this leads to neural networks that grow exponentially in size. But is continuing down this path…
For artificial intelligence (AI) transparency and to better shape upcoming policies, we need to better understand the AI’s output. In particular, one may want to understand the role attributed to each input. This is hard, because in neural networks input variables don’t have a single weight that could serve as a proxy for determining their importance with regard to the output.…
Unfortunately, human errors are bound to happen. Checklists allows one to verify that all the required actions are correctly done, and in the correct order. The military has it, the health care sector has it, professional diving has it, the aviation and space industries have it, software engineering has it. Why not artificial intelligence practitioners? In October 1935, the two pilots of the new…
The accuracy of a model is often criticized for not being informative enough to understand its performance trade offs. One has to turn to more powerful tools instead. Receiver Operating Characteristic (ROC) and Precision-Recall (PR) curves are standard metrics used to measure the accuracy of binary classification models and find an appropriate decision threshold. But how do they relate to each…
Transformers are giant robots coming from Cybertron. There are two Transformer tribes: the Autobots and the Decepticons. They have been fighting each other over the Allspark, a mythical artifact capable of building worlds and mechanical beings. Well, there is also another kind of Transformers, but those are not about warfare. However they are pretty good at language understanding. Let’s see…
The situation where an unskilled user can enjoy a well-working computer does only last so long. 1 Either the user becomes good at maintaining the computer, or it will stop working correctly. That’s because computers are not reliable. If not used carefully, at some point, they will behave unexpectedly or stop working. Therefore, one will have to get their hands dirty and most likely learn…
Biometric systems such as fingerprint readers or facial recognition may be appealing, but they have drawbacks worth mentioning. Their attack surfaces are larger than commonly believed, they make it hard to enforce good security rules and are not guaranteed to work all the time. These flaws should be considered when assessing the value of biometric authentication. It opens the door to a lot of…
If you want to distance yourself from the craziness of the world around and happen to be a computer geek, only a few things are more satisfying than blasting hordes of demons on Doom. Here is how to install GZDoom - an OpenGL port of Doom released under the GPLv3 license - and a mod called Brutal Doom on Fedora 31. Install GZDoom At the time of writing, GZDoom is available as a flatpack or as a…
As Artificial Intelligence is solving increasingly hard problems, it’s becoming more and more complex. This complexity leads to an often overlooked issue: the lack of transparency. This is problematic, because by taking answers at face value from an uninterpretable model (a black box), we’re trading accuracy for transparency. This is bad for a couple of reasons: Debugging. While it may…
A Recurrent Neural Network (RNN) often uses ordered sequences as inputs. Real-world sequences have different lengths, especially in Natural Language Processing (NLP) because all words don’t have the same number of characters and all sentences don’t have the same number of words. In PyTorch , the inputs of a neural network are often managed by a DataLoader . A DataLoader groups the…
Software being more and more used to get metrics and insights for critical areas of our societies such as our healthcare system , crime recidivism risk assessment , job application review or loan approval , the question of algorithms fairness is becoming more important than ever. As algorithms learn from human-generated data, they often magnify human bias in decision making, making them prone to…
Wanting to brush up my PyTorch skills, I’ve started to follow this tutorial. It explains how to create a deep learning model able to predict the origin of a name. At the end of the tutorial, there’s an invitation to try to improve the model. Which I did. Note that the point of the tutorial is not to create the most performant model but rather to demonstrate and explain PyTorch’s…
There’s a lot of guides explaining how to protect your online privacy, but none of them tell why they exist in the first place. They exist because privacy is understated. We don’t value it enough. Here are the reasons. Threats to privacy are not obvious Despite recent attempts to regulate online data processing (e.g the GDPR in the EU) as well as privacy breaches, it’s still not…
Despite what the bad media are saying, computers haven’t understood human language (yet). We need to turn sentences and words into a format that can be effectively manipulated by a Machine Learning or Deep Learning algorithm. This is called language modeling. Here I will explain several methods that can turn words into a meaningful representation. Integer encoding This approach is the…
This procedure has been tested on Fedora 29, on a HP laptop with this graphical card: NVIDIA Corporation GP107M GeForce GTX 1050 Mobile (rev a1) The commands have to be run as the root user. This tutorial assumes the nvidia driver is already working. Install pip dnf install python3-pip Install Cuda 10.0 Download the installer from the Nvidia website and run it. Make sure to install the Perl module…
With its recent gain in popularity, a lot of things have been called “Artificial Intelligence”. But what is it anyway? According to Wikipedia , it’s “intelligence demonstrated by machines”, but does such a thing exist? At time of writing, they are 4 main types of AI development algorithms. Expert systems defines a category of computer programs that are specifically…
Stochastic Gradient Descent (SGD) is used in many Deep Learning models as an algorithm to optimize the parameters (the weights of each layer). Here is how it works: At each step in the training process, the goal is to update the weights towards the optimal value. For this, SGD uses the equation: $$new\;estimate = current\;estimate - (\nabla \times learning\;rate)$$ In this equation, the gradient ∇…
As Deep learning is becoming more and more popular, there is an ongoing debate on whether it’s possible to create Deep Learning applications with a Free Software license. See for example this discussion on the debian-devel mailing list. The argument we often see is that: It’s impossible to study the inner workings of a Deep Learning software (for example, an image classifier or a text…
This procedure has been tested on Fedora 28, on a HP laptop with this graphical card: NVIDIA Corporation GP107M GeForce GTX 1050 Mobile (rev a1). The commands have to be run as the root user. This tutorial assumes the nvidia driver is already working. Install pip dnf install python3-pip Install Cuda We install cuda 9.0 as it is the latest version supported by tensorflow at the time of writing.…
If we have to choose between a convenient system and a secure one, we often pick the former rather than the latter. The reason is mainly psychological. Several scientific studies have shown that we prefer instant gratification over delayed gratification, because that’s how our brains are wired. We are surrounded by instant gratification, our day-to-day actions like our hobbies, usage of social…
We should not think that programming is complicated. It is often the easiest part of an IT project, because one simply needs to communicate with a computer. The communication between human beings is far more complicated. Computers are the most predictable things in the universe. Humans are unpredictable by nature . They can lie, change mood or theirs opinions multiple times, decline an offer…