CP_xam_lon's blog

By CP_xam_lon, 22 months ago, In English

As you may (or may not) know, OpenAI recently claimed that their latest O3 model is capable of reaching a staggering rating of 2700, posing a serious threat to the integrity of online CP contests.

My friend and I even had a debate about whether or not this would put an end to CP in the next decade, and we've concluded that, as advanced LLMs become widely available to the public, traditional CP formats like Codeforces contests wouldn't stand the test of time.

Imho, no cheating detection mechanism is sufficient to catch cheaters who actually know what they're doing. For example, they can ask an LLM to produce the textual solution and step-by-step instructions on how to implement it, thereby avoiding any suspicion. The point is, mass cheating with LLMs is inevitable, so the only real solution is to mitigate the effects of cheaters on people who just want to grind CP and have a good time.

One solution to tackle the problem of cheater-induced rating inflation came up in the back of my mind:

  • Suppose that future LLMs consistently perform at GM level. We'll devise a fine-tuned model to take in the problem statement and evaluate the expected difficulty of that problem (from the human perspective) along with some potential solutions.
  • Codeforces coordinators and problem-setters can later refine the output to reduce overfitting and biases, ensuring that the expected difficulty matches the real distribution.
  • Since cheaters can affect the final standing, making it unreliable, we can switch to a new system where individual contest performance is calculated via the expected difficulty of solved problems, instead of their relative standing. In other words, we'll switch from:
$$$\text{P} = F(\text{ranking}) \quad \text{to} \quad \text{P} = F(d(\text{solved problems}))$$$

where $$$P$$$ is the contest performance and $$$d(...)$$$ denotes the expected difficulty of a problemset.

  • Vote: I like it
  • +21
  • Vote: I do not like it

| Write comment?
»
22 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by CP_xam_lon (previous revision, new revision, compare).

»
22 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by CP_xam_lon (previous revision, new revision, compare).

»
22 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by CP_xam_lon (previous revision, new revision, compare).

»
22 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Your handle truly inspires me.

»
18 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Sorry if I am misunderstanding, but how can an AI model have a "human" perspective? Wouldn't it be an AI perspective by definition?

  • »
    »
    18 months ago, hide # ^ |
    ← Rev. 2  
    Vote: I like it 0 Vote: I do not like it

    My intuition behind this approach is as follows :

    • Suppose we took the sample standing from a subset of trusted participants (let's say an old contest from 2018, before LLMs ever existed), we can calculate the true performance of a new participant by adding them to the same sample. This is similar to how virtual participants are evaluated on Codeforces. We call this the "trusted standing"
    • We'd need hundreds / thousands of verified testers to establish the "trusted standing" for the average contest in 2025, so this is infeasible.
    • How about using AI testers then? They're capable of performing at GM level (chatgpt-o3 ~ 2700 rating), and from what I can tell, they're only getting stronger from now on. We can create weaker variants with rating of [1300 — 2700] and see how they perform in a real contest
    • How about using a finetuned LLM to calculate F(d(solved problems)) then? This seems more cost-effective compared to AI testers.

    F(d(solved problems)) is essentially the same as F(ranking) on the "trusted standing" created by AI testers.