Открытый исходный код приложения Queryable для iOS использует CLIP OpenAI Модель MobileCLIP от Apple для автономного поиска в альбоме «Фотографии». В отличие от модели поиска на основе категорий, встроенной в приложение iOS Photos, Queryable позволяет использовать для поиска в альбоме выражения на естественном языке, например, a brown dog sitting on a bench
. Поскольку он доступен в автономном режиме, конфиденциальность вашего альбома не будет нарушена какой-либо компанией, включая Apple или Google.
Блог | Магазин приложений | Веб-сайт | История | 故事
Процесс выглядит следующим образом:
Более подробную информацию можно найти в моем блоге: Запустите CLIP на iPhone для поиска фотографий.
[2024-09-01]: Теперь поддерживается Apple MobileCLIP.
Вы можете загрузить экспортированные TextEncoder_mobileCLIP_s2.mlmodelc
и ImageEncoder_mobileCLIP_s2.mlmodelc
с Google Диска. В настоящее время мы используем модель s2
в качестве модели по умолчанию, которая сочетает в себе эффективность и точность.
Версия Android (код), разработанная @greyovo, поддерживает английский и китайский языки. Подробности смотрите в №12.
Загрузите TextEncoder_mobileCLIP_s2.mlmodelc
и ImageEncoder_mobileCLIP_s2.mlmodelc
с Google Диска. Клонируйте этот репозиторий, поместите загруженные модели по пути CoreMLModels/
и запустите Xcode, все должно работать.
Если вы хотите запустить только Queryable, вы можете пропустить этот шаг и напрямую использовать экспортированную модель с Google Диска. Если вы хотите реализовать Queryable, который поддерживает ваш собственный язык, или выполнить какую-либо работу по квантованию/ускорению модели, вот несколько рекомендаций.
Хитрость заключается в том, чтобы разделить TextEncoder
и ImageEncoder
на уровне архитектуры, а затем загрузить веса модели по отдельности. Queryable использует ОпенАИ ВиТ-Б/32 Модель MobileCLIP от Apple, и я написал блокнот Jupyter, чтобы продемонстрировать, как отделять, загружать и экспортировать модель OpenAI CLIP Core ML (если вам нужен сценарий экспорта MobileCLIP, проверьте #issuecomment-2328024269). Результаты экспорта Core ML ImageEncoder имеют определенный уровень точности ошибок, и могут потребоваться более подходящие параметры нормализации.
clip-vit-base-patch32
для HuggingFace. Это значительно уменьшило погрешность точности кодера изображения. Более подробную информацию см. в № 18. Отказ от ответственности: я не профессиональный iOS-инженер, простите мой плохой код Swift. Вы можете сосредоточиться только на загрузке, вычислении, хранении и сортировке модели.
Вы можете применить Queryable к своему собственному продукту, но я не рекомендую просто изменять внешний вид и размещать его в App Store. Если вы заинтересованы в оптимизации определенных аспектов (например, № 4, #5 , №6, №10, №11, #12 ), не стесняйтесь отправить PR (запрос на включение).
Спасибо за ваш вклад :)
Если у вас есть какие-либо вопросы/предложения, вот несколько способов связи: Discord | Твиттер | Reddit: r/Queryable.
Лицензия MIT
Авторские права (c) 2023 г. Ке Фанг