AnyLanguageModel 1.0: Один рік локальних моделей на платформах Apple
Локальний і хостований інференс мають свої переваги, і кожен із них відіграє свою роль у створенні нового покоління інтелектуальних застосунків. Спільний API спрощує вибір правильної моделі для кожного завдання.
Через рік і десятки релізів AnyLanguageModel 1.0 уже доступний, разом зі swift-huggingface 1.0 і swift-xet 1.0.
Ось що змінилося і що буде далі:
Сумісний API, який можна використовувати без додаткових змін
Основна ідея AnyLanguageModel залишається незмінною:
використовуйте API Foundation Models із моделлю, яка відповідає вашому застосунку.
Щоб почати, змініть оператор import:
- import FoundationModels
+ import AnyLanguageModel
Після цього той самий код сесії працює із системною моделлю, моделями з відкритими вагами через llama.cpp, MLX і Core ML, а також із наведеними нижче хостованими постачальниками.
Протягом минулого року ми додали кілька важливих функцій:
- Виклик інструментів працює з кожним постачальником.
- Керована генерація також працює з кожним постачальником,
зокрема з вкладеними типами
@Generableта їхніми масивами. - Підтримка зображень дає змогу додавати зображення до запитів за допомогою синтаксису Foundation Models 27, зокрема під час використання системної моделі на iOS, macOS і visionOS 27.
В ОС 27 AnyLanguageModel також працює
з будь-якою моделлю, що відповідає протоколу LanguageModel Foundation Models,
зокрема з моделями Core AI.
Паралельно з AnyLanguageModel ми розширили можливості swift-huggingface і swift-xet, щоб забезпечити прискорене завантаження моделей із Hub у застосунки Swift.
Також хостовані моделі
Цього року також розширилася підтримка хостованих моделей. Тепер AnyLanguageModel підтримує:
- API Chat Completions і Responses від OpenAI
- Open Responses для будь-якого постачальника із сумісною кінцевою точкою
- API Messages від Anthropic, з адаптивним мисленням і параметрами зусиль
- API Gemini від Google
- Ollama
- Private Cloud Compute в ОС 27
- Inference Providers від Hugging Face та інші сумісні з OpenAI кінцеві точки, як-от OpenRouter, через власну базову URL-адресу
За допомогою Inference Providers ви можете використовувати моделі з відкритими вагами, які надто великі для запуску на пристрої, з тим самим кодом сесії:
let model = OpenAILanguageModel(
baseURL: URL(string: "https://router.huggingface.co/v1/")!,
apiKey: ProcessInfo.processInfo.environment["HF_TOKEN"]!,
model: "openai/gpt-oss-120b",
apiVariant: .chatCompletions
)
Хостовані постачальники отримують ті самі функції, що й локальні моделі: керовану генерацію, виклик інструментів із потоковою передачею та використання токенів у відповідях.
Тепер міркування також є частиною транскрипту. Коли ви перемикаєте постачальників, блоки міркувань автоматично вилучаються із запитів, якщо новий постачальник не може їх відтворити.
Ключі API тепер надходять із замикання, а не з рядка, тому ваш застосунок може отримувати короткоживучі токени з вашого власного сервера. У README пояснюється, коли варто дозволяти користувачам використовувати власні ключі, а коли — спрямовувати запити через проксі.
AnyLanguageModel також працює в Linux, тож той самий код може працювати на сервері.
Моделі з відкритими вагами стали кращими
Ми спростили використання локальних моделей, а самі моделі стали потужнішими, що робить невеликі моделі хорошим місцем для початку. Ось деякі з найбільш завантажуваних моделей на Hub просто зараз:
- Gemma 4 E2B від Google,
у форматі GGUF, близько 3,4 ГБ при
Q4_0із квантизаційно-орієнтованим навчанням. - LFM2.5 2.6B від Liquid AI,
у форматі GGUF, близько 1,7 ГБ при
Q4_K_M. - Qwen3.8 27B для MLX від Alibaba, близько 16 ГБ при 4 бітах.
Перші дві моделі поміщаються на iPhone, а Qwen3.8 27B працює на Mac із 32 ГБ пам’яті або більше. Вибір моделі MLX займає один рядок:
let model = MLXLanguageModel(modelId: "mlx-community/Qwen3.8-27B-4bit")
А якщо у вас під рукою є чотири максимально оснащені Mac Studio, GLM-5.3 від Z.ai займає близько 1,5 ТБ у BF16. Для решти з нас вона доступна через Inference Providers.
Оновлення до версії 1.0
dependencies: [
.package(
url: "https://github.com/huggingface/AnyLanguageModel",
from: "1.0.0",
traits: ["MLX"]
)
]
Якщо ви оновлюєте наявний застосунок, ознайомтеся з інструкціями з міграції в примітках до релізів AnyLanguageModel, swift-huggingface і swift-xet, щоб отримати допомогу з оновленням коду.
Відгуки спільноти та внески учасників сформували кілька наших основних функцій. Дякуємо всім, хто зробив внесок, за допомогу в тому, щоб зробити AnyLanguageModel кориснішим для розробників застосунків.
Що далі
Мовні моделі довели, що є потужним інструментом для додавання інтелекту до продуктів. Вони також є лише одним із багатьох типів моделей, які розробники можуть використовувати. Ми раді застосувати той самий підхід до ширшого спектра можливостей: знайомі API Swift із можливістю вибору моделей, що працюють на пристрої. Незабаром: моделі, які приймають рішення, і моделі, які слухають.
Посилання
Моделі, згадані в цій статті 4
Спільнота
· Зареєструйтеся або увійдіть, щоб залишити коментар
Моделі, згадані в цій статті 4
Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.
