Comment by Davidzheng

Comment by Davidzheng 3 days ago

83 replies

but degradation from servers being overloaded would be the type of degradation this SHOULD measure no? Unless it's only intended for measuring their quietly distilling models (which they claim not to do? idk for certain)

botacode 3 days ago

Load just makes LLMs behave less deterministically and likely degrade. See: https://thinkingmachines.ai/blog/defeating-nondeterminism-in...

They don't have to be malicious operators in this case. It just happens.

  • bgirard 3 days ago

    > malicious

    It doesn't have to be malicious. If my workflow is to send a prompt once and hopefully accept the result, then degradation matters a lot. If degradation is causing me to silently get worse code output on some of my commits it matters to me.

    I care about -expected- performance when picking which model to use, not optimal benchmark performance.

    • Aurornis 3 days ago

      Non-determinism isn’t the same as degradation.

      The non-determinism means that even with a temperature of 0.0, you can’t expect the outputs to be the same across API calls.

      In practice people tend to index to the best results they’ve experienced and view anything else as degradation. In practice it may just be randomness in either direction from the prompts. When you’re getting good results you assume it’s normal. When things feel off you think something abnormal is happening. Rerun the exact same prompts and context with temperature 0 and you might get a different result.

      • bonoboTP 3 days ago

        This has nothing to do with overloading. The suspicion is that when there is too much demand (or they just want to save costs), Anthropic sometimes uses a less capable (quantized, distilled, etc) version of the model. People want to measure this so there is concrete evidence instead of hunches and feelings.

        To say that this measurement is bad because the server might just be overloaded completely misses the point. The point is to see if the model sometimes silently performs worse. If I get a response from "Opus", I want a response from Opus. Or at least want to be told that I'm getting slightly-dumber-Opus this hour because the server load is too much.

      • F7F7F7 3 days ago

        “Just drink the water, it’s all water.”

    • novaleaf 3 days ago

      this is about variance of daily statistics, so I think the suggestions are entirely appropriate in this context.

  • strongpigeon 3 days ago

    The question I have now after reading this paper (which was really insightful) is do the models really get worse under load, or do they just have a higher variance? It seems like the latter is what we should expect, not it getting worse, but absent load data we can't really know.

  • altcognito 3 days ago

    Explain this though. The code is deterministic, even if it relies on pseudo random number generation. It doesn't just happen, someone has to make a conscious decision to force a different code path (or model) if the system is loaded.

    • minimaltom 3 days ago

      Its not deterministic. Any individual floating point mul/add is deterministic, but in a GPU these are all happening in parallel and the accumulation is in the order they happen to complete.

      When you add A then B then C, you get a different answer than C then A then B, because floating point, approximation error, subnormals etc.

      • bonoboTP 3 days ago

        It can be made deterministic. It's not trivial and can slow it down a bit (not much) but there are environment variables you can set to make your GPU computations bitwise reproducible. I have done this in training models with Pytorch.

        • minimaltom 3 days ago

          There are settings to make it reproducible but they incur a non-negligible drop in performance.

          Unsurprising given they amount to explicit synchronization to make the order of operations deterministic.

    • jmalicki 3 days ago

      For all practical purposes any code reliant on the output of a PRNG is non-deterministic in all but the most pedantic senses... And if the LLM temperature isn't set to 0 LLMs are sampling from a distribution.

      If you're going to call a PRNG deterministic then the outcome of a complicated concurrent system with no guaranteed ordering is going to be deterministic too!

      • gmueckl 3 days ago

        No, this isn't right. There are totally legitimate use cases for PRNGs as sources of random number sequences following a certain probability distribution where freezing the seed and getting reproducibility is actually required.

      • bonoboTP 3 days ago

        How is this related to overloading? The nondeterminism should not be a function of overloading. It should just time out or reply slower. It will only be dumber if it gets rerouted to a dumber, faster model eg quantized.

      • joquarky 2 days ago

        Temperature can't be literally zero, or it creates a divide by zero error.

        When people say zero, it is shorthand for “as deterministic as this system allows”, but it's still not completely deterministic.

        • forgotTheLast 2 days ago

          Zero temp just uses argmax, which is what softmax approaches if you take the limit of T to zero anyway. So it could very well be deterministic.

    • pertymcpert 3 days ago

      Floating point math isn't associative for operations that are associative in normal math.

      • measurablefunc 3 days ago

        That would just add up to statistical noise instead of 10% degradation over a week.

    • make3 3 days ago

      There's a million algorithms to make LLM inference more efficient as a tradeoff for performance, like using a smaller model, using quantized models, using speculative decoding with a more permissive rejection threshold, etc etc

    • FL33TW00D 3 days ago

      It takes a different code path for efficiency.

      e.g

      if (batch_size > 1024): kernel_x else: kernel_y

  • stefan_ 3 days ago

    The primary (non malicious, non stupid) explanation given here is batching. But I think you would find looking at large-scale inference the batch sizes being ran on any given rig are fairly static - there is a sweet spot for any given model part ran individually between memory consumption and GPU utilization, and generally GPUs do badly at job parallelism.

    I think the more likely explanation is again with the extremely heterogeneous compute platforms they run on.

    • bonoboTP 2 days ago

      Why do you think batching has anything to do with the model getting dumber? Do you know what batching means?

      • stefan_ 2 days ago

        Well if you were to read the link you might just find out! Today is your chance to be less dumb than the model!

        • bonoboTP 2 days ago

          I checked the link, it never says that the model's prediction get lower quality due to batching, just nondeterministic. I don't understand why people conflate these things. Also it's unlikely that they use smaller batch sizes when load is lower. They just likely spin up and down GPU serves based on demand, or more likely, reallocate servers and gpus between different roles and tasks.

    • hatmanstack 3 days ago

      That's why I'd love to get stats on load/hardware/location of where my inference is running. Looking at you Trainiuim.

  • make3 3 days ago

    It's very clearly a cost tradeoff that they control and that should be measured.

samusiam 2 days ago

I'd argue that it depends how that degradation manifests whether you want to include it or not.

Consider two scenarios: (1) degradation leads to the model being routed behind the scenes to a different server, with subtly different performance characteristics, all unbeknownst to the user; (2) degradation leads to the model refusing a request and returning an "overloaded" message.

In the first case, absolutely you want to include that because that's the kind of lack of transparency about performance that you'd want signal on. In the second case, an automated test harness might fail, but in the real world the user will just wait and retry when the server is under less load. Maybe you don't include that because it's actually misleading to say that performance (in terms of the model's intelligence, which is how the benchmark will be interpreted) is worse.

megabless123 3 days ago

noob question: why would increased demand result in decreased intelligence?

  • exitb 3 days ago

    An operator at load capacity can either refuse requests, or move the knobs (quantization, thinking time) so requests process faster. Both of those things make customers unhappy, but only one is obvious.

    • codeflo 3 days ago

      This is intentional? I think delivering lower quality than what was advertised and benchmarked is borderline fraud, but YMMV.

      • TedDallas 3 days ago

        Per Anthropic’s RCA linked in Ops post for September 2025 issues:

        “… To state it plainly: We never reduce model quality due to demand, time of day, or server load. …”

        So according to Anthropic they are not tweaking quality setting due to demand.

      • mcny 3 days ago

        Personally, I'd rather get queued up on a long wait time I mean not ridiculously long but I am ok waiting five minutes to get correct it at least more correct responses.

        Sure, I'll take a cup of coffee while I wait (:

        • lurking_swe 3 days ago

          i’d wait any amount of time lol.

          at least i would KNOW it’s overloaded and i should use a different model, try again later, or just skip AI assistance for the task altogether.

      • direwolf20 3 days ago

        They don't advertise a certain quality. You take what they have or leave it.

      • bpavuk 3 days ago

        > I think delivering lower quality than what was advertised and benchmarked is borderline fraud

        welcome to the Silicon Valley, I guess. everything from Google Search to Uber is fraud. Uber is a classic example of this playbook, even.

      • denysvitali 3 days ago

        If there's no way to check, then how can you claim it's fraud? :)

      • chrisjj 3 days ago

        There is no level of quality advertised, as far as I can see.

    • sh3rl0ck 3 days ago

      I'd wager that lower tok/s vs lower quality of output would be two very different knobs to turn.

  • awestroke 3 days ago

    I've seen some issues with garbage tokens (seemed to come from a completely different session, mentioned code I've never seen before, repeated lines over and over) during high load, suspect anthropic have some threading bugs or race conditions in their caching/inference code that only happen during very high load

  • vidarh 3 days ago

    It would happen if they quietly decide to serve up more aggressively distilled / quantised / smaller models when under load.

    • [removed] 3 days ago
      [deleted]
    • chrisjj 3 days ago

      They advertise the Opus 4.5 model. Secretly substituting a cheaper one to save costs would be fraud.

      • vidarh 3 days ago

        If you use the API, you pay for a specific model, yes, but even then there are "workarounds" for them, such as someone else pointed out by reducing the amount of time they let it "think".

        If you use the subscriptions, the terms specifically says that beyond the caps they can limit your "model and feature usage, at our discretion".

        • chrisjj 3 days ago

          Sure. I was separating the model - which Anthropic promises not to downgrade - and the "thinking time" - which Anthropic doesn't promise not to downgrade. It seems the latter is very likely the culprit in this case.

      • kingstnap 3 days ago

        Old school Gemini used to do this. It was super obvious because mid day the model would go from stupid to completely brain dead. I have a screenshot of Google's FAQ on my PC from 2024-09-13 that says this (I took it to post to discord):

        > How do I know which model Gemini is using in its responses?

        > We believe in using the right model for the right task. We use various models at hand for specific tasks based on what we think will provide the best experience.

        • chrisjj 3 days ago

          > We use various models at hand for specific tasks based on what we think will provide the best experience

          ... for Google :)

  • Wheaties466 3 days ago

    from what I understand this can come from the batching of requests.

    • chrisjj 3 days ago

      So, a known bug?

      • embedding-shape 3 days ago

        No, basically, the requests are processed in batches, together, and the order they're listed in matters for the results, as the grid (tiles) that the GPU is ultimately processing, are different depending on what order they entered at.

        So if you want batching + determinism, you need the same batch with the same order which obviously don't work when there are N+1 clients instead of just one.

cmrdporcupine 3 days ago

I've personally witnessed large variability in behaviour even within a given session -- which makes sense as there's nothing stopping Anthropic from shuttling your context/session around load balanced through many different servers, some of which might be quantized heavily to manage load and others not at all.

I don't know if they do this or not, but the nature of the API is such you could absolutely load balance this way. The context sent at each point is not I believe "sticky" to any server.

TLDR you could get a "stupid" response and then a "smart" response within a single session because of heterogeneous quantization / model behaviour in the cluster.

  • epolanski 3 days ago

    I've defended opus in the last weeks but the degradation is tangible. It feels like it degraded by a generation tbh.