ИИ на устройстве или в облаке в iOS: Foundation Models против OpenAI API
От того, где работает модель, зависят приватность, стоимость и работа офлайн. Сравниваем фреймворк Apple на устройстве с облачным API и показываем, как совместить их в одном приложении.
Спросите себя, где на самом деле живёт интеллект вашего приложения. Этот вопрос важнее, чем «а не добавить ли нам ИИ?», и именно он меняет то, как вы проектируете функцию в iOS. Стоит в пет-проекте заменить облачный вызов на фреймворк Apple Foundation Models, работающий на устройстве, и всё становится ясно: вы никогда не выбирали между двумя моделями, вы выбирали между двумя местами, где запускать одну.
Место важнее бенчмарков
Большинство сравнений спорят о баллах моделей. Для приложения на iPhone полезнее другой вопрос: где идёт инференс — на устройстве пользователя или на чужом сервере.
Это одно решение просачивается во всё, что вы выпускаете: обещания о приватности, задержку, расходы на работу, поведение без сети и даже вопросы, которые задаст ревью App Store. Сначала выберите место, и многие другие решения перестанут быть предметом спора.
На устройстве с Foundation Models
Фреймворк Apple даёт языковую модель, которая работает локально на Apple Silicon и использует Neural Engine. Никаких сетевых запросов, никакого API-ключа, который надо охранять, и никакого счёта за токены в конце месяца.
Минимальная сессия выглядит так:
import FoundationModels
// Create a session with the on-device model
let session = LanguageModelSession()
// Ask a simple question — runs entirely on-device
let response = try await session.respond(
to: "Summarize this note in one sentence: \(userNote)"
)
print(response.content)
Что вы получаете взамен меньшей модели:
- Нет похода по сети, поэтому всё работает и в самолёте, и в туннеле метро.
- Ничего не растёт вместе с числом пользователей, потому что вы не платите провайдеру за каждый вызов.
- Текст пользователя остаётся на телефоне, а для приложений о здоровье, дневников и финансов это очень важно.
- Он напрямую встраивается в async/await и SwiftUI, так что ощущается как любой другой системный фреймворк.
Платить приходится размером. Эта модель меньше и слабее облачных моделей класса GPT-4. Она отлично справляется с суммаризацией, классификацией и несложными рассуждениями. А вот длинная многошаговая генерация и всё, что требует поведения агента, ей даются плохо, так что такие функции на ней не стройте.
Облако с OpenAI API
Другая сторона выбора — рассуждения уровня передовых моделей, за которые вы платите зависимостью от сети. Теперь вашей функции нужны подключение, ключ и счёт.
Вот такой же вызов, только по HTTP:
// Basic async/await network call to OpenAI's API
func fetchCompletion(prompt: String) async throws -> String {
var request = URLRequest(url: URL(string: "https://api.openai.com/v1/chat/completions")!)
request.httpMethod = "POST"
request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let body: [String: Any] = [
"model": "gpt-4o",
"messages": [["role": "user", "content": prompt]]
]
request.httpBody = try JSONSerialization.data(withJSONObject: body)
let (data, _) = try await URLSession.shared.data(for: request)
// Parse response into your own model here
return String(data: data, encoding: .utf8) ?? ""
}
Я бы выбрал этот путь, когда качество ответа и есть продукт. Допустим, вы делаете ассистента для исследований: рассуждения хостинговой модели маленькой локальной просто не повторить, так что затраты на сеть оправданы.
Используйте оба
В продакшене выбирать одно почти никогда не приходится. Разделите работу по тому, что нужно каждой задаче, и держите это решение подальше от представлений, например спрячьте его за слоем MVVM, чтобы view model просила результат и не думала, откуда он взялся.
- На устройстве: автодополнение, теги, быстрые сводки и офлайн-запасной вариант.
- В облако: глубокая генерация длинных текстов и всё, что требует большого контекста.
Такая схема держит приложение быстрым и дешёвым примерно в 80% взаимодействий, а за облачный вызов вы платите только тогда, когда задача того стоит. Она хорошо сочетается и со SwiftData: кешируйте результаты локально, и повторные запросы вообще не будут ходить в сеть.
Как быстро решить
- Нужна работа офлайн или строгая приватность данных: берите Foundation Models.
- Нужны рассуждения высшего уровня или огромное окно контекста: берите OpenAI API.
- Хотите масштабироваться и не разорить бюджет: делайте гибрид, а путь на устройстве сделайте основным.
- Готовитесь к вопросу на собеседовании по iOS об архитектуре ИИ: объясните оба варианта и когда выбрали бы каждый, ведь именно такого ответа ждут интервьюеры.
Ни один вариант не побеждает безоговорочно. Foundation Models теперь разумный выбор по умолчанию для быстрых, приватных и дешёвых функций, а тяжёлая работа по-прежнему идёт через хостинговый API. В 2026 году хорошая архитектура iOS — это не выбор стороны. Это точное понимание того, какая работа заслуживает похода по сети, а какая нет.