Почему DeepSeek V3 стремительно покоряет мир ИИ: взгляд разработчика
Одна из конечных целей всех больших языковых моделей (LLM), которые мы используем сегодня, — быть способными понимать и выполнять любую интеллектуальную задачу, которую может выполнить человек. Эта концепция обычно называется искусственным общим интеллектом (AGI). Гонка к AGI вызвала стремительное развитие многих LLM от ведущих мировых разработчиков ИИ, таких как OpenAI, Meta, Google, Anthropic и Qwen.
Недавно новые LLM, разработанные DeepSeek, вызвали огромный ажиотаж в AI-сообществе благодаря сочетанию их производительности и операционной стоимости. Например, утверждается, что модель DeepSeek R1 демонстрирует производительность, сопоставимую с самой продвинутой на сегодняшний день reasoning-моделью OpenAI, моделью o1, при лишь малой доле стоимости обучения. Между тем производительность модели DeepSeek V3 сопоставима с GPT-4o и достигается при лишь малой доле стоимости обучения. В отличие от OpenAI, DeepSeek решила полностью открыть исходный код своих моделей, предоставив всему AI-сообществу доступ к весам моделей DeepSeek. Это еще больше ускорит процесс движения к AGI.
В этой статье будут рассмотрены несколько инновационных особенностей модели DeepSeek, в частности DeepSeek V3, благодаря которым производительность этой LLM сопоставима с новейшими современными закрытыми моделями. Итак, без лишних слов, давайте рассмотрим первую ключевую инновационную особенность.
Особенность первая: Multi Head Latent Attention
В своей основе DeepSeek V3 по-прежнему использует классическую архитектуру Transformers. Она состоит из огромного числа блоков Transformer, каждый из которых содержит несколько важных слоев: нормализацию, attention-слои и feed-forward-слои, как вы можете видеть на следующей визуализации:
Визуализация одного блока Transformer.
В этом разделе мы сосредоточимся исключительно на attention-слое, поскольку именно в нем находится Multi-head Latent Attention (MLA) модели DeepSeek V3.
Вкратце, attention-слой ожидает на вход embedding-представление токена в определенной позиции. Первый шаг attention-слоя — спроецировать этот входной embedding в векторы query, key и value с помощью трех обученных весовых матриц. Затем слой использует эти значения, чтобы оценить контекст данного конкретного токена по отношению к предыдущим токенам — процесс, обычно называемый механизмом attention.
Однако способ вычисления механизма attention имеет существенный недостаток. Как вы, возможно, уже знаете, LLM генерируют по одному токену за раз в последовательности, и новый токен всегда зависит от ранее сгенерированных токенов. Поэтому, чтобы оценить контекст нового токена, attention предыдущих токенов необходимо пересчитывать. Например, генерация токена номер 50 требует каждый раз пересчета attention для токенов с 1 по 49. Это приводит к очень медленному процессу генерации токенов во время inference.
Управление KV Cache в vLLM. Источник.
Чтобы решить эту проблему, в LLM обычно реализуется подход под названием KV cache, который ускоряет процесс генерации токенов. Как следует из названия, при использовании KV cache ключ и значение нового токена сохраняются в кэше во время каждого процесса генерации. Поэтому при вычислении attention для нового токена мы используем кэшированные ключ и значение предыдущих токенов вместо того, чтобы пересчитывать всё с нуля. Это эффективно ускоряет процесс генерации токенов.
DeepSeek V3 также использует KV-кэш в своем слое внимания. Более того, он дополнительно развивает этот подход благодаря введению MLA. По сути, MLA сжимает размерность входного embedding в его низкоранговое представление, удаляя избыточные элементы. В результате этого сжатия размер векторов key, value и query становится еще меньше, тем самым оптимизируя память для KV-кэша и ускоряя процесс генерации токенов.
Архитектура DeepSeek V3 в одном блоке Transformer. Источник.
Как видно из рисунка выше, подход совместно сжимает key и value в их низкоранговое представление. Затем эту сжатую версию вектора key-value можно кэшировать аналогично обычному KV-кэшу.
Тем временем query сжимается независимо. После сжатия низкоранговое представление вектора query затем обрабатывается двумя разными конвейерами: один напрямую проецируется слоем, чтобы отобразить его обратно в высокоразмерное представление, а другой обрабатывается подходом под названием Rotary Positional Embedding (RoPE). Метод RoPE важен для внесения позиционной информации нового токена в последовательность. Выходы этих двух конвейеров затем конкатенируются в один итоговый вход для слоя multi-head attention.
Совместно сжатый вектор key-value также проходит процесс, похожий на процесс для вектора query. Однако вход для RoPE вектора key поступает из исходного входного embedding, а не из сжатого вектора key-value.
Функция 2: DeepSeek MoE
Еще один интересный подход, реализованный в DeepSeek V3, — это подход Mixture of Experts (MoE). Как видно из изображения выше, этот метод реализован в DeepSeek V3 в качестве замены исходной feed-forward network в блоке Transformers.
Давайте используем пример, чтобы легко понять, что делает MoE. Представьте, что мы учимся в университете со множеством профессоров, каждый из которых является экспертом в отдельном предмете (математика, физика, литература). Когда мы хотим спросить что-то о математическом анализе, нас направят к профессору математики. Аналогично, если мы хотим спросить что-то о квантовой физике, нас направят к профессору физики.
MoE работает схожим образом. Он состоит из множества моделей, каждая со своей собственной специализацией для решения конкретной проблемы.
На этапе обучения каждая модель получает разные данные из определенной области, так что они становятся экспертами в решении задач из этой области. Затем, во время инференса, вместо того чтобы полагаться на одну огромную модель для обработки каждой области проблемы, MoE назначает запрос наиболее способным экспертным моделям. Такой подход делает инференс быстрее и эффективнее, поскольку во время предсказания будет активировано лишь небольшое число экспертных моделей в зависимости от задачи.
MoE в DeepSeek V3. Источник.
Важным элементом подхода MoE является gating network. У этой сети есть две основные обязанности: анализировать входной запрос, а затем направлять его к наиболее подходящим экспертным моделям. Однако распространенная проблема обучения MoE — это проблема балансировки нагрузки, при которой gating network продолжает направлять все обучающие данные в одну конкретную модель вместо распределения их по другим моделям.
Внедрение auxiliary loss помогает заставить gating network научиться распределять обучающие данные между разными моделями. Проблема в том, что, как было показано, опора только на auxiliary loss ухудшает производительность модели после обучения.
Чтобы соблюсти компромисс между балансировкой нагрузки и производительностью модели, DeepSeek V3 реализовала стратегию балансировки нагрузки без вспомогательных потерь. Эта стратегия вводит член смещения для каждой экспертной модели, который будет динамически корректироваться в зависимости от маршрутизируемой нагрузки соответствующего эксперта. Это гарантирует, что ни одна экспертная модель не будет перегружена или недоиспользована.
Кроме того, как вы можете видеть на визуализации выше, DeepSeek V3 спроектировала некоторых экспертов как «общих экспертов», и эти эксперты всегда активны для различных задач. Такая реализация помогает улучшить способность модели к обобщению в разных доменах задач.
Эта функция MoE — секретный ингредиент универсальности DeepSeek V3. Как вы увидите в следующем разделе, DeepSeek V3 демонстрирует высокую производительность в различных задачах из разных доменов, таких как математика, программирование, язык и т. д. Фактически, эта модель в настоящее время является сильнейшей базовой моделью с открытым исходным кодом в нескольких доменах.
Функция третья: предсказания нескольких токенов
Обычные LLM предсказывают один токен на каждом шаге декодирования, но DeepSeek V3 работает иначе, особенно на этапе обучения. DeepSeek V3 реализует так называемые предсказания нескольких токенов (MTP) во время обучения, что позволяет модели предсказывать несколько будущих токенов на каждом шаге декодирования.
Хотя это добавляет уровни сложности, подход MTP важен для улучшения производительности модели в различных задачах. Как можно представить, рассматривая возможные будущие токены на несколько шагов вперед за один шаг декодирования, модель способна научиться наилучшему возможному решению для любой заданной задачи.
Визуализация подхода MTP в DeepSeek V3. Источник.
Для реализации MTP DeepSeek V3 использует более одной модели, каждая из которых состоит из набора слоев Transformer. Одна модель выступает в качестве основной модели, тогда как остальные выступают в качестве модулей MTP. Хотя это четко не определено, модель MTP обычно меньше по размеру по сравнению с основной моделью (общий размер модели DeepSeek V3 на HuggingFace составляет 685B, из них 671B приходится на основную модель и 14B — на модуль MTP).
На этапе обучения и основная модель, и модули MTP получают входные данные из одного и того же слоя эмбеддингов. Однако реализация все равно должна выполняться последовательно, т. е. основная модель должна идти первой, предсказывая токен на один шаг вперед, а после этого первый модуль MTP будет предсказывать токен на два шага вперед. Этот процесс продолжается в зависимости от количества модулей MTP. После предсказания токенов и основная модель, и модули MTP будут использовать одну и ту же выходную головку.
Мы можем быть полностью гибкими с модулем MTP на этапе инференса. Например, мы можем полностью отбросить модуль MTP и использовать во время инференса только основную модель, как в обычных LLM. Также мы можем использовать модуль MTP для реализации подхода спекулятивного декодирования, чтобы потенциально еще больше ускорить процесс генерации.
Стоимость и производительность DeepSeek V3 по сравнению с другими моделями
Все упомянутые выше инновационные функции позволили обучить модель DeepSeek V3 значительно дешевле, чем ее конкурентов с закрытым исходным кодом.
DeepSeek V3 обучалась на кластере с 2 048 GPU NVIDIA H800. Этап предварительного обучения модели DeepSeek V3 стоил около 0.01M, что довело общую сумму до 100M](https://www.wired.com/story/openai-ceo-sam-altman-the-age-of-giant-ai-models-is-already-over/).
DeepSeek V3 также показала превосходную производительность по сравнению с другими LLM с открытым и закрытым исходным кодом, такими как Qwen2.5 72B, Llama 3.1 405B, Claude 3.5 Sonnet и ChatGPT 4o, на различных бенчмарках, как вы можете видеть на рисунке ниже:
Сравнение DeepSeek-V3 и других современных чат-моделей. Источник.
Производительность DeepSeek V3 оказалась выше по сравнению с другими современными моделями в различных задачах, таких как программирование, математика и китайский язык. Ее производительность в задачах на английском языке показала сопоставимые результаты с Claude 3.5 Sonnet в нескольких бенчмарках.
Кроме того, производительность DeepSeek V3 сравнивалась с другими LLM в задачах открытой генерации с использованием GPT-4-Turbo-1106 в качестве судьи и контролируемой по длине доли побед в качестве метрики. В результате DeepSeek V3 продемонстрировала лучшую производительность по сравнению с другими на бенчмарках Arena-Hard и AlpacaEval 2.0.
Сравнение DeepSeek-V3 и других современных чат-моделей на бенчмарках AlpacaEval 2.0 и Arena-Hard. Источник.
Превосходная производительность DeepSeek V3 на бенчмарках Arena-Hard и AlpacaEval 2.0 демонстрирует ее способности и надежность при обработке длинных, сложных запросов, а также в задачах письма и простых сценариях «вопрос-ответ».
Как разработчики могут использовать DeepSeek V3
Помимо производительности, еще одна главная привлекательная особенность модели DeepSeek V3 — ее открытый исходный код. DeepSeek решила выпустить модель V3 с открытым исходным кодом под лицензией MIT, что означает, что разработчики могут получить бесплатный доступ к ее весам и использовать ее для собственных целей, даже в коммерческих целях.
Мы можем использовать ее для различных сценариев применения GenAI, от персонализированных рекомендаций и генерации контента до виртуальных ассистентов, внутренних чат-ботов, суммаризации документов и многого другого. Эти сценарии также позволяют нам объединить мощь DeepSeek V3 с Milvus, векторной базой данных с открытым исходным кодом, для хранения миллиардов контекстных эмбеддингов.
На момент написания этой статьи DeepSeek V3 еще не была интегрирована в Hugging Face. Однако ожидается, что она будет интегрирована очень скоро, чтобы вы могли легко использовать и запускать модель локально. Пока мы ждем официальной интеграции с Hugging Face, вы можете запустить DeepSeek V3 несколькими способами.
Самый простой способ попробовать DeepSeek V3 — через официальную чат-платформу DeepSeek. Все, что вам нужно сделать, — зарегистрироваться и начать общаться с моделью.
Если вы хотите запустить ее локально на своем компьютере, сначала нужно клонировать официальный репозиторий DeepSeek V3 с помощью следующей команды:
git clone <https://github.com/deepseek-ai/DeepSeek-V3.git>
Затем перейдите в папку inference и установите все необходимые зависимости, выполнив следующие команды:
cd DeepSeek-V3/inference
pip install -r requirements.txt
Далее вам нужно загрузить веса модели. На HuggingFace доступны два варианта весов модели: базовая версия (только после этапа предварительного обучения) и чат-версия (после этапа дообучения). Загрузите нужную версию модели, а затем поместите веса в папку /path/to/DeepSeek-V3.
Теперь вы можете преобразовать веса модели HuggingFace в определенный формат с помощью следующей команды:
python convert.py --hf-ckpt-path /path/to/DeepSeek-V3 --save-path /path/to/DeepSeek-V3-Demo --n-experts 256 --model-parallel 16
И наконец вы можете выполнить эту команду, чтобы начать общаться с DeepSeek V3:
torchrun --nnodes 2 --nproc-per-node 8 generate.py --node-rank $RANK --master-addr $ADDR --ckpt-path /path/to/DeepSeek-V3-Demo --config configs/config_671B.json --interactive --temperature 0.7 --max-new-tokens 200
Альтернативный способ быстро начать работу с DeepSeek V3 — использовать несколько оптимизированных для LLM фреймворков сервинга, таких как vLLM, SGLang, LMDeploy и TensorRT-LLM.
Перспективы после DeepSeek V3
Появление DeepSeek V3 можно рассматривать как значительный прорыв во многих аспектах. Многие инновации, реализованные на этапе обучения DeepSeek V3, такие как MLA, MoE, MTP и обучение со смешанной точностью с FP8-квантованием, открыли для нас путь к разработке LLM, которая не только производительна и эффективна, но и значительно дешевле в обучении.
Реализация MLA, MoE и MTP способствует ускорению процесса генерации токенов во время инференса различными способами:
MLA позволяет нам экономить память KV-кэша и ускорять генерацию токенов за счет сжатия размерности входных представлений до их низкорангового представления.
MoE ускоряет процесс генерации токенов и улучшает масштабируемость модели, активируя во время инференса только определенных экспертов в зависимости от задачи. Вместо активации всех 671B параметров во время инференса модель будет активировать только небольшую их часть (около 37B).
MTP можно переориентировать во время инференса для поддержки подхода спекулятивного декодирования. При таком подходе предсказание следующего токена может начинаться с возможных будущих токенов, предсказанных модулями MTP, вместо предсказания с нуля.
Тот факт, что DeepSeek решила сделать DeepSeek V3 открытым исходным кодом под лицензией MIT, также побуждает нас, мировое AI-сообщество, вносить вклад, экспериментировать и строить на основе этой технологии. Это, в свою очередь, вовлекает всех нас в более быструю инновацию на пути к достижению AGI, которое принесет пользу всем нам.
Хотя его производительность уже превосходит другие современные LLM, исследования показывают, что производительность DeepSeek V3 в будущем можно улучшить еще больше.
Ранее команда DeepSeek провела исследование по дистилляции способности к рассуждению своей самой мощной модели, DeepSeek R1, в модель DeepSeek V2.5. Если вы не знакомы с этим, дистилляция означает процесс переноса знаний более крупной и более производительной модели в меньшую.
DeepSeek V2.5 показала значительные улучшения на бенчмарках LiveCodeBench и MATH-500 при добавлении дополнительных данных дистилляции из модели R1, хотя это также сопровождалось очевидным недостатком: увеличением средней длины ответа.
Вклад дистилляции из DeepSeek-R1 в DeepSeek V2.5. Источник.
Тем не менее, это исследование показывает, что тот же метод дистилляции знаний в будущем также можно применить к DeepSeek V3, чтобы дополнительно оптимизировать его производительность в различных доменах данных.
Заключение
DeepSeek V3 представляет собой важный шаг вперед в области AI с открытым исходным кодом. Он предлагает производительность, сопоставимую с ведущими моделями с закрытым исходным кодом, лишь за долю затрат на обучение. Его инновационные функции, включая Multi-Head Latent Attention (MLA), Mixture of Experts (MoE) и Multi-Token Predictions (MTP), способствуют как эффективности, так и точности на этапах обучения и инференса. Кроме того, его открытый исходный код под лицензией MIT позволяет AI-сообществу развивать эти достижения, тем самым ускоряя прогресс на пути к AGI.
Заглядывая вперёд, влияние DeepSeek V3 может стать ещё более значительным. Потенциальное применение методов дистилляции знаний, ранее исследованных в DeepSeek R1 и DeepSeek V2.5, указывает на возможности для дальнейшей оптимизации и повышения эффективности. Можно сказать, что DeepSeek V3 задаёт новый ориентир для экономически эффективных и высокопроизводительных исследований в области ИИ.
Читать далее

Why Teams Are Migrating from Weaviate to Zilliz Cloud — and How to Do It Seamlessly
Explore how Milvus scales for large datasets and complex queries with advanced features, and discover how to migrate from Weaviate to Zilliz Cloud.

Zilliz Named "Highest Performer" and "Easiest to Use" in G2's Summer 2025 Grid® Report for Vector Databases
Zilliz shines in G2's Summer 2025 Grid® Report as both "Highest Performer" and "Easiest to Use," solving the performance-usability dilemma.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.


