Effective AI Usage: Managing Hallucination
One of the biggest challenges when working with AI is hallucination. I've encountered and fought against it. It's worth discussing what can and can't be done to solve the problem.
One of the biggest challenges when working with AI is hallucination. I've encountered and fought against it. It's worth discussing what can and can't be done to solve the problem.
I've talked about the (current) moving parts of AI and AI-fu. But a fundamental aspect of AI-fu is being aware of how we think and how that's different to how LLMs "think". It's probably true that most people are not consciously aware of how they think or aware of how colleagues thinking works differently. So it's well worth raising that topic, because it's crucial to the quality of results.
In my last blog post I talked about the many aspects of modern AI and the importance of understanding them all. But even more important than this is what I am terming "AI-fu". So what is AI-fu?
A good web server will enforce Content Security Policy settings. If you are using something like Express as the web server, the endpoints will set that Content Security Policy. In the case of Single Page Applications hosted on Domino REST API, since release 1.15 by default a strict CSP is applied. But it is possible to change the CSP settings per application.
In my last blog post I talked about some lessons I've learned from using AI. I talked about a follow-up article talking about AI use at a higher level. Recent experience has reinforced my thinking on this. In this blog post we're going to focus on what AI is, the initial interaction, and training.
A little while ago I blogged on developing at speed. The obvious omission from all aspects was AI. But AI – like an IDE – is just a tool. Unless you understand what it can and can't provide, unless you use it intelligently, you will not reap the benefits. But unlike an IDE, AI doesn't come with a set of menus that hint at what it can and can't do. AI doesn't come with a marketplace of extensions that provide functionality shared by the community. And it's so new that we're all working it out. So what are my thoughts?
One of the things I learned when building HCL Volt MX LotusScript Toolkit was that calling a web agent with ?OpenAgent URL populates the NotesSession.DocumentContext with various fields containing useful information from the request. So when I was building agent processing functionality into the POC that became Domino REST API, I utilised the same approach to provide opportunities to pass contextual information across to an agent.
One of the main outputs of research development is the proof of concept. An early lesson I picked up when I joined HCL Labs was to deliver working code, not slides. And the key when building a proof of concept is speed. In some cases, it may end up proving why an approach won't work. In many scenarios, it may end up being put on a shelf indefinitely. Even if the concept proves appealing, the implementation choices may not be the preferred option for the final solution. So speed is of the essence: spending a couple of weeks building something that goes nowhere is acceptable; spending a couple of months is not. So the ability to get maximum results in the minimum time is key.
But how do you do that?
One of my core principles for IT research development can be summed up by a saying more than 2500 years old, attributed to Solon and appearing twice in Plutarch’s Life of Solon: “I grow old always learning many things”. In many ways, to stop learning is to stop living.
This week, once again, I will be speaking at Engage in Den Haag. As usual, it promises to be a great conference. And as usual, I will be busy.