Как создать API «нулевого дня» для Kimi K3

@philipkiely
АНГЛИЙСКИЙ2 дня назад · 27 июл. 2026 г.
182K
336
36
11
544

Суть

В этом техническом обзоре рассматриваются пять этапов, которые прошла компания Baseten для запуска API «нулевого дня» для Kimi K3, включая масштабирование оборудования, оптимизацию движка вывода и настройку производительности для модели с 2,8 трлн параметров.

Baseten предоставляет поддержку Kimi K3 с первого дня через наши Model APIs. Мы хотим поблагодарить Moonshot AI за предоставление раннего доступа к весам Kimi K3, а также команды Inferact и RadixArk за сотрудничество на протяжении всего процесса разработки.

Philip Kiely - inline image

Kimi K3 доступна сегодня на Baseten Model APIs с поддержкой ввода изображений и полным контекстным окном на 1 миллион токенов.

Kimi K3 — это новая открытая передовая модель. С 2,8 триллионами параметров она значительно крупнее любой предыдущей открытой модели, что создаёт ряд проблем при создании производительного инференс-API. Новые архитектурные решения позволяют Kimi K3 преодолеть порог в триллион параметров, который был пределом для предыдущих передовых открытых моделей:

  • Kimi Delta Attention (KDA) и Attention Residuals (AttnRes) как масштабируемая основа архитектуры Kimi.
  • Чрезвычайно разреженные эксперты: только 16 из 896 экспертов активны одновременно, организованные с помощью Stable LatentMoE.
  • Новый энкодер изображений для обработки визуальных входных данных и преобразования визуальной информации в латентное пространство.

В этой статье описывается техническая работа, необходимая для запуска новой архитектуры модели Kimi K3 и её огромных весов в масштабе к моменту запуска.

Веха 1: Генерация токена

Получив ранний доступ к весам Kimi K3 от команды Moonshot AI, нашей первоочередной задачей было просто запустить модель.

Для генерации первых токенов Kimi K3 потребовалось:

  • Подготовка оборудования: Учитывая размер Kimi K3, мы решили запустить модель на системах NVIDIA GB300 NVL72.
  • Загрузка весов: В формате MXFP4 веса Kimi K3 занимают более 1,4 ТБ данных.
  • Запуск инференс-движка: Мы работали с командами, стоящими за vLLM и SGLang, чтобы запустить предрелизные сборки инференс-движков для Kimi K3.

Часто при создании API с первого дня ранним этапом является перенос весов в NVFP4 для повышения производительности и совместимости с NVIDIA Blackwell и нашим стеком инференса. Однако Kimi K3 использует родные веса MXFP4 с активациями MXFP8, и мы смогли использовать эти веса напрямую.

Имея веса, мы тесно сотрудничали с Inferact (vLLM) и RadixArk (SGLang). Прежде чем запускать Kimi K3 на Baseten Inference Stack, нам нужно было установить базовый уровень в сотрудничестве с ведущими инференс-движками с открытым исходным кодом.

Добавление поддержки новой модели в инференс-движок — нетривиальная задача. Она требует реализации основного кода модели, оптимизированных ядер для новых архитектур, таких как KDA, и создания совместимости фронтенда Kimi K3 во всём — от токенизации до вызова инструментов.

Ранний образ vLLM для графических процессоров NVIDIA Blackwell помог нам установить базовую функциональность, пройти начальные проверки и задать целевой уровень производительности. Эта работа по адаптации архитектурных особенностей Kimi K3, таких как KDA, AttnRes и Stable LatentMoE, заложила прочный фундамент для дальнейшего развития. Мы также провели обширную валидацию инференс-движка vLLM для Kimi K3 и внесли свои улучшения обратно в движок с открытым исходным кодом.

Ранний образ SGLang предоставил эталон для быстрого и надёжного обслуживания Kimi K3. SGLang исторически имеет сильную поддержку визуально-языковых моделей, и Kimi K3 не исключение. Вместе с командой RadixArk мы сосредоточились на совместимости фронтенда и оптимизации ядер, а наша команда инженеров внесла исправления ошибок фронтенда, связанных с обработкой вызовов инструментов и структурированными выходными данными, чтобы обеспечить готовность к релизу.

Спасибо командам Inferact и RadixArk за совместную работу на протяжении всего предварительного периода. Эта работа стала не только важной основой для нашего Kimi K3 API, но и возможностью внести вклад в сообщество с открытым исходным кодом.

Веха 2: Валидация инференс-движка

Kimi K3 — самая умная открытая модель из когда-либо созданных. Крайне важно действительно реализовать этот интеллект во время инференса.

Philip Kiely - inline image

Бенчмарки Kimi K3 демонстрируют высокую производительность на агентных задачах, которые зависят от точных вызовов инструментов и высококачественных выходных данных модели.

Валидация качества может проводиться на разных уровнях строгости. Простые проверки на здравый смысл, такие как вызов модели с известным промптом или запуск лёгкого бенчмарка вроде gsm8k или BFCL с проверкой результатов на соответствие погрешности, полезны в процессе разработки, чтобы убедиться, что всё идёт по плану. Однако выпуск публичного API требует более строгого бенчмаркинга.

Команда Moonshot AI управляет Kimi Vendor Verifier, который помогает провайдерам инференса обеспечивать точное и высококачественное обслуживание весов модели. Прохождение Kimi Vendor Verifier было важной ранней вехой в разработке нашего API, и этот инструмент оказался чрезвычайно полезным на протяжении всего процесса.

Существует множество возможностей допустить ошибки при обслуживании моделей. Хотя популярно мнение, что квантизация является корнем всех проблем с качеством, на практике это не так. Большинство проблем с качеством, особенно при вызове инструментов и других структурированных поведениях модели, возникают из-за фронтенда инференс-сервера.

Philip Kiely - inline image

Фронтенд находится перед инференс-движком и обрабатывает входные и выходные данные.

Фронтенд — это детерминированный код, который выполняется на CPU перед циклом инференса. Он отвечает за приём входных данных и возврат выходных. Фронтенд должен:

  • Управлять API и проверять его
  • Токенизировать промпты и детокенизировать выходные данные
  • Рендерить шаблон чата
  • Парсить рассуждения и вызовы инструментов
  • Форматировать выходные данные в ChatCompletions, сообщения или другой стандарт

Эти задачи незначительно отличаются от модели к модели, и очень легко внести ошибки и снизить производительность при быстрой разработке для поддержки с первого дня. Надёжные проверки, такие как Kimi Vendor Verifier, оценивают производительность в типичных сценариях отказов, например, при вызове инструментов, чтобы гарантировать, что модель обслуживается с высокой степенью точности как в цикле инференса, так и на поверхности API.

По мере дальнейшей разработки API мы использовали Kimi Vendor Verifier на последующих этапах, чтобы убедиться, что оптимизации производительности не внесли ошибок, которые могли бы ухудшить точность.

Веха 3: Поиск правильной конфигурации

Инференс-движки предлагают широкий спектр опций конфигурации для настройки производительности под разные модели, оборудование, профили трафика и компромиссы между задержкой и пропускной способностью. Эти опции и взаимодействия между ними сложны.

Чтобы найти правильную конфигурацию, мы проводим перебор различных параметров, таких как настройки Tensor Parallelism (TP) и Expert Parallelism (EP), переключение Attention Data Parallelism (ADP), размер батча, длины драфта спекулятивного декодера, интервалы кэширования линейных слоёв, параметры маршрутизации и настройки инференс-движка.

Philip Kiely - inline image

Tensor Parallelism и Expert Parallelism разделяют большие модели на несколько графических процессоров.

Для запуска Kimi K3 требуется восемь графических процессоров NVIDIA GB300, чтобы уместить огромные веса модели в VRAM. Однако, в отличие от многих других графических процессоров NVIDIA, которые поставляются в узлах по восемь штук, GB300 поставляются в узлах по четыре. Хотя это может показаться ограничением для стратегий параллелизма — Tensor Parallelism традиционно невозможен между узлами, так как медленные межсоединения делают дорогие операции all-reduce узким местом для инференса — система GB300 NVL72 имеет достаточно быстрое межсоединение между узлами, чтобы мы могли запускать инференс с Tensor Parallelism и Expert Parallelism между узлами.

Эти решения по конфигурации зависят от выбора инференс-движка. Инженеры работали параллельно, настраивая vLLM, SGLang и наш собственный внутренний движок, обмениваясь находками и применяя полученные знания в нашем внутреннем движке, а также внося PR в движки с открытым исходным кодом.

Веха 4: Оптимизация производительности

Как только модель запущена на оптимизированной конфигурации, существует множество техник инженерного инференса, которые могут существенно улучшить задержку, пропускную способность или их комбинацию. Для API моделей мы обычно смотрим на:

  • Спекуляция: Использование небольшой модели-черновика для предсказания нескольких токенов с последующей их валидацией в рамках прямого прохода. Эта оптимизация без потерь улучшает TPS на пользователя на этапе декода.
  • Разделение: Перенос префилла и декода на разные рабочие процессы. Это предотвращает конкуренцию за ресурсы, позволяет более целенаправленно настраивать конфигурацию и делает соотношение вычислительных мощностей префилла и декода регулируемым в соответствии с трафиком.
  • Кэширование: Выделение памяти для сохранения KV-кэша и состояний KDA между запросами, позволяя последующим запросам с общими префиксами во входных последовательностях пропустить весь префилл или его часть. Это улучшает TTFT и общую пропускную способность системы.

Наличие работающей модели с предыдущих этапов является необходимым условием для этой работы. Например, обучение модели-спекулятора с использованием метода вроде DSpark, DFlash или EAGLE-3 требует генерации скрытых состояний целевой модели (Kimi K3) с использованием набора промптов, напоминающих ожидаемое реальное использование. Для этого вам нужен экземпляр модели с достаточно высокой пропускной способностью, работающий в реальном времени.

Одной из новых оптимизаций производительности стала оптимизация токенизатора. Годами инженеры по инференсу могли пренебрегать временем токенизации как незначительным. Для такой модели, как Kimi K3, с длинными входными последовательностями и высокой частотой повторного использования KV-кэша, это меняется, и токенизация может стать существенной для времени префилла, поскольку токенизация должна происходить независимо от того, является ли входная последовательность попаданием в кэш.

Мы создали собственный токенизатор, который до 18 раз быстрее tiktoken для длинных входных последовательностей, и развернули его вместе с нашим Kimi K3 API.

Philip Kiely - inline image

Basetenkenizer до 18 раз быстрее Tiktoken для длинных входных последовательностей.

Впереди ещё много работы по производительности. С каждой моделью, которую мы запускаем, мы продолжаем вкладываться в оптимизацию задержки и пропускной способности в течение недель после релиза. Учитывая беспрецедентный размер Kimi K3, существует огромная область для дальнейшего улучшения производительности по каждой основной технике инженерного инференса и каждому уровню стека инференса.

Веха 5: Развёртывание в масштабе

Во всей индустрии наблюдается огромный ажиотаж вокруг Kimi K3. Это будет сопровождаться огромной волной спроса на API при запуске. Соответственно, общая пропускная способность системы, а не только задержка на пользователя, является главным приоритетом.

В системе GB300 NVL72 узел — это 4 отдельных графических процессора, то есть всего 18 узлов. Как инстанс, Kimi K3 занимает 2 узла (8 графических процессоров); каждая стойка NVL72 может разместить 9 реплик модели. Каждый кластер имеет несколько стоек GB300 NVL72, и мы обслуживаем модель в нескольких регионах и облачных провайдерах, чтобы получить доступ к большему объёму мощностей.

Philip Kiely - inline image

Каждая система NVL72 может запускать девять реплик Kimi K3.

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

Наша система маршрутизации с учётом KV-кэша, построенная с использованием набора инструментов NVIDIA Dynamo, гарантирует, что мы можем направлять трафик на реплики с горячим кэшем для повторяющихся запросов. Поскольку программирование и многошаговые агенты являются распространёнными сценариями использования Kimi K3, эта система маршрутизации с учётом кэша критически важна для экономии денег пользователей и поддержания высокой общей пропускной способности системы.

Создавайте с Kimi K3 на Baseten

Мы рады предложить доступ с первого дня через Model APIs и с нетерпением ждём продолжения оптимизации нашей реализации этой модели для достижения высочайших стандартов производительности и надёжности.

Команда Moonshot AI в анонсе Kimi K3 представила ряд интересных тестов для модели, включая задачи по программированию, такие как оптимизация ядер и разработка игр с визуальным управлением, исследовательские задачи и агентные задачи, такие как видеомонтаж и работа со знаниями. Во вторник, 28 июля, в 11:00 по тихоокеанскому времени, я провожу исполнительный брифинг по сценариям использования Kimi K3 вместе с Джоуи Цвикером, который руководит всеми внешними инженерными разработками в Baseten.

Kimi K3 доступна сегодня на Baseten Model APIs. Добро пожаловать на новый рубеж в области открытого весового интеллекта.

Спасибо многочисленным инженерам, стоящим за нашим Kimi K3 API, за то, что позволили мне задокументировать их тяжёлую работу в этой статье, включая слишком много людей, чтобы назвать их поимённо, из команд по производительности моделей, инфраструктуре, ёмкости, обучению, продукту и внешним инженерным разработкам. Также спасибо командам Moonshot AI, Inferact и RadixArk за сотрудничество и поддержку.

Переделать в YouMind

Превратите одну вирусную статью в полноценный рабочий процесс создания контента

Собирайте источники, расшифровывайте паттерны, создавайте активы, пишите черновики и публикуйте контент из одного рабочего пространства ИИ.

Исследовать YouMind
Для авторов

Превратите ваш Markdown в аккуратную статью для 𝕏

Когда вы публикуете длинные тексты, изображения, таблицы и блоки кода, форматирование в 𝕏 становится мучением. YouMind превращает полный черновик в Markdown в чистую статью, готовую к публикации в 𝕏.

Попробовать Markdown для 𝕏

Другие паттерны для анализа

Недавние виральные статьи

Смотреть другие виральные статьи