True to say that there’s a distinction between software and data. Photo editor, word processor, video recorder: software. Photo, document, video: data.
I think similarly there’s a distinction within parts of “the AI”, where the weights of the model are data (big blob of stored numbers that the training software calculated). Seems inaccurate though, to say that AI “isn’t software” when you do still need software running that uses those weights to do the inference.
I guess I take your point, that some of the intuitions people might have about software (that it has features deliberately designed and written by a developer, and that when it goes wrong we can go patch the faulty function) don’t transfer. I would just probably frame that as “these intuitions aren’t true for everything software does” rather than “this thing isn’t software”.
Compare this to a similar argument that a hardware enthusiast could use to argue against making a software/hardware distinction. You can argue that saying “software” is misleading because it distracts from the physical reality. Software is still present physically somewhere in the computer. Software doesn’t do anything hardware can’t do, since software doing is just hardware doing.
But thinking in this way will not be a very good way of predicting reality. The hypothetical hardware enthusiast would not be able to predict the rise of the “programmer” profession, or the great increase in complexity of things that machines can do thanks to “programming”.
I think it is more helpful to think of modern AI as a paradigm shift in the same way that the shift from “electronic” (hardware) to “digital” (software) was a paradigm shift. Sure, you can still use the old paradigm to put labels on things. Everything is “still hardware”. But doing so can miss an important transition.
Definitely agreed. AI is software, but not all software is the same and it doesn’t all conform to any particular expectations.
I did also double-take a bit at “When photographs are not good, we blame the photographer, not the software running on the camera”, because sometimes we do quite reasonably blame the software running on the camera. It often doesn’t work as designed, and often the design was bad in the first place. Many people are not aware of just how much our cameras automatically fabricate images these days, and present an illusion of faithfully capturing a scene. There are enough approximate heuristics in use that nobody can predict all the interactions with the inputs and each other that will break that illusion.
A good photographer takes a lot of photos with good equipment in ways that are more likely to give better results than average. If all of the photos are bad, then it’s fair to believe that the photographer is not good. If a photograph of one special moment is not good, then it can easily be outside the reasonable control of the photographer and one possible cause can be software behaving poorly. If it’s known in advance that you only get one shot, a good photographer will have multiple cameras on it.
I’m asking the question of how we should think about the systems, and claiming “software” is very much the wrong conceptual model. Yes, AI can work poorly because of a software issue, for example, timeouts with the API, or similar. But the thing we’re interested in discussing is the AI, not the software component—and as you point out in the case of photography, the user’s skill with the software, and with everything else about taking photographs, is something that occurs and should be discussed not in terms of the software being used.
We can play the game of recategorizing certian things, and saying data and software are separate—but the question is whether it adds insight, or not. And I think that existing categories are more misleading than enlightening, hence my claim.
For example, is my face being picked up by the camera during the videoconference “data” in a meaningful sense? Does that tell you something useful about how to have a videoconference? If not, should we call it software, or shift our focus elsewhere when discussing it?
I’m not certain I follow your intent with that example, but I don’t think it breaks any category boundaries.
The process using some algorithm to find your face is software. It has data (a frame of video) as input, and data (coordinates locating a face) as output. The facial recognition algorithm itself was maybe produced using training data and a learning algorithm (software).
There’s then some more software which takes that data (the frame of video and the coordinates) and outputs new data (a frame of video with a rectangle drawn around your face).
It is frequently the role of software to transform one type of data into another. Even if data is bounced rapidly through several layers of software to be turned into different intermediary or output data, there’s still a conceptual separation between “instructions to be carried out” versus “numbers that those instructions operate on”.
I’m not saying that I can force breaking of category boundaries, I’m asking whether the categories are actually useful for thinking about the systems. I’m saying it isn’t, and we need to stop trying to use categories in this way.
And your reply didn’t address they key point—is the thing that controls the body being shown in the data being transmitted software, or data? And parallel to that, is the thing that controls the output of the AI system software or data?
Oh I see (I think) - I took “my face being picked up by the camera” to mean the way the camera can recognise and track/display the location of a face (thought you were making a point about there being a degree of responsiveness and mixed processing/data involved in that), rather than the literal actual face itself.
A camera is a sensor gathering data. Some of that data describes the world, including things in the world, including people with faces. Your actual face is indeed neither software nor data: it’s a physical object. But it does get described by data. “The thing controlling” your body would be your brain/mind, which aren’t directly imaged by the camera to be included as data, but can be inferred from it.
So are you suggesting we ought to understand the AI like an external object that is being described by the data of its weights/algorithms rather than wholly made of that data, or as a mind that we infer from the shadow cast on the cave wall?
I can see that being a useful abstraction and level of description, even if it’s all implemented in lower-level stuff; data and software being the mechanical details of the AI in the same way that neurons squirting chemicals and electrical impulses at each other (and below that, atoms and stuff) are the mechanical details of the human.
Although, I think “humans aren’t atoms” could still be a somewhat ambiguous statement—would want to be sure it gets interpreted as “we aren’t just atoms, there are higher levels of description that are more useful for understanding us” rather than “humans are not made of atoms”. And likewise for the AI at the other end of the analogy.
Yes, I think you’re now saying something akin to what I was trying to say. The AI, as a set of weights and activation funtions, is a different artifact than the software being used to multiply the matrices, much less the program used to output the text. (But I’m not sure this is quite the same as a different level of abstraction, the way humans versus atoms are—though if we want to take that route, I think gjm’s comment about humans and chemistry makes this clearer.)
True to say that there’s a distinction between software and data. Photo editor, word processor, video recorder: software. Photo, document, video: data.
I think similarly there’s a distinction within parts of “the AI”, where the weights of the model are data (big blob of stored numbers that the training software calculated). Seems inaccurate though, to say that AI “isn’t software” when you do still need software running that uses those weights to do the inference.
I guess I take your point, that some of the intuitions people might have about software (that it has features deliberately designed and written by a developer, and that when it goes wrong we can go patch the faulty function) don’t transfer. I would just probably frame that as “these intuitions aren’t true for everything software does” rather than “this thing isn’t software”.
Compare this to a similar argument that a hardware enthusiast could use to argue against making a software/hardware distinction. You can argue that saying “software” is misleading because it distracts from the physical reality. Software is still present physically somewhere in the computer. Software doesn’t do anything hardware can’t do, since software doing is just hardware doing.
But thinking in this way will not be a very good way of predicting reality. The hypothetical hardware enthusiast would not be able to predict the rise of the “programmer” profession, or the great increase in complexity of things that machines can do thanks to “programming”.
I think it is more helpful to think of modern AI as a paradigm shift in the same way that the shift from “electronic” (hardware) to “digital” (software) was a paradigm shift. Sure, you can still use the old paradigm to put labels on things. Everything is “still hardware”. But doing so can miss an important transition.
Definitely agreed. AI is software, but not all software is the same and it doesn’t all conform to any particular expectations.
I did also double-take a bit at “When photographs are not good, we blame the photographer, not the software running on the camera”, because sometimes we do quite reasonably blame the software running on the camera. It often doesn’t work as designed, and often the design was bad in the first place. Many people are not aware of just how much our cameras automatically fabricate images these days, and present an illusion of faithfully capturing a scene. There are enough approximate heuristics in use that nobody can predict all the interactions with the inputs and each other that will break that illusion.
A good photographer takes a lot of photos with good equipment in ways that are more likely to give better results than average. If all of the photos are bad, then it’s fair to believe that the photographer is not good. If a photograph of one special moment is not good, then it can easily be outside the reasonable control of the photographer and one possible cause can be software behaving poorly. If it’s known in advance that you only get one shot, a good photographer will have multiple cameras on it.
I’m asking the question of how we should think about the systems, and claiming “software” is very much the wrong conceptual model. Yes, AI can work poorly because of a software issue, for example, timeouts with the API, or similar. But the thing we’re interested in discussing is the AI, not the software component—and as you point out in the case of photography, the user’s skill with the software, and with everything else about taking photographs, is something that occurs and should be discussed not in terms of the software being used.
We can play the game of recategorizing certian things, and saying data and software are separate—but the question is whether it adds insight, or not. And I think that existing categories are more misleading than enlightening, hence my claim.
For example, is my face being picked up by the camera during the videoconference “data” in a meaningful sense? Does that tell you something useful about how to have a videoconference? If not, should we call it software, or shift our focus elsewhere when discussing it?
I’m not certain I follow your intent with that example, but I don’t think it breaks any category boundaries.
The process using some algorithm to find your face is software. It has data (a frame of video) as input, and data (coordinates locating a face) as output. The facial recognition algorithm itself was maybe produced using training data and a learning algorithm (software).
There’s then some more software which takes that data (the frame of video and the coordinates) and outputs new data (a frame of video with a rectangle drawn around your face).
It is frequently the role of software to transform one type of data into another. Even if data is bounced rapidly through several layers of software to be turned into different intermediary or output data, there’s still a conceptual separation between “instructions to be carried out” versus “numbers that those instructions operate on”.
I’m not saying that I can force breaking of category boundaries, I’m asking whether the categories are actually useful for thinking about the systems. I’m saying it isn’t, and we need to stop trying to use categories in this way.
And your reply didn’t address they key point—is the thing that controls the body being shown in the data being transmitted software, or data? And parallel to that, is the thing that controls the output of the AI system software or data?
Oh I see (I think) - I took “my face being picked up by the camera” to mean the way the camera can recognise and track/display the location of a face (thought you were making a point about there being a degree of responsiveness and mixed processing/data involved in that), rather than the literal actual face itself.
A camera is a sensor gathering data. Some of that data describes the world, including things in the world, including people with faces. Your actual face is indeed neither software nor data: it’s a physical object. But it does get described by data. “The thing controlling” your body would be your brain/mind, which aren’t directly imaged by the camera to be included as data, but can be inferred from it.
So are you suggesting we ought to understand the AI like an external object that is being described by the data of its weights/algorithms rather than wholly made of that data, or as a mind that we infer from the shadow cast on the cave wall?
I can see that being a useful abstraction and level of description, even if it’s all implemented in lower-level stuff; data and software being the mechanical details of the AI in the same way that neurons squirting chemicals and electrical impulses at each other (and below that, atoms and stuff) are the mechanical details of the human.
Although, I think “humans aren’t atoms” could still be a somewhat ambiguous statement—would want to be sure it gets interpreted as “we aren’t just atoms, there are higher levels of description that are more useful for understanding us” rather than “humans are not made of atoms”. And likewise for the AI at the other end of the analogy.
Yes, I think you’re now saying something akin to what I was trying to say. The AI, as a set of weights and activation funtions, is a different artifact than the software being used to multiply the matrices, much less the program used to output the text. (But I’m not sure this is quite the same as a different level of abstraction, the way humans versus atoms are—though if we want to take that route, I think gjm’s comment about humans and chemistry makes this clearer.)