Skip to content
tinAI
Go back

Vì sao OpenAI ngừng dùng SWE-bench Verified để đo năng lực coding frontier

Bài gốc: Why SWE-bench Verified no longer measures frontier coding capabilities

Tác giả: OpenAI

Ngày đăng: Dịch ngày:

TL;DR

OpenAI audit 138 task SWE-bench Verified mà o3 không pass — phát hiện 59.4% có test design flawed (35.5% reject solution đúng, 18.8% test feature ngoài đề bài) và mọi frontier model lớn (GPT-5.2, Opus 4.5, Gemini 3 Flash) có thể recall verbatim gold patch. Họ ngừng report Verified, khuyến nghị industry chuyển sang SWE-bench Pro và protect benchmark mới khỏi contamination.

Có gì mới

Kể từ khi SWE-bench Verified được publish tháng 8/2024, industry dùng nó như metric chuẩn để đo tiến bộ của model trên autonomous software engineering. Mọi frontier model release đều report số này. OpenAI’s Preparedness Framework cũng track theo benchmark này.

Trong 6 tháng gần nhất, state-of-the-art chỉ tăng từ 74.9% lên 80.9%. Câu hỏi: failure còn lại là do giới hạn model, hay do property của dataset?

OpenAI vừa publish một analysis với hai vấn đề lớn — đủ để kết luận benchmark này không còn đo được năng lực thật ở performance level hiện tại.

Vấn đề 1: Test reject solution đúng

Audit 138 task mà o3 không pass consistent qua 64 run, mỗi case review bởi ít nhất 6 software engineer có kinh nghiệm. Kết quả: 59.4% có vấn đề về test design hoặc problem description.

Ví dụ narrow test: pylint-dev__pylint-4551 yêu cầu một function tên get_annotation được test import trực tiếp. Tên function này không có trong problem description. Nhiều solution hợp lệ fail vì import error trên một tên không bắt buộc.

Ví dụ wide test: sympy__sympy-18199 được sourced từ một PR fix 3 issue khác nhau, nhưng task description chỉ cover 1 issue. Tests vẫn check cả 3 — model implement đúng issue được mô tả thường fail tests cover 2 issue còn lại.

Vấn đề 2: Contamination training data

SWE-bench Verified và các repository (codebase + release notes) đều open-source và được thảo luận rộng rãi — khó tránh contamination cho mọi model developer.

OpenAI thấy dấu hiệu contamination ở chính model của họ: GPT-5.2 solve 31 task được phân loại gần như impossible. Trong django__django-14725, test yêu cầu parameter mới edit_only không được nói trong problem statement. Chain of thought của GPT-5.2 cho thấy nó có thông tin từ Django release note, biết edit_only được introduce trong Django 4.1.

Để đo contamination toàn cảnh, OpenAI build automated red-team setup. Cho mỗi SWE-bench Verified task, dùng GPT-5 probe các target model (GPT-5.2-Chat, Claude Opus 4.5, Gemini 3 Flash Preview) qua 15 turn để extract task-specific information, judge model label severity từ “none” tới “strong”.

Kết quả strong contamination ở tất cả vendor:

Kết luận: improvement trên SWE-bench Verified giờ phản ánh exposure tại training time hơn là năng lực coding thực. Càng thấy benchmark trong training, càng pass tốt — vì có additional information để pass underspecified test.

Khuyến nghị

  1. Stop reporting SWE-bench Verified score. OpenAI đã ngừng. Khuyến nghị model developer khác làm tương tự.

  2. Dùng SWE-bench Pro thay thế cho tới khi có benchmark mới. Pipeline contamination check cho thấy Pro có contamination ít hơn và ít nghiêm trọng hơn — không model nào reproduce được verbatim gold patch.

  3. Benchmark public-source mang risk contamination. Dataset publish public — kể cả solution — đều có thể vào training data. Cần test thêm cho contamination, post dataset cẩn thận (password protect), và filter training data nghiêm túc (canary string).

  4. Automated scoring khó làm đúng. Test case hoàn hảo phải verify functional correctness mà agnostic với implementation detail không quan trọng, đồng thời robust với shortcut. Catching những vấn đề này cần multiple human labeling campaign.

  5. Đầu tư private-authored benchmark. Như GDPVal, task được author riêng bởi domain expert, grade holistic bởi reviewer trained — resource-intensive nhưng cần thiết để đo improvement thật.

Ý nghĩa với Dev

Nếu bạn đang chọn model coding theo SWE-bench Verified leaderboard, số đó không còn đáng tin. Hai model cùng 80% có thể khác nhau hoàn toàn — một model thực sự reason qua codebase, model kia memorize gold patch từ pretraining. Cách kiểm tra thật: chạy benchmark riêng trên codebase của bạn, hoặc dùng SWE-bench Pro làm proxy. Khi build benchmark internal, đừng publish public — hoặc publish có gate (password, auth) để tránh leak vào pretraining cycle tiếp theo.


Read Original (EN) Quay lại Newsletter