Сгенерированная титульная карточка с заголовком «Рекурсивное самосовершенствование: объяснение» и подзаголовком «Замкнутый цикл — это цикл с оценкой, и вся суть в оценке», над рядом из трёх скруглённых карточек с надписями «Прогнозы, зарегистрированные до запуска», «Нулевые пороги измерены, а не предположены» и «Неудачи тоже выпускаются, включая провал чемпиона»; в нижнем колонтитуле написано «Разобранный пример: RSI-Jev v6.0-VL, опубликовано 2026-10-06; собственная запись проекта, прочитано 2026-10-08», с минималистичными плоскими линейными иконками и логотипом OrcaRouter, наложенным в правом нижнем углу.
Guides & Insights

Рекурсивное самоулучшение, объяснённое на примере проекта, который действительно это делает

Автор

Magnus Corvin

Дата публикации

Новые модели · 20Все модели →
Бенчмарки: Artificial Analysis · обновляется ежедневно
Назад ко всем статьям

«Рекурсивное самоулучшение» — одна из тех фраз, которые чаще всего используются для обозначения некоего ощущения. Если определить её без мистики, она оказывается уже и при этом интереснее: это система, которая предлагает свой следующий эксперимент, запускает его и сохраняет или отбрасывает результат по заранее зафиксированному правилу, причём результаты питают следующий цикл. Рекурсия — не магия, и она не бесконечна: это цикл с функцией оценки, и его качество целиком определяется тем, насколько честно применяется эта функция оценки. RSI-Jev, сторонний открытый проект, который строит решающие модели System One в стиле Jev, — редкий случай, когда цикл можно прочитать, а не спорить о нём: каждая гипотеза, каждая провалившаяся ветвь и каждый релиз публикуются вместе со своими числами, а репозиторий датируется день за днём. Модель, которую эта страница использует в качестве разобранного примера, — RSI-Jev v6.0-VL, типизированная решающая модель на 4B, опубликованная 2026-10-06, то есть в пределах последней недели. Это не Jev от TypeSafe и не имеет отношения к TypeSafe AI — в собственной строке лицензии проекта сказано именно это, а то, что мы предоставляем на OrcaRouter, — это другая, typesafe/jev-1.13, на нашем эндпоинте systemone.

Одно уточнение, прежде чем слово «самоулучшающийся» начнёт что-то значить, а следом — одна дата. Это не модель, переписывающая себя без ограничений, и ничто на этой странице не должно читаться так. Цикл, о котором речь, переписывает рецепт: он предлагает изменение в обучении, регистрирует, что, по его ожиданиям, это изменение даст, тратит время GPU, а затем либо сохраняет изменение, либо записывает, почему оно проиграло. Модель — это башня Qwen3.5-4B-Base с обученными головами принятия решений: фиксированная архитектура, обучаемая фиксированным скриптом обучения, при этом поиск ведётся по данным, целям и этапам. Цикл проводит собственные эксперименты и отправляет в отставку собственных чемпионов. Люди решают, что стоит измерять. И дата: v6.0-VL была опубликована 2026-10-06, и с тех пор проект выпустил ещё один релиз — линейка движется примерно ежедневно, а цифры на этой странице — те, что привязаны к названному здесь релизу, с датой на момент их чтения. Об этом стоит сказать сразу на странице, тема которой — цикл, который продолжает работать.

Что означает этот термин, сказано прямо.

Разберите это выражение на части — и вы найдёте три составляющие, и все они обычные. Во-первых, пространство поиска: множество вещей, которые можно изменить. Во-вторых, оценщик: нечто, что говорит, помогло ли изменение. В-третьих, запись: что было испробовано, что произошло и что было отброшено. Система занимается рекурсивным самоулучшением, когда выход раунда N является входом для раунда N+1 во всех трёх из них, без того чтобы человек заново выводил пространство поиска или заново определял порог каждый раз.

Большая часть написанного на эту тему пропускает вторую часть, а ведь именно в ней и заключается весь вопрос. Цикл со слабым оценщиком оптимизирует оценщика. Он породит монотонно растущую кривую и систему, которая выучила форму собственного экзамена. Эта неудача не требует злого умысла или ошибки — это то, что происходит по умолчанию, когда одно и то же число одновременно и отбирает, и сообщает результат. Поэтому, когда вы читаете утверждение, что какая-то система самоулучшается, полезный вопрос — вовсе не «насколько она стала лучше». Он звучит так: «кто установил планку, когда, и могла ли она сдвинуться после того, как результат был увиден».

Популярные версии этой концепции — те, что сегодня в топе по этому запросу, — в основном устремлены в будущее: статья в Википедии описывает систему, переписывающую собственный код на пути к «взрыву интеллекта», а в более широком освещении речь обычно идёт о том, ближе или дальше этот срок, чем прогнозировалось. Это законный спор, и на него невозможно ответить, располагая теми доказательствами, которые есть у кого-либо сегодня. А вот на меньший вопрос ответить можно: можно ли прямо сейчас построить замкнутый контур описанного выше типа и заставить его подчиняться собственным правилам? Для этого один проект с публичными артефактами перевешивает десятилетие спекуляций — и именно ему посвящена остальная часть страницы.

Замкнутые, а не просто итеративные: пять механизмов

Цикл не является замкнутым только потому, что повторяется. Множество автоматизированных конвейеров повторяются, так и не становясь замкнутыми, потому что конвейер, способный скорректировать свой порог, увидев результат, делает нечто категорически иное, чем тот, который на это не способен. Собственные правила RSI-Jev необычайно явно описывают это различие, и их можно читать как определения, а не как манифест. Пять из них выполняют большую часть работы.

Прогнозы регистрируются до запуска. Гипотеза записывается вместе с числом, которое она рассчитывает сдвинуть, и на какую величину, — до того, как будет потрачено время GPU. Версия, не дотянувшая до собственной планки, выпускается как неудача, а не тихо перекраивается. Это механизм, который не даёт циклу превратиться в машину для написания объяснений постфактум, и у него есть реальная цена: в протоколе есть записи, единственное содержание которых — чья-то ошибка, зафиксированная в протоколе.

Нулевые пороги измеряют, а не предполагают. Команда запускает ветви, доказуемо идентичные контролю — подтверждённые проверкой идентичности объектов до единой секунды времени на GPU, — и разброс между этими ветвями и есть уровень шума. Разница меньше этого порога — не результат, как бы она ни выглядела. Собственная планка проекта это отражает: на его внутреннем наборе порог составляет +0.006, а стандартное отклонение по сидам на отдельном бенчмарке — 0.011–0.016, так что различия на одном бенчмарке ниже этого находками не являются. Большая часть шума в этом деле измеряется, а не выводится статистически.

Отложенная выборка расходуется, как только её прочитали. Каждый релиз читает отложенную выборку один раз, поэтому два релиза всё ещё можно сравнивать на равных — и, поскольку чтение её расходует, каждый релиз замораживает сравнение для следующего. Формулировку самого проекта стоит сохранить в неприкосновенности: отложенная выборка «отложена от обучения, а не запечатана от поиска». Это проверка на запоминание, а не гарантия новизны. И в самом показателе набора есть дыра, о которой проект сообщил публично: одна внутренняя задача пересекалась с несколькими сотнями обучающих строк, поэтому начиная с v6.0-VL набор сообщается без неё — 0.770 — а прежние 0.764 у v5.0-VL были пересчитаны как 0.763 без неё. Смысл именно в этом пересчёте. Число завышалось, причина была найдена, и карточку старого релиза исправили, а не оставили как есть.

Неудачи тоже выпускаются, включая те, что погубили собственного фаворита проекта. Главные цифры репозитория, прочитанные 2026-10-08, согласуются между собой: восемь релизов за тринадцать дней и сотни экспериментов, описанных вместе с неудачами. Отрицательный результат считается продуктом. Руководство для контрибьюторов прямо говорит, почему — дорогая часть поиска — это не запуск победителя, а запуск проигравших, поэтому хорошо измеренный отрицательный результат извне отсекает ветвь и ценнее небольшого положительного.

Цепочка релизов — это и есть проект. Одна карточка на релиз, все они, постоянно в основной ветке. Каждая карточка несёт собственные показатели своего релиза, поэтому скорость и калибровка одной версии никогда не перезаписывают данные другой. Проект прямо называет причину: эта цепочка — единственный способ увидеть, улучшается ли самоулучшающийся цикл. Всё остальное — рецепт, скрипты, закреплённый стек — содержит только текущий релиз, потому что противоположное правило сделало бы невозможным понять, что является текущим. Опубликованный чекпоинт несёт собственный код, чтобы старые релизы оставались запускаемыми без старых веток.

A screenshot of the subject project's own GitHub repository page, Shanghua-Gao / RSI-Jev, showing the repository description 'Typed-decision models (noul / choice / score) trained by a self-improving loop of AI agents - checkpoints, the code that produced them, and every version that failed', the sidebar counters 80 stars, 5 forks and 1 watching, 198 commits and 8 releases, the newest release headed 'RSI-Jev v6.1-VL 4B', an MIT license line, the topic tags ai-agents, autonomous-research, decision-model, jev, recursive-self-improvement, system-one and typed-decisions, and the merge commit 'Merge pull request #33 from Shanghua-Gao/release-v6.1-vl' at the top of the commit list.

Чего стоит дисциплина и что она даёт

Две истории из записей — честный противовес слову «самоулучшающийся», потому что обе они — случаи, когда собственные правила цикла одновременно замедляли работу и делали её лучше.

Первый — это баг, лежащий в основе v1.0. Чтобы найти его, потребовалось семь зарегистрированных отрицательных результатов. Каждый из семи был исправлением на стороне оптимизатора, которое уменьшало нестабильность обучения, но не устраняло её, потому что причина была в ошибке точности, находившейся совсем не рядом с оптимизатором, — а окончательное исправление состояло из одной строки. Ни один из семи не стоил публикации сам по себе. Именно вместе они позволили вообще найти причину, и в этом весь аргумент в пользу регистрации и сохранения отрицательных результатов: их ценность — совместная, а не индивидуальная.

Второй выглядит менее лестно, и проект всё равно публикует его — в сноске. Один из ранних вариантов не прошёл ровно один защитный критерий — MMLU-Pro оказался на 0,026 ниже планки при ограничении 0,020 — и был занесён в журнал как отклонённый. Затем владелец запуска расширил ограничение до 0,030, на том основании, что MMLU-Pro — это защита от забывания, а не целевой показатель, и вариант был подтверждён на четырёх новых сидах и стал следующим релизом. Исходное отклонение осталось в журнале — с собственным комментарием проекта о том, что сдвинутая после того, как стал известен результат, планка — это как раз то, на чём читатель должен иметь возможность поймать проект.

Эта сноска — самый полезный абзац в репозитории для любого, кто пытается оценить подобные утверждения в реальных условиях. Планка, которая сдвинулась, не является доказательством недобросовестности — приведённое обоснование можно защитить, и расширенная планка затем должна была выдержать четыре новых seed-а. Но планка, сдвинутая молча, — это цикл, который больше не замкнут, и всё различие между этими двумя случаями сводится к тому, было ли это записано. Общее правило, которое проект впоследствии принял, стоит перенести на другие системы: почти-промах, проваливающий ровно одну проверку, получает диагностику и точечное исправление вместо того, чтобы быть отброшенным, — а если исправление не удаётся, он становится тупиком с записью.

Как часто цикл оказывается неверным: четырнадцать конфигураций, две оставлены

Вот число, которое стоит запомнить. В релизе, который читает изображения, проект насчитывает четырнадцать конфигураций обучения с подкреплением и 63 руки, обученные на награде. Две были сохранены.

Каждую конфигурацию оценивали в сравнении с контролем, обученным с учителем на тех же элементах за то же число шагов, — именно это сравнение придаёт подсчёту смысл: победа RL-ветки над базовым уровнем, которому ей не нужно было соответствовать, ничего не доказывает. Поучительные поражения, по словам самого проекта:

RL по бинарной корректности — выход вероятности схлопнулся к 0 и 1. Награда за сам факт правильного выбора, а не за честность сообщаемых шансов, загоняет распределение в углы, а модель принятия решений, уверенность которой всегда абсолютна, бесполезна для того, ради чего вообще нужны модели принятия решений.

• Proper-score RL, воссоздание целевой функции в стиле Laya — нормально на 300 шагах, разошлось на 1 500. Стабильно, пока он почти ничего не делал, и нестабильно ровно тогда, когда это начало иметь значение.

• RLCR — равен по точности, хуже по сырой калибровке. Он не приобрёл никаких возможностей и заплатил за это единственным свойством, ради которого модель существует.

• Bandit RLCD, где раскрывается только исход выбранного варианта — не лучше обучения с учителем на той же обратной связи. Проект провалил здесь свой собственный предварительно зарегистрированный тест: эта ветвь должна была превзойти обучение с учителем как минимум по двум из четырёх метрик калибровки, а победила только по одной.

Победитель — и причина его победы — это самый переносимый вывод на этой странице. Это listwise-награда: качество ранжирования, измеряемое по порядку множества отдельно оценённых кандидатов, а не по каждому из них в отдельности. Recall при переранжировании на первой позиции вырос с 0,192 у родительской модели, обученной с учителем, до 0,308, с победами и поражениями в парном тесте. Объяснение проекта — это не история про настройку: поэлементная цель обучения оценивает каждого кандидата по отдельности, и ни одна отдельная метка не кодирует качество порядка среди кандидатов. Там, где награда говорила то, чего метки выразить не способны, RL превосходил обучение с учителем на тех же строках. Там, где нет, обучение с учителем показывало такой же результат.

Это обобщается в правило о том, когда подобный цикл вообще способен что-либо найти. Когда на руках есть эталонная метка, ожидаемое обновление по градиенту политики равно градиенту функции потерь обучения с учителем — формулировка самого проекта, — так что «RL-ветвь», оцениваемая по размеченным решениям, на самом деле является ветвью дизайна функции потерь. И изменения на уровне функции потерь сдвигали внутренний набор не более чем на 0,002, тогда как новые данные сдвигали его на 0,13. Если читать это вместе: рычаг цикла никогда не был в целевой функции. Он был в том, что измерялось и что подавалось на вход.

Это и есть честный ответ на вопрос, который читатель вправе задать. Конфигурации RL в других местах приводятся как свидетельство о самоулучшении в целом; здесь они — свидетельство об одном цикле в задачах принятия решений. Результат listwise получен на одном seed, и проект сам об этом говорит: парное сравнение RL с обучением с учителем проводилось на другом родителе, не на том, к которому его применили в релизе, а в этом релизе «нет сопоставимого контроля с обучением с учителем». Результат с такой оговоркой ценнее, чем результат без неё, и именно поэтому страница, которую вы читаете, не обобщает его.

Где сидит человек

Проект говорит прямо, и эта прямота — самое интересное: цикл сам проводит собственные эксперименты и сам отправляет собственных чемпионов на покой, но он не решает, что стоит измерять, и сам не замечает, когда число технически верно, но на практике вводит в заблуждение. Это делают люди.

Два собственных правила проекта существуют потому, что кто-то возразил. Проверку MMLU-Pro расширили, вместо того чтобы позволить отбросить почти прошедший её результат. Требование к сидам теперь масштабируется с размером эффекта, вместо того чтобы расходовать четыре сида на каждое различие — потому что подтверждающий сид, то единственное число, по которому ветвь не отбирали, и есть несущий, а тратить вычисления на различия, которые вы и так видите, не даёт ничего. Один из релизов в цепочке начался как отказ отбросить ветвь, провалившую одну проверку. Проект называет по именам людей, приславших эту обратную связь, в разделе благодарностей.

Итак, «самоулучшение» здесь описывает середину цикла, а не весь цикл. Цикл — это поиск, который идёт без того, чтобы человек крутил ручку. Человек по-прежнему находится наверху цикла, выбирая цель, и внизу, критически читая результат, — и именно такое устройство не даёт циклу превратиться в машину для подтверждения собственных предпочтений. Любое описание рекурсивного самоулучшения, в котором опущена эта позиция, описывает не эту систему, а другую, и, вероятно, гипотетическую.

Что не показывают собственные цифры проекта

Приведённая выше дисциплина заслуживает описания только в том случае, если её пределы названы в том же дыхании, а запись RSI-Jev говорит о них сама за себя.

• Это один проект, за раз — один размер модели, один сид. Опубликованный чекпоинт — от одного сида, заранее зафиксированного как основной, а не выбранного по критерию лучшей оценки. RL-доказательство — это один сид.

• Это задачи принятия решений, а не генерация: вопрос с ответом «да/нет», выбор одного из k вариантов или оценка по рубрике по документу, чату или изображению, ответ на который даётся за один прямой проход с калиброванной вероятностью для каждого варианта. Ничего не генерируется, поэтому нет токенов рассуждений, которые можно потратить. Цикл здесь демонстрирует, что он может улучшать оценщик такого типа.

• Часть этого невозможно воспроизвести из одного только репозитория. Обучающие корпуса и наборы для разработки политики не являются публичными, и проект прямо говорит об этом в карточке релиза: «этапы нельзя повторно запустить только из этого репозитория». Одному сборщику корпуса требуется около 96 ГБ памяти, и он не был повторно запущен от начала до конца.

• Не всё вообще поддаётся проверке. Внутренний набор тестов никогда не был полностью отложенным. Из пятнадцати бенчмарков десять в той или иной форме поставляют данные для обучения, поэтому ни одна из этих цифр не является zero-shot — отложенный набор — это то самое сравнение, которое отложено, и оно единственное.

И у внешних частей есть собственная рубцовая ткань. Аудит после одного релиза обнаружил в обучающих корпусах примерно тысячу элементов тестовых строк публичного бенчмарк-набора — около 0,3% строк набора, причём крупнейший единичный вклад — несколько сотен строк из одного источника. При повторной оценке без них индекс меняется не более чем на 0,04. Эту поправку опубликовали в карточке следующего релиза, а не применили тихо, следуя правилу, которое проект формулирует так: «никакой контаминации: проверяем, а не утверждаем». Это правило, которое стоит им одной цифры, — а только такие правила и стоит иметь.

Где это действительно можно запустить — а где нельзя

Ничего из этого не обслуживается OrcaRouter. В нашем каталоге нет идентификатора RSI-Jev и карточки модели для него, и не появится, пока кто-нибудь не начнёт его обслуживать. RSI-Jev устанавливается из собственного репозитория и запускает собственный сервер, который работает по Jev API: вы указываете на него существующий клиент Jev и меняете базовый URL. Он работает на Linux, Windows и macOS, на CUDA GPU, Apple Silicon или обычном CPU.

The one model we do host is the other side of that contract. TypeSafe's Jev 1.13, which we serve as typesafe/jev-1.13, is the commercial decision model whose request and answer shapes RSI-Jev reproduces, and it is reached on our dedicated systemone endpoint rather than through the chat-completions shape. That is the whole relationship, and it is a structural one rather than a quality claim: one is a hosted commercial model on a vendor's endpoint, the other is a checkpoint you download and serve yourself. Nobody has run an independent head-to-head between them, and this page is not going to declare a winner from two different harnesses.

A generated single-column scoreboard headed 'RSI-Jev - the loop's own ledger', with six rows reading 'Predictions: registered before the run', 'Null floors: measured from identical arms', 'Held-out set: read once, then spent', 'Failures: published, including the champion's', 'Release chain: one card per release, on main forever' and 'RL setups kept: 2 of 14, each judged against a matched control'; a footer reads 'All figures from the project's own record, read 2026-10-08.'

Если вы хотите поставить такую модель принятия решений за приложением, вопрос маршрутизации отделён от вопроса модели — и именно он определяет, стоит ли вообще запускать эксперимент. OrcaRouter — это один API для 200+ моделей с наценкой 0% — цена провайдера передаётся как есть, так что изменение цены вендором в тот же день становится вашей ценой — плюс автоматическое переключение при сбое и DSL маршрутизации, позволяющий собрать несколько моделей в один вызов. Для loop-модели, которую вы пока не можете вызвать через общий API, это важно вполне конкретным образом: альтернативные кандидаты, с которыми вы бы её сравнивали, уже стоят за одним ключом, и сравнение превращается в изменение конфигурации, а не во вторую интеграцию.

A screenshot of OrcaRouter's own model page for typesafe/jev-1.13 showing the left navigation, a PERFORMANCE panel with prefill and decode lines, the heading 'Jev 1.13' with the provider line 'typesafe', the price fields $0.11 prefill and $0.36 decode per million tokens, a benchmark box with MED 0.3, Response Trust 0.784, Structured Output 0.964, Refusal Correctness 1.0 and Consistency 0.59, an accuracy-versus-cost scatter with a 'Jev 1.13' marker, an 'Individual Runs' table, API and Agent curl snippets pointing at the systemone endpoint, the OrcaRouter logo and a sign-up button.

Часть, которую стоит сохранить

Причина писать о рекурсивном самосовершенствовании через такой проект, а не через аргумент о том, ведёт ли оно к чему-то драматичному, состоит в том, что правила цикла — это переносимая часть, а спекуляции — нет. Зарегистрированные предсказания, измеренные нулевые пороги, израсходованные отложенные наборы, опубликованные неудачи, неизменяемая цепочка выпусков: ничто из этого не является свойством сверхинтеллекта. Это свойства лаборатории, которая решила быть проверяемой, и они доступны любой команде, запускающей автоматизированный поиск сегодня, в любом масштабе, на любой модели.

Если читать так, интересное утверждение в отчёте RSI-Jev — не оценка. А то, что собственный журнал цикла говорит, что цикл ошибался гораздо чаще, чем был прав, — два сохранённых рецепта из четырнадцати сетапов, семь отрицательных результатов, чтобы найти баг в одну строку, бар, который двинулся и был записан, — и что проект опубликовал этот журнал. Рост с 38,38 до 46,24 в публичном индексе за один выпуск — курьёз без стоящих рядом неудач. Именно неудачи придают числу смысл.

Что и есть честная позиция относительно самого термина. Вопрос не в том, может ли система улучшать себя. Вопрос в том, измеряется ли улучшение чем-то, что могло бы сказать «нет». Там, где это разделение реально и зафиксировано письменно, цикл заслуживает прочтения. Там, где это не так, восходящая линия — это описание оценщика, а не системы, которая становится лучше, — и никакое количество рекурсии этого не исправит.