Запуск DeepSeek V3 локально: руководство для разработчика

Запуск DeepSeek V3 локально: руководство для разработчика

Ключевые моменты

DeepSeek-V3 — это революционная модель с открытым исходным кодом, превосходно работающая в технических областях, таких как программирование и математика.

Локальное развертывание обеспечивает гибкость, но требует передового оборудования и экспертизы.

Для более лёгкого доступа API-решения, такие как Novita AI, предлагают масштабируемые альтернативы.

DeepSeek V3 — это передовая модель ИИ, привлёкшая значительное внимание благодаря своим впечатляющим возможностям, особенно в технических и математических областях. Будучи альтернативой с открытым исходным кодом таким моделям, как ChatGPT, она представляет собой привлекательный вариант для разработчиков и исследователей. В этой статье представлено подробное руководство по локальному доступу к DeepSeek V3, охватывающее различные методы развёртывания, требования к оборудованию, проблемы и стратегии оптимизации.

Локальный доступ к DeepSeek V3

1. GitHub (демо DeepSeek-Infer)

Руководство

  • Репозиторий: Модель DeepSeek-V3 доступна на GitHub, где вы найдёте репозиторий с кодом.
  • Клонирование: Клонируйте репозиторий с поддержкой LFS с помощью:
git clone https://github.com/deepseek-ai/DeepSeek-V3.git
cd DeepSeek-V3/inference
  • Изолированная среда (рекомендуется): Создайте изолированную среду с помощью conda:
conda create -n deepseek-v3 python=3.10 -y
conda activate deepseek-v3
  • Зависимости: Установите зависимости с фиксацией версий:
pip install torch==2.4.1 triton==3.0.0 transformers==4.46.3 safetensors==0.4.5
  • Веса модели: Загрузите веса модели с Hugging Face и поместите их в указанный каталог.
  • Расширенное преобразование: Преобразуйте веса модели в определённый формат, включив FP8-квантование:
python convert.py \
  --hf-ckpt-path ./DeepSeek-V3 \
  --save-path ./DeepSeek-V3-Demo \
  --n-experts 256 \
  --model-parallel 16 \
  --quant-mode fp8
  • Режимы выполнения:

    • Интерактивный чат (многоузловой):
torchrun --nnodes 2 --nproc-per-node 8 \
  generate.py \
  --ckpt-path ./DeepSeek-V3-Demo \
  --config configs/config_671B.json \
  --temperature 0.7 \
  --top-p 0.95 \
  --max-new-tokens 2048
  • Пакетная обработка:
torchrun --nproc-per-node 8 \
  generate.py \
  --input-file batch_queries.jsonl \
  --output-file responses.jsonl

Преимущества

  • Быстрое прототипирование: Настройка базового инференса менее чем за 5 минут
  • Эффективность памяти: На 40% меньше использования VRAM по сравнению с BF16
  • Удобство для исследований: Прямой доступ к промежуточным слоям

Недостатки

  • Ограниченная масштабируемость: Максимум 16 узлов в модели параллелизма
  • Отсутствие поддержки батчинга: Обработка одной последовательности при использовании интерактивного режима
  • Ручное квантование: Требуется явное FP8-преобразование

2. SGLang

Описание

  • Фреймворк: SGLang — это фреймворк, поддерживающий DeepSeek V3, предлагающий оптимизированную производительность для GPU NVIDIA и AMD.
  • Режимы инференса: Полная поддержка DeepSeek-V3 в режимах BF16 и FP8.
  • Параллелизм: Поддерживает многопоточный тензорный параллелизм, позволяя запускать модель на нескольких подключённых машинах.
  • Оптимизация:
from sglang import runtime

# Включение гибридного параллелизма
runtime.configure(
    tensor_parallel=8,
    pipeline_parallel=4,
    expert_parallel=2
)

# Профиль FP8-инференса
runtime.set_precision(
    weight=8,
    activation=8,
    kv_cache=8
)

Преимущества

  • Готовность к продакшну: Поддержка SLA с 99.9% доступности
  • Аппаратная независимость: Поддержка ROCm/HIP для AMD Instinct
  • Продвинутое квантование: Автоматическое масштабирование FP8
  • Динамический батчинг: В 5 раз больше пропускная способность по сравнению с базовым уровнем
  • Спекулятивное декодирование: Ускорение в 2.3 раза с использованием MTP
  • Кроссплатформенная поддержка: Единый API для GPU NVIDIA/AMD

Недостатки

  • Сложное развёртывание: Требуется опыт работы с Kubernetes
  • Накладные расходы памяти: На 15% выше по сравнению с нативной реализацией
  • Ограниченная настройка: Непрозрачная маршрутизация экспертов

3. LMDeploy

Описание

  • Фреймворк: LMDeploy — ещё один фреймворк, поддерживающий DeepSeek V3, предназначенный для эффективного инференса и обслуживания больших языковых моделей.
  • Варианты развёртывания: Предлагает возможности как офлайн, так и онлайн-развёртывания.
  • Интеграция: Интегрируется с рабочими процессами на основе PyTorch.
  • Интеграция TurboMind:
from lmdeploy import pipeline, GenerationConfig

# Инициализация 4-х канального тензорного параллелизма
pipe = pipeline(
    "DeepSeek-V3",
    tp=4,
    max_batch_size=32,
    cache_max_entry_count=0.5
)

# Настройка параметров генерации
gen_config = GenerationConfig(
    temperature=0.8,
    top_k=50,
    repetition_penalty=1.1,
    stop_phrases=&#91;"<|EOT|>"]
)

Преимущества

  • Корпоративные функции: RBAC, ограничение скорости
  • Оптимизированные ядра: 1536 токенов/сек на H100
  • Облачная природа: Интеграция мониторинга Prometheus
  • Непрерывный батчинг: Динамическая группировка запросов
  • Восстановление токенов: Автоматическая коррекция завершения
  • Поддержка Multi-LoRA: «Горячая» замена адаптеров

Недостатки

  • Крутая кривая обучения: Сложный синтаксис конфигурации
  • Высокое потребление ресурсов: Минимум 8x H100 для полного функционала
  • Привязка к вендору: Требуются GPU NVIDIA

Требования к оборудованию

требования к оборудованию deepseek

Проблемы и оптимизация

проблемы

Альтернативный вариант — API

Какие проблемы решает API?

Высокие требования к VRAM

  • Решение API: Полное разрешение
  • Техническая реализация: Пул ресурсов на серверном кластере

Узкие места по памяти

  • Решение API: Полное устранение
  • Техническая реализация: Динамическое выделение памяти на серверных узлах

Сложность масштабирования на нескольких GPU

  • Решение API: Автоматическая обработка
  • Техническая реализация: Облачное горизонтальное автоматическое масштабирование

Проблемы совместимости между ОС

  • Решение API: Нативная поддержка
  • Техническая реализация: Стандартизированные интерфейсы HTTP/WebSocket

Задержки инференса

  • Решение API: Частичное улучшение
  • Техническая реализация: Узлы граничных вычислений + глобальное ускорение

Сложность развёртывания

  • Решение API: Полное устранение
  • Техническая реализация: Готовый SDK с однострочной интеграцией

Потеря точности при квантовании

  • Решение API: Опциональный обход
  • Техническая реализация: Сохранение точности FP16 на сервере

Непрозрачная маршрутизация экспертов

  • Решение API: Полная прозрачность
  • Техническая реализация: API диагностики маршрутизации в реальном времени

Отличное решение — Novita AI

Novita AI — это облачная платформа ИИ, которая предоставляет разработчикам простой способ развёртывания моделей ИИ с помощью простого API, а также предлагает доступный и надёжный GPU-облачный сервис для создания и масштабирования.

Шаг 1: Войдите в систему и откройте библиотеку моделей

Войдите в свою учётную запись и нажмите кнопку Model Library.

Войдите в систему и откройте библиотеку моделей

Шаг 2: Выберите модель

Просмотрите доступные варианты и выберите модель, подходящую для ваших задач.

выбор моделей

Попробуйте демо DeepSeek V3 прямо сейчас!

Шаг 3: Начните бесплатную пробную версию

Начните бесплатную пробную версию, чтобы изучить возможности выбранной модели.

бесплатная пробная версия

Шаг 4: Получите API-ключ

Для аутентификации в API мы предоставим вам новый API-ключ. Перейдите на страницу «Settings» и скопируйте API-ключ, как показано на изображении.

получить API-ключ

Шаг 5: Установите API

Установите API с помощью менеджера пакетов, соответствующего вашему языку программирования.

установка API

После установки импортируйте необходимые библиотеки в вашу среду разработки. Инициализируйте API с вашим API-ключом, чтобы начать взаимодействие с Novita AI LLM. Это пример использования chat completions API для пользователей Python.


from openai import OpenAI
  
client = OpenAI(
    base_url="https://api.novita.ai/v3/openai",
    api_key="<YOUR Novita AI API Key>",
)

model = "deepseek/deepseek_v3"
stream = True # or False
max_tokens = 2048
system_content = """Be a helpful assistant"""
temperature = 1
top_p = 1
min_p = 0
top_k = 50
presence_penalty = 0
frequency_penalty = 0
repetition_penalty = 1
response_format = { "type": "text" }

chat_completion_res = client.chat.completions.create(
    model=model,
    messages=&#91;
        {
            "role": "system",
            "content": system_content,
        },
        {
            "role": "user",
            "content": "Hi there!",
        }
    ],
    stream=stream,
    max_tokens=max_tokens,
    temperature=temperature,
    top_p=top_p,
    presence_penalty=presence_penalty,
    frequency_penalty=frequency_penalty,
    response_format=response_format,
    extra_body={
      "top_k": top_k,
      "repetition_penalty": repetition_penalty,
      "min_p": min_p
    }
  )

if stream:
    for chunk in chat_completion_res:
        print(chunk.choices&#91;0].delta.content or "", end="")
else:
    print(chat_completion_res.choices&#91;0].message.content)
  
  

При регистрации Novita AI предоставляет $0.5 кредита для начала работы!

Если бесплатные кредиты закончатся, вы можете оплатить и продолжить использование.

DeepSeek V3 представляет собой значительный прогресс в области ИИ с открытым исходным кодом, предлагая передовую производительность в различных задачах. Локальное развёртывание обеспечивает больший контроль и конфиденциальность, но требует значительных аппаратных ресурсов и технических знаний. Для тех, кто не может выполнить эти требования, альтернативы на основе API, такие как Novita AI, предлагают доступное и масштабируемое решение. Выбор между локальным развёртыванием и использованием API зависит от конкретных потребностей и ресурсов.

Часто задаваемые вопросы

Что такое архитектура Mixture-of-Experts (MoE) и почему она важна?

MoE использует несколько «экспертов» для обработки конкретных входных токенов, повышая эффективность и производительность для сложных задач. Она более эффективна с вычислительной точки зрения, чем плотные модели, но всё ещё требует много ресурсов.

Как сравниваются DeepSeek V3 и Llama 3.3 70B по бенчмаркам и сценариям использования?

DeepSeek V3 превосходит в задачах программирования и математики, в то время как Llama 3.3 70B отлично справляется с общими языковыми и многоязычными приложениями.

Каковы требования к VRAM для DeepSeek V3?

Требования к VRAM для DeepSeek V3 варьируются в зависимости от точности. Для FP16 модель на 671B требует приблизительно 1 543 ГБ VRAM, тогда как при 4-битном квантовании — примерно 386 ГБ VRAM. Активных параметров — 37B.

Novita AI — это универсальная облачная платформа, расширяющая ваши ИИ-амбиции. Интегрированные API, serverless, GPU-экземпляры — экономически эффективные инструменты, которые вам нужны. Устраните инфраструктуру, начните бесплатно и воплотите ваше ИИ-видение в реальность.

Рекомендуемое чтение