惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
美团技术团队
T
Tenable Blog
大猫的无限游戏
大猫的无限游戏
Schneier on Security
Schneier on Security
S
Schneier on Security
博客园_首页
C
Cyber Attacks, Cyber Crime and Cyber Security
I
Intezer
T
Tailwind CSS Blog
GbyAI
GbyAI
C
CERT Recently Published Vulnerability Notes
博客园 - 【当耐特】
IT之家
IT之家
G
Google Developers Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Privacy International News Feed
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
N
News and Events Feed by Topic
Application and Cybersecurity Blog
Application and Cybersecurity Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Register - Security
The Register - Security
人人都是产品经理
人人都是产品经理
Cisco Talos Blog
Cisco Talos Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Project Zero
Project Zero
V
V2EX
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
月光博客
月光博客
Hacker News - Newest:
Hacker News - Newest: "LLM"
WordPress大学
WordPress大学
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
MongoDB | Blog
MongoDB | Blog
F
Full Disclosure
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News and Events Feed by Topic
G
GRAHAM CLULEY
H
Hacker News: Front Page
Forbes - Security
Forbes - Security
H
Heimdal Security Blog
L
LINUX DO - 最新话题
L
Lohrmann on Cybersecurity
Apple Machine Learning Research
Apple Machine Learning Research
Help Net Security
Help Net Security
C
Cybersecurity and Infrastructure Security Agency CISA
Recent Announcements
Recent Announcements
C
Cisco Blogs
L
LINUX DO - 热门话题

The JetBrains Blog

Kotlin Turns 15: Celebrate the Kotlin Effect - The JetBrains Blog PhpStorm 2026.2 is Now Out - The JetBrains Blog Key Takeaways From PHPverse 2026 - The JetBrains Blog What's New in IntelliJ IDEA 2026.2 - The JetBrains Blog What’s fixed in IntelliJ IDEA 2026.2 - The JetBrains Blog CLion 2026.2 Is Here - The JetBrains Blog DataGrip 2026.2: AI Agent Skills, MCP Tools and CLI Commands for Data Source Management, Bundled JDBC Drivers, and Improved Session Control - The JetBrains Blog Download WebStorm 2026.2: TypeScript 7 Support, AI, and more GoLand 2026.2 Is Now Available! - The JetBrains Blog Code in Space: Redefining Tech Creation with AI and XR - The JetBrains Blog Rider 2026.2 Release Candidate Is Out! - The JetBrains Blog ReSharper 2026.2 Release Candidate Released! - The JetBrains Blog JetBrains GameDev Days 2026 – Call for Speakers - The JetBrains Blog MPS 2026.1 Has Been Released! - The JetBrains Blog IntelliJ Scala Plugin 2026.2 Is Out! - The JetBrains Blog What's New in ReSharper 2026.2 for VS Code-compatible editors  - The JetBrains Blog Debugging for .NET in VS Code and Cursor: The #1 Requested Feature Is Here - The JetBrains Blog dotInsights | July 2026 - The JetBrains Blog The History of Kodee, Kotlin’s Mascot - The JetBrains Blog JetBrains Academy – June Digest - The JetBrains Blog Introducing the Kotlin Benchmark for AI Coding Agents - The JetBrains Blog Best Object Detection Models for Machine Learning in 2026 - The JetBrains Blog What's Next for TeamCity – CI/CD by JetBrains - The JetBrains Blog JetBrains AI for Teams and Organizations: From Fragmented AI Usage to Coordinated Software Development - The JetBrains Blog Java Annotated Monthly – July 2026  - The JetBrains Blog Shift-Left with JetBrains Qodana Natvis Comes to Linux and macOS: Visualize Your C++ Types Without Writing a Single Data Formatter - The JetBrains Blog Speaking to AI Agents like Cavemen Saves 65% of Tokens. We Test. In Conversation With the Golden Kodee Winners - The JetBrains Blog Toolbox App 3.6: Smarter Storage Cleanup, Windows installation diagnostics, and More - The JetBrains Blog IntelliJ IDEA 2026.1.4 Is Out! - The JetBrains Blog TeamCity 2026.1.2 and 2025.11.6 Are Now Available - The JetBrains Blog JetBrains Engineering Hiring Process Guide Kotlin Comes to BlueJ - The JetBrains Blog Improving Embedded Software Quality With Parasoft C/C++test, CLion, and AI - The JetBrains Blog Kodee’s Kotlin Roundup: Kotlin Turns 15, Kotlin 2.4.0, and the Kotlin Toolchain - The JetBrains Blog GitHub Copilot now an Integrated Agent in JetBrains IDEs - The JetBrains Blog JetBrains Air lands on Windows - The JetBrains Blog The Role of Static Code Analysis in Fintech Compliance Kotlin Notebook Sunset - The JetBrains Blog Open-Sourcing the LSP Client API in IntelliJ IDEA 2026.2 - The JetBrains Blog The Dev Containers Story: Introducing EelApi for Plugin Authors - The JetBrains Blog Cursor's $60B Acquisition - Qodana Codex is now the recommended agent in JetBrains IDEs - The JetBrains Blog SSH Connections Are Moving to JetBrains Daemon in the Toolbox App 3.6 EAP - The JetBrains Blog Your AI Agent Keeps Missing The Real Bottleneck. JetBrains Rider Can Fix It Now. - The JetBrains Blog Rust Web Development 2026: The Problems Nobody Talks About Our Research on Membership Inference Attacks and Preventing Privacy Leaks - The JetBrains Blog Explicit Lazy Imports Are Coming to Python 3.15 - The JetBrains Blog Kotlin Toolchain 0.11: The Next Step for Amper - The JetBrains Blog YouTrack Helpdesk Now Includes Customer Groups - The JetBrains Blog How to Win a Hackathon: Notes From the Judging Table - The JetBrains Blog How We Measure the ROI of JetBrains IDEs - The JetBrains Blog AWS Image Builder Plugin for TeamCity - The JetBrains Blog PHP Version Migration | Jetbrains Qodana Bamboo End of Life: How to Prepare and Choose the Right CI/CD Replacement - The JetBrains Blog Structuring IntelliJ Plugins with Optional Content Modules - The JetBrains Blog YouTrack Security Update: Upgrade Required for YouTrack Server - The JetBrains Blog Qodana Is a Finalist in the 2026 CODiE Awards for Best DevOps Tool - The JetBrains Blog JetBrains Marketplace Ecosystem Security Update: Addressing Malicious Third-Party AI Plugins - The JetBrains Blog Your JetBrains IDE Expertise, Now on LinkedIn - The JetBrains Blog The JetBrains AI Coding Agent moves to general availability Step Rejection Fine-Tuning: Squeezing More Signal from Noisy Agent Trajectories - The JetBrains Blog The Anthropic Debate - The Qodana Blog dotInsights | June 2026 | The .NET Tools Blog Inside JetPride: How JetBrains Employees Built an LGBTQIA+ Community | The Life at JetBrains Blog MPS 2026.1 Release Candidate Arrives | The MPS Blog Best Python AI Frameworks in 2026 | The PyCharm Blog Contribute to the State of PHP Survey | The PhpStorm Blog The Rules of Zero, Three and Five - The Qodana Blog Modern C++ Support in CLion: What’s New | The CLion Blog Agentic AI Governance: Designing for Accountability and Control | The JetBrains AI Blog JetBrains Plugin Developer Conf 2026 – Call for Speakers | The JetBrains Platform Blog Fewer False Positives in RustRover 2026.2|The RustRover Blog Rider 2026.2 EAP 5: Code Quality Checks for Your AI Agents, and More. | The .NET Tools Blog Why Zig Isn’t 1.0 (Yet) | The JetBrains Blog Java Annotated Monthly – June 2026  | The IntelliJ IDEA Blog IntelliJ IDEA 2026.1.3 Is Out! | The IntelliJ IDEA Blog RustRover at RustWeek 2026 | The RustRover Blog WPF Hot Reload Is Here: Edit Your XAML and Watch It Update Live in Rider | The .NET Tools Blog Kotlin 2.4.0 Released | The Kotlin Blog IntelliJ IDEA 2025.3.6 Is Out! | The IntelliJ IDEA Blog Async VFS Content Writes - What Plugin Authors Need to Know | The JetBrains Platform Blog Top Agentic Frameworks for Building Applications 2026 | The PyCharm Blog Toolbox App 3.5: Better Remote Development Observability, More Reliable Enterprise Configuration, and Smoother Everyday Interactions | The Toolbox App Blog Stop Pasting Tokens: OAuth2 Login for JetBrains IDE Plugins | The JetBrains Platform Blog Fix Common TypeScript Issues | The Qodana Blog Mellum2 Goes Open Source: A Fast Model for AI Workflows | The JetBrains AI Blog What Does It Actually Take for an IDE to Understand Rust? Hibernate 7.4 New Features | The IntelliJ IDEA Blog How We Use AlphaEvolve to Make Complex IDE Algorithms Faster | The JetBrains AI Blog JetBrains Academy – May Digest | The JetBrains Academy Blog TeamCity 2026.1.1 Is Now Available | The TeamCity Blog The Upcoming Sunset of DataSpell | The DataSpell Blog Deprecating dotMemory Unit | The .NET Tools Blog Koog 1.0 Is Out: Stable Core, Better Interop, and Multiplatform Observability | The JetBrains AI Blog Introducing the Cloud9 JetStream Theme for JetBrains IDEs | The JetBrains Blog Build a Live Object Detection App for the Reachy Mini With TensorFlow and PyCharm | The PyCharm Blog IntelliJ IDEA 2026.2 EAP Is Open | The IntelliJ IDEA Blog How AI Agents Can Work with TeamCity | The TeamCity Blog
The Benchmark Meaning Gap - The JetBrains Blog
Katie Fraser · 2026-07-07 · via The JetBrains Blog

JetBrains Research

Research is crucial for progress and innovation, which is why at JetBrains we are passionate about both scientific and market research

Research

In any recent model comparison, you’ve probably seen a single number from a coding benchmark to represent “How good this model is at coding”. Those scores are tempting: they’re simple, they’re leaderboard-friendly, and they seem to tell a clear story about progress. 

But that story didn’t hold up when we looked more closely at benchmarks that are considered standards. The models dramatically improved on the exact tasks we trained them on, yet those gains often did not show up on other benchmarks or on slightly different tasks in the same codebase. This blog post is about our research on that meaning gap between what coding benchmarks measure and what we wish they measured – and how to improve these benchmarks. This paper will be presented by our team at the Deep Learning for Code (DL4C) workshop, co-located with the International Conference on Machine Learning (ICML) this July in Seoul.

Specifically, we will:

  • Compare common benchmarks currently in use.
  • Present our own empirical comparison and discuss why these common benchmarks fail.
  • Propose solutions for better evaluation and argue for sustained benchmark maintenance.

Models and benchmarks

Before we begin with comparing benchmarks, we will first zoom out to define foundation models, or the systems being evaluated by the benchmarks. These are AI systems trained on massive datasets to acquire general-purpose capabilities rather than being specialized for a single task. Large language models (LLMs) are a type of foundation model – and arguably the most common type at that. Foundation models, however, can be any type of system, not limited to language.

Instead of building a new model for each use case, you start from a single, powerful foundation that can be steered toward chat, coding assistance, search, or domain-specific agents with comparatively little additional data. In creating the model, there is a preliminary, pre-training phase, where models are trained on large amounts of data, typically a blend of web text, documentation, code repositories, and other data sources. 

Then they are adapted in the post-training phase, where a variety of approaches can be applied to customize the model. These include:

  • Reinforcement learning
  • Time-test scaling
  • Fine-tuning

Crucially, in the post-tuning phase, the model no longer trains on a large dataset, but rather on smaller sets of tokens relevant to the approach and overall goals. For more details, this paper offers a recent look at common post-training methods for LLMs.

Beyond training the models, it is essential for model creators and researchers to evaluate their capabilities, such as coding, common-sense reasoning, and natural language understanding, which covers tasks such as translation, question answering, and summarization. Benchmarks are central to the evaluation process because they turn these capabilities into quantitative scores that reveal where a model is strong and where it still struggles. Those scores then shape how researchers fine-tune and improve models, helping decide which training strategies are worth pursuing and which aren’t. However, benchmarks come in very different flavors, and each captures only a thin slice of “coding ability”. In the rest of this section, we show that benchmark results should be viewed with caution – and not necessarily as comprehensive evidence of a model’s coding capability.

Common coding benchmarks

Coding benchmarks differ a lot in what they actually test, even when they all claim to measure “code generation”. At one end, you have self-contained code tasks like HumanEval (GitHub), where the model sees a short problem and must produce a function that passes a handful of tests. There are adjacent examples like LiveCodeBench, which add self-repair, code execution, and test output prediction to code generation. At the other end are repository-level benchmarks such as SWE-bench (website), where the model is dropped into a real codebase and asked to resolve GitHub issues by navigating files, understanding context, and synthesizing patches that make the full test suite pass. We will now look at these in a little more detail.

Within the self-contained type of benchmarks, HumanEval is a small, function-level benchmark. Namely, it uses 164 hand-written programming problems, each with a prompt, a Python function signature, and hidden unit tests. It also focuses on short tasks such as write me a quicksort and produces corresponding reports, such as pass@k. Benchmarks such as HumanEval are great for quickly checking whether a model can correctly synthesize snippets of code from a description, but they tell you little about how that model behaves inside a large, messy codebase.

LiveCodeBench is also a self-contained type, but with a different emphasis: it continually collects new problems from competitive programming sites like LeetCode, AtCoder, and Codeforces, and it explicitly focuses on contamination-free, time-segmented evaluation. Beyond plain code generation, it includes scenarios like self-repair, code execution, and test output prediction, so it can tease apart different code-related capabilities instead of compressing them into a single number. Compared to HumanEval, LiveCodeBench is larger, evolving, and more holistic.

As a repository-level type of benchmark, SWE-bench sits at almost the opposite end of the spectrum. Instead of single functions, it gives the model a full repository snapshot plus a real GitHub issue and asks it to modify the code so that the project’s own tests pass again. Tasks are multi-file, involve navigating, reading unfamiliar code, and producing patches that integrate cleanly, which is much closer to real software engineering. 

However, SWE-bench also bundles many skills together: repository understanding, search, patching, and even how well an agent uses a particular scaffold or toolchain, so a good score may reflect proficiency with that specific workflow rather than broad coding ability. Additionally, SWE-bench is just asking whether one GitHub issue was fixed; compare, for example, LiveCodeBench, which gives a more holistic result. 

The evaluation approaches of these code-oriented benchmarks basically assess different capabilities, so we can expect that their strengths and scores will differ. High performance on self-contained tasks may not translate to strong results on repository-level evaluations, which additionally demand navigation of large codebases, reasoning about dependencies, and the synthesis of precise, context-aware edits. In other words, no one type of benchmark’s results can generalize to prove a model’s overall performance.

The limitations of model evaluations in previous studies

Evaluating foundation models comes with an inherent limitation related to their breadth: due to time, as well as the need to deliver concise and readable reports, there lies a natural tension in evaluating such a large scope. For a model-specific example, we can look at the Qwen3 technical report, which has three benchmarks with self-contained algorithmic tasks and another self-contained execution-reasoning-oriented benchmark. With only four benchmarks reported all of them self-contained, and potentially limited correlation across the assessed tasks, we cannot assume that the benchmarks comprehensively evaluate the model.

For post‑trained models, these limitations become even more acute. Unlike full foundation-model releases, post‑training work has to squeeze results into tight conference page limits, absorb higher compute costs for each additional evaluation, and deal with the engineering overhead of wiring up extra evaluation harnesses. In practice, that makes “one benchmark only” not an exception, but the default choice.

This leads to a predictable pattern. Namely, if a project targets repository‑level software engineering, it usually reports results only on SWE‑bench or closely related variants (like in this study or this study). If a project focuses on more general post‑training techniques, it typically evaluates on self‑contained suites like HumanEval instead (like in this study or this study). 

Unsurprisingly, with only one benchmark, it is difficult to tell whether a reported gain reflects narrow, task‑specific optimization or a genuine, broader improvement in coding ability. And it has become common practice to apply SWE-bench to measure “real-world coding capability” of a model. While there are indeed some associations between improved foundation models and improved coding capabilities, we are still missing the whole picture.

It is impossible to deeply analyze the results to see if they can generalize or even cross-check across tasks. This is because SWE-bench bundles together many factors: repository navigation, issue understanding, patch synthesis, and adherence to a specific workflow. We also know from the previous subsection that SWE-bench is only one type of benchmark, repository-level, and that it therefore misses some insights that a self-contained benchmark might catch. In this way, the current common evaluation practices are not necessarily working towards improving models, but rather optimizing for the benchmark itself based on task- and distribution-specific evaluations.

The meaning gap between benchmark measurements and capability claims

In our paper, we call the disparity between benchmark scores and a model’s actual performance a meaning gap. We argue that the meaning gap is actually a construct validity problem. This is an important concept in research and concerns test validation, or whether a test is actually evaluating what it should be evaluating. A benchmark is valuable as an evaluation method to the extent that it clearly and correctly defines the taxonomy of what it measures, which in this case is “general coding capability” (see also this paper on defining parameters when creating benchmarks). 

We recognize that there are practical limitations leading to many researchers and model creators evaluating models with a small number of benchmarks, and there is a tendency to claim that such scores reflect a model’s overall coding capability. All of which distorts the perception of a model’s performance, creating a meaning gap between performance claims and reality. On top of that, scientific papers and general audiences continue to amplify these claims, creating a never-ending and inaccurate cycle.

There are many real-world examples of the gap, such as those described above. But how can we actually find out whether benchmark gains correspond to real improvements in coding ability? One option is to test for transfer across different task types. In our study, we propose exactly this kind of stress test.

The meaning gap empirically tested: Preliminaries

To test the meaning gap, we created a benchmark suite to measure performance across task modalities, with the idea of explicitly assessing the cross-task transfer capability. In this subsection, we will describe the setup of our experiments. More technical details can be found in the following resources:

As noted above, it has become common practice to use SWE-bench as the standard benchmark. SWE-bench Verified is a subset of the full SWE-bench benchmark, and it was co-developed by the authors of SWE-bench and OpenAI. It comprises 500 problems from the full SWE-bench, all annotated by professional software developers.

The annotators verified that the issue descriptions are well-specified and unit tests are appropriately scoped. SWE-bench Verified became an academy and industry reporting standard for the SWE-bench benchmark family (although SWE-bench-lite and full SWE-bench are also used sometimes). Because of its status as a standard, we were interested in comparing the reported SWE-bench Verified scores of various models.

In our experiments, we built a new benchmark suite on top of a single, real-world Django repository and then used it to probe how well different code models and fine-tuned checkpoints actually transfer across tasks. Django was an obvious choice, as it makes up almost half of SWE-bench Verified. 

This setup gives us a simple, testable hypothesis: if SWE-bench-optimized checkpoints genuinely boost transferable, repository-level software-engineering ability, then their scores on Django-focused tasks drawn from the same codebase should be similar. By evaluating these checkpoints on these Django tasks, which are deliberately chosen to be close in distribution to SWE-bench, we can directly check whether these checkpoints also improve on tasks other than issue resolution.  

For the testing, we constructed three kinds of tests: (i) method generation, (ii) method completion, and (iii) program repair. For each of these, the task was the following:

  • Method generation: Fill in a method body from its signature and docstring, given the source file (where the method body has been removed).
  • Method completion: Finish a partially written method in the chat format.
  • Program repair: Given a corrupted method and a failing test stack trace, restore the correct implementation.

After pairing each benchmark with a corresponding instruction-tuning dataset (same task template), the dataset contained 3,180 train samples and 359 test samples. We evaluated all tasks by running the official Django 4.0.4 test suite with deterministic, greedy decoding, and we counted a task as solved only if the tests passed on the first try. 

In addition, we evaluated the same models on LiveCodeBench, using 341 tasks from there, and again greedy decoding. We wanted to validate code-generation capabilities on self-contained tasks, to compare with our repository-level Django tests. In other words, our results compare the reported SWE-bench scores with our own test suite and the LiveCodeBench tests; these are presented below.

For the evaluations themselves, we targeted three groups: (i) foundation models, (ii) public SWE-bench–oriented checkpoints, and (iii) our own task-specific fine-tunes. The details of these categories are in the table below.

In setting up this experiment to test the meaning gap, we were careful to create a testable framework, with an emphasis on cross-task transfer evaluation. We chose a dataset and setup that allows a straightforward testing of our hypothesis.

Namely, if models with high SWE-bench Verified scores perform worse than foundation models on our suite, it shows that SWE-bench Verified is, in reality, a weak predictor and not a good indicator of general coding capability, beyond one dataset or a limited set of tasks. In the next subsection, we describe the results of our experiments.

The meaning gap empirically: Results

Our experiments show that there is indeed a meaning gap, or a difference between performance claims and reality. We can summarize the results by differentiating between the three evaluation groups, as follows:

  1. Foundation models: Rankings are not always stable across tasks.
  2. Public checkpoints: No cross-task transfer.
  3. Our fine-tunes: Strong within-task gains, but weak cross-task transfer.

For (1) foundation models, we observed that leaderboard rankings are not stable across tasks. That is, a model that looks stronger on SWE-bench can underperform a competitor on our Django code-completion benchmark, even though both are ostensibly measuring “coding ability.”

For example, while Qwen-2.5-32B-Coder-Instruct outperforms Qwen3-32B on our code completion benchmark, it has worse SWE-bench scores. The results for this evaluation group are displayed in the table below, with relevant cells colored grey (darker for higher score; lighter for lower) to highlight the example instability.

For (2) public SWE-bench-optimized checkpoints, the pattern was even clearer. These checkpoints achieved large improvements on SWE-bench relative to their base models, but when we tested them on our Django suite and LiveCodeBench, they showed little consistent improvement and frequent regressions. The table below shows the results for this evaluation group, with cells highlighted to indicate degradations (orange) and improvements (green).

Meaning Gap: evaluations

The table shows that degradations (in orange) outnumbered gains (in green), and no single checkpoint improved across all four non-SWE-bench benchmarks. Only DeepSWE-Preview (on the bottom row of the table) demonstrated improvements more often than degradations.

For (3), our own fine-tuning experiments were designed to test a more controlled scenario: we took strong base code models and fine-tuned each one separately on just a single Django task (generation, completion, or repair). These results can be seen in the table below, with the same color-coding as in the previous table.

Meaning Gap: Evaluations

Within the task we trained on, fine-tuning reliably boosted performance; every fine-tuned model became significantly better at its specific target modality. However, when we evaluated these same checkpoints on the other Django tasks and on LiveCodeBench, we again saw a pattern of weak or negative transfer. And improvements did not systematically carry over to untrained tasks. 

Taken together, these results support our meaning gap claim. That is, current post-training recipes and benchmark-optimized checkpoints give us highly specialized models that excel on a narrow evaluation, but those gains largely fail to translate into broader, more general coding capabilities. These results demonstrate that coding benchmarks (as they are currently reported) measure task-specific performance rather than general coding ability (as is often claimed claimed). 

How we can evaluate models more accurately

Our experiments showed that there is indeed a disparity between performance claims and reality. We think that there are numerous, complementary ways to address this meaning gap.

First off, benchmark suites provide broader coverage than a single benchmark can. Of course, this requires a higher effort by the community, especially in maintenance. We believe this is a systemic problem, however, and that there should be more institutional support for maintenance, e.g. through industry sponsorship or conference tracks rewarding ongoing maintenance.

Benchmark suites with broader coverage, of course, can also face the construct validity problem, leading again to a meaning gap. A robust benchmark suite needs to answer several questions, including:

  • Which exact behaviors will count for coding capability?
  • Which distributions matter, and how do we handle contamination risks?
  • How can we report a performance profile instead of a single score?

Again, defining such parameters requires many more resources, but we know from other fields that this is not impossible for software engineering to achieve, too. There are already benchmarks being developed with clear taxonomies. For example, SWE Compass creates an explicit taxonomy of coding tasks and failure modes, providing a deeper analysis of model performance.

Another possible approach is a holistic open-ended evaluation, which can include unexpected tasks. Anthropic’s Project Vend is a good example of this: as the project unfolded in real time, they were able to judge outcomes and user experience instead of just optimizing for specific, predefined tasks. In other settings, this could look like model vs. model competitions with standardized rules, even potentially sponsored by the models’ developers. 

With this meaning gap research, we call the community to action: help make benchmarks more accurate – and more reliable. We should endeavor to fund alternative evaluation approaches such as those outlined above, as well as the long-term maintenance of benchmarks.

And for individual developers and small teams adopting AI: Don’t fall into the meaning gap! Treat coding benchmarks as probes of specific behaviors, not as verdicts on “how good a model is at coding.” Use them, but pair those numbers with diverse tasks, real-world checks, and an honest look at what you actually want the model to do.

It’s quite possible the tasks you care about are not covered well by any of the existing benchmarks. While creating your own benchmark is too much of a hassle, you can try various AI models on a set of your daily tasks to find which model and setup works best. This vibe-style evaluation may tell you more than a rigorous benchmark would, with tasks completely irrelevant to you.

If you’d like to try our benchmark suite yourself: 

Subscribe to JetBrains Research blog updates

Discover more