# FluidAudio 0.17.4 исправляет запуск Nemotron 3 на Neural Engine в Mac с M3

Источник: https://modelium.tech/zhurnal/fluidaudio-0-17-4-nemotron3-m3-neural-engine/

Стабильный FluidAudio 0.17.4 переключил монолитные Core ML-пакеты Nemotron 3 Diarization на новые экспорты monolithic/v2: в отчёте разработчиков они компилируются на Neural Engine в Mac с M3 без прежнего неудачного ANECCompile и задержки загрузки. Веса и исходный чекпойнт не менялись; при первом запуске пакет скачивается заново.

FluidAudio 0.17.4: Nemotron 3 Diarization запускается на Neural Engine в Mac с M3

25 сентября 2026 года вышел стабильный **FluidAudio v0.17.4**. Для локального разделения голосов в записи на Mac с M3 изменён путь загрузки монолитных Core ML-пакетов Nemotron 3 Diarization: вместо `monolithic/` библиотека берёт подготовленные `monolithic/v2/`. Это исправление экспорта и загрузчика, **не новая базовая модель**. Автор релиза сообщает, что новый пакет компилируется для Apple Neural Engine (ANE) на M3 без прежней неудачной попытки `ANECCompile()`. [s1](#src-s1) [s2](#src-s2)

## Почему это важно

В исходных пакетах запрос `.cpuAndNeuralEngine` на M3 Max приводил к ошибке компилятора `InvalidMILProgram`, задержке около трёх секунд при загрузке и переходу Core ML к смешанному плану CPU/ANE. Ранний патч v0.17.2 устранял связанную ошибку буфера вывода при первом предсказании, но не корневую проблему компиляции. В v0.17.4 авторы применили экспорт с FP16-входами/выходами и упаковкой состояния без `gather`; в коде выбор каталога для монолитных пресетов переключён на v2. Польза для приложения с диаризацией встреч — более предсказуемая загрузка и доступ к штатной ANE-компиляции на затронутых M3, а не обещание ускорения любой ASR-модели. [s1](#src-s1) [s2](#src-s2) [s4](#src-s4) [s8](#src-s8)

Пять каталогов v2 (`fast`, `fast32`, `fast128`, `low`, `offline`) и файлы весов действительно лежат в закреплённой ревизии Hugging Face от 24 сентября. По описанию FluidInference, исходный чекпойнт и веса сохранены, меняется способ экспорта. При первом запуске после обновления библиотека **скачает v2-пакет выбранного пресета**; старые пакеты остаются для прежних версий. Split-пресеты и общие `.bin`-файлы не менялись. Факт наличия пакетов на диске HF не означает известного минимума оперативной памяти для Mac. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3)

## Проверка качества: чьи результаты

По данным разработчиков FluidInference, на 16 встречах AMI показатель DER у пяти монолитных пресетов в режиме `.all` совпал с прежней сборкой, а при работе с ANE отличался не более чем на ±0,06. В PR также приведена проверка `fast32` на M3 Max от автора сообщения об ошибке: новый экспорт компилировался без прежней попытки с ошибкой. Это **авторские и пользовательские проверки**, а не собственный тест Modelium или гарантия для каждого устройства и записи. Здесь речь о качестве определения «кто говорил когда», а не о точности распознавания слов. [s1](#src-s1) [s2](#src-s2) [s4](#src-s4)

## Как обновляться и что ещё изменилось

Разработчику Swift-приложения нужно закрепить зависимость FluidAudio на **v0.17.4** и дать загрузчику получить новый v2-пакет для нужного монолитного пресета. Если проверяете проблему на Mac с M3, сравнивайте загрузку `Nemotron3Diarizer` с `.cpuAndNeuralEngine` до и после обновления, а также итоговые сегменты на своём аудио; не принимайте скорость с M5 Pro из карточки модели за показатель M3. В карточке HF на момент проверки осталось ошибочное указание «v0.17.3+ loads these»: дифф исходного кода показывает, что переключение `hubSubdirectory` произошло именно в **v0.17.4**. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3) [s8](#src-s8)

Отдельно появились `AppLogger.minimumLevel` и `AppLogger.mirrorsToConsole`. Первый отсекает сообщения ниже выбранного уровня и из системного лога, и из консоли; второй отключает зеркалирование в stderr. Это полезно для приложений, где отладочные строки могут содержать распознанные слова. По автору PR, при подключённом отладчике Xcode сообщения `os_log` всё равно видны в его консоли, поэтому для исключения текста речи нужен соответствующий `minimumLevel`; значения по умолчанию не меняют прежнее поведение. [s1](#src-s1) [s5](#src-s5)

**Лицензии разделены:** код библиотеки распространяется по Apache 2.0; открытые веса конверсии Nemotron 3 указаны под OpenMDW 1.1 исходной модели NVIDIA. NVIDIA прямо допускает коммерческое и некоммерческое применение, но это не означает, что лицензия весов совпадает с лицензией Swift-кода. [s3](#src-s3) [s6](#src-s6) [s7](#src-s7)

## Источники

1. [FluidAudio v0.17.4 — официальный релиз](https://github.com/FluidInference/FluidAudio/releases/tag/v0.17.4) — получено 2026-09-25
2. [PR #960: переход на monolithic/v2 и условия проверки](https://github.com/FluidInference/FluidAudio/pull/960) — получено 2026-09-25
3. [FluidInference Nemotron 3 Diarization Core ML, закреплённая ревизия](https://huggingface.co/FluidInference/nemotron-3-diarization-coreml/tree/1b0b133f6f8820292010afd776d8f9fbc9fca17e) — получено 2026-09-25
4. [Issue #951: неисправность Neural Engine на M3 Max и проверка экспорта](https://github.com/FluidInference/FluidAudio/issues/951) — получено 2026-09-25
5. [PR #959: конфигурация AppLogger и ограничения Xcode-консоли](https://github.com/FluidInference/FluidAudio/pull/959) — получено 2026-09-25
6. [NVIDIA Nemotron 3 Diarization: исходный чекпойнт и условия использования](https://huggingface.co/nvidia/Nemotron-3-Diarization) — получено 2026-09-25
7. [FluidAudio v0.17.4: лицензия кода Apache 2.0](https://github.com/FluidInference/FluidAudio/blob/v0.17.4/LICENSE) — получено 2026-09-25
8. [Сравнение кода FluidAudio v0.17.3 и v0.17.4](https://github.com/FluidInference/FluidAudio/compare/v0.17.3...v0.17.4) — получено 2026-09-25
