- AI
- ambiguity
- APIs
- architecture
- augmented reality
- books
- bureaucracy
- career
- change
- Christmas
- cloud
- collaboration
- communication
- complexity
- computer history
- corporate life
- data
- decisions
- delivery
- devops
- end user tools
- ethics
- failure
- fear
- fundamentals
- gaming
- government
- halloween
- history
- humans
- hype
- identity
- infrastructure
- innovation
- language
- leadership
- learning
- legacy
- management
- measurement
- mental health
- money
- networking
- New Year
- operations
- partnership
- philosophy
- physics
- platforms
- prediction
- process
- procurement
- programming
- quantum
- reliability
- resilience
- risk
- science
- science fiction
- security
- shadow IT
- space
- standards
- strategy
- teaching
- teams
- technical debt
- technology advocacy
- testing
- thinking
- transformation
- TV
- virtues
- vision
- writing
How do we get what we want from AI systems - and human systems?
I am sure that you have heard of the paperclip problem. Just in case you haven’t, it is the idea that, if you ask an AI system to make paperclips, then it may go on making paperclips, until the whole world is nothing but paperclips. There’s even a fun game based on this concept.
The paperclip problem illustrates the problem of setting goals for AI systems which represent what we truly want. Unlike us, AI systems do not come ready equipped with goals and desires: we have to provide them, in the form of what is often known as a reward function.
And crafting this function can be more difficult than it first appears. When I wrote some recent articles on generative AI, it was suggested that I read the book Human Compatible by Stuart Russell. It’s a great book, and triggered lots of other reading: it took me down a rabbit hole of articles and papers about optimisation, particularly a phenomenon known as specification gaming.
The technology learning curve has never been steeper, or more important to climb
The first time I tried to learn about computing was difficult, because I didn’t actually have access to a computer. I just knew that this was a field I was interested in. My school had a Commodore PET which I wasn’t allowed to touch, but there was something eerie and fascinating about the glowing letters on its screen. I wanted to be able to make those letters do what I wanted them to do.
So, I got a book from the library and tried to read it. Fortunately, it was a book on BASIC, which most microcomputers ran at that time. I wasn’t able to run programs, but I was able to learn the commands and the syntax, and to write some simple programs on paper. When I finally got my hands on my own computer, it helped me make a quick start.
And, years later, when I got my first paid programming job, writing COBOL on an ICL mainframe, I was able to transfer many of the skills I had learnt on my home computer into the work environment. Even though I learnt quickly that the GOTO I had relied on for many of my amateur programs was frowned upon, most of the other logic constructs worked and were useful. And that has been my experience throughout my programming life: these days I mostly write Python, but many of the basic constructs in Python do the same job as, well, BASIC.
In the wonderland of new technology, let’s be curiouser and curiouser
What can Aristotle, a philosopher from the 4th century BCE, teach us about technology that was released in 2022?
Well, he wrote about techne, practical skill, the term that gives technology its name. However, I think that we can learn more today from what he wrote about arete, or virtue.
Aristotle’s conception of virtue experienced a renaissance in the 20th and 21st centuries, and many better people than me have written many words on the topic. For our purposes, though, we can understand virtue simply as a habit of thought and behaviour of which we approve, which forms part of a flourishing life, and which is self-reinforcing: the practice of virtue makes us virtuous. Virtues include attributes such as courage, honesty and generosity, and are opposed by vices such as cowardice, dishonesty and miserliness. Aristotle also suggested that vices are extremes, and that virtues are the mean that navigates between them. For example, generosity is the mean between being a miser and being a spendthrift.
Generative AI and the duty to understand
Generative AI worries me.
This is an unusual position for someone like me, who has worked and played with technology for most of their life. It’s impossible not to be intrigued and excited by the sudden appearance of software which is capable of generating convincing text, or creating images far better than I could ever hope to produce..
But, for the last few weeks, as I have been attempting to learn in public about generative AI, I have grown increasingly concerned, not just about its ethical implications, but about the ability of the companies that will put generative AI to work to grasp and respond to those ethical implications.
In those weeks, I have learnt enough to have a rough mental model of how generative AI, particularly Large Language Models (LLMs) work: put simply, they are large scale statistical models, trained on huge quantities of data, implemented through multi layered neural network architectures, which predict an acceptable visual or linguistic response to a text input (a prompt).
Generative AI: time to learn a whole new vocabulary
I have no idea how to talk about sport. This was a disadvantage when growing up as a teenager at an all boy’s school. I felt as if I’d missed an important lesson, or failed to read the manual that the other boys had been issued at an early age. How else did everybody else have a vocabulary, a set of concepts, a whole language, that was opaque to me?
I initially felt the same way when attempting to learn in public about generative AI, the set of solutions such as ChatGPT and DALL-E which are receiving a lot of attention right now.
This was the week when I was supposed to read a few more detailed papers, to find a couple of books, and to go deep enough to get to grips with the main concepts. However, I found that, unlike my similar experiment with quantum computing, it was hard to find accessible entry points. Perhaps this is because, despite rapid developments in recent years, the ideas behind quantum computing have been around for a long while - long enough for experts to write introductions for curious laypeople like me. By contrast, most of the material describing generative AI technologies was quite new, and either so high level that it told me little I didn’t already know (and much that I had reason to be sceptical of), or dived so deep that I was as baffled as if listening to the dissection of a football match. No-one has had time to write the accessible introduction yet.
When talking to AI, be careful what you ask for
You’ve got to ask the right questions.
According to Herodotus, when Croesus went to the Oracle at Delphi to ask whether he should go to war, the Oracle replied that, ‘If you make war on the Persians, you shall destroy a great empire’. Encouraged, Croesus launched his war, only to find that he was defeated, and it was his empire that was destroyed.
This lesson seemed particularly important when I was attempting my second week of learning in public about generative AI. As with my exploration of quantum computing, I began this second week by opening my browser, entering some search terms and reading the top few news articles that were returned.
Can we generate intelligence about generative artificial intelligence?
Where’s my talking robot?
Robots and computers capable of holding conversations with human beings have been a staple of science fiction and visions of the future for many decades. Yet, until recently, they have seemed as elusive as flying cars.
And, while we’re asking, when’s the automated programmer arriving?
Since my first ever professionally programming job, the technology industry has threatened to do away with the job of programming - whether through 4GLs, low-code / no-code solutions, or other ways of avoiding the job of building code line by line. However, these approaches have seemed to do no more than push the need for programming somewhere else.
Do you have werewolves in your technology architecture?
What was that eerie, babbling, howling sound? It sounded like a group of people yelling or fighting, but without any words that we could make out.
My wife and I were visiting a wildlife park in the Pyrenees. We were standing in front of the large enclosure that held a pack of wolves. At first, they were hidden amongst the rocks and trees of the mountainside. Then we saw one furry head and a pair of sharp ears, then another, then another. Then the whole pack emerged, about a dozen of them. And they all started howling at once.
But it wasn’t the ‘how-oo-oo-oo’ sound we associate with wolves in films and TV programmes. It was a discordant babble that sounded like overlapping voices. It was strange and disconcerting, even though we knew that we were safe, and could see where the noise was coming from. Later, I learnt that Iberian wolves make this sounds to disorient their prey.
The Line: the simplest cloud architecture diagram you will ever use
There are a lot of diagrams which attempt to explain cloud, ranging from the classic ‘staircase’ depiction of the shared responsibility model to many, many elaborate diagrams covered in the logos of cloud services. I’d like to add to that stock of diagrams by introducing one more, which I hope will be helpful. I call it ‘the line’:
No, the graphics in this article have not glitched: that really is a single, horizontal line.
A diagram this sparse needs a few words of explanation. Your cloud provider lives below the line. You live above the line. The line is made of APIs.
A diagram this simple also needs a few words of justification. We all know that adopting a public cloud platform involves a separation of concerns: that there is work that you do and work that your cloud provider does. Do we really need another reminder of that?
Build your way out of the ivory tower
How do you escape the ivory tower?
No technology architect wants to be accused of living in an ivory tower. Such an accusation means that there is at least one person who thinks that you are detached from practical reality, that you add no value, and that you do nothing but slow people down. It is never good to be characterised as an irrelevance.
Yet it is possible as a technology architect to find yourself living in an ivory tower without realising it. This is much less likely if you are a solution architect, working as part of a team, solving problems and making decisions every day. It is even less likely if you are a hands-on technologist, actively contributing to the solution that you work with.
Conway’s law: power, money, capability and the duty to explain
Conway’s law is one of those, ‘Of course!’ concepts: a concept where, the first time you hear it, you say, ‘Of course!’ It reveals something which you always suspected about the world, but couldn’t quite put into words.
Conway’s law answers the question, ‘why are so many computer systems so strangely organised?’, with the idea that the structure of systems follows the structure of the teams that build them. Melvin Conway didn’t quite put it like that in 1967: he said, ‘Any organisation that designs a system (defined broadly) will produce a design whose structure is a copy of the organisation’s communication structure.’ (If you haven’t heard of Conway’s law before, but have encountered many strangely designed computer systems, you may be experiencing your own, ‘Of course!’ moment.)
Time travel back to the days of quantum ignorance
Let’s attempt some time travel. A few weeks back, I embarked on an experiment of learning about quantum computing in public. I started with a set of questions. Let’s see whether my slightly less ignorant current self can answer some of the questions of my completely ignorant past self.
How do quantum computers actually work? How do you do computation with qubits? How do you program a quantum computer?
I attempted to answer these questions in my deliberately boring article about quantum computing, but my one sentence version is: quantum computers execute algorithms using logic gates which operate on information encoded in the properties of entities at the quantum scale. I have also learnt that it’s very hard to write a meaningful one sentence version of quantum computing: better go read that article (or, even better, one of the resources linked at the end of this article).