Оглавление

По данным Hugging Face, что их библиотека swift-transformers для разработчиков под экосистему Apple достигла важного рубежа — версии 1.0. Это не просто символическое обновление, а фундаментальная переработка инструмента, который стал критически важным для локального запуска языковых моделей на устройствах Apple Silicon.

Что представляет собой swift-transformers

Библиотека swift-transformers решает три ключевые задачи для разработчиков, работающих с локальными моделями:

  • Tokenizers — обработка входных данных для языковых моделей, включая чат-шаблоны и агентские сценарии
  • Hub — интерфейс для работы с Hugging Face Hub с поддержкой фоновых загрузок и офлайн-режима
  • Models и Generation — обертки для моделей в формате Core ML

Как сообщество использует библиотеку

Наиболее востребованными оказались модули Tokenizers и Hub. Среди заметных проектов, построенных на swift-transformers:

  • mlx-swift-examples от Apple — набор библиотек для запуска различных типов моделей через MLX
  • WhisperKit от argmax — высокооптимизированный фреймворк для распознавания речи
  • FastVLM от Apple и другие демо-приложения

Ключевые изменения в версии 1.0

Релиз принес серьезные архитектурные улучшения:

  • Tokenizers и Hub стали независимыми модулями верхнего уровня
  • Интеграция с swift-jinja Джона Мая — новая версия библиотеки стала на порядки быстрее
  • Удалены лишние зависимости и CLI-примеры для уменьшения конфликтов версий
  • Поддержка современных Core ML API с stateful-моделями для KV-кэширования
  • Полная поддержка Swift 6 и улучшенная документация

Версия 1.0 — это признание того, что библиотека перестала быть экспериментальной и стала готовым к использованию полноценным инструментом. Особенно впечатляет коллаборация с Джоном Маем — редкий случай, когда open source сообщество работает настолько слаженно. Интересно, что Apple активно участвует в развитии экосистемы, что говорит о серьезных планах компании на локальный ИИ.

Пример использования

Вот как выглядит работа с инструментами вызова функций:

import Tokenizers

let tokenizer = try await AutoTokenizer.from(pretrained: "mlx-community/Qwen2.5-7B-Instruct-4bit")

let weatherTool = [
 "type": "function",
 "function": [
 "name": "get_current_weather",
 "description": "Get the current weather in a given location",
 "parameters": [
 "type": "object",
 "properties": ["location": ["type": "string", "description": "City and state"]],
 "required": ["location"]
 ]
 ]
]

let tokens = try tokenizer.applyChatTemplate(
 messages: [["role": "user", "content": "What's the weather in Paris?"]],
 tools: [weatherTool]
)

Будущее развитие

Команда разработчиков планирует сосредоточиться на интеграции с MLX — текущим стандартом для начинающих работать с машинным обучением в нативных приложениях. Также в приоритете агентские сценарии и поддержка MCP (Model Context Protocol).

Как отмечают разработчики: «Мы не знаем точно, что будет дальше, но уверены, что экспозиция системных ресурсов для локальных workflow будет просто взрывной».