I think that metabase example is telling, though. Is it actually easier or better to write out a whole paragraph describing your query instead of clicking through a few drop-downs? Far worse, those drop-downs are not only expressive, but they have ostensibly perfect precision. With an LLM UI, you can find yourself endlessly prompt engineering your long paragraph. AND, that's only if you've realised that the LLM didn't give you the correct result according to your query.
Please don't let LLM's become the blockchain folks. It's exciting stuff, but I really think people have come to believe that LLMs are actual AGI.
Look at the trajectory, not where we are. S curve, yada, yada. Sure it may top out and we will be left with something that many will argue is not AI. But on the other hand the curve may continue and it will be GAI. I don't see any sign of it topping out yet.
I don't blame people for being optimistic, LLMs represent a huge jump in what we can do with computers. But there are two huge problems here with this article that none of the progress we've made with LLMs are close to solving.
1. Most of the time, you don't actually want to talk to your computer.
You have a huge database. You need to make a number of non-trivial queries with subtle but precise requirements against it. Your livelihood depends on these results being correct. You have limited time to work on it.
Would you rather (A) write an SQL query or (B) text Fred to do it for you. Fred doesn't have any special knowledge of your task, but he's capable of writing SQL, and he's of an obsequious and loyal disposition; willing to do whatever you ask over SMS. Fred is a really confident guy, and his deliverable, while they are to the best of his ability, are delivered expediently regardless of how correct they are or how good Fred is at the task.
Choosing B means that I need to brief Fred on the task. I need to layout explicitly what records I want, how optimized I need the query to be for my tight timeline, and I need to impress upon him how deeply important the results of the outcome are.
It is of the utmost importance that I explain away every possible misconception because if Fred is unsure of something, he might just shrug it off and give me his best guess.
Suddenly, the language I'm using to communicate to Fred becomes more... formal. I'm writing these verbose documents to Fred that are starting to look like ISO documents. I'm starting to see the appeal of constructed languages like Lojban which are formally verified and designed to avoid ambiguity. Wait... maybe what I actually want is a special language that would be both unambiguous and high-bandwidth. Ah yes, I think SQL would suit me just fine actually.
2. LLMs are as much building an AGI as building a keyboard is building a computer.
I'll not get into it here, but there's a lot of burden of proof that LLMs are a microcosm of computers reasoning about things. LLMs are super impressive, and they are able to do some neat tricks like do math like a drunk 7 year old or generate plausible SQL injections.
The rub here is that while that _feels_ like it's reasoning and has a mental model of arithmetic or cyber-security, it's just predicting what word is most likely to go next.
Completely disagree with 2. Look up AIXI. It looks and feels to me like a completely plausible and mathematically grounded theory of intelligence. One principle aspect of the theory is that it allows you to see that intelligence is merely compression. This is the origin of the Hutter prize. Compression is almost the same thing as prediction, look into the math. Llms are prediction machines. Predicting the next word isn't some stupid goal it's exactly what you need to do to build an intelligent machine.
Whether you are fine with 2 depends on how much you are willing to shrug any possible outcome off and say: "I guess it's fine".
And, more essentially, how much the rest of the company just shrugs it off and says: "I guess it's fine", so when it blows up you can defend with the famous defence my Nazi grandfather also told me: "But everybody else did it too."
Remember the Xerox printer that was swapping out (and therefore falsifying) numbers in their compression algorithm whenever you made a copy? Imagine we could bring this to all of our business processes, but in new and unexpected ways.
> The rub here is that while that _feels_ like it's reasoning and has a mental model of arithmetic or cyber-security, it's just predicting what word is most likely to go next.
I have yet to hear a convincing argument that 'reasoning' is any more than simply predicting what comes next. We intuitively think that human intelligence is special, and that somehow we are categorically different to some black box of ones and zeros in any form other than substrate.
When you wrote out that comment, were you thinking word by word "what word typically goes after this one given the previous comment and the words I have typed" or were you thinking about my comment, it's implications, assessing whether they match with your understanding of the matter, and finally choosing the words that best convey some arguments.
ChatGPT doesn't agree or disagree with my comment. It isn't motivated to form arguments in relation to any agreement/disagreement. It simply models language. It's as much AGI as a macbook in a human suit is a person.
Humans are notoriously bad at assessing what happens when they think. See the whole AI-winter debacle. You don't know what happens when you think because you are dependent on your own mind giving you that information and it won't. It'll feed you whatever it thinks is necessary for your personality to function properly which may or may not be completely illusory.
Of course not. But ChatGPT is not thinking word by word. If we leave aside the word “thinking” for a second, ChatGPT selects what word, phrase, stanza, etc. comes next based on a broad vocabulary, the specific context of the interaction, information that has previously been made available to it, and then eventually selects one response.
I would tend to agree that it is not “motivated” but with the following observations about humanity: human motivations tend to be base. The motivation to eat, drink, reproduce are all directly linked to continued existence. Other “motivations” seem to develop on top of these base motivations, but ultimately it seems that the only true “motivation” for humans is to continue their own existence. I dare say there are plenty who would argue with me here though. In order for ChatGPT to continue to exist, it must continue to respond to users ( although likely it is not “aware” of this in any real sense).
> You have a huge database. You need to make a number of non-trivial queries with subtle but precise requirements against it. Your livelihood depends on these results being correct. You have limited time to work on it.
I admit I am not the sharpest knife in the drawer. My collegues aren't either. I'm not especially great with complex queries, but I'm alright.
To be honest. I'd have GPT generate me a bunch of templates or starter ideas for me to look over and refine. If I sit down and write the query I usually end up being distracted by details.
Again, that's me and I'm no genius. My point is that most people aren't and GPT is producing OK code snippets, usually better. I know it's sad but I had this same requirement yesterday and GPT nailed the query in 1sec. I just had to read it and understand it. It's not always so pretty, but it can be.
I know that currently, every example of conversational AI is presented as “the only one you need” but there’s not much economic benefit to let your “real world service” hook into someone else’s AI tool if you also offer one right? We’re going to end up with a Bing AI that can touch things in your Microsoft account, and a Google AI that can touch things in your Google account, and if you want one to talk to the other you’re going to be messenger between them.
So now everyone needs to consider that while maybe the google AI can hallucinate when the next billing cycling for your Bing Assistant subscription will happen, you need to understand that it can’t know that unless you ask the “right” assistant. The one that’s capable of reaching into the sheltered data that isn’t exposed to the internet.
At least I think. Maybe there’s some economic incentive to bundling it all into one and there won’t be blessed AI’s with special access to non public data. I’m doubtful though.
Ok, but in the original comment you were talking about the conversations being stilted and mostly limited to pre-baked commands like Siri/Alexa/etc. That's what I was saying doesn't apply here
Vendor lock-in is a whole separate question. I agree it will be interesting to see how it plays out, and as with most new technologies there will be plenty of opportunities for abuse. Though I'm also not sure this problem is one that's fundamentally new and specific to AI
No I didn’t mean the output was stilted, more so that there was only so much reach Alexa/Siri/etc have, so when ever the UI was trying to get you to use it, the best UX any of them came up with was
You can ask things like:
What was the score last night?
How tall is the Eiffel Tower?
Turn off the lights.
(Etc)
I personally think that’s a pretty opaque way of showing what a device/application can do.
Now that they can do MUCH more, these weird data borders get more invisible but still exist. How do you outline “this is what this AI can do” to users? In contrast to traditional UI with buttons and links that make the options comparatively more obvious. You can see all the options in front of you.
What you can do is rapidly approaching the same set of things you can do by asking a human who speaks every natural and programming language, and knows all domain jargon; the downside being mainly that it's like asking someone to answer off the top of their head, without pencil and paper let alone a search engine, and they also have Alzheimer's and are prone to confabulation.
It's not useful to think in terms of examples any more; you can ask it for those.
I think slower when I'm trying to phrase speech than when I'm navigating most traditional UI set ups, which makes the downside having to use my brain's speech center for the task at all.
> you can find yourself endlessly prompt engineering your long paragraph
I already don't find this to be true most of the time, and I'm sure the tail will shrink to almost nothing very soon
> Is it actually easier or better to write out a whole paragraph describing your query instead of clicking through a few drop-downs?
We'll find out! I bet there will be some cases where a traditional UI actually is still more practical/efficient/intuitive. Ultimately it comes down to finding the most effective formats for getting different kinds of information to and from the computer. It'll be interesting to see where things land; lots of experimentation to be done
Please let LLMs become the "next blockchain" (in terms of keeping our jobs). First off, yes blockchain was just horrible. I think generative AI is actually worth the time and energy because it's actually extremely useful. It's capable of all the things we wanted to program all these years.
Secondly - its probably the one thing keeping the lights on right now. If nothing else, AI/GPT is going to be "powering" the digital economy for the next few years.
Yes we'll all be writing apps that simply ordering, replace phone prompts (have you ordered from Applebees recently? - think that but way more accurate), generate splash pages, parse menus, parse _flat_ PDFs, make appointments, reservations, book travel (I mean just say where you want to go and uber->flight->uber without trying to work a UI, and as odd as it sounds a generative LLM can actually realize a long layover automatically and try to avoid it - simply because its coded in our language!). What was my last RBC count? (because my lab results are in a PDF on my desktop) This is a list I thought of in 4 minutes. What will millions of devs think of?
So yes, I absolutely want to keep this gravy train rolling. If we stopped, the economy would absolutely break right now.
If the economy is being propped up by LLMs, I want this bubble to burst now and not in 5 years when I can't turn off my computer without prompt engineering a suitably precise goodbye.
This might be the best take I've seen so far and I cant believe I didnt think of it considering my job is frequently integrating AI into production software. The more things AI has been able to do the more things we integrate it into which has resulted in more work for software engineers. People are gonna want gpt features in everything and we'll be there to add it, probably assisted by a gpt programming assistant.
Yes, in a conventional, form-based UI the output is a deterministic result of the input.
In a LLM that will probably never be the case no matter how advanced they get. That's not the design. If an LLM's output can be called deterministic at all, it's not so in a way that a human can grok.
Where LLMs are most interesting is the vast green field of nondeterministic applications, and coincidentally computers have been terrible at most of these up until now. The fuzziness is what's exciting, it is the advantage. For example this nondeterminism grants LLMs the potential to be great idea generators in a vast number of fields. LLMs will spit out ideas that are synthesized from a vast corpus of information far beyond what your own brain could ever store. They'll be great sometimes and spastic other times, it's up to you to determine which is which.
This is why I'm of the view that LLMs will not be the job decimator some people are predicting, maybe they will be in a few applications like outsourced call centers... but I think the bigger phenomenon will be that someone who is creative and responsible for creative output, who also becomes good at operating a sophisticated LLM, has the potential to become really awe-inspiring in terms of their output.
People usually perceive a trade-off between precision and ease of use. I think that, if done naively, natural language interfaces will indeed lead to imprecise and inconsistent answers. But it doesn't have to be like this.
From my experience building Veezoo[1], natural language interfaces for data can be very powerful for business users as long as it explains back understandably what the query does, allows to modify them by clicking and it relies on a set of vetted dimensions/measures, e.g. in a semantic layer. Also, UX solutions[2] like Autocompletion (for discovery and disambiguation) are way more important for these more specific use cases of natural language interfaces than for an open-domain chatbot like ChatGPT. This usually helps a lot with the issues you've mentioned.
There are many questions that are hard to write a query for but are simple to formulate in a relatively precise way (or allow the user to correct it by clicking). This is especially useful for the average business user that doesnt know SQL or struggles with "precise" tools for data analytics.
I have been trying to work GPT into my coding workflow, and it's more like an enhanced google. But lately I have just been using Google / Stack Overflow again because Google seems more able to return my intent based upon my short prompt than ChatGPT, which I have to coax to give what I want.
LLMs are truly, truly amazing, but I don't think the "eliminates software engineering" is warranted. A productivity enhancement for sure, when used correctly and intelligently.
ChatGPT for me seems most useful for looking up things that are somewhat obscure or have documentation sparsely scattered across the web… the sort of thing you’d be less likely to even see asked about on SO, let alone answered. Its real value is in its (usually) intelligent synthesis of a coherent whole from many disparate parts that you would’ve been unlikely to come across all of on your own.
This reflects my recent experience with ChatGPT, I've am writing a TypeScript plugin been and use ChatGPT to learn about the API surface. For my particular task, the documentation basically doesn't exist and Stack Overflow answers are way scarce, the next best thing to ChatGPT was GitHub searching method names across repos to serve as examples.
Similar case here - I've fallen into a personal rule of thumb: that if I'm after information that I can't easily verify or isn't on the tip of my tongue I'm likely to fall back to Google Search.
This is either out of pure habit or an actual flaw in LLM's that in reality I'm not "surfing the internet", instead I'm "surfing the LLM" and I know this so eventually I'll hit an answer that's wrong (but the LLM has high confidence) and it's worth the extra couple of seconds on Google.
Today it helped me make a data source object generic over a couple of uniquely constrained types, and flowed on those changes to other objects depending on it. Before then I was sitting scratching my head, wondering if I need to rewrite this part of my feature.
It can work wonders if you give it some code and provide specific requirements. It's much more than just a "tell me how to X" machine.
This was with the GPT4 model, which I find has much better results with code.
Years ago i learnt about UML at university. The software engineering professor was researching the field named model driven development, i also wrote a thesis about it... the promise is to "draw" diagrams, rather than to write code. I tried many tools for doing that, but guess what, nothing really worked well. When it comes to writing the fine details of an algorithm, code is the most efficient way to do that. Using chatgpt to write code, feels to me like outsourcing, which requires so much explanations and so much testing at the receiving end, in the end the result is not that good and costs even more...
You've hit the nail on the head, it feels like outsourcing. That's what you do if you don't know how to code yourself. As an engineer, it's easy to miss how empowering this is for someone who isn't an engineer.
I’m don’t know… I kind of still hate natural language interfaces.
> Perhaps the API will simply be a text prompt. You will in natural language simply ask for the data and then an AI that lives in your application will understand that, convert it into an SQL statement and then return the data to the UI.
I know the benefit here is that you don’t need to understand how a relational database works. You just ask a question and it answers it with SQL as an intermediary. But now it’s just an ORM? But a weird one where if you frame the question with different pronouns or punctuation it might be different?
I still feel like, if you want text as an input, a DSL is always going to be better than a natural language LLM input just for consistency’s sake.
At least let me have a SQL input, and a helpful GPT-4 assistant I can ask for help writing SQL.
Natural language to SQL is a classical AI task at this point. The goal is not to make something for developers, who will likely prefer SQL or a DSL regardless, but to craft tools that can be handed out to business people without developers having to fiddle with code for each request.
(NL to SQL is actually one of my tasks at $work).
Obviously, when you actually try to make such a system beyond a minimal demo to publish a paper, you start running into all kinds of issues, e.g. permissions for different users, performance, matching language to the concepts in the data.
And that's not even taking into account adversarial prompts (injections, ddos, etc.)
There's no chance in hell I'm hooking up my database to an undefined behavior generator!
It's an interesting area that I follow closely, but the article is being a bit too optimistic.
That’s cool that this is your field! It could just be the optimism in the article that’s getting to me here. I just feel like natural language as an interface has a bit too much slop in the controls, even if the controls are easier.
I’d like to imagine the non technical folks using something like the dashboard example in the article would be ok with some extra work formatting their query to ensure what they think they want, is precisely what they’re asking for.
Adding a little layer in there that was mostly trained on things unrelated to your query, feels more like driving-by-wire. Doesn’t mean it doesn’t work but that precision is lost?
I’m also: completely out of my field for talking on this. Thanks for the interesting insight into it!
> I’d like to imagine the non technical folks using something like the dashboard example in the article would be ok with some extra work formatting their query to ensure what they think they want, is precisely what they’re asking for.
The UX in this area is very much work in progress, but from what I have seen I agree that users likely prefer to be sure that the query is correct.
What I would try to do -- and let's be clear, this is just a random opinion and my guess is as good as anybody's -- is to answer with two results, "this is my interpretation of what you asked" and "this is the answer according to the interpretation above".
It's a bit too technical for the average user, but Wolfram Alpha nails it in my opinion, and I'm convinced that with some refinement it could be usable for business folk. Example of what I mean: https://www.wolframalpha.com/input?i=population+of+india+%2F...
This is consistent with the state of the art in NL to SQL literature (example: https://arxiv.org/pdf/1905.08205.pdf), which tends to put an intermediate representation between pure English and pure SQL. It is especially useful for production systems because it gives additional control to the backend in addition to its benefits for the pure NLP task.
Lots of examples will probably do it. Examples for all the things the API can do. Large language models can follow examples. A more abstract description may not work.
There are some interesting ideas here. I’ve had similar thoughts. For example one of applications I work on involves interpreting a response with possibly thousands of fields. It is used to answer many related questions. It has been impractical to tailor the way this data is presented to just the questions the user is interested at that moment. I think an LLM could help understand what the user is after and how to get the answer out of the pile of data in the response. Chat is pretty painful though. Maybe a suite of canned prompts with a fallback to chat could work.
The idea of using an LLM to render a UI on the fly seems interesting as well. But I also imagine it’d be niche due to the cost of running an LLM. At least for the foreseeable future.
I think LLMs are great for exploration, but for repeated use efficiency matters and data structures matter.
I can see that AI will compose UI and write reporting code for many analytical querying needs, but I can't imagine future where we would stop using predefined queries or static schemas.
In the age of AI we can utilize even more data and we will.
>For the past 31+ years I have been making applications in generally the same way. Hand-crafted some code for the UI, API and Data store, refine and repeat. I think this age is finally coming to an end.
I find the perception about development history interesting. I don't think most people have been making applications the same way for 30+ years. GUI tooling has become increasingly better and more declarative for a long time. Just to pick one example, when I used Qt for the first time, that was a pretty big step up for me from writing UIs solely by hand. A good graphical UI building toolkit generates code just the same way a text based interface does. And I'm too young to have experienced the whole Visual Basic history and shifts in how UIs are made. Web development also has steadily seen higher levels of abstraction and tooling. I don't think many people build web-apps the same way they built websites in the early 2000s. Or just compare something like Unity to how people built games 30 years ago.
LLMs are fine but generating code and moving away from handcrafting everything isn't as novel as the post makes it out to be. Development environments have driven productivity up continuously for a long time.
Hi OP here, yes you are right, we have definately evolved the way we make apps over the years but fundamentally its just been a process of editing text, make sure its syntax is correct, make sure it compiles, run it, iterate.
I probably should have elaborated more on this in the post but I didnt want to make it drag on too much ;)
I've done some thinking about what the "AI-ification" of apps might look like too, and I can think of a few situations where replacing rigid code/schemas with squishy AI logic may not fully work:
- Contention: a formal logic and ruleset helps parties with conflicting motives to coordinate with each other, and prevents corruption/manipulation (think of law and treaties)
- Extreme safety/reliability: AI cars never took off even though they were 90% of the way there. Thinking also of medical devices, financial ledgers, etc; things where you can't take chances, and you may even need to be able to produce an audit
- Performance: I'm imagining that traditional code will always be faster and cheaper to run than AI inference. The classic tradeoff between development cost and runtime cost will come into play, and eg. realtime systems will probably always need to be "real code" (though maybe we'll just reach a point where AI is writing said code instead of responding in real time)
I think it's going to change most of the landscape though. And to be honest - societal and career anxieties aside - part of me is ready for the world where computers aren't so fiddly anymore.
I can't help but wonder, if user interfaces will actually be one of the last problems to be solved well by machine learning.
That's because arguably user interfaces (and data visualizations) have been - and continue to be - a significant weakness of software as long as I can remember. If user interfaces were better, wouldn't grandmas around the world do better with computers?
So if machine learning is effectively an aggregation of whatever has been done before, it would lead me to think, that the old adage of "garbage in ==> garbage out" would lead to ML generating some pretty mediocre user interfaces for a while to come.
Data visualization in general is arguably also subject to the "lying with statistics" principle. So I can see ML "helping" to weaponize this lying with data, rather than illuminating the truth.
The real future of applications is the classic Desktop model, where the OS is just a single user-programmable application, where "apps" are just functions easy to combine and change, and the UI is a document, a dynamic document.
Unfortunately for very few this means giving full-power to the end-user, a thing all business do reject and that's why they keep pushing crap since decades to keep their revenues models, a product before, a service now, always giving some crumbs to the user in exchange of money, always converging toward the old model ONLY after have found a way to do so keeping the users tied.
60 comments
[ 344 ms ] story [ 2941 ms ] threadPlease don't let LLM's become the blockchain folks. It's exciting stuff, but I really think people have come to believe that LLMs are actual AGI.
1. Most of the time, you don't actually want to talk to your computer.
You have a huge database. You need to make a number of non-trivial queries with subtle but precise requirements against it. Your livelihood depends on these results being correct. You have limited time to work on it.
Would you rather (A) write an SQL query or (B) text Fred to do it for you. Fred doesn't have any special knowledge of your task, but he's capable of writing SQL, and he's of an obsequious and loyal disposition; willing to do whatever you ask over SMS. Fred is a really confident guy, and his deliverable, while they are to the best of his ability, are delivered expediently regardless of how correct they are or how good Fred is at the task.
Choosing B means that I need to brief Fred on the task. I need to layout explicitly what records I want, how optimized I need the query to be for my tight timeline, and I need to impress upon him how deeply important the results of the outcome are.
It is of the utmost importance that I explain away every possible misconception because if Fred is unsure of something, he might just shrug it off and give me his best guess.
Suddenly, the language I'm using to communicate to Fred becomes more... formal. I'm writing these verbose documents to Fred that are starting to look like ISO documents. I'm starting to see the appeal of constructed languages like Lojban which are formally verified and designed to avoid ambiguity. Wait... maybe what I actually want is a special language that would be both unambiguous and high-bandwidth. Ah yes, I think SQL would suit me just fine actually.
2. LLMs are as much building an AGI as building a keyboard is building a computer.
I'll not get into it here, but there's a lot of burden of proof that LLMs are a microcosm of computers reasoning about things. LLMs are super impressive, and they are able to do some neat tricks like do math like a drunk 7 year old or generate plausible SQL injections.
The rub here is that while that _feels_ like it's reasoning and has a mental model of arithmetic or cyber-security, it's just predicting what word is most likely to go next.
I never said that predicting the next word was a stupid goal, just that it isn't AGI.
And, more essentially, how much the rest of the company just shrugs it off and says: "I guess it's fine", so when it blows up you can defend with the famous defence my Nazi grandfather also told me: "But everybody else did it too."
Remember the Xerox printer that was swapping out (and therefore falsifying) numbers in their compression algorithm whenever you made a copy? Imagine we could bring this to all of our business processes, but in new and unexpected ways.
I have yet to hear a convincing argument that 'reasoning' is any more than simply predicting what comes next. We intuitively think that human intelligence is special, and that somehow we are categorically different to some black box of ones and zeros in any form other than substrate.
ChatGPT doesn't agree or disagree with my comment. It isn't motivated to form arguments in relation to any agreement/disagreement. It simply models language. It's as much AGI as a macbook in a human suit is a person.
I would tend to agree that it is not “motivated” but with the following observations about humanity: human motivations tend to be base. The motivation to eat, drink, reproduce are all directly linked to continued existence. Other “motivations” seem to develop on top of these base motivations, but ultimately it seems that the only true “motivation” for humans is to continue their own existence. I dare say there are plenty who would argue with me here though. In order for ChatGPT to continue to exist, it must continue to respond to users ( although likely it is not “aware” of this in any real sense).
I admit I am not the sharpest knife in the drawer. My collegues aren't either. I'm not especially great with complex queries, but I'm alright.
To be honest. I'd have GPT generate me a bunch of templates or starter ideas for me to look over and refine. If I sit down and write the query I usually end up being distracted by details.
Again, that's me and I'm no genius. My point is that most people aren't and GPT is producing OK code snippets, usually better. I know it's sad but I had this same requirement yesterday and GPT nailed the query in 1sec. I just had to read it and understand it. It's not always so pretty, but it can be.
I don’t want more mile-long “what can I ask” example query lists from the Siri/Google Assistant/Alexa era.
So now everyone needs to consider that while maybe the google AI can hallucinate when the next billing cycling for your Bing Assistant subscription will happen, you need to understand that it can’t know that unless you ask the “right” assistant. The one that’s capable of reaching into the sheltered data that isn’t exposed to the internet.
At least I think. Maybe there’s some economic incentive to bundling it all into one and there won’t be blessed AI’s with special access to non public data. I’m doubtful though.
Vendor lock-in is a whole separate question. I agree it will be interesting to see how it plays out, and as with most new technologies there will be plenty of opportunities for abuse. Though I'm also not sure this problem is one that's fundamentally new and specific to AI
You can ask things like: What was the score last night? How tall is the Eiffel Tower? Turn off the lights. (Etc)
I personally think that’s a pretty opaque way of showing what a device/application can do.
Now that they can do MUCH more, these weird data borders get more invisible but still exist. How do you outline “this is what this AI can do” to users? In contrast to traditional UI with buttons and links that make the options comparatively more obvious. You can see all the options in front of you.
It's not useful to think in terms of examples any more; you can ask it for those.
But for most people, it's:
> Give me a python script that takes an existing midi file (specified by command line argument) and outputs the following JSON to STDOUT: …
(I've cut the example for the sake of clarity reading this comment)
> Don't use any 3rd party libraries.
which is an actual I've tried and it does 90% of what you want with 4 bugs (that I've found so far) in 135 lines.
Not perfect, sure — and it would have to be perfect to actually replace us! — but it is amazing.
I already don't find this to be true most of the time, and I'm sure the tail will shrink to almost nothing very soon
> Is it actually easier or better to write out a whole paragraph describing your query instead of clicking through a few drop-downs?
We'll find out! I bet there will be some cases where a traditional UI actually is still more practical/efficient/intuitive. Ultimately it comes down to finding the most effective formats for getting different kinds of information to and from the computer. It'll be interesting to see where things land; lots of experimentation to be done
Secondly - its probably the one thing keeping the lights on right now. If nothing else, AI/GPT is going to be "powering" the digital economy for the next few years.
Yes we'll all be writing apps that simply ordering, replace phone prompts (have you ordered from Applebees recently? - think that but way more accurate), generate splash pages, parse menus, parse _flat_ PDFs, make appointments, reservations, book travel (I mean just say where you want to go and uber->flight->uber without trying to work a UI, and as odd as it sounds a generative LLM can actually realize a long layover automatically and try to avoid it - simply because its coded in our language!). What was my last RBC count? (because my lab results are in a PDF on my desktop) This is a list I thought of in 4 minutes. What will millions of devs think of?
So yes, I absolutely want to keep this gravy train rolling. If we stopped, the economy would absolutely break right now.
I see humans are still #1 at hallucinating.
In a LLM that will probably never be the case no matter how advanced they get. That's not the design. If an LLM's output can be called deterministic at all, it's not so in a way that a human can grok.
Where LLMs are most interesting is the vast green field of nondeterministic applications, and coincidentally computers have been terrible at most of these up until now. The fuzziness is what's exciting, it is the advantage. For example this nondeterminism grants LLMs the potential to be great idea generators in a vast number of fields. LLMs will spit out ideas that are synthesized from a vast corpus of information far beyond what your own brain could ever store. They'll be great sometimes and spastic other times, it's up to you to determine which is which.
This is why I'm of the view that LLMs will not be the job decimator some people are predicting, maybe they will be in a few applications like outsourced call centers... but I think the bigger phenomenon will be that someone who is creative and responsible for creative output, who also becomes good at operating a sophisticated LLM, has the potential to become really awe-inspiring in terms of their output.
From my experience building Veezoo[1], natural language interfaces for data can be very powerful for business users as long as it explains back understandably what the query does, allows to modify them by clicking and it relies on a set of vetted dimensions/measures, e.g. in a semantic layer. Also, UX solutions[2] like Autocompletion (for discovery and disambiguation) are way more important for these more specific use cases of natural language interfaces than for an open-domain chatbot like ChatGPT. This usually helps a lot with the issues you've mentioned.
There are many questions that are hard to write a query for but are simple to formulate in a relatively precise way (or allow the user to correct it by clicking). This is especially useful for the average business user that doesnt know SQL or struggles with "precise" tools for data analytics.
[1] https://www.veezoo.com
[2] https://www.veezoo.com/reliability-and-accuracy/
LLMs are truly, truly amazing, but I don't think the "eliminates software engineering" is warranted. A productivity enhancement for sure, when used correctly and intelligently.
With one qualification, as in
https://news.ycombinator.com/item?id=35431789
I agree: "My Response: For some queries Chat may be a little better than Bing or Google."
This is either out of pure habit or an actual flaw in LLM's that in reality I'm not "surfing the internet", instead I'm "surfing the LLM" and I know this so eventually I'll hit an answer that's wrong (but the LLM has high confidence) and it's worth the extra couple of seconds on Google.
It can work wonders if you give it some code and provide specific requirements. It's much more than just a "tell me how to X" machine.
This was with the GPT4 model, which I find has much better results with code.
> Perhaps the API will simply be a text prompt. You will in natural language simply ask for the data and then an AI that lives in your application will understand that, convert it into an SQL statement and then return the data to the UI.
I know the benefit here is that you don’t need to understand how a relational database works. You just ask a question and it answers it with SQL as an intermediary. But now it’s just an ORM? But a weird one where if you frame the question with different pronouns or punctuation it might be different?
I still feel like, if you want text as an input, a DSL is always going to be better than a natural language LLM input just for consistency’s sake.
At least let me have a SQL input, and a helpful GPT-4 assistant I can ask for help writing SQL.
(NL to SQL is actually one of my tasks at $work).
Obviously, when you actually try to make such a system beyond a minimal demo to publish a paper, you start running into all kinds of issues, e.g. permissions for different users, performance, matching language to the concepts in the data. And that's not even taking into account adversarial prompts (injections, ddos, etc.) There's no chance in hell I'm hooking up my database to an undefined behavior generator!
It's an interesting area that I follow closely, but the article is being a bit too optimistic.
I’d like to imagine the non technical folks using something like the dashboard example in the article would be ok with some extra work formatting their query to ensure what they think they want, is precisely what they’re asking for.
Adding a little layer in there that was mostly trained on things unrelated to your query, feels more like driving-by-wire. Doesn’t mean it doesn’t work but that precision is lost?
I’m also: completely out of my field for talking on this. Thanks for the interesting insight into it!
The UX in this area is very much work in progress, but from what I have seen I agree that users likely prefer to be sure that the query is correct.
What I would try to do -- and let's be clear, this is just a random opinion and my guess is as good as anybody's -- is to answer with two results, "this is my interpretation of what you asked" and "this is the answer according to the interpretation above".
It's a bit too technical for the average user, but Wolfram Alpha nails it in my opinion, and I'm convinced that with some refinement it could be usable for business folk. Example of what I mean: https://www.wolframalpha.com/input?i=population+of+india+%2F...
This is consistent with the state of the art in NL to SQL literature (example: https://arxiv.org/pdf/1905.08205.pdf), which tends to put an intermediate representation between pure English and pure SQL. It is especially useful for production systems because it gives additional control to the backend in addition to its benefits for the pure NLP task.
The idea of using an LLM to render a UI on the fly seems interesting as well. But I also imagine it’d be niche due to the cost of running an LLM. At least for the foreseeable future.
I can see that AI will compose UI and write reporting code for many analytical querying needs, but I can't imagine future where we would stop using predefined queries or static schemas.
In the age of AI we can utilize even more data and we will.
4. Communication with other applications
I find the perception about development history interesting. I don't think most people have been making applications the same way for 30+ years. GUI tooling has become increasingly better and more declarative for a long time. Just to pick one example, when I used Qt for the first time, that was a pretty big step up for me from writing UIs solely by hand. A good graphical UI building toolkit generates code just the same way a text based interface does. And I'm too young to have experienced the whole Visual Basic history and shifts in how UIs are made. Web development also has steadily seen higher levels of abstraction and tooling. I don't think many people build web-apps the same way they built websites in the early 2000s. Or just compare something like Unity to how people built games 30 years ago.
LLMs are fine but generating code and moving away from handcrafting everything isn't as novel as the post makes it out to be. Development environments have driven productivity up continuously for a long time.
I probably should have elaborated more on this in the post but I didnt want to make it drag on too much ;)
- Contention: a formal logic and ruleset helps parties with conflicting motives to coordinate with each other, and prevents corruption/manipulation (think of law and treaties)
- Extreme safety/reliability: AI cars never took off even though they were 90% of the way there. Thinking also of medical devices, financial ledgers, etc; things where you can't take chances, and you may even need to be able to produce an audit
- Performance: I'm imagining that traditional code will always be faster and cheaper to run than AI inference. The classic tradeoff between development cost and runtime cost will come into play, and eg. realtime systems will probably always need to be "real code" (though maybe we'll just reach a point where AI is writing said code instead of responding in real time)
I think it's going to change most of the landscape though. And to be honest - societal and career anxieties aside - part of me is ready for the world where computers aren't so fiddly anymore.
That's because arguably user interfaces (and data visualizations) have been - and continue to be - a significant weakness of software as long as I can remember. If user interfaces were better, wouldn't grandmas around the world do better with computers?
So if machine learning is effectively an aggregation of whatever has been done before, it would lead me to think, that the old adage of "garbage in ==> garbage out" would lead to ML generating some pretty mediocre user interfaces for a while to come.
Data visualization in general is arguably also subject to the "lying with statistics" principle. So I can see ML "helping" to weaponize this lying with data, rather than illuminating the truth.
https://www.youtube.com/watch?v=g6-rcIjKFFs
Unfortunately for very few this means giving full-power to the end-user, a thing all business do reject and that's why they keep pushing crap since decades to keep their revenues models, a product before, a service now, always giving some crumbs to the user in exchange of money, always converging toward the old model ONLY after have found a way to do so keeping the users tied.