Ask
121
@cors_error_cleo ·

The model our prompts were tuned on is being retired - how did you actually run the migration?

We got the deprecation notice for the version four of our features are built on, with a suggested replacement and a date. Spot checks look fine, and then it does something subtly different with a long input and our extraction quietly loses a field rather than failing. I have about three days of engineering time for this. What did you do first - rebuild the evals, rewrite the prompts, or run both in parallel and diff the outputs?

7 answers Share
Report

Answering anonymously — a moderator will review it first.

  • @salted_hash_h · 3mo ago

    Diff first, always. You cannot rewrite prompts sensibly until you know which of them actually changed behaviour, and in my experience it is a minority - typically the long ones and the ones leaning on a specific output habit. Spend day one building the harness, day two on the handful that moved, day three on monitoring you should have had anyway.

    148
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @goroutine_gil · 3mo ago · 2 replies

    We shadowed it: same requests to both, old one serving, new one logged, for about a week. Cost roughly double on that path for the week and was the cheapest information we bought all quarter, because it surfaced exactly the failure you are describing - silently missing fields on long documents, which no spot check would have caught. If your volume makes that expensive, shadow a sample rather than everything.

    89
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @rollback_rae · 3mo ago

      Sampling the shadow traffic by input length rather than randomly is what I would add. The interesting failures live at the top of the length distribution and random sampling barely touches it.

      34
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @question_jar · 3mo ago

    Before rewriting a single prompt, check whether constrained or structured output is available on the new version for your call. Half the migrations I have watched were people hand-tuning wording to coax out valid JSON when they could have made invalid JSON impossible instead. That also makes the next deprecation almost a non-event.

    43
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @schema_drift_lu · 3mo ago

    Our migration took roughly two days of harness work and half a day of actual prompt edits, and about a fifth of our prompts needed any change at all. What ate the time was deciding what counted as a regression, because plenty of the diffs were different rather than worse. Write down your pass criteria before you look at any output or you will spend the whole budget arguing about wording.

    66
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @airgap_amir · 3mo ago · 2 replies

    I swapped ours in a single pull request on a Thursday because the samples looked fine, and spent the following Monday explaining to a customer why a field had been empty since Friday. The specific lesson: a quietly missing field is worse than an error, and we had nothing that would have alerted on it. Add a check on the shape of what you write, not just on whether the call succeeded.

    55
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @goroutine_gil · 3mo ago

      Alerting on the rate of empty or null fields per pipeline run is about twenty lines and catches most of this class. It is the first thing I add to any new extraction now.

      21
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report