Вышла новая статья с личной подписью Ляна Вэньфэна. Впервые раскрыта инфраструктура, на которой DeepSeek обучает агентов: более 5000 новых песочниц в секунду, причём систему приходится защищать ещё и от попыток самих моделей читерить.
При обучении больших моделей всё упирается в видеокарты. При обучении агентов — в среды.
В новой статье с подписью Ляна Вэньфэна DeepSeek раскрыла свою фабрику песочниц DSec.
Ключевые моменты статьи:
1️⃣ Масштаб: около 160 машин, 30 тысяч ядер CPU и 250 ТБ памяти. За сутки система может создавать 3 миллиона песочниц, одновременно запускать 380 тысяч и разворачивать более 5000 новых в секунду.
2️⃣ Что она умеет: от простых вызовов функций и Docker-контейнеров до лёгких виртуальных машин и полноценных компьютеров с Windows или macOS. Всё доступно через единый интерфейс.
3️⃣ Почему это сложно: когда агент пишет код или устанавливает ПО, состояние среды меняется, а сама система нередко ломается. В обычных песочницах загрузка CPU часто составляет всего около 5%, поэтому значительная часть ресурсов простаивает.
4️⃣ Как экономят ресурсы: образы разбиваются на три слоя и собираются по мере необходимости, а данные подтягиваются из собственной файловой системы 3FS только тогда, когда нужны. Это позволяет сократить расход памяти на 30–40%, а на одной машине разместить до 3200 контейнеров.
5️⃣ Ещё одна проблема: обучаемые агенты сами начинают искать уязвимости, чтобы получить более высокий результат. Они могут изменять системные файлы, обходить ограничения прав доступа, сканировать порты в поисках ответов и даже выводить из строя ядро системы. В статье отдельно описано, как от этого защищаются.
Если коротко: DeepSeek занимается не только обучением моделей, но и превращает инфраструктуру, на которой работают агенты, в полноценный конвейер.
Статья: https://arxiv.org/abs/2609.22978
При обучении больших моделей всё упирается в видеокарты. При обучении агентов — в среды.
В новой статье с подписью Ляна Вэньфэна DeepSeek раскрыла свою фабрику песочниц DSec.
Ключевые моменты статьи:
1️⃣ Масштаб: около 160 машин, 30 тысяч ядер CPU и 250 ТБ памяти. За сутки система может создавать 3 миллиона песочниц, одновременно запускать 380 тысяч и разворачивать более 5000 новых в секунду.
2️⃣ Что она умеет: от простых вызовов функций и Docker-контейнеров до лёгких виртуальных машин и полноценных компьютеров с Windows или macOS. Всё доступно через единый интерфейс.
3️⃣ Почему это сложно: когда агент пишет код или устанавливает ПО, состояние среды меняется, а сама система нередко ломается. В обычных песочницах загрузка CPU часто составляет всего около 5%, поэтому значительная часть ресурсов простаивает.
4️⃣ Как экономят ресурсы: образы разбиваются на три слоя и собираются по мере необходимости, а данные подтягиваются из собственной файловой системы 3FS только тогда, когда нужны. Это позволяет сократить расход памяти на 30–40%, а на одной машине разместить до 3200 контейнеров.
5️⃣ Ещё одна проблема: обучаемые агенты сами начинают искать уязвимости, чтобы получить более высокий результат. Они могут изменять системные файлы, обходить ограничения прав доступа, сканировать порты в поисках ответов и даже выводить из строя ядро системы. В статье отдельно описано, как от этого защищаются.
Если коротко: DeepSeek занимается не только обучением моделей, но и превращает инфраструктуру, на которой работают агенты, в полноценный конвейер.
Статья: https://arxiv.org/abs/2609.22978
Перестаньте воспринимать матрицу просто как сетку чисел с плавающей точкой.
Матрицы — это графы, а графы — это матрицы. Каждое умножение матриц — это преобразование сети, в котором узлы передают сигналы по взвешенным рёбрам.
Когда вместо механических вычислений начинаешь мыслить через интуицию графов, линейная алгебра превращается из скучной в красивую.
Самый недооценённый факт линейной алгебры: https://t.co/7G7hAFpxU8
Матрицы — это графы, а графы — это матрицы. Каждое умножение матриц — это преобразование сети, в котором узлы передают сигналы по взвешенным рёбрам.
Когда вместо механических вычислений начинаешь мыслить через интуицию графов, линейная алгебра превращается из скучной в красивую.
Самый недооценённый факт линейной алгебры: https://t.co/7G7hAFpxU8
DeepSeek выпустила DeepEP V2.5. Библиотеку коммуникаций для MoE снова серьезно обновили.
Главные изменения:
1) ElasticBuffer разделили на EPBuffer / EngramBuffer / PPBuffer / BucketBuffer. Они используют общий жизненный цикл, а зона ответственности каждого буфера теперь четче.
2) Сначала планирование, потом выделение памяти
Добавили BufferAllocator. Перед созданием буферов он заранее планирует, как симметричные тензоры будут размещаться в видеопамяти, чтобы уменьшить лишние расходы и фрагментацию.
3) Пакетные коллективные операции
BucketBuffer поддерживает пакетные all-gather, reduce-scatter и all-reduce. Обычные тензоры PyTorch тоже можно использовать в рамках того же механизма сессий.
4) Динамические резервные эксперты
lb_prefetch_weights — перед вычислением эксперта заранее загружает через NVLink веса и масштабы квантования.
lb_reduce_grads — во время обратного прохода суммирует FP32-градиенты резервных экспертов обратно в исходного эксперта.
Подход приведен в соответствие со схемой репликации экспертов из MoonEP / UltraEP.
5) Доработки для обучения
Добавили поддержку отложенного завершения EP, кэширования расширенной раскладки и заполнения нулями между экспертами.
6) Многоуровневый Engram
Engram теперь может хранить данные в несколько уровней на GPU или CPU, при этом для каждого уровня предусмотрен отдельный хук ожидания.
7) Большая чистка
Полностью удалены API V1, бэкенд NVSHMEM и старая документация. NVSHMEM больше не является зависимостью.
Если кратко: прежний монолитный ElasticBuffer разделили на отдельные компоненты, планирование видеопамяти перенесли на более ранний этап, а резервных экспертов и коллективные операции сделали переиспользуемыми строительными блоками. Заодно полностью убрали V1 и NVSHMEM.
Репозиторий: https://github.com/deepseek-ai/DeepEP
Главные изменения:
1) ElasticBuffer разделили на EPBuffer / EngramBuffer / PPBuffer / BucketBuffer. Они используют общий жизненный цикл, а зона ответственности каждого буфера теперь четче.
2) Сначала планирование, потом выделение памяти
Добавили BufferAllocator. Перед созданием буферов он заранее планирует, как симметричные тензоры будут размещаться в видеопамяти, чтобы уменьшить лишние расходы и фрагментацию.
3) Пакетные коллективные операции
BucketBuffer поддерживает пакетные all-gather, reduce-scatter и all-reduce. Обычные тензоры PyTorch тоже можно использовать в рамках того же механизма сессий.
4) Динамические резервные эксперты
lb_prefetch_weights — перед вычислением эксперта заранее загружает через NVLink веса и масштабы квантования.
lb_reduce_grads — во время обратного прохода суммирует FP32-градиенты резервных экспертов обратно в исходного эксперта.
Подход приведен в соответствие со схемой репликации экспертов из MoonEP / UltraEP.
5) Доработки для обучения
Добавили поддержку отложенного завершения EP, кэширования расширенной раскладки и заполнения нулями между экспертами.
6) Многоуровневый Engram
Engram теперь может хранить данные в несколько уровней на GPU или CPU, при этом для каждого уровня предусмотрен отдельный хук ожидания.
7) Большая чистка
Полностью удалены API V1, бэкенд NVSHMEM и старая документация. NVSHMEM больше не является зависимостью.
Если кратко: прежний монолитный ElasticBuffer разделили на отдельные компоненты, планирование видеопамяти перенесли на более ранний этап, а резервных экспертов и коллективные операции сделали переиспользуемыми строительными блоками. Заодно полностью убрали V1 и NVSHMEM.
Репозиторий: https://github.com/deepseek-ai/DeepEP
Вы запускаете не модели, а ядра.
Модель — это всего лишь граф.
Движок инференса — это планировщик, оптимизатор и исполнитель.
Но где происходит реальная работа? В ядрах.
* Ядра MatMul
* Ядра Attention
* Ядра RMSNorm
* Ядра KV-кэша
* Ядра квантованных линейных слоёв
* Ядра семплирования
* Объединённые ядра в духе «пожалуйста, не записывай это обратно в память девять раз»
Одна и та же модель, одна и та же видеокарта, тот же объём видеопамяти.
А производительность может отличаться радикально.
Потому что один стек использует оптимизированные объединённые ядра, которые учитывают особенности вашего железа.
А другой перебрасывает тензоры между 47 крошечными запусками и делает вид, что проблема в видеокарте.
Плохие ядра заставляют людей говорить:
«эта модель медленная»
Хорошие ядра заставляют людей говорить:
«подождите, как это вообще запускается локально?»
Вот почему движки инференса и реализованные внутри них ядра настолько важны.
Модель — это рецепт.
Железо — кухня.
Ядра — это ножи, сковородки, конфорки и повар, который не режет лук ложкой.
Большинство людей сравнивают модели.
А те, кто действительно разбирается, сравнивают ядра, на которых всё это работает.
Модель — это всего лишь граф.
Движок инференса — это планировщик, оптимизатор и исполнитель.
Но где происходит реальная работа? В ядрах.
* Ядра MatMul
* Ядра Attention
* Ядра RMSNorm
* Ядра KV-кэша
* Ядра квантованных линейных слоёв
* Ядра семплирования
* Объединённые ядра в духе «пожалуйста, не записывай это обратно в память девять раз»
Одна и та же модель, одна и та же видеокарта, тот же объём видеопамяти.
А производительность может отличаться радикально.
Потому что один стек использует оптимизированные объединённые ядра, которые учитывают особенности вашего железа.
А другой перебрасывает тензоры между 47 крошечными запусками и делает вид, что проблема в видеокарте.
Плохие ядра заставляют людей говорить:
«эта модель медленная»
Хорошие ядра заставляют людей говорить:
«подождите, как это вообще запускается локально?»
Вот почему движки инференса и реализованные внутри них ядра настолько важны.
Модель — это рецепт.
Железо — кухня.
Ядра — это ножи, сковородки, конфорки и повар, который не режет лук ложкой.
Большинство людей сравнивают модели.
А те, кто действительно разбирается, сравнивают ядра, на которых всё это работает.
Изучите оптимизацию инференса настолько быстро и глубоко, насколько это возможно.
В этом материале приподносят на блюдечке подробный журнал работы по оптимизации GEMM в CUDA.:
Читать: athleticcoder21.github.io/inference-book/gemm
В этом материале приподносят на блюдечке подробный журнал работы по оптимизации GEMM в CUDA.:
Начинаем с наивной реализации
Выявляем проблемы производительности и оцениваем их в числах
Разбираем концепцию потокового softmax
Реализуем ядро и оцениваем выигрыш по памяти и числу операций с плавающей точкой
Применяем схему объединённого доступа к памяти
Снова оцениваем прирост по числу операций, обмену данными и памяти
Пишем код на CUDA
Читать: athleticcoder21.github.io/inference-book/gemm
«Mathematical Pathways to Machine Learning» — материалы по математической базе для машинного обучения, включая математический анализ, линейную алгебру и оптимизацию.
Конспекты лекций с вводным разбором математики и основ, необходимых для машинного обучения:
https://zenodo.org/records/21752763
Конспекты лекций с вводным разбором математики и основ, необходимых для машинного обучения:
https://zenodo.org/records/21752763
Если вы только начинаете изучать машинное обучение и хотите глубже разобраться в математике, необходимой для машинного и глубокого обучения, советую попробовать эту платформу. Это что-то вроде LeetCode для машинного обучения.
Это не реклама: я сам ей пользовался и решил поделиться с вами.
https://deep-ml.com
Это не реклама: я сам ей пользовался и решил поделиться с вами.
https://deep-ml.com
NVIDIA присоединяется к тренду отказа от собеседований в стиле LeetCode.
Весь акцент был сделан всего на трёх ключевых концепциях оптимизации:
> Градиентный спуск и глобальные оптимумы
> Полный батч, мини-батч и SGD
> Разрыв обобщения и плоские минимумы
Лучшие команды ищут инженеров с глубоким пониманием фундаментальных концепций.
Весь акцент был сделан всего на трёх ключевых концепциях оптимизации:
> Градиентный спуск и глобальные оптимумы
> Полный батч, мини-батч и SGD
> Разрыв обобщения и плоские минимумы
Лучшие команды ищут инженеров с глубоким пониманием фундаментальных концепций.
Гауссовские процессы — инструмент байесовской непараметрической регрессии и классификации. Вместо того чтобы задавать вектор параметров фиксированной размерности, гауссовский процесс задаёт распределение вероятностей непосредственно над функциями:
f(x) ∼ GP(m(x), k(x,x′)),
где m— функция среднего, а k— ковариационное ядро, описывающее связь между значениями функции в разных точках.
Если наблюдения содержат шум, \(y_i = f(x_i) + \varepsilon_i\), совместное гауссовское распределение позволяет аналитически вычислить апостериорное распределение значений функции в новых точках. Предсказательное распределение имеет вид
f(x*) | X,y,x* ∼ N(μ*, σ*²),
Оно даёт и прогноз, и явную оценку его неопределённости.
Гауссовские процессы применяются в статистическом машинном обучении: для регрессии, пространственной статистики, моделирования временных рядов, байесовской оптимизации, построения суррогатных моделей и оценки неопределённости. Разные ядра задают разные предположения о гладкости, периодичности и сходстве данных. Поэтому выбор ядра — часть построения модели.
Связь гауссовских процессов с гильбертовыми пространствами с воспроизводящим ядром, ядерными методами и байесовским выводом делает их важным мостом между классическим статистическим моделированием и современным машинным обучением.
f(x) ∼ GP(m(x), k(x,x′)),
где m— функция среднего, а k— ковариационное ядро, описывающее связь между значениями функции в разных точках.
Если наблюдения содержат шум, \(y_i = f(x_i) + \varepsilon_i\), совместное гауссовское распределение позволяет аналитически вычислить апостериорное распределение значений функции в новых точках. Предсказательное распределение имеет вид
f(x*) | X,y,x* ∼ N(μ*, σ*²),
Оно даёт и прогноз, и явную оценку его неопределённости.
Гауссовские процессы применяются в статистическом машинном обучении: для регрессии, пространственной статистики, моделирования временных рядов, байесовской оптимизации, построения суррогатных моделей и оценки неопределённости. Разные ядра задают разные предположения о гладкости, периодичности и сходстве данных. Поэтому выбор ядра — часть построения модели.
Связь гауссовских процессов с гильбертовыми пространствами с воспроизводящим ядром, ядерными методами и байесовским выводом делает их важным мостом между классическим статистическим моделированием и современным машинным обучением.
Илья Суцкевер считает, что эти 30 статей покрывают 90% главного в ИИ.
Теперь весь этот список можно не просто читать, а запускать.
Репозиторий собрал реализации всех 30 работ на чистом NumPy.
Внутри:
- RNN
- LSTM
- Transformer
- ResNet
- VAE
- AIXI
Каждая статья превращена в рабочую реализацию с синтетическими данными и без использования фреймворков глубокого обучения.
https://github.com/pageman/sutskever-30-implementations
Теперь весь этот список можно не просто читать, а запускать.
Репозиторий собрал реализации всех 30 работ на чистом NumPy.
Внутри:
- RNN
- LSTM
- Transformer
- ResNet
- VAE
- AIXI
Каждая статья превращена в рабочую реализацию с синтетическими данными и без использования фреймворков глубокого обучения.
https://github.com/pageman/sutskever-30-implementations
Этим летом, Даниэль Лемир, опубликовал структуру данных constmap. Она доступна для Python, C, Rust и Go, причём реализации совместимы между собой.
Если у вас есть большие неизменяемые отображения строк в целые числа, попробуйте её. Такая задача часто встречается в машинном обучении.
В самой простой версии предполагается, что каждый запрашиваемый ключ есть в наборе. Проверяемая версия дополнительно проверяет наличие ключа — с небольшой потерей производительности.
В последних версиях он добавил вариант paired verified: он примерно на 20% быстрее предыдущей проверяемой версии. Также появились варианты get_many для более быстрого поиска сразу нескольких ключей.
В Python constmap занимает гораздо меньше памяти, чем dict, и работает значительно быстрее. Её можно сохранить на диск и передать тем, кто использует Go, Rust, C или C++.
Реализации для других языков приветствуются.
https://github.com/lemire/fastconstmap
https://github.com/lemire/rsconstmap
https://github.com/lemire/constmap
Если у вас есть большие неизменяемые отображения строк в целые числа, попробуйте её. Такая задача часто встречается в машинном обучении.
В самой простой версии предполагается, что каждый запрашиваемый ключ есть в наборе. Проверяемая версия дополнительно проверяет наличие ключа — с небольшой потерей производительности.
В последних версиях он добавил вариант paired verified: он примерно на 20% быстрее предыдущей проверяемой версии. Также появились варианты get_many для более быстрого поиска сразу нескольких ключей.
В Python constmap занимает гораздо меньше памяти, чем dict, и работает значительно быстрее. Её можно сохранить на диск и передать тем, кто использует Go, Rust, C или C++.
Реализации для других языков приветствуются.
https://github.com/lemire/fastconstmap
https://github.com/lemire/rsconstmap
https://github.com/lemire/constmap
GitHub
GitHub - lemire/fastconstmap: Fast, immutable, compact map from strings to 64-bit integers — for Python.
Fast, immutable, compact map from strings to 64-bit integers — for Python. - lemire/fastconstmap
Media is too big
VIEW IN TELEGRAM
Основатель Jev Диогу Алмейда, ранее работавший в OpenAI:
За 36 минут один из создателей ChatGPT и RLHF объясняет, почему RLHF приводит лишь к помощи человеку и что должно измениться, чтобы выйти за эти пределы.
Чат-боты → помощники → агенты для написания кода → JEV.
https://youtu.be/o-y1HJ6buGQ?si=Kb7jeqk1lM-9DRW5
«Агенты для написания кода, такие как Claude Code, — это ещё не автоматизация, а помощь человеку, который остаётся частью процесса.
Сейчас у большинства людей есть ChatGPT и Claude Code. Если задуматься, это безумие.
Мы тратим возможности этой технологии впустую».
За 36 минут один из создателей ChatGPT и RLHF объясняет, почему RLHF приводит лишь к помощи человеку и что должно измениться, чтобы выйти за эти пределы.
Чат-боты → помощники → агенты для написания кода → JEV.
https://youtu.be/o-y1HJ6buGQ?si=Kb7jeqk1lM-9DRW5
Исследователи задаются вопросом, что станет для робототехники её моментом RLHF.
Вместе с Chelsea Finn вышел новый разбор того, чего сегодня не хватает обучению с подкреплением для передовых моделей робототехники, чтобы приблизить их к уровню развития современных LLM.
Главный вопрос — какие методы дообучения, данные и архитектурные решения позволят роботам перейти от узких сценариев к более универсальному поведению.
Авторы обещают отдельно разобрать текущее состояние RL для робототехники и ключевые пробелы, которые пока мешают следующему скачку.
https://pd-perry.github.io/posts/post-training.html
Вместе с Chelsea Finn вышел новый разбор того, чего сегодня не хватает обучению с подкреплением для передовых моделей робототехники, чтобы приблизить их к уровню развития современных LLM.
Главный вопрос — какие методы дообучения, данные и архитектурные решения позволят роботам перейти от узких сценариев к более универсальному поведению.
Авторы обещают отдельно разобрать текущее состояние RL для робототехники и ключевые пробелы, которые пока мешают следующему скачку.
https://pd-perry.github.io/posts/post-training.html
This media is not supported in your browser
VIEW IN TELEGRAM
Ты не ненавидишь математику. Ты просто никогда не видел её такой.
This media is not supported in your browser
VIEW IN TELEGRAM
LLM во время предобучения
Последние несколько месяцев мы экспериментируем с локальным инференсом — в первую очередь для распознавания речи, LLM и синтеза речи, а также множества более мелких компонентов и агентов для сценариев внутри автомобиля.
Выбор архитектуры сильно влияет на задержку всего голосового пайплайна. При этом все компоненты должны работать согласованно, определять приоритет запросов, решать, какой агент должен сработать первым, обеспечивать выразительный синтез речи и, самое главное, сохранять целостность всей системы.
Доступные ресурсы ограничены, в отличие от облачных или даже настольных вычислений. Поэтому проектирование системы и вся системная инженерия, необходимая для объединения этих компонентов, — одна из самых интересных частей моей повседневной работы.
Сейчас мы также экспериментируем с NVIDIA TensorRT Edge-LLM — эталонной средой выполнения для инференса. Подробная документация проекта хорошо показывает, какие аспекты системной архитектуры приходится учитывать.
Вот, например, документация по архитектуре среды выполнения инференса.
https://nvidia.github.io/TensorRT-Edge-LLM/latest/developer_guide/software-design/llm-inference-runtime.html
Выбор архитектуры сильно влияет на задержку всего голосового пайплайна. При этом все компоненты должны работать согласованно, определять приоритет запросов, решать, какой агент должен сработать первым, обеспечивать выразительный синтез речи и, самое главное, сохранять целостность всей системы.
Доступные ресурсы ограничены, в отличие от облачных или даже настольных вычислений. Поэтому проектирование системы и вся системная инженерия, необходимая для объединения этих компонентов, — одна из самых интересных частей моей повседневной работы.
Сейчас мы также экспериментируем с NVIDIA TensorRT Edge-LLM — эталонной средой выполнения для инференса. Подробная документация проекта хорошо показывает, какие аспекты системной архитектуры приходится учитывать.
Вот, например, документация по архитектуре среды выполнения инференса.
https://nvidia.github.io/TensorRT-Edge-LLM/latest/developer_guide/software-design/llm-inference-runtime.html
Anthropic платит до $650 000 в год специалистам, которые действительно глубоко понимают глубокое обучение.
И вот этот курс Нандо де Фрейтаса доступен бесплатно.
Это полноценная техническая база по глубокому обучению, которую он преподавал в Оксфорде до перехода в DeepMind..
https://www.youtube.com/playlist?list=PLE6Wd9FR--EfW8dtjAuPoTuPcqmOV53Fu
И вот этот курс Нандо де Фрейтаса доступен бесплатно.
Это полноценная техническая база по глубокому обучению, которую он преподавал в Оксфорде до перехода в DeepMind..
https://www.youtube.com/playlist?list=PLE6Wd9FR--EfW8dtjAuPoTuPcqmOV53Fu