antirez выпустил h3.c — движок генерации видео MiniMax-H3 на C для Apple Silicon

· Искусственный интеллект
Сальваторе Санфилиппо, автор Redis, представил нативный движок вывода модели MiniMax-H3, генерирующей видео со звуком прямо на чипах Apple с помощью Metal.

cover.svg

Сальваторе Санфилиппо (antirez), известный прежде всего как автор Redis, опубликовал проект h3.c — движок вывода для мультимодальной модели MiniMax-H3, работающий нативно на Apple Silicon. Код написан на C с использованием Metal, распространяется под лицензией MIT и на момент новости собрал более пятисот звёзд на GitHub.

Что умеет

Модель генерирует видео со звуком по текстовому описанию, а также поддерживает более тонкие сценарии: задание первого и последнего кадра (условие FL2VA), а также упорядоченные ссылки на изображения, видео и аудио (Ref2VA). Ссылки на картинки подаются модели как <Picture 1>, <Picture 2> и так далее; можно, например, попросить «заставить человека с картинки помахать в камеру». Аудио-референсы должны длиться от двух до пятнадцати секунд.

По умолчанию h3.c выдаёт ролики в 24 кадра в секунду, а длительность округляется вверх до допустимой временной формы модели: запрос на десять секунд, к примеру, превращается в 243 кадра. Для медиавхода и кодирования MP4 нужны FFmpeg и FFprobe.

Ставка на скорость

Основная часть проекта — это ручная оптимизация под конкретное железо, M3 Max и M5 Max. Автор предлагает наборы предустановок «медленное качество / по умолчанию / агрессивно», позволяющие менять число шагов зашумления, количество активных блоков трансформера и внутренний размер холста. Разброс огромен: эталонный проход по «лисе в снегу» на M5 Max занимал около 26 секунд, а урезанный четырёхшаговый вариант — примерно 3,5 секунды, теряя часть деталей, но сохраняя сюжет и движение.

Отдельно проработан путь через int8: динамическое квантование активаций и повесовые масштабы сократили время рендера с 36 до примерно 19 секунд, попутно уменьшив пиковое потребление памяти с 36 до 26 ГиБ. Модель весом 33 миллиарда параметров грузится по фазам — трансформер, текстовый кодировщик Qwen и декодеры никогда не соседствуют в единой памяти одновременно.

Инженерная дотошность

README читается как подробный инженерный дневник: десятки переменных окружения вроде H3_NAX или H3_DISABLE_FUSED_MLP позволяют включать и отключать отдельные оптимизации для точного A/B-сравнения. Правильность проверяется сверкой с эталонными выходами MLX — вплоть до относительной погрешности порядка 10⁻⁶ на аудиокодировщике. Санфилиппо честно отмечает, где ускорение даёт выигрыш лишь в доли процента и почему та или иная агрессивная комбинация настроек порождает «хроматический звон» и «призрачные конечности».


Источник: Hacker News

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.