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.
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.
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.
> 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.
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.
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.