Мир мобильных технологий не стоит на месте, и сегодня на смартфонах можно запускать нейросети, которые совсем недавно требовали мощных компьютеров. Stable Diffusion, языковые модели, такие как *LLaMa, и другие ресурсоёмкие ИИ теперь работают прямо у вас в кармане. В этой статье мы рассмотрим несколько таких приложений и как некоторые современные программные решения позволяют использовать смартфоны для работы с искусственным интеллектом.

▍ При помощи какой технологии портируются нейросети


После прочтения превью у многих наверняка возник вопрос:
Как вообще возможно запускать настолько тяжелые нейросети на мобильных процессорах, которые иногда даже не имеют специализированных блоков для работы с ИИ?

Реализация этого не так сложна, как может показаться. Существует множество технологий и подходов, позволяющих адаптировать нейросети для работы на мобильных устройствах. За последние годы крупные компании разработали специальные инструменты для этих целей — от универсальных форматов вроде ONNX и низкоуровневых интерфейсов наподобие NNAPI до специализированных мобильных фреймворков. Даже сложные модели вроде Stable Diffusion или языковых ассистентов теперь могут работать на обычных смартфонах. Это стало возможным благодаря различным техническим решениям, которые позволяют эффективно использовать ограниченные ресурсы мобильных устройств.

▍ SDAI FOSS



Stable Diffusion AI Free and Open Source Softwareприложение с открытым исходным кодом и без рекламы. Проект доступен на GitHub с 13 марта 2023 года. Изначально приложение позволяло подключаться к сеансу Stable Diffusion, запущенному на ПК. В августе 2023 года, в версии 0.5.0, добавлена поддержка локальной генерации изображений — Local Diffusion. Эта функция реализована с использованием фреймворков ONNX Runtime и Google AI MediaPipe.

Local Diffusion Microsoft ONNX и Local Diffusion Google AI MediaPipe



ONNX Runtime


ONNX Runtime — это среда выполнения для моделей в формате ONNX (Open Neural Network Exchange), который обеспечивает совместимость и переносимость моделей между различными фреймворками глубокого обучения, то есть это происходит по средствам уже преобразованных в формат ONNX моделями. ONNX Runtime поддерживает широкий спектр устройств и множество API (Vulkan, OpenCL, NNAPI и так далее). В приложении можно использовать NNAPI, однако по умолчанию данная функция отключена, и вычислительная нагрузка приходится на процессор. При активации NNAPI приложение может задействовать доступные аппаратные ускорители.

На моём Mali-G76 выполнение одного шага в модели Stable Diffusion 1.5 размером 512x512 без использования NNAPI занимает около 2 минут, с ним — около 30 секунд.

Google AI MediaPipe


Google AI MediaPipe предоставляет кросс-платформенные инструменты и библиотеки. Он изначально занимался задачами компьютерного зрения (распознавание поз, жестов, лиц), а в 2023 также стал поддерживать генерацию изображений, но только на андроид. Однако в контексте Stable Diffusion в SDAI FOSS возникают проблемы со стабильностью при его использовании: много отзывов о вылетах или отсуствии результата. На моём Realme 6 завершить генерацию без сбоя также не удалось.

Мини-гайд по использованию


SD модель: Модель, предобученная на основе Stable Diffusion. Разные модели предназначены для разных целей. Одна может быть обучена на фотографиях реальной жизни, другая — на нарисованных изображениях, третья — на аниме, четвёртая — на конкретных стилях аниме и т. д.

Запрос (или промт): Здесь указывается, что вы хотите увидеть на итоговом изображении. Рекомендую уточнять каждую деталь через запятую: качество изображения, параметры объекта, модель камеры и фокусное расстояние.

Отрицательный запрос: Противоположен промту (или запросу). Сюда записывается то, что не должно присутствовать на изображении. Он может использоваться для устранения ошибок, таких как лишние руки.

Seed идентификатор: Случайный параметр, на основе которого строятся паттерны — по-простому, подсказка для нейросети. При использовании того же seed и прочих значений можно повторить результат.

Этапы выборки: Шаги нейросети. Чем больше шагов, тем больше преобразований и тем детальнее изображение. Значение ниже 10 приведёт к низкому качеству, а выше 35 — к минимальным изменениям, изображение будет детальнее, но лучше пожалейте свой телефон.

CFG Шкала: Определяет, насколько точно нейросеть следует запросу. При её увеличении итоговое изображение будет менее творчески разнообразным, и также этот параметр не всегда помогает заставить нейросеть рисовать именно то, что вы от неё хотите.

Моя оценка


Мне приложение очень понравилось, но вероятно решение выпускать приложение с Google AI MediaPipe, без предварительной отладки — было не самое лучшей идеей. Сейчас приложение утопает в негативных оценках. Хотя локальный запуск сам по себе тут небыстрый, и скачивание моделей весом в пару гигабайт тоже вряд ли кого-то обрадует.

Кроме того, было бы здорово увидеть функционал img2img или LoRA. Но разработчику очень мало донатят, поэтому я сомневаюсь в быстром развитии проекта. Но несмотря на это, приложение остаётся интересным и многообещающим инструментом для генерации изображений на андроид.

▍ SuperImage



Проект стартовал как open-source программа для апскейлинга в GitHub 6 февраля 2023 года. Работа нейросети была реализована с применением MNN (Mobile Neural Network) — легковесный фреймворк глубокого обучения, разработанный Alibaba для мобильных устройств. В качестве архитектуры апскейлера был выбран ESRGAN. Даже спустя 6 лет он остаётся одним из лучших решений для быстрого выполнения апскейлинга и пользуется большой поддержкой среди энтузиастов, создающих бесплатные апскейлеры на его основе.

Однако уже через 2 месяца проект перестал быть открытым, и репозиторий на GitHub был заморожен. Сейчас его развитие продолжается, но в закрытом режиме. Кроме того, в приложении появилась реклама. Так что для статьи я купил платную версию программы за 3.49$. В расширенном функционале буквально недавно появилась возможность добавления собственных моделей апскейлинга, что меня очень заинтересовало. Я попробовал использовать мой апскейлер, и результат ничем не отличается от того, что я получаю в том же ChaiNNer на ПК.


Функционал премиум-версии реализован так: Вы находите и скачиваете модель апскейлера с openmodeldb.info, затем при помощи приложения она отправляется на сервер разработчика, где происходит её конвертация в формат ONNX, и уже с этой моделью вы можете у себя локально запустить апскейл.

Поддерживаются только архитектуры ESRGAN и Compact, скорость выполнения, например, RealESR General WDN x4 v3 относительно штатной модели — впечатляет. Качество лучше, а обработка происходит в 7 раз быстрее штатной модели. К сожалению, изучить применяемые решения и оптимизации, невозможно — код приложения обфусцирован, а описания обновлений крайне скудны. У меня есть 2 предположения: 1. Такая существенная разница обусловлена использованием в штатных апскейлерах архитектуры ESRGAN, а не ESRGAN compact, но это неизвестно. 2. Способ запуска нейросети в бесплатной версии либо не может полностью утилизировать аппаратные мощности устройства, либо не делает этого вовсе, и вся работа выполняется на процессоре, а в случае с ONNX задействуется, например, NNAPI. Надеюсь, среди читателей найдутся компетентные люди, чтобы обсудить этот вопрос в комментариях.


Моя оценка


Несмотря на то, что приложение выполняет свою основную функцию, а премиум-версия стоит недорого, хотелось бы видеть поддержку большего числа архитектур апскейлеров. Кроме того, было бы неплохо заменить штатный апскейлер на другой, с архитектурой Compact (если это уже не сделано или возможно). Ведь ожидание обработки изображения размером 800x600 в течение 7 минут совершенно неприемлемо для пользователя.

▍ MLCChat


MLCChat — открытое демо-приложение (проект), позволяющее запускать LLM на Android. Оно использует MLC LLM c Apache TVM для оптимизации моделей и генерации кода для мобильных GPU. MLC JVM интегрирует скомпилированный TVM код в приложение. MLCChat скачивает веса моделей и кэширует их. Можно выбрать одну из доступных моделей и начать общаться.


Мне не удалось запустить Mistral 7B, но зато удалось запустить Gemma 2 2B. Она оказалась весьма умной, и у неё нет проблем с русским языком, в отличие от многих других маленьких моделей.



Поистине удивительная технология! Это последнее, чего я ожидал от локального запуска на Android. Запуск LLM даже на домашних GPU — задача, в которой нужно предварительно разобраться, а здесь это реализовано буквально в один клик прямо на телефоне.

Моя оценка


Приложение упоминается в документации к Android SDK у MLC LLM как демо-версия для Samsung S23, однако, как видно, оно отлично работает и на других устройствах. Мой графический процессор Mali-G76 уже довольно устарел, однако нейросеть действительно работает (не радуйтесь: скорость составляет 2–3 слова в секунду, и начало работы занимает много времени.), а если интегрировать Tavern AI, получился бы локальный Character AI без ограничений. Точнее, подобное приложение уже существует — Layla, но ценник конский: 19,99$ или 1790 рублей.

▍ Заключение


Рассмотренные приложения наглядно демонстрируют стремительную эволюцию мира мобильных нейросетей, постоянно расширяя возможности: от генерации изображений и их улучшения до работы со сложными языковыми моделями. Несмотря на то, что текущие мобильные решения пока не могут полностью конкурировать со специализированным оборудованием, прогресс в этой области впечатляет. Оптимизация, использование специализированных фреймворков и удачных подходов к обработке данных позволяют добиваться все более высокой производительности даже на устройствах с ограниченными ресурсами.

Учитывая темпы развития технологий и растущий интерес к локальным ИИ-решениям, вполне вероятно, что в обозримом будущем даже самые сложные задачи ИИ смогут выполняться на мобильных устройствах. Это открывает захватывающие перспективы, где передовые технологии ИИ станут доступны каждому пользователю, буквально умещаясь в кармане, где бы вы ни были.

*Компания Meta признана экстремистской и запрещена на территории Российской Федерации.

© 2024 ООО «МТ ФИНАНС»

Telegram-канал со скидками, розыгрышами призов и новостями IT ?

Комментарии (4)


  1. Zara6502
    20.11.2024 12:44

    мне очень не нравится современный подход, когда что-то, порой даже замечательное, появляется исключительно для мобильных платформ. мобилки абсолютно неудобный ни в каком виде исключая МОБИЛЬНОСТЬ. Но когда она не является решающим фактором совсем не ясно почему нужно к ним прибегать. Какой-то софт я даже готов покупать за те же $3.5 но для ПК. ПК, как ни крути - быстрее, выше, сильнее, большой монитор, комфорт. Да и производительная мобилка - не обязательный девайс, у меня телефон за 14990 и причин покупать что-то другое я совсем не вижу - в день 2-3 звонка, 10 открываний банк-клиента, пара 2ГИС, влупливать деньги в айфон или даже что-то за 25К вообще не хочу. Молчу про айпады.

    Когда MS делали для своей мобильной ОС режим превращения мобилки в ПК (чего я к тому моменту ждал уже больше 10 лет) я думал что именно так всё и будет происходить, производительность растёт и простые задачи можно перекладывать на мобилку, по дома уже удобно подключить её в док-станцию и пользоваться как компьютером. Но этого так и не случилось, MS убили лучшую мобильную ОС.


    1. vikarti
      20.11.2024 12:44

      Samsung DeX (и huawei easy projection) - идея чем то похожая но там с другой стороны - в сторону удобного использования мобильного железа в нормальных условиях (с клавиатурой и дисплеем хотя бы ноута, а если надо и большим монитором , автономной клавиатурой и мышью). Недостатки правда (кроме того что некоторая часть софта - фигеет слегка(разработчики почему то считают что всегда есть тач, что экран мелкий, что размер окна приложения не менятся НЕ может, что Drag-n-drop это ненужные излишества и можно не поддерживать, при этом например насколько помню универсального способа одному приложению открыть 2 окна - с 2 документами word например - тупо нет) и того что ядро - дорогой смартфон со всеми проблемами) тоже очевидны - например срабатывает защита от перегрева.

      Я с некоторых для себя проблему с использованием нормального софта в мобильных условиях пока решаю методом таскания с собой маленького ноута,10" но обычная Windows, нормальный конструктив а не как у surface и прочее и планирую нормальные AR-очки брать. Оно тупо дешевле оказывается чем с DeX'ом возится и работает лучше.


    1. Bardakan
      20.11.2024 12:44

      MS убили лучшую мобильную ОС

      вы о чем? Если настольная windows достаточно стабильная и качественная, то новые мобильные windows компания клепала каждые пару лет, причем они были даже несовместимы друг с другом.


      1. Zara6502
        20.11.2024 12:44

        я начал пользоваться с 8, потом перешел на 10, мне, как пользователю там всё нравилось. ТО что не нужно поддерживать зоопарк систем это же хорошо. Мобильная ОС так же была стабильная и качественная, не вижу как скорость выхода новых ОС (каких кстати? за 10 лет вышло только две) влияет на качество, андроид чуть ли не раз в год обновляется. Мне какая разница совместим там кто-то с кем-то или нет? Я зашёл в Store, установил программу и пользуюсь.