Вайб-кодинг 27.06.2026 14:10
Исследовательская группа THUDM открыла исходный код фреймворка slime для RL. Именно на нём за два дня был выполнен полный пост-тренинг модели GLM-5.2., и он же используется во всей серии GLM — от версии 4.5 до 5.1.
Ключевая идея slime - фиксированное ядро обучения. Любой RL-ран состоит из двух частей. Первая генерирует опыт: модель отвечает, система оценивает ответы. Вторая обучается на этом и обновляет веса.
Часть обучения почти не меняется. Она читает сэмплы, считает loss и делает шаг оптимизатора. Так же работает и на математике, и на агентных задачах с инструментами. Различия начинаются в генерации. В одном случае это один ответ и простая проверка результата. В другом - цикл с вызовом тулов, чтением ответов и отложенной наградой. slime фиксирует границу именно здесь. Обучающий цикл остаётся одним ядром, а всё различие уходит в то, как формируются данные.
Внутри он связывает Megatron для обучения и SGLang для rollout, а между ними стоит Data Buffer, который управляет промптами, кастомными данными и генерацией.
Обычно RL-стек разрастается в набор разрозненных тренеров, rollout-сервисов и агентных фреймворков. slime этого избегает.
Многошаговое использование инструментов, изолированные среды выполнения, обратная связь от среды и награды за проверку результата - всё это становится частью генерации данных, а не разветвлением цикла. В итоге агентные задачи и математические задачи проходят через один и тот же цикл.
Система уже обкатана на продакшене. Этот цикл используется в GLM-моделях и поддерживает Qwen3, DeepSeek V3 и Llama 3. На нём построены экосистемные проекты Dressage, Miles, vime, OpenClaw-RL и другие — без изменения ядра.
«Урок не в том, что RL нужен более крупный фреймворк. Разнообразие должно быть в генерации данных, а тренировочный цикл должен оставаться достаточно маленьким, чтобы ему можно было доверять».
☕️☕️☕️
#vk_feedКлючевая идея slime - фиксированное ядро обучения. Любой RL-ран состоит из двух частей. Первая генерирует опыт: модель отвечает, система оценивает ответы. Вторая обучается на этом и обновляет веса.
Часть обучения почти не меняется. Она читает сэмплы, считает loss и делает шаг оптимизатора. Так же работает и на математике, и на агентных задачах с инструментами. Различия начинаются в генерации. В одном случае это один ответ и простая проверка результата. В другом - цикл с вызовом тулов, чтением ответов и отложенной наградой. slime фиксирует границу именно здесь. Обучающий цикл остаётся одним ядром, а всё различие уходит в то, как формируются данные.
Внутри он связывает Megatron для обучения и SGLang для rollout, а между ними стоит Data Buffer, который управляет промптами, кастомными данными и генерацией.
Обычно RL-стек разрастается в набор разрозненных тренеров, rollout-сервисов и агентных фреймворков. slime этого избегает.
Многошаговое использование инструментов, изолированные среды выполнения, обратная связь от среды и награды за проверку результата - всё это становится частью генерации данных, а не разветвлением цикла. В итоге агентные задачи и математические задачи проходят через один и тот же цикл.
Система уже обкатана на продакшене. Этот цикл используется в GLM-моделях и поддерживает Qwen3, DeepSeek V3 и Llama 3. На нём построены экосистемные проекты Dressage, Miles, vime, OpenClaw-RL и другие — без изменения ядра.
«Урок не в том, что RL нужен более крупный фреймворк. Разнообразие должно быть в генерации данных, а тренировочный цикл должен оставаться достаточно маленьким, чтобы ему можно было доверять».
☕️☕️☕️
Комментарии (0)
Пока нет комментариев. Будьте первым!