Fine-Tuning LLM на Mac с MLX UI: визуальная настройка вместо CLI | AiManual
AiManual Logo Ai / Manual.
07 Янв 2026 Инструмент

MLX Fine-Tuning UI: когда командная строка надоела, а нейросеть нужно настроить на Mac

Полный гайд по open-source UI для тонкой настройки LLM на Apple Silicon. Загружаем модели, настраиваем LoRA, запускаем обучение без терминала.

Терминал убивает креатив. Особенно когда хочется просто дообучить нейросеть

Знакомо? Открываешь гайд по fine-tuning, а там сплошные флаги, аргументы командной строки и скрипты на Python. Хочется просто взять Mistral 7B, добавить свои данные и получить модель, которая пишет как ты. Но вместо этого — танцы с бубном вокруг терминала.

Пока все страдают с CLI, на GitHub тихо появился проект mlx-fine-tuning-ui. Это Streamlit-интерфейс для тонкой настройки LLM на Apple Silicon. Никаких команд. Только слайдеры, кнопки и визуализация прогресса.

Проект работает поверх MLX — фреймворка от Apple для машинного обучения на их чипах. Если вы уже пробовали Unsloth-MLX, то поймете разницу: здесь все в браузере.

Что умеет этот UI? Список возможностей, который заставит забыть про терминал

  • Загрузка моделей прямо из HuggingFace — вводишь название, система сама скачивает
  • Визуальный выбор параметров LoRA — ранг, альфа, dropout сдвигаешь слайдерами
  • Подготовка датасетов в формате JSONL — загружаешь файл или создаешь из текста
  • Реальный мониторинг обучения — графики loss прямо во время процесса
  • Экспорт в HuggingFace одним кликом — готовую модель сразу в облако
  • Интеграция с OpenRouter — если захочется протестировать модель онлайн
💡
LoRA (Low-Rank Adaptation) — метод дообучения больших моделей без изменения всех весов. Вместо этого добавляются небольшие адаптивные слои. На Mac это особенно важно: полное fine-tuning 7B модели съест всю память.

Установка: три команды вместо двадцати

В теории все просто. Клонируешь репозиторий, ставишь зависимости, запускаешь Streamlit. На практике — проверь, что у тебя уже есть Python 3.9+ и pip.

1Клонируем и заходим в директорию

Открываешь терминал (да, один раз придется). Клонируешь репозиторий и переходишь в папку проекта.

2Ставим зависимости

Создаешь виртуальное окружение — это не обязательно, но спасает от конфликтов версий. Потом pip install -r requirements.txt. Главное — дождись, пока установится MLX.

3Запускаем интерфейс

Streamlit run app.py. Откроется браузер с интерфейсом. Все. Терминал можно закрывать.

Если вылетает ошибка с Metal — проверь, что у тебя macOS 13.0+ и чип Apple Silicon. На Intel Mac это не заработает. Для старых систем посмотри статью про проблемы с Metal API.

Интерфейс: где что нажимать и почему некоторые слайдеры опасны

Открываешь localhost:8501. Видишь четыре вкладки: Model, Dataset, Training, Inference.

ВкладкаЧто делатьОпасные моменты
ModelВводишь "mistralai/Mistral-7B-Instruct-v0.2". Ждешь загрузки.Большие модели (13B+) могут не влезть в память. Начинай с 7B.
DatasetЗагружаешь JSONL или создаешь из текста.Формат должен быть строгим. Одна ошибка — и обучение сломается.
TrainingНастраиваешь LoRA, batch size, learning rate.Слишком большой learning rate — модель забывает, что умела.
InferenceТестируешь результат, загружаешь в HuggingFace.Публичные модели видны всем. Проверь, что не загружаешь конфиденциальное.

Самый интересный слайдер — LoRA rank. Это размер адаптивных матриц. Чем больше — тем точнее настройка, но и тем больше памяти нужно. Для начала поставь 8. Если модель плохо обучается — увеличивай до 16. Больше 32 на Mac уже рискованно.

Реальный кейс: учим Mistral писать как техподдержка

Допустим, у тебя есть 100 примеров переписки с клиентами. Хочешь, чтобы модель отвечала в том же стиле.

  1. Собираешь все ответы в текстовый файл. Каждый диалог — новая строка.
  2. В Dataset загружаешь файл. Система конвертирует в JSONL автоматически.
  3. Выбираешь Mistral 7B в Model. Ждешь, пока скачается (это 14 ГБ, приготовься).
  4. В Training выставляешь: rank=8, alpha=16, dropout=0.1, batch size=2.
  5. Нажимаешь Start Training. Смотришь, как падает loss. Пьёшь кофе.
  6. Через 2-3 часа (зависит от данных) тестируешь в Inference.

Если модель начинает отвечать "Здравствуйте, обращайтесь!" вместо креативных решений — уменьши learning rate. Если вообще молчит — проверь датасет.

💡
Loss должен стабильно снижаться. Если он скачет или растет — останови обучение, поменяй параметры. Типичная ошибка: слишком большой learning rate. Начинай с 2e-4, а не с 1e-3.

Альтернативы: когда UI не нужен, а терминал — друг

Этот инструмент не единственный способ fine-tuning на Mac. Вот что еще есть:

  • Прямая работа с MLX — если хочешь полный контроль. Пишешь скрипты, настраиваешь каждый параметр. Но это для тех, кто готов разбираться.
  • Unsloth-MLX — оптимизированная библиотека. Быстрее, но сложнее. Подходит для продакшена.
  • LM Studio — только инференс, но есть продвинутые функции для работы с моделями. Fine-tuning пока в планах.
  • Ollama — проще для запуска, но своего fine-tuning нет. Только готовые модели.

Главное преимущество mlx-fine-tuning-ui — он решает одну задачу и делает это хорошо. Не перегружен функциями. Не пытается быть всем для всех.

Кому подойдет этот инструмент? Три типа пользователей

Не всем нужен визуальный интерфейс. Вот кто выиграет от его использования:

  1. Исследователи-визуалы — тем, кто хочет видеть графики обучения в реальном времени, а не логи в терминале.
  2. Преподаватели и студенты — когда нужно быстро показать, как работает fine-tuning, без объяснения команд.
  3. Разработчики прототипов — если нужно проверить гипотезу на своих данных, а не разбираться с кодом.

Если ты уже делаешь fine-tuning через скрипты и у тебя есть свой пайплайн — этот UI покажется игрушечным. Но если только начинаешь или хочешь сэкономить время — он идеален.

Не используй этот инструмент для продакшена. Это прототипирование. Когда найдешь работающие параметры — переноси обучение в скрипты. Или используй Unsloth для оптимизации.

Ограничения: что не умеет этот UI и когда он подведет

Идеальных инструментов не бывает. Вот с чем придется смириться:

  • Только LoRA. Полный fine-tuning не поддерживается — памяти Mac не хватит.
  • Только текстовые модели. Мультимодальные вроде VL-JEPA не заведутся.
  • Нет продвинутой настройки оптимизаторов. Только базовые параметры.
  • Streamlit иногда тормозит на больших датасетах. Это не native-приложение.

Самое обидное — нельзя параллельно обучать несколько моделей. Один запуск — одна модель. Хочешь сравнить разные параметры — запускай по очереди.

Что дальше? Экспортируем модель и используем где угодно

Обучение закончилось. Loss стабилизировался. Что делать с моделью?

Вариант первый — загрузить в HuggingFace Hub. Вкладка Inference, кнопка Upload to HuggingFace. Нужен токен (создаёшь на сайте). Модель появится в твоём профиле. Можно использовать через API или скачать.

Вариант второй — экспортировать веса LoRA и использовать отдельно. Они занимают мало места (десятки мегабайт вместо гигабайтов). Применяешь к базовой модели когда нужно.

Вариант третий — интегрировать в своё приложение. Если пишешь на Swift — посмотри Swift Transformers. Если веб — можно через MLC.

Самый простой способ — загрузить в OpenRouter. Там модель будет доступна как API. Платишь только за запросы. Подходит для тестирования с реальными пользователями.

Главное — не оставляй модель просто на диске. Fine-tuning ради процесса бессмысленен. Либо используй сам, либо поделись с сообществом.

Следующий шаг — попробовать на реальных данных. Возьми свои заметки, диалоги из чата, статьи. Посмотри, сможет ли модель заговорить твоим голосом. Если получится — ты только что создал свою первую кастомную LLM. Без единой команды в терминале.