Generative AI is good at cooperating with people and bad at full automation
Random variety is fun but not great for repetitive tasks
Image generation and AI chat are the two forms of generative AI that have gotten the most attention. Both of these are interactive, and I don’t think that’s a coincidence.
Variety is interesting
Generative AI depends on random number generation to improve quality. People like the results better because they like variety. (This is also why random number generation is important in video games and gambling.)
In a way, web search was the first really popular AI interface. Google didn’t beat the other search engines by giving us perfect or deterministic results. They were better at giving us a great selection of results on the first page. (They had an “I’m feeling lucky” button to show off that their top result was often very good, but it was just a gimmick.) Web search was also the first popular application where you could type using human language and get good results, rather than entering a command like programmers are used to.
Image generators work similarly to web searches, except that they are very slow and very expensive compared to web search, so they give you fewer results at a time and you have to wait for them. And chatting with GPT4 reminds me of connecting to a dialup BBS with a 300 baud modem. I think we can assume they’ll improve, and someday soon we’ll look back at today’s technology like those of us who are older look back on dialup Internet.
But what if you want to do the same thing more than once?
Generative AI’s are terrible for full automation. A canonical example of automation is a factory assembly line. You want it to be faster and more reliable to reduce costs. In a factory, random variation is bad. The engineers who work on assembly lines look for causes of variation and eliminate them. (This is one reason it’s not usually fun to work on an assembly line.)
Also, since generative AI is expensive, running it repeatedly wastes money and electricity.
By contrast, traditional software is usually great at repetition. A programmer who wants to do something repeatedly will write a script and run it as many times as they like. When there’s variation, it’s tightly controlled, and running a script is far cheaper.
Combining strengths
Many programmers are already using Copilot and ChatGPT with great success. I’ve only dabbled a little, but for me, the experience of writing a bit of code with GPT4 is sort of like giving directions to the driver of a car. Sometimes the driver knows a shortcut that you don’t and that’s great. Sometimes the driver misunderstands and goes the wrong way, but you can tell it to go a different way. (Fortunately, writing a script with ChatGPT is much safer than driving a car, because it’s a turn-based game.)
Once you’re done with a script, you can use it repeatedly and it will be fast and reliable. Until it breaks, and then maybe the AI can help you fix it?
Many companies are building software around AI chat, but sometimes they seem confused about its strengths. I hope and expect that there will be successful designs that encourage interactive cooperation between people and AI-based tools. For safety, the AI won’t run unattended. Instead, there will be visualizations that let you see what the AI is doing, step by step, so that people understand and feel in control of the process and can course-correct. Programmers will find this familiar, like using a debugger.
And then when the script seems ready to go and you want to do the task again, both the person and the AI will be out of the loop. It will just be a script that you run, until you want to change it.