Ensign's blog

Ensign's blog // AI usage disclaimer

AI usage disclaimer

I want to make a clarification about the posts you will find on this blog. When AI like ChatGPT were first developed, I was highly sceptical. The shiny gloss of “hey, they can talk just like us” could hold up to a few basic questions; after that, they showed their machine made thoughts, who unsurprisingly turned out to be fairly shallow. Google can provide an ordered list of answers based on the few keywords you provide it; AI models provide a conversational answer, putting together the information from a few sentences you provide it. Actually, while Google scans the entire (indexable) web, and give as result the direct sources, AI models digest it beforehand. This however introduced three major flaws in the paradigm: AI answers were

lossy
the information that ends up baked into the AI model is digested in multiple ways, some of which could involuntarily spike the content in various ways.
non reversible
Once the information has been digested, there is no direct way to know where did it come from. Some AI models manually keep track of their sources, and this helps.
non auditable
If a wrong information is found out in an answer, it is difficult to trace back what caused it. Was the model feed wrong information to begin with? Or was the training process that mixed it up in wrong way with other sources? Where should we act to fix it?

So in a way it was quite worse than normal search engines. However, things have changed in the past years. I happen to be lucky enough to work in a company that spends a lot of resources in the continuous training of its employees. This meant, recently, investing a lot of effort in learning how to use AI models, and we have business access to various providers, among which there are ChatGPT, Claude, and Gemini. Recently, I used Gemini Pro for a couple of simple questions on CMake documentation at work, and wow, I must admit I was impressed.

CMake is a strange piece of software. I think it is similar to C++: there is a subset of it that makes up a good build system, but it allows for numerous, contorted anti-patterns. Moreover, the documentation is usually precise, but it assumes you already know the keyword or function you need to search for. Which of course is not always the case. Sure you could read everything, but it’s a matter of efficiency: if I need two hours just to read beforehand all of the manual, then in a 8 hour work day I can solve roughly up to 4 problems. AI models, on the other hand, are good at one thing: they swallow a body of information (being it the entire web, a manual, or a mix of the two), and they can then provide you the list of words that better resonate with the ones making up the question you asked. Moreover, the information is encoded in the model using vector databases: this means that the model can understand the “meaning” of the words ingested (for an appropriate definition of the word understand), and apply that meaning to the case you provide. In the end, I found that AI models work surprisingly well for manual-querying questions.

In particular, I used mainly Gemini Pro (partly because I consider Google to be one of the least-evil tech company out there). Now, the small model of Gemini, called Flash, has roughly the validity of the horoscope. But the Pro model works reasonably well. All this post is then an explanation on why, in the posts of this blog, we’ll work together also on examples and answers provided by AI models. Such parts will be clearly marked, while the other parts are written normally. I think it can provide a good starting point to then deeper investigate the relevant topics.

I still think that AI models are not a golden bullet. They cannot answer all the questions, and they shine basically on the same things for which machine learning is conceptually apt. Up to now, I haven’t used them to directly (vibe) code, and I plan to continue doing so, even if I occasionally copy-pasted short bits. But I now tend to see AI models like a sort of semantic search engine: they can investigate the meaning of a large quantity of information, and then be queried about it. And of course, they can do the same exact errors of normal search engines, and humans, so they are not to be taken as irrefutable. but they can help, and I think that publishing here the information taken out of them can, if anything, save the energy and CO2 cost of making the same answer a million times.

Tags: