В последнее время мы часто видим, что люди используют NVIDIA DGX Spark для развертывания крупных моделей на уровне десятков и сотен миллиардов, что заставляет многих людей чекодаться.
Тем не менее, DGX Spark действительно мощный, а цена не доступна для людей.Для большинства разработчиков, что по-настоящему может быть проблемой, это компьютер, который уже работает несколько лет.
Недавно один из пользователей поделился информацией о Первое поколение Mac Studio 2022 (M1 Max / 32GB) Развертывание на Ling - 3.0-tiny INT4 полную программу.
Изначально интернет-пользователь считал, что этой машине уже трудно выполнить сегодняшнюю задачу рассуждения больших моделей.
Однако фактические результаты испытаний оказались несколько неожиданными.
Модель поддерживает не только чаты, мышление (Think Mode) и вызовы инструментов (Tool Calling), но и поддерживает примерно на Apple Silicon. 64 Токены / сек Стабильная скорость генерации, довольно плавная для локального чата, кодирования, перевода и персонального агента.
Что еще более важно, это не «маленькая модель 1B» в традиционном смысле.
Почему Ling-3.0-tiny стоит внимания?
Общий размер параметров Ling-3.0-tiny приблизительно 7.9B。
Однако он использует, MoE (Mixure of Experts) - смесь экспертов。
Проще говоря:
- В модели насчитывается около 128 экспертов.
- Каждый токен активирует только 8 экспертов.
- Вместе с другими специалистами, участвующими в расчетах.
- Фактически, только в рассуждениях Параметры 1.3В
Этот дизайн сочетает емкость модели с затратами на рассуждения, а также позволяет ей получить хорошую скорость рассуждения на Apple Silicon.
Экспериментальная среда
Используемое этим пользователем устройство конфигурации следующее:
- Apple Mac Studio (2022)
- Apple M1 Max
- 24-ядерный GPU
- 32 ГБ объединенной памяти
- macOS 15.7.4
- arm64
Несмотря на то, что Ling-3.0-tiny поддерживает более длинные контексты, для сбалансированного использования памяти и стабильности для этого теста Context был установлен на 8K。
Это достаточно для чатов, дополнений кода и повседневных приложений агентов, а также для того, чтобы избежать постоянного использования большого объема унифицированной памяти KV Cache.
В целом архитектура развертывания выглядит следующим образом:
Ling-3.0-tiny INT4
│
支持 Ling 的 Ollama 实验分支
│
MLX Runner
│
Metal / Apple Silicon GPU
│
Ollama API(11434)
Стабильная версия Ollama не используется непосредственно потому, что поддержка Ling и Bailing MoE V3 по-прежнему зависит от экспериментального ветка Ollama.
Фреймворки логики, такие как vLLM и SGLang, лучше подходят для среды NVIDIA CUDA и не являются лучшим выбором для Apple Silicon.
Планируйте дисковое пространство перед развертыванием
В процессе развертывания наиболее недооценивается не сама модель, а загрузка диска.
Окончательное распределение каталогов примерно выглядит следующим образом:
| Контент | Размер |
|---|---|
| Hugging Face INT4 исходный вес | 5,4 ГБ |
| Ollama Импорт моделей | Около 5,8 ГБ |
| Исходный код Ollama, MLX и результаты компиляции | Около 1,3 ГБ |
| Кэш и конфигурация | Десятки MB |
Весь проект в конечном итоге 13GB。
Рассмотрите возможность загрузки временных файлов, кэша компиляции и macOS Swap, рекомендуется резервировать как минимум 20 ГБ Доступное пространство, более рекомендуется подготовить 30 ГБ Выше.
Легко игнорируемый ям: Git
Самый большой опыт, которым поделился этот пользователь, - это не модель, а Git.
Поскольку весь процесс развертывания выполняется в каталоге проекта Codex, по умолчанию в проекте включены снимки версий.
После загрузки модели Git сохраняет копию всего каталога модели.
В результате модель размером около 5 ГБ быстро увеличилась до десятка ГБ, и пространство на диске системы быстро сокращалось.
После окончательной проверки выяснилось, что каталог модели не был добавлен заранее. .gitignore。
Рекомендуется добавить заранее:
.cache/
models/
ollama-models/
ollama-ling/
После того, как Git Objects были очищены, .git Каталог остается только 132KB。
Если вы готовы развернуть большую модель, этот шаг лучше сделать заранее.
Скачать Ling-3.0-tiny INT4
Официально выпущен вес Hugging Face INT4.
Весь склад включает:
- 44 документа
- 32 безопасных взвешенных сегмента
В процессе загрузки пользователь столкнулся с двумя основными проблемами:
Во-первых, скорость загрузки Xet длительное время стагнирует.
Позже Xet был закрыт и перешел на обычную загрузку HTTP.
Во-вторых, во время загрузки часто возникает время истечения.
Поскольку CLI Hugging Face поддерживает перевод точек прерывания, для продолжения загрузки необходимо увеличить время истечения.
По окончании загрузки модель не была непосредственно воспринята как завершенная
Вместо этого было проведено три проверки:
- Проверка наличия всех 32 фрагментов весов
- Проверка полноты ссылок на индекс модели
- Вычисление SHA-256 для всех фрагментов
Конечный результат:
- Исключения в файле: 0
- Хэш-исключения: 0
- Недостаточные фрагменты: 0
Для моделей размером в несколько ГБ рекомендуется выполнить по крайней мере проверку количества фрагментов или хеширования, а не просто запрос завершения загрузки для определения целостности модели.
Поддержка компиляции Ling Ollama
В настоящее время официальная стабильная версия Ollama не может запускать Ling напрямую, поэтому необходимо переключить экспериментальную ветку и компиляцию самостоятельно.
Весь этот процесс действительно застрял в интернете. Металлическая цепь инструментов。
Установлено оборудование:
- Xcode
- Инструменты командной строки
Однако компиляция MLX по-прежнему выдает ошибки.
Позже было обнаружено, что Metal Toolchain требует отдельной установки.
Еще более сложно то, что даже после завершения установки система может не найти компилятора Metal.
После окончательного просмотра Toolchain Identifier необходимо настроить вручную:
export TOOLCHAINS=...
Следует отметить, что это значение может варьироваться в зависимости от версии macOS и Xcode, поэтому не рекомендуется копировать конфигурацию других пользователей.
После завершения компиляции будет создано:
- Главная программа Ollama
- MLX Runner
- Металлическое ядро
- Динамические библиотеки
Необходимо уделять особое внимание, не просто сохранять ollama Используемый документ.
Действительно запускает модель, также полагаясь на Runner и динамические библиотеки в каталоге build.
Импорт моделей INT4
Чтобы избежать смешивания с стабильной версией Ollama в системе, пользователь разместил каталог моделей отдельно внутри проекта.
После завершения импорта Ollama выводит:
26947 tensors
479 layers
preserving source quantization
Примечание Весы INT4 сохраняются в исходном формате количества и не требуют повторного преобразования.
Имя окончательной модели:
ling-tiny-int4:latest
Как убедиться в том, что GPU действительно работает?
Это очень важно.
Это может привести к тихому возвращению модели в процессор.
После завершения развертывания можно просмотреть подтверждение журнала на предмет появления аналогичной информации:
library=Metal
Apple M1 Max
MLX engine initialized device=gpu
Только просмотр этих журналов подтверждает, что весь процесс рассуждения действительно работает на GPU Apple.
M1 Максимальная скорость измерения
Чтобы не повлиять на результаты первой задержки токенов, интернет-пользователь сначала прогрел модель.
Затем были проведены три раунда полных испытаний построения.
Условия испытания унифицированы следующим образом:
- Контекст: 8192
- Температура: 0
- Think: Закрыть
- Длина вывода: 384 Tokens
Итоговые результаты:
| Испытания | Token / s |
|---|---|
| Первый раунд | 64.26 |
| Второй раунд | 65.18 |
| Третий раунд | 63.67 |
Окончательный средний результат:
64.37 Токен / с
Приблизительное время первой загрузки модели:
6.93Скунда
После размещения модели, используется единое отображение:
6.48GB
Для M1 Max, выпущенного уже несколько лет, это показатель довольно хороший.
А как реальный опыт?
Когда развертывание было завершено, пользователь подключил модель к инструменту перевода скриншотов, который обычно используется на Mac. Боб。
Поскольку Bob может напрямую вызывать Ollama API, нет необходимости дополнительно конфигурировать облачный интерфейс.
По практическому опыту, скорость отклика местного перевода очень быстро.
Особенно в сценарии перевод скриншотов, результаты могут быть возвращены почти после нажатия мыши.
Несмотря на то, что по сравнению с онлайн-переводчиками существуют различные аспекты качества перевода, локальная модель имеет два очевидных преимущества:
- более быстрый отклик;
Во-вторых, все данные сохраняются локально, что более подходит для обработки конфиденциального контента.
Кроме того, он хорошо работает в следующих сценариях:
- Ежедневный разговор
- Резюме документа
- Перевод AI
- Дополнительные функции кода
- Местные базы знаний
- Индивидуальный агент
Общий опыт уже отвечает повседневным потребностям пользования
Письмо в конце
Судя по всему процессу развертывания, наибольший выигрыш этого пользователя не «может ли Mac запускать большую модель».
Напротив, локальная экология ИИ Apple Silicon становится все более зрелой.
С развитием MLX, Metal, MoE и более эффективных вариантов количественной оценки, M1 Max, выпущенный несколько лет назад, также обеспечивает хорошие локальные рассуждения.
Конечно, он все еще не может заменить высококачественные графические процессоры NVIDIA и не подходит для производственных сред с высокой параллельностью.
Однако для индивидуальных разработчиков достаточно:
- Местный разговор
- Перевод AI
- Помощник программистов
- Частная база знаний
- Индивидуальный агент
- Конфиденциальность обработки текстов
Если у вас ограниченный бюджет и вы хотите испытать реальную большую местную модель, то Ling - 3.0-tiny INT4 + Apple Silicon + MLX + OllamaЭто сочетание, которое стоит попробовать.
По крайней мере, это доказывает, что Mac Studio, выпущенный несколько лет назад, все еще обладает хорошими возможностями локального ИИ для рассуждений.