Пока я гадаю, что произойдет быстрее — курьер привезёт завтрак или BlueOrigin запустят ракету, обновился бенчмарк LiveCodeBench. Это набор задач на программирование с LeetCode, AtCoder и CodeForces с привязкой ко времени их выпуска. Сам бенчмарк позволяет строить таблицу лидеров по срезу времени, с такого-то месяца по такой. Это позволяет сравнивать модели в том числе на очень свежих задачах, которые модели скорее всего не выучили, так как их просто не существовало во время тренировки. Конечно, какие-то задачки наверняка могут быть очень близкими переформулирвоками тех, что встречались лет 5-7 назад, и модели с ними могут справляться лучше, чем с совсем неизвестными, но это уже что-то. На скриншоте я выбрал срез с сентября 2024-го, так как оценка топ-1 решения не меняется с этого периода (а значит скорее всего почти не переобучена) Также в обновлении прогнали рассуждающие модели: — o1 от OpenAI (занимает первые места с большим отрывом) — QwQ-32b от Qwen — Gemini-Flash-2.0-Thinking от Google Почему o1 повторяется аж 3 раза? Всё дело в параметре reasoning_effortв API OpenAI, который контролирует длину цепочки рассуждений. Если задача не сложная и вы не хотите много платить + долго ждать — можете указать «думай меньше», а если наоборот, то «сиди и работай пока работается». Между средним и низкими уровнями разница не очень большая, а вот High на сложных задачах (самая правая колонка) существенно докидывает — больше 10%. Эта разница, если что, сравнима с абсолютным показателем какого-нибудь Sonnet 3.6. Видно, что по-хорошему с Hard задачами справляются только рассуждающие модели от OpenAI, и всё — для остальных доля решений смешная. Но означает ли это, что их модели гораздо лучше для любых задач по программированию? Если вы читали мой пост про бенчмарки, то знаете, что ответ — нет. Тут измеряется умение писать ответы на Python (сразу отсекаем другие языки) для около-олимпиадных задач (не типовые) без использования почти любых библиотек (кроме стандартных), с применением паттернов, присущим конкретно таким задачам (редкие приёмы итд), когда в промпте указано 2-3 примера работы и есть сигнатура функции. Как вы видите, это не связано напрямую с качеством того, как модель будет писать вам Rust-скрипт для парсинга интернета — просто потому что это другое, хоть и несколько коррелирующее измерение. Но OpenAI канеш впереди 🥹 Лидерборд тут