📱 Подписаться
IT и цифровая трансформация

LLM на iPhone: от llama.cpp до Foundation Models

📰 Habr 👁️ 1 просмотров

Viktoriaios3 часа назад

LLM на iPhone: от llama.cpp до Foundation Models

Уровень сложностиПростойВремя на прочтение7 минОхват и читатели3.2KiOS*Swift*Обзор2026: год, когда on-device стал нормой

В 2025 году вместе с iOS 26 компания Apple представила разработчикам Apple Foundation Models. Теперь порог входа для on-device AI упал до нескольких строк, и далее в статье мы рассмотрим как он выглядит. 

А в январе 2026 года Apple заключила сделку с Google в рамках которой следующее поколение Apple foudation models будет основано на технологии Google Gemini. По данным Bloomberg стоимость этой сделки составляет 1 млрд долларов в год. Apple по-прежнему держит контроль над пользовательскими данными, запросы будут выполняться локально, что-то сложное, с чем не может справиться локальная модель - будет отправляться в облако Apple Private Cloud Compute. 

Зачем выносить модель на устройство

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

Рассмотрим несколько причин: 

• Privacy и compliance. Ни для кого не секрет,  что при использовании облачных моделей, таких как ChatGPT, Gemini и др. данные отправляются на сервер и могут использоваться для дообучения модели, и в целом - данные уходят на сервер и дальше мы не можем быть уверены как и для какой цели они могут быть использованы. Это становится проблемой, если речь идет о юридических, финансовых, документах или медицинских данных. В свою очередь, у Local LLM такая проблема отсутствует - данные не только не уходят на сервер, они не распространяются за рамки одного устройства (что в свою очередь отчасти и недостаток). 
• Бесплатный inference. Тут все понятно, чем больше токенов или возможностей мы используем, тем больше стоимость нашей подписки. С Local LLM такой проблемы нет, стоимость on-device инференса равна 0. 
• Offline-first. Несмотря на корректные, развернутые, четкие ответы облачной модели, от нее нет никакого смысла, при отсутствии доступа к сети. Эту проблему хорошо решает Local LLM - допустим, я хочу что-то «погуглить» при отсутствующей связи, если я например нахожусь в самолете/метро/в горах.Для наглядного сравнения предлагаю посмотреть на таблицу, где сравниваем параметры облачных моделей (Gemini 1.2T, GPT-4o) и локальную (Apple FM ~3B):

ПараметрОблако (Gemini 1.2T, GPT-4o)On-device (Apple FM ~3B)ДанныеНа серверах провайдераЛокально, в Unified MemoryСтоимостьПлата за токены ($0,5-15 за 1M)Ноль - считает устройство клиентаСетьНужен стабильный интернетРаботает офлайнЗадержка до 1-го токена300+ мс (сетевой RTT)~0,6 мс на токен промптаКонтекст128K-2M токенов~2K-8K (упирается в RAM)ReasoningСильный (математика, код)Ограничен (анализ, суммаризация)Более того, использование локальных моделей уже в продакшене у многих крупных компаний: Apple (Writing Tools, приоритизация уведомлений, Smart Replies), Samsung (Galaxy AI на Gemini Nano через AICore) и приложения из App Store - SmartGym (разбор запроса в тренировку, работает с вышеупомянутым Apple Foundation Models), Signeasy (суммаризация контрактов офлайн), Stoic (анализ дневника в RAM), VLLO (генерация заголовков к видео).

Сразу стоит сказать, что on-device - не панацея. ~3B параметров, ~1,5 ГБ только под веса, нужен iPhone 15 Pro+ (A17 Pro/A18) и iOS 26+. Где нам провести границу - разберем в финале.

От llama.cpp к Foundation Models

Не так давно давно путь внедрения Local LLM на устройство выглядел так: найти GGUF-веса, выбрать квантизацию, поднять llama.cpp, написать обвязку, самому управлять токенизацией и KV-кэшем. Работало, но это инженерия ради инженерии.

Сегодня для базовых задач достаточно вот этого:

import FoundationModels

let session = LanguageModelSession()
let answer = try await session.respond(to: "Суммируй: \(text)")Так выглядит использование фреймворка Apple Foundation Models, о котором я говорю в начале статьи. Пара строк - и готова сессия модели с ответом. LanguageModelSession() создаёт объект сессии, и он хранит историю всех ваших запросов и ответов модели. Чтобы использовать новый фреймворк достаточно сделать import и проверить совместимость (об этом ниже), при этом никаких подписок, ключей, доступ в сеть не нужен. 

И это еще не все. Apple Foundation Models включает следующие инструменты: @Generable (структурированный вывод), Guided Generation, Tool Calling. Подробно сейчас их все рассматривать не будем, т. к. лучше всего это будет сделать в отдельной статье, но, для примера, с помощью макроса @Generable модель возвращает не текст, который нужно было бы потом еще спарсить, а строго типизированную структуру Swift.

Как устроен стек Apple

Если все сильно упростить, стек компании Apple можно разделить на четыре «слоя»:

• Apple Neural Engine- 16-ядерный NPU (~38 TOPS на A18 Pro) с нативной поддержкой 2-х  и 4-х битных операций - отдельный сопроцессор на котором выполняются вычисления, связанные с работой искусственного интеллекта. Изначально был создан для Face ID, чтобы не перегружать вычислениями CPU и GPU. В настоящее время используется во многих фишках iPhone, таких как ночная/портретная съемка, подборка фотографий в Воспоминаниях, Siri и многое другое. 
• Metal Performance Shaders (MPS) - набор высокопроизводительных вычислительных API от Apple, часть экосистемы Metal. Предоставляет разработчику возможность эффективно использовать GPU под разные цели и дает набор мощных функций, но нас в рамках этой статьи интересуют функции связанные с ИИ, и MPS дает нам следующие компоненты для этой цели:• Графы нейросетей: позволяют строить, обучать или запускать сверточные нейросети (CNN), рекуррентные сети и трансформеры;
• Матрично-векторные операции: базовые математические операции линейной алгебры;
• Матричное умножение;
• Обработка изображений: обширный набор фильтров для обработки фотографий и компьютерного зрения, используемый как этап препроцессинга данных для ML.3. Core ML - также фреймворк от Apple. Был представлен на WWDC17 и предназначен для интеграции модели в приложения на устройствах iOS, iPadOS, watchOS и macOS. Простыми словами: потребуется модель формата.mlmodel. Получить модель можно двумя способами: если есть готовая модель, то можно сконвертировать ее в формат с помощью скриптов на Python (успешность результата конвертации можно узнать только опытным путем), либо создать модель непосредственно в Xcode, тут потребуется только Data Set двух видов Train (обучающий) и Test (проверочный), после загрузки данных Xcode автоматически обработает изображения и начнет процесс обучения, после завершения возможно будет интегрировать модель в проект и написать функции для взаимодействия с ней. Допустим, есть приложение по классификации изображений: Hotdog / Not a hotdog. Благодаря Core ML функция запроса к модели будет выглядеть не сложнее сетевого запроса. 

4. Apple Foundation Models. Новинка 2025 года, о которой говорим в начале статьи. Некоторые фишки уже упомянули, давайте посмотрим что внутри предлагают: 

• ~3B параметров, decoder-only, Grouped-Query Attention, словарь 49K с разделяемыми эмбеддингами;
• Mixed 2/4-bit QAT - квантизация прямо во время обучения, в среднем 3,7 бита на вес. Веса занимают ~1,5 ГБ;
• KV-cache sharing 5:3 - последние 37,5% слоёв переиспользуют KV-кэш предыдущего блока. Минус 37,5% памяти под кэш и быстрее первый токен;
• LoRA-адаптеры rank 16 (свои - до rank 32) подгружаются на лету под конкретную задачу.

Что выбрать для проекта

У меня, как у iOS разработчика, есть три способа в настоящий момент, некоторые из них мы частично рассмотрели. Рассмотрим что, где, когда. 

• Apple Foundation Models. Если нужно быстро проверить AI-фичу. Например, у вас приложения по подсчету калорий, и вы хотите добавить фишку чтобы пользователь вводил лимит калорий/продукты и получал меню на неделю. Из преимуществ, можно обойтись минимальными затратами: не нужны ключи, сетевые запросы. Модель будет работать на устройстве пользователя. Недостатки: минимум iPhone 15 Pro и новее (чип A17 Pro и выше). Контроль минимален, модель одна и та же, и никакая иная конфигурация невозможна. 
• Core ML. Это что-то среднее между  Foundation Models и последним фреймворком. Здесь уже контроля чуть больше: у вас может быть своя обученная модель. Core ML предоставляет разработчику следующие возможности: распознавание объектов, обработка естественного языка, распознавание вручную написанного текста и многое другое. 
• llama.cpp  - фреймворк на С++, добавить можно как отдельную зависимость в проект. Это популярный инструмент для запуска LLM на устройстве. Его преимущества в том, что он дает детально настроить параметры инференса и позволяет запускать нейросейти на GPU. Движок llama.cpp предоставляет максимальную гибкость настройки и лучшую производительность. Из недостатков: придется написать обертку на Objc, но хорошая новость в том, что можно найти уже готовые «обертки», которые предоставляют удобный API для работы c llama.cpp. Для удобства восприятия сравнение в таблице: 

И главный аргумент, почему это вообще работает на устройстве. 4B-модель 2026 года ≈ 175B-модель 2023 года. GPT-3 (175 млрд) выдавал ~43,9% на MMLU, современные 3-4B уверенно его обходят:

МодельРазмерMMLU 5-shotRAM (4-bit)GPT-3 (для справки)175B43,9% (до ~70% у 3.5)более 350 ГБ (FP16)Apple Foundation Model~3B61,4%~1,5 ГБLlama 3.2 3B3,2B63,4%~2,0 ГБPhi-4 Mini3,8B67,3%2,2 ГБGemma 4 E4B4,5B эфф.69,4% (MMLU-Pro)~2,6 ГБQwen 3 4B4,0B~81,5%~2,5 ГБ

Выводы: будущее гибридное

On-device запуск моделей не отменяет облако, но может взять на себя то, что можно сделать локально, дёшево и приватно. Но у локальной модели есть жёсткий потолок, и я думаю, его стоит назвать честно:

• Память. ~1,5 ГБ только под веса; планировщик iOS (Jetsam) без церемоний убьёт приложение за превышение RAM.
• RAG хромает. На тесте RED-flow встроенная модель давала 45% ложных отказов на 1000 вопросов, а с жёсткой инструкцией по типу: «отвечай только по тексту» - до 90%.
• Не энциклопедия и слабый reasoning. Факты о мире и длинные цепочки рассуждений - в облако. Большинство локальных моделей плохо поддерживают формат диалога-чата, для примера, в документации Apple по Apple FM прямо подчеркивается, что модель не походит для ведения длинного диалога. Таким образом, выигрывает не «всё локально» или «только облако», а инженерное решение, где провести границу: чувствительное и быстрое - на устройстве, сложное и редкое - в облаке. Ровно так Apple и построила связку Foundation Models + Private Cloud Compute. Roadmap для команды простой: начните с Foundation Models для одной конкретной фичи, замерьте, что упирается в потолок локальной модели, и только эти запросы уводите в облако.

Больше подробных разборов в тг. Теги:• apple foundation models
• ios
• core ml
• локальные модели
• on-device ai
• swift
• llama.cppХабы:• iOS
• Swift

Получайте больше инсайтов о систематизации бизнеса

Подписывайтесь на Telegram-канал Business Operations — ежедневные материалы о бизнес-процессах, операционном управлении и повышении эффективности

💬 Подписаться на канал