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.
В OS 27 AnyLanguageModel работи и с всеки модел,
който отговаря на протокола LanguageModel на Foundation Models,
включително модели на Core AI.
Успоредно с AnyLanguageModel разработихме swift-huggingface и swift-xet, за да предоставим ускорено изтегляне на модели от Hub към Swift приложения.
И хоствани модели
Тази година разширихме и поддръжката на хоствани модели. AnyLanguageModel вече поддържа:
- API-тата Chat Completions и Responses на OpenAI
- Open Responses, за всеки доставчик със съвместима крайна точка
- Messages API на Anthropic, с адаптивно мислене и опции за усилие
- Gemini API на Google
- Ollama
- Private Cloud Compute в OS 27
- Hugging Face Inference Providers, както и други съвместими с 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 GB при
Q4_0с обучение, съобразено с квантизацията. - LFM2.5 2.6B от Liquid AI,
в GGUF, около 1,7 GB при
Q4_K_M. - Qwen3.8 27B за MLX от Alibaba, около 16 GB при 4 бита.
Първите два модела се побират на iPhone, а Qwen3.8 27B работи на Mac с 32 GB памет или повече. Избирането на MLX модела изисква един ред:
let model = MLXLanguageModel(modelId: "mlx-community/Qwen3.8-27B-4bit")
А ако разполагате с четири напълно оборудвани Mac Studio, GLM-5.3 от Z.ai заема около 1,5 TB в 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 по-полезен за разработчиците на приложения.
Какво предстои
Езиковите модели се доказаха като мощен инструмент за изграждане на интелигентност в продуктите. Те са и един от многото видове модели, които разработчиците могат да използват. Вълнуваме се да приложим същия подход към още възможности: познати Swift API с избор от модели, работещи на устройството. Очаквайте скоро: модели, които вземат решения, и модели, които слушат.
Връзки
Модели, споменати в тази статия 4
Общност
· Регистрирайте се или влезте, за да коментирате
Модели, споменати в тази статия 4
Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.
