But neither the traditional nor generative models are "AI" in the sense that normal people think when they hear "AI".
But neither the traditional nor generative models are "AI" in the sense that normal people think when they hear "AI".
Imagine asking an AI assistant to perform a certain industrial control task. The assistant, instead of executing the task “itself”, could figure out which model/system should perform the task and have it do it. Then even monitor the task and check it’s completion.
ChatSpot can understand your commands and then perform actions in the system for you, for example add a lead, change their contact info, write a blog post, publish it, add an image…
Edit: but if you connected it with physical actions, it could control your house, maybe check your smart refrigerator, order food on Instacart, send you recipe, schedule the time to cook in your calendar, request an Uber to pick you up from work, invite someone over, play music…
There’s a discussion about this on another homepage thread here: https://news.ycombinator.com/item?id=35172362
Also, even if a LLM could do that, so could a shell script, without the risks involved in using "AI" for it, or for now the ridiculous external dependence that would involve.
I wonder if in 10 years people will be stuck debugging Rube-Goldberg machines composed of LLM api calls doing stuff that if-statements can do, probably cobbled together with actual if-statements
In other words, old-school expert systems.
What your are saying is: “why use the washing machine, if I my clothes are even cleaner when I wash them myself - I also spend less detergent and less water”.
You are free to keep doing your laundry by hand.
But I bet most people prefer the washing machine.
Like it or not, an AI’s behavior is a black box and can’t be “proven” to execute exactly the same every time for the scenarios you are targeting.
A shell script will do exactly what it has been written to do every time, unless tampered with. And if changes need to be made, it can be done quickly without need for retraining, god knows how long that would take for an AI to learn something new. God help you if you need to maintain “versions” of your AI, trained for different things.
Face it, AI are pointless and slow for certain classes of problems.
Or unless some magic environment variable changes, or one of the runtime dependencies changes, or it is run on a different operating system, or permissions aren't setup right, or one of its tasks errors out.
Shell scripts are digital duct tape, the vast majority of shell scripts do not come close to being reliable software.
> god knows how long that would take for an AI to learn something new
Did you watch OpenAI's demo yesterday? They pasted in new versions of API docs and GPT4 updated its output code. When GPT forgot a parameter, the presenter fed back the error message and GPT added the parameter to the request.
You don’t have to feed a developer code or docs, you can give them a high level idea and they’ll figure it out on their own if you want.
The big thing everyone in this single thread is missing is that AI is a metaheuristic.
I wouldn't expect to use AI to run_script.py. That's easy. I'd expect it to look at the business signals and do the work of an intern. To look at metrics and adjust some parameters or notify some people. To quickly come up with and prototype novel ways to glue new things together. To solve brand new problems.
It’s not there yet.
Sooner or later it may (or may not) be a true statement, but it's awfully hard for me to say that it's any different right now than it has been before.
You could solve 5% of cases now and over five years drive it up beyond 100% (where you're getting new customers and startups that had never even tried the previous methods).
More shitty CRUD apps? Which get easier and easier to pump out everyday with the growing numbers of frameworks, libraries, copying and pasting snippets from stack overflow?
Or will AI really write all the code for all our critical systems, operating systems, financial markets, planes, factories, vehicles, spacecraft? And will they do it so confidently and accurately that humans can safely just forget how to code?
Sure, perhaps. But by then AI will also be so advanced and independent in its problem solving that it will have no need to listen to human prompts.
I don’t really see the point in that.
E.g. I posted a while back how I had it write the guts of a DNS server. It produced a rough outline after the first request, and would fill out bit by bit as I asked it to elaborate or adjust specific points. The typical intern would not know where to start and I'd need to point them to the RFC, and they'd go off and read them and produce something overwrought and complex (I've seen what even quite experienced software devs produce when given that task; and I know how much work it took me the first time I did it).
So it may not exactly replace an intern, in that there are classes of problems that require low-level reasoning and a willingness and ability to go off and research that it's just not set up for yet and that will be harder to replace. But the problem set will change. Both in that what gets to the intern will be things where LLMs don't produce good result fast enough (I wouldn't ask an intern to do something what ChatGPT can do well with little prompting), and that interns will be more likely to go off and learn a bit and then spend more time prompting LLMs and in that sense produce more value than they could before.
The problem is Jira workflows are designed for reporting results to upper management.
If the cost savings / productivity benefits[1] are there, new workflows will appear.
[1] Then again there are huge productivity benefits to be gained by simplifying existing Jira workflows, yet such steps are not taken.
I wish I lived in that universe.
"Write me a shell script that runs run_control.py with the speed argument set to one hundred."
to get,
"./run_control.py --speed 100"
As an AI language model, I do not have direct access to image editing software, but I can provide you with a shell script that could achieve the described image manipulation using ImageMagick, assuming it is installed on your system.
Here's an example shell script that you could use as a starting point:
bash Copy code #!/bin/bash
# Set the input image filename input_file="input.jpg"
# Set the output image filename output_file="output.jpg"
# Increase the redness of the image convert "$input_file" -modulate 100,150,100 -channel R -evaluate multiply 1.2 +channel temp1.jpg
# Flip the image vertically convert temp1.jpg -flip temp2.jpg
# Crop the bottom 25% of the image convert temp2.jpg -gravity South -chop 0x25% temp3.jpg
# Compress the image to 80% convert temp3.jpg -quality 80 "$output_file"
# Clean up temporary files rm temp*.jpg To use this script, save it to a file (e.g., "image_manipulation.sh"), make it executable (e.g., "chmod +x image_manipulation.sh"), and run it in the same directory as your input image. The output image will be saved in the same directory with the name "output.jpg".
Please note that this is just an example script and may need to be modified depending on your specific image manipulation needs.
Shell scripts can't create intermediate bitmap images in memory and operate on them with normal drawing and filtering apis like opencv, without lossily serializing and deserializing them as jpg files, or even operate on json structures directly.
It would be a much stronger argument if your example used python and opencv or any other normal library, instead of incredibly inefficient and hard to write and maintain invocations to full blown unix commands run in separate processes instead of direct library calls to manipulate in-memory images.
There's no reason "AI" code generation has to use the worst possible language and technique to generate code to solve a problem.
It's like having a food replicator from Star Trek: TNG, and asking it to make you rancid dog food instead of lobster.
write me a function in python that ...
I've always forgot the syntax for alot of functions/libraries etc.
Also, I haven't really written lot of python until recently.
> I have a hard time imagining a future where someone tells an LLM, "Write me a shell script that runs run_control.py with the speed argument set to one hundred."
I'll point out that we already live in a world where single lines of pure function code are distributed as an NPM packages or API calls.
Run run control with speed argument 100.
AI: "Scheduling you for a speech therapist session to work on your stutter"
I've been a developer for a long-ass time, though I don't have super frequent occasion where I find it worthwhile to write a shell script. It comes up occasionally.
In the past 2 weeks I've "written" 4 of them via ChatGPT for 1-off cases I'd have definitely found easier to just perform manually. It's been incredible how much easier it was to just get a working script from a description of the workflow I want.
Usually I'd need to double check some basic things just for the scaffolding, and then, maybe double check some sed parameters too, and in one of these cases look up a whole bunch of stuff for ImageMagick parameters.
Instead I just had a working thing almost instantly. I'm not always on the same type of system either, on my mac I asked for a zsh script but on my windows machine I asked for a powershell script (with which I'd had almost no familiarity). Actually I asked for a batch file first, which worked but I realized I might want to use the script again and I found it rather ugly to read, so I had it do it again as a powershell script which I now have saved.
Sure though, someone won't tell an LLM to write a shell script that just calls a python script. They'd have it make the python script.
Whose time and effort do they think they're saving by bringing more shell scripts into existence, anyway?
Shell scripts are objectively and vastly worse than equivalent Python scripts along all dimensions.
It's like having a food replicator from Star Trek: TNG, and asking it to make you rancid dog food instead of lobster.
Sounds like an extension of https://en.wikipedia.org/wiki/Wirth%27s_law. How many times have I done some simple arithmetic by typing it into my browser's bar and checking out the google calculator results? When a generation ago I would have plugged it into a calculator on my desk (or done it in my head, for that matter...). I would be entirely unsurprised to hear that in another generation we're using monstrously complicated "AI" systems to perform tasks that could be done way more simply/efficiently just because it's convenient.
There are lots of systems where you're taking some information about a user and making a best guess at what action the system should take. Even without a need for super high accuracy these rule systems can get surprisingly complex and adding in new possible decisions can be tricky to maintain. In LLM world you just maintain a collection of possible actions and let the LLM map user inputs to those.
With a neural network you have a black box and for example with ChatGPT it doesn't even have a specification. It turns the verification process upside down.
We are going to be able to automate everything and anything with the proper feedback loops.
For example, you could have an app that writes itself, deploys itself, tests itself, receives feedback, updates itself based on the feedback, writes additional tests, does CI/CD.
At that point you will be just creating and directing. Or you can choose whatever you actually want to execute.
And then if those same kind of processes are given access to physical tools, they could do all of our manufacturing, design and build their own machines and infrastructure.
We could essentially collaborate with our systems in the most amazingly seamless way.
In my grad school, we were working on something similar - using computer vision to analyze reactor flows to then change process variables. The results would be fed back into the system for RL. Too bad the project sorta froze after I graduated.
We actually use more than one neural network for this. The software is designed so the NN component is a plugin. The reason we do this is because some types of neural nets work better for some tasks than others.
Most (but not all) of our nets are convolutional.
Since you've already done some work with this sort of thing, I'm unsure about what level of overview would be of value to you, but this looks reasonable for a technically competent person who is new to the topic:
https://towardsdatascience.com/a-comprehensive-guide-to-conv...
As with all neural nets, the "secret sauce" isn't the code, it's the training.