<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Femi Ogunsanya</title>
    <description>The latest articles on DEV Community by Femi Ogunsanya (@fexx301).</description>
    <link>https://dev.to/fexx301</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4245766%2Ff694cf7b-9552-4742-8217-a640359f5d7f.png</url>
      <title>DEV Community: Femi Ogunsanya</title>
      <link>https://dev.to/fexx301</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fexx301"/>
    <language>en</language>
    <item>
      <title>Shortcut judges: a cheap test your preference pairs should pass before you train on them</title>
      <dc:creator>Femi Ogunsanya</dc:creator>
      <pubDate>Sun, 15 Nov 2026 10:55:12 +0000</pubDate>
      <link>https://dev.to/fexx301/shortcut-judges-a-cheap-test-your-preference-pairs-should-pass-before-you-train-on-them-10p5</link>
      <guid>https://dev.to/fexx301/shortcut-judges-a-cheap-test-your-preference-pairs-should-pass-before-you-train-on-them-10p5</guid>
      <description>&lt;p&gt;I'm building evaluation adapters (small reward models) for Telegraph, a network that routes AI requests to miners and scores their answers. Disclosure: I'm competing in Telegraph Hackathon Season II, which has prizes.&lt;/p&gt;

&lt;p&gt;A preference pair is a prompt, a better answer and a worse one. A reward model trained on pairs learns whatever separates the two answers. If something cheaper than the skill you want separates them, it learns that instead, and your accuracy number measures the shortcut.&lt;/p&gt;

&lt;p&gt;The test&lt;/p&gt;

&lt;p&gt;Before training, run rules that pick an answer without checking anything:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pick the longer answer&lt;/li&gt;
&lt;li&gt;pick the answer with more words in common with the prompt (TF-IDF cosine)&lt;/li&gt;
&lt;li&gt;pick the answer with more of an obvious feature (alarm words, a verdict word)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If any of them is far above 50%, fix the pairs first.&lt;/p&gt;

&lt;p&gt;Two cases from this week&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Another builder (AdversarialEval, in the Telegraph Discord) found a keyword-count judge got every one of their severity pairs right, because all the worse answers were downgrades. After adding inflations, the TF-IDF judge still won ~95%. They rebuilt the pairs so the two answers are identical except for the severity claim, drew wrong severities from the same distribution as true ones (either direction), and balanced which answer is longer. On 84 new pairs: length 50%, TF-IDF 50%, keywords 55%.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;My own 300 weather-verification pairs: length was 49.7% overall but 17–88% within error families, because the verdict phrases differ in length and some families lean one way. TF-IDF was 78% overall. Most of that is legitimate (in a wrong-station pair, or a digit swap of the question's own forecast, not matching the question is the error), but my fill-value and window pairs leak.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What I'd do differently&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;write the worse answer by copying the better one and changing only the claim&lt;/li&gt;
&lt;li&gt;balance verdict direction and length within every error family, not just overall&lt;/li&gt;
&lt;li&gt;report the shortcut judges next to model accuracy in every run&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Script (standard library only) and the per-family table: &lt;a href="https://github.com/fexx301/oathcast-telegraph-s2/tree/main/shortcut-judges-v1" rel="noopener noreferrer"&gt;https://github.com/fexx301/oathcast-telegraph-s2/tree/main/shortcut-judges-v1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;dev.to allows up to four tags. I'd use machinelearning, ai, llm, datascience.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
      <category>datascience</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
