Ask HN: Has ChatGPT gotten worse at coding for anyone else?
I used it for coding in Python, often with the python-docx library, about six weeks ago, and it was superb. It gave me exactly what I wanted, which is no mean feat for a semi-obscure little library, and I was delighted. Then I tried it again a few weeks ago and it did worse than before, but I thought maybe it was just bad luck. Using it today, though, it seemed really really bad and it messed up some very basic Python features, like the walrus operator -- it got so bad that I gave up on it and went back to google and stack overflow.
The performance drop is so steep that I can only imagine they crippled the model, probably to cope with the explosion in demand. Has anyone else seen the same thing?
85 comments
[ 5.0 ms ] story [ 91.5 ms ] threadTried to have it write a hexchat script in perl and python, neither worked due old documentation being trained.
I'd be interested in seeing the prompts where it gave incorrect code and immediately apologized without user interaction. Maybe the training data includes text showing how to bad code would look like and the parts where good code appears didn't rank high enough.
The more niche the ask the less... transformative/uniquely generative its model is, and the less reliable.
My contention, which I covered in this video below here, is that due to the underlying statistical sampling problems inherent in RLHF transformers, LLM's perform poorly in edge cases, which, depending on the application or language, the margin of that edge can be super wide.
Here's a video I created about it: https://www.youtube.com/watch?v=GMmIol4mnLo
I didn't cover this yet but there are these things called, "scaling laws," which basically state the amount of raw text needed for a LLM with of a particular size of parameters. So my current mental model is that these, "laws," are really economic rules of thumb, like Moore's law is actually Moore's Rule of Thumb, and there is a huge expense in sampling clean data, hence the need for RLHF.
More about RLHF if not familiar with that term yet: https://huggingface.co/blog/rlhf
I was already using 2) in some projects, so I wanted to check if it was able to do this.
It first suggested 1), then I told it to make it more efficient by avoiding strings so it gave me 2). Wow.
That was around 3-4 weeks ago. When I tried it again this week, it would only output 1) and it wasn't able to make the move to 2) anymore by telling it to not use strings. It kept using them.
You either want something like
orit's trained on code which follows logical rules
if I'm wrong here please correct me
Realistically speaking, in order to offer ChatGPT Plus, they will have to have more model instance running concurrently. Because the promise is no wait time, but they can’t magically increasing number of hosts over a short period of time. DC took months to ramp up.
So the realistic solution is to shrink model size so one instance can serve two models, 3 models or even 4 models
And label it as Turbo mode
Then overnight "Normal" became "Legacy" and "Fast" became the default.
Whenever I see the size of these models, it strikes me that it must be quite a bit, certainly not pennies.
Still had a bug though but it seemed way faster at writing the code this time than last.
I'm certain that the ChatGPT version at launch would have spat out the right solution on the first try.
I've found that it's been also pretty good at writing sql queries, and pinpointing where input queries are incorrect. It's probably my highest leverage use of chatgpt at the moment.
We've been building an API with: Asp.Versioning, Microsoft.AspNetCore.OData.Query,, Microsoft.AspNetCore.OData.Deltas and Microsoft.EntityFrameworkCore, and it's been very bad at it. I think it's sort of understandable, because there isn't a lot of documentation or examples for these libraries, and, some of them have changed a lot since 2021, but it can't even write an ActionResult function correctly without a lot of help. At one point we asked it to do something resulting in some very terrible code. When I pointed out what was wrong, it apologized and then proceded to give me the exact same piece of code.
We use it quite a lot, along with co-pilot to test the waters, and so far it's rather unimpressive. From my completely anecdotal experience, it hasn't gotten worse, but neither are useful for things that haven't been solved a million times before. I think the major advantages we're going to see from it is in terms of automated documentation and possibly having it write tests.
That being said, I don't think it's that much worse than google programming. C# documentation is really hard to find. Some of the Odata documentation is a github repository with very few comments and only in-memory example code, but it was easier to find through the use of chatGPT than it was on Google. I do think it needs to automatically include the source and date for what it bases it answers on to help you navigate the answer. What I mean by this is that IActionResult wasn't replaced yet by ActionResult in 2021, so if it simply told you that it's answer is old, then you'd probably be more inclined to look things up in the official documentation. I know I would.
I tried being brief thinking that it has a short “working memory” but that leads to definition ambiguity.
I tried being exhaustive with explanations about things like the data range, input shapes and reasons for parameters, and with enough explanation it will eventually come to the right conclusions - but it’s far more effort to exhaustively explain what I need then to just write the code - and even worse, during the explanation phases it gives me “working” code (I.E. code that executes) but is functionally wrong! So if I wasn’t so experienced I would likely have accepted one of these incorrect implementations and then been not sure why it doesn’t work…
When I say “wrong” I don’t really mean things like “this hyperparameter is non-optimal” - I mean things like “This network topology doesn’t make sense, and the whole thing is wired together wrong”
I think overall it’s a great tool though - one of my favourite hobbies now is to sit down before bed and spend an hour chatting with it on random subjects, asking it deep Domain questions on ancillary interests of mine, but I am cautious about what it produces knowing it gets code so wrong
I look forward to future versions that are improved!
Exactly. It's almost as if explicitly laying out the requirements is itself a form of programming. We might see something more akin to a natural language in the future, but requirements are programming, in a very real sense.
Can you shred some lights on how co-pilot is doing comparable?
Seemingly simple things that I could Google in 5 mins (which I feel is really really what copilot is good for) it seems to be struggling more and more with.
This weekend I asked it to write "an event listener that listens for when a user cmd + clicks and binds the event to the onCmdClick function" in a Vue app.
I tried around 3 different variation's of the prompt, it just COULD NOT figure out that it needed to check if the cmd key was down. All it would do is just bind "click" events to the function I mentioned.
I think co-pilot is eventually going to compete with a lot of the auto-generation tools that exist today. Like, you can auto-generate REST controllers in C# if you're not doing the whole Odata with generic <T> controllers, and Microsoft has made a tool for that, but in the future, it'll likely be co-pilot that handles that sort of thing.
I semi agree with the observation, though I'm not sure if that's just a hype recovery bias from my side. For example, in the early days I would just marvel at the output looking right. Later I started running the output and noting it is often quite wrong.
When it first came out, it seemed to be able to hold context all the way back to the beginning of the chat thread. Now it seems to be limited to roughly 2-3 messages.
You can actually test this I found by telling it a bunch of detailed information over the course of 5-6 messages, and then ask it a question about something you mentioned in message 1. For me, it will almost 100% fail at this now.
Makes it almost useless to me IMO. The main thing I was excited about was the ability to dump large corpus' of information into it as chat messages and then be able to have it distill down answers to specific questions I have about the content.
Effectively useless for that now that it's only able to "remember" the most recent 1-2000 words.
I did get that working eventually by explicitly telling it at the start to refer back to this data when I ask questions.
It's a lot of work, currently, figuring out the magic phrasing you need to use to get it to act like it did a week ago.
I didn’t test this out out thoroughly, but when I VPN’d in to USA it did seem to work much better for me. But I also created an account at that time so it had no traces back to the UK. I don’t know, but I think some proper study into whether non-USA users are being given a more limited, degraded version of ChatGPT could be worth considering - I really really want to be wrong about this one.
I have gotten better results by telling it to not be concise and therefore more detailed.
What i also have noticed though is that by now i "expect" more from it than it actually can handle too
That is the only question you need to ask this 'model' lmao. what a joke.