Over the weekend Twitter was 30% ChatGPT screenshots and 20% engineers frothing about how ChatGPT would replace programming, article writing, even Google Search.
Such engineers must be juniors, or have persisted in their life with a totally wrong idea of how engineering is done and engineering is built. I can't imagine thinking that one could build software systems or essay arguments by trusting an AI system you don't understand to provide answers you don't understand.
Like you say, we very well could faceplant society with this misconception that regurgitation plausible code and prose is what education and understanding looks like.
I guess a lot of people are afraid of being left behind.
What goes into the average developer's day? I think a lot of time is spent writing boilerplate, fighting with tiny CI errors, shuffling code, refactoring, writing tests and staring at code hunting bugs. As this technology matures, all of that noise might go away, and I think a lot of people are having a hard time imagining what they are left with.
Remember, we were trained in the "classical" fashion. How will budding engineers approach learning in 10 or even 50 years?
This resonates. I’ve noticed my work goes in cycles. Part of a cycle is the actual implementation (where all this boilerplate work resides). I can’t wait until this mindless work is no longer a burden and I have free cycles to do more interesting things.
Couldn't this help a 10x engineer become a 100x engineer? The secret is still going to be in understanding what to ask for and ensuring that what gets spit out works. It's just going to be so much faster. Is there anyplace in the world for a .5x developer or even a 1x developer in a chatgpt world?
Writing code is the equivalent of swinging a hammer. A more experienced engineer might swing it better than a junior, but swinging hammers isn't what makes an engineer valuable.
These AI models don't actually understand anything about what they're generating, not to mention the world they're supposed to building solutions for. They're just using statistics to predict the next likely output based on some input. Maybe there is a way to incorporate these things into the development process today, but I think we're still far away from seeing an AI replacing a human engineer.
> Is there anyplace in the world for a .5x developer or even a 1x developer in a chatgpt world?
I don't know, but I'll offer my perspective.
I am an OK programmer. Something like 1x? I learned proper computer science and programming in my late 20's and got a degree in Software Engineering from an extension program at an Ivy League school. Maybe it's because I learned later in life, maybe it's because I'm not that smart after all, but my glaring weakness as a programmer is programming "in the small" - ie, coding very local algorithms in ~5-10 lines of code. I trip up with small errors in computation, state, etc. This is possibly common to many great programmers, but I think I am weaker than average in this area.
On the other hand, I am better at a higher level of programming. I like abstraction, software design, software and systems architecture. And at an even higher level, I am quite skilled at - and do quite a bit of - business analysis and UX.
I have been trying Github Copilot and I am very excited about how it elevates my weaknesses - it's a perfect fit for me. I see a future where I will be able to play my generalist role much better.
As for people who are 1x, but don't have other skills, I'm also optimistic. I think the market will push them into new exciting directions. Their 1x coding skills, coupled with AI assitance, could possibly be a huge asset in new emerging roles in the economy.
Last night I had ChatGPT write a streamlit app for me and I felt it was like talking to an enthusiastic junior dev who takes feedback really well and works incredibly fast. This is an incredibly high leverage technology and we're just figuring out how to use it.
I do not think it could. What I see GPT doing here is generating a lot of plausible boilerplate. We already have this via things like code snippets. I find them to be useless, like autocorrect on my phone. It gets in the way of my reasoning and does not really enhance it in any way. Sometimes I make mistakes typing but I’d rather them be my honest mistakes than the computer censoring/rewriting my thoughts.
Good engineering requires good reasoning skills and GPT has exactly zero reasoning. It cannot do the thing that humans do and it cannot do what a calculator can do. I think it is neat and fun, but that is all, a novelty.
I’ve used auto-routers for PCB layout and they will do a 90% job that takes just as much work to redo to get the last 10% as it would to have done it right by hand from the start. There may be a future for operator-in-the-loop type guided AI generative models but I don’t see a lot of effort devoted to making real systems like that. Watson seemed to have this potential and failed even after a brilliant display of ingenuity on Jeopardy. I see these models headed the same way.
I don’t think anyone knows. I gave it the famous syllogism:
> All men are mortal
> Socrates is a man
> Is socrates mortal
To which it gave a very detailed and correct reply. I then tried:
> All cats are white
> Sam is a cat
> Is sam white?
To which it gave an almost identically worded response that was nonsensical.
I personally do not think it is the size of the model in question, it is that the things it does that appear to reflect the output of human cognition are just an echo or reflection. It is not a generalizable solution: there will always be some novel question it is not trained against and for which it will fall down. If you make those vanishingly small, I don’t know, maybe you will have effectively compressed all human knowledge into the model and have a good-enough solution. That’s one way of looking at an NN. But the problem is fundamentally different than chess.
I think this composed with more specialized models for things like identifying and solving math and logic problems could make something that truly represents what I think people are seeing the potential in this. Something that encodes the structure behind these concepts, is extensible, and has a powerful generative function would be really neat.
But this sort of change is happening all the time in all sorts of different domains. There probably isn't much of a role for a web developer who just knows some basic HTML like there was in the late 90s. And you can apply this to a lot of basic wring, transcriptions, etc.--at least at western pay scales.
It may help a 10X engineer. The code is not what's hard, it's figuring the correct data structures that matters (also known as architecture). Once you got the data structures correct, the code mostly writes itself, and I can see an AI do that part for you. That could be indeed a productivity multiplier.
"Couldn't this help a 10x engineer become a 100x engineer?"
No, because the thing that makes you a 10x engineer is not generally writing code. (Let me just take the "10x" term for now as given and not dip into critique I've made elsewhere already.) It is certainly a baseline skill required to get there, but the things that make you 10x are being able to answer questions like, should this be built at all? There are 5 valid architectures I could use to solve this problem, which has the overall best cost/benefits analysis for the business as a whole? (As opposed to the 1x, who will likely run with either the first they come up with, or the one architecture they know.) If I'm working with 5 teams to solve this particular problem, what's the correct application of Conway's Law, in both directions, to solve this problem with the minimum cost in the long term? What's the likely way this system will be deprecated and can we make that transition smoother?
I am abundantly confident you could feed this AI a description of your problem in terms of what I gave above and it will extremely confidently spit out some answer. I am only slightly less confident it'll be total garbage, and most of that confidence reduction is just accounting for the possibility it'll get right by sheer luck. "The average of what the internet thinks" about these issues can't be more than a 2x engineer at best, and that's my very top-end estimate.
I'm not promising no AI will ever crack this case. I'm just saying this AI isn't going to do it. Over-reliance on it is more likely to drop you down the "Xx engineer" scale than raise you up on it.
For that matter, at least at the level I operate at most of the time, coding skill isn't about how fast you can spew it out. It's about how well you understand it and can manipulate that understanding to do things like good, safe refactorings. This tech will not be able to do refactorings. "How can you be so confident about that claim, jerf?" Because most people aren't digging down into how this stuff actually works. These transformer-based technologies have windows they operate on, and then continue. First of all, refactoring isn't a "continuation" anyhow so it's not a very easy problem for this tech (yes, you can always say "Refactor this code" and you'll get something but the nature of this tech is that it is very unlikely to do a good job in this case of getting every last behavior correct), but second of all, anything that exceeds the window size might as well not exist according to the AI, so there is a maximum size thing it can operate on, which isn't large enough to encompass that sort of task.
It really reminds me of video game graphics, and their multiple-orders-of-magnitude improvements in quality, whereas the underlying data model of the games that we are actually playing have grown much, much more slowly. Often late 1990s-era games are actually richer and more complicated than the AAA games of today. But on the surface, a modern game blows away any 1990s game, because the surface graphics are that much better. There's an analog to what transformer-based AI tech is doing here... it is really good at looking amazing, but under the hood it's less amazing an advance than meets the eye. I do not mean to slag on it, any more than I want to slag on graphics technology... both are still amazing in their own right! But part of what they're amazing at is convincing us they're amazing, regardless of what lies beneath the tech.
Can you elaborate on this window you reference? Or can you list any terms that I can use to read more about this? I'm really interested in learning about the limitations. Is this just a resource constraint or an algorithmic constraint?
This should at least get you going on the topic, in that even if it's too much or too little it's a rich source of terms, and directly addresses the topic: https://www.gwern.net/notes/Attention
I also want to make clear that while this is fundamental to this particular technology, I'm not saying it's fundamental to all possible AI architectures. But it is pretty ingrained into how transformers work. I don't think it can just "evolve" past it, I think anything that "evolved" past it would be a fundamentally different architecture.
I agree that there’s a lot of panic but I would have some sympathy: consider how this could turn out for someone who works at large corporation where they have to worry about some senior manager deciding that this is the way to avoid pricey staff, and their job turns into herding bots and fixing up the output while getting blamed for problems. That kind of thing is also easier to laugh off if you’re 25 and single than 50 with a mortgage and college funds.
(I feel like these tools are incredibly neat to see but also likely to lead to a corrosive effect on trust as people no longer know who's real — and that'll get worse the first time someone launches a good AI assistant to handle email / chat trained on your writing style)
> and that'll get worse the first time someone launches a good AI assistant to handle email / chat trained on your writing style
That one might actually be easy to solve: all we need is to normalize the idea that you're personally responsible for whatever your email/chat assistant AI says or does in your name. After all, it's you who are making a decision to reroute other people to a bot.
(Many would say just using such assistant in the first place is disrespectful towards the people trying to reach you. I personally don't agree, because in my experience, those who'd complain about it are exactly those I find even more disrespectful, as they tend to impose themselves, interrupting me with random inane nonsense. Yes, I suck at chit-chat.)
I think this idea is actually the default, so all we need is to keep it alive, to protect it from all kinds of AI assistant startups willing to dump billions of dollars on marketing campaigns trying to convince everyone that half-broken assistants are good and fine, you should use them and should not be blamed for occasional mishaps.
I agree, but I'm not sure that's sufficient. ChatGPT is pretty good and say that the next version actually works well enough to handle most non-close social interactions. Then I run into you in person and realize you have _no_ idea of what “we” have been talking about — I'm not sure there is a good way to repair that.
Ideally, we'd require labels but there's no easy way to enforce that without something like random auditing of AI implementers.
Such engineers must be juniors, or have persisted in their life with a totally wrong idea of how engineering is done and engineering is built. I can't imagine thinking that one could build software systems or essay arguments by trusting an AI system you don't understand to provide answers you don't understand.
Like you say, we very well could faceplant society with this misconception that regurgitation plausible code and prose is what education and understanding looks like.