В этой статье рассказывается о том, как просто запустить большие модели искусственного интеллекта на телефонах Android, чтобы испытать модели на английском языке (Llama2 7B, Mistral 7B, RedPajama 3B, Google Gemma 2B, Microsoft PHI 2B на китайском языке (настенный MiniCPM, мультимодальная модель); Стабильная диффузия.
Со второй половины прошлого года различные сотовые телефоничип Производители начали утверждать, что ониизпродукт можетЗапускать локальнобольшой Модель。
Но только несколько дней назад Qualcomm официально HuggingFace Загружено«Версия Qualcomm» Stable Diffusion[1]。В настоящее время многие производители,один есть один,Все они все еще находятся на стадии «внутренней бета-версии и внутренней проверки бета-версии».,Бежать четко и просто из Модель,Накрыты толстым слоем марли.
Однако здесь есть ограничение. Если вы являетесь разработчиком из Китая, при подаче заявки на использование Qualcomm SDK вам необходимо пройти дополнительную проверку «DPLCheck», чтобы убедиться, что вы не являетесь специалистом по «Списку сущностей». Так что о «нативном тестировании» я расскажу в следующей статье. В этой статье речь пойдет о более спокойном игровом процессе.
Потому что большинство мобильных телефонов, купленных в Китае, на данный момент имеют множество ограничений на разблокировку телефона (переход на более удобную операционную систему) и получение root-прав (улучшение родной операционной среды модели).
Поэтому в этой статье сначала представлены два решения, которые не требуют разблокировки блокировки BL и смены операционной системы, а также не требуют получения root-прав.
Подготовка в основном состоит из двух частей: Модель приложения и Работающая Модельиз устройства (сотовый телефон).
Не внося относительно хлопотных изменений в среду подготовки Android, мы можем использовать следующие три проекта с открытым исходным кодом, чтобы испытать модель английского языка (Llama2 7B, Mistral 7B, RedPajama 3B, Google Gemma 2B, Microsoft PHI 2B модель китайского языка (Wall); - с MiniCPM, мультимодальная модель Stable Diffusion);
•mlc-ai/mlc-llm[2](Поддержка английского языка Модель)•Введение в использование:https://llm.mlc.ai/docs/deploy/android.html•программаскачать:https://github.com/mlc-ai/binary-mlc-llm-libs/releases/download/Android/mlc-chat.apk•OpenBMB/mlc-MiniCPM[3] (Поддерживает работу китайских моделей) • Проект fork Поскольку указанный выше проект с открытым исходным кодом, метод использования тот же. • Загрузка программы: программа все еще находится в стадии разработки, поэтому перейдите в группу обмена моделями, расположенную напротив стены, и свяжитесь с ней. :D•ShiftHackZ/Stable-Diffusion-Android[4] или ZTMIDGO/Android-Stable-diffusion-ONNX[5](Поддержка бега SD)•Оба элемента передаются путем вызова OnnxRuntime бежать ONNX Отформатированный SD Модель(/feature/diffusion[6])。Первый поддерживаетиз Модель В основном после количественного определенияиз 1GB оизстиль Модель(/docs/models.json[7]),Последний в настоящее время поддерживается только Chilloutmix。•программаскачать:Google Play[8] или F-Droid[9]
После завершения загрузки установочного пакета программы мы можем подготовить работающее оборудование для модели.
Чтобы иметь относительно хороший опыт использования модели, нам нужен мобильный телефон, на котором можно запускать модель искусственного интеллекта.
В феврале я сдал на переработку 8 Gen 1 (Xiaomi 12 Pro) и 8 Gen 2 (OnePlus 11). Затем я купил два мобильных телефона 8-го поколения 3 (OnePlus 12 и Redmi K70 Pro).
Мобильные телефоны оснащены «новыми чипами»
В этой статье представлен: K70 Pro (версия с памятью 24 ГБ).
Машина, используемая для подбрасывания: K70 Pro.
Хотя мобильные телефоны, начиная с Snapdragon 865, имеют возможность запускать модельные приложения, вычислительная мощность недоразвитых чипов слишком слаба, а работа модели в основном сосредоточена на ЦП. Запуск картинки занимает слишком много времени, и в этом нет никакого смысла. беспокоит.
Обзор информации о мобильных SoC
Лично я рекомендую использовать чипы после Snapdragon 8 Gen 1, например 8 Gen 2 и 8 Gen 3, включая различные «ревизии». Причина, по которой 8 Gen 1 не рекомендуется, заключается в том, что мобильные телефоны этого поколения будут нагреваться при обычном использовании. Производительность бумаги чипа третьего поколения в два раза выше, чем у него, по опыту или по другим причинам. лучше избегать этого.
Если вы не знакомы с командной строкой, вы можете пропустить этот раздел. Но если вы хотите изучить эту часть, установите приложение локальной модели и продолжайте. Android сотовый аспекты отладки телефона,ADB(Android Debug Bridge[10])могу принести оченьбольшойиз Повышение эффективности,Включает: Установка приложения.,Быстро загружайте локальную модель на сотовый телефон и многое другое.
Различные операционные системы ADB Способы установки несовместимы.,Вы можете обратиться кЭта статья XDA Developer Сообщений[11],чтобы завершить решение, подходящее для вашей операционной системы.
Если вы являетесь пользователем macOS, я рекомендую вам напрямую использовать следующую командную строку для завершения установки ADB после установки HomeBrew. Это будет проще, чем в приведенном выше сообщении:
brew install android-platform-tools
После завершения установки программы включите на телефоне «Отладку по USB» и «Установку по USB».
Параметры мобильного разработчика, настройки, связанные с USB
Затем, соединив мобильный телефон и компьютер через кабель для передачи данных, выполните adb devices
Вы можете убедиться, что инструмент работает правильно:
# adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
8a408458 unauthorized
➜ speedup adb devices
List of devices attached
8a408458 device
если бы только List of devices attached
Если сзади есть контент, это означает, что соединение между мобильным телефоном и компьютером нормальное и им можно управлять с помощью инструмента.
Сначала нам нужно установить приложение на мобильное устройство, используя ADB Если да, то мы можем использовать adb install
команда, иначе нужно найти способ перенести приложение на мобильный телефон:
# adb install /Пользователи/soulteary/Загрузки/Имя установочного пакета.apk
Performing Streamed Install
Success
После завершения установки мы найдем установленное программное обеспечение на своем мобильном телефоне (просто установите его выборочно в соответствии с вашей ситуацией установки).
Найдите приложение модели на своем рабочем столе.
мы открываем MLC Chat или Mini CPM После подачи заявки вы увидите список моделей, нажмите «Загрузить» и дождитесь завершения загрузки модели.
Найдите приложение модели на своем рабочем столе.
Здесь следует отметить две вещи:
Во-первых, у моделей, загруженных с помощью MLC Chat, могут возникнуть проблемы с сетью. Мы можем избежать проблем с сетью, загрузив модели вручную (все модели 12G), а затем загрузив их в указанное место на телефоне Android:
adb push ./Llama-2-7b-chat-hf-q4f16_1 /storage/emulated/0/Android/data/ai.mlc.mlcchat/files/
adb push ./Mistral-7B-Instruct-v0.2-q4f16_1 /storage/emulated/0/Android/data/ai.mlc.mlcchat/files/
adb push ./RedPajama-INCITE-Chat-3B-v1-q4f16_1 /storage/emulated/0/Android/data/ai.mlc.mlcchat/files/
adb push ./gemma-2b-q4f16_1 /storage/emulated/0/Android/data/ai.mlc.mlcchat/files/
adb push ./phi-2-q4f16_1 /storage/emulated/0/Android/data/ai.mlc.mlcchat/files/
Во-вторых, программа MiniCPM, стоящая лицом к стене, использует более раннюю версию MLC Chat, поэтому при загрузке модели (5.4G) необходимо загрузить модель, выйти из программы и загрузить следующую модель, чтобы избежать ошибок программы.
Конечно, вы также можете использовать описанный выше метод, чтобы заранее загрузить модель, а затем загрузить ее в указанное место:
adb push ./MiniCPM /storage/emulated/0/Android/data/com.modelbest.minicpm/files/
adb push ./MiniCPM-V /storage/emulated/0/Android/data/com.modelbest.minicpm/files/
Поскольку цель этой статьи не проверка способностей, я просто поиграюсь с ней. Давайте сначала посмотрим на эффект 4-битной квантованной версии Mistral 7B: попробуйте спросить ее, как выучить Python.
Мистраль 7Б: Как выучить Python
Кажется, ответ довольно хороший, эффективность работы 7 токенов/с. Далее давайте посмотрим на производительность Gemma 2B в той же задаче:
Джемма 2B: Как выучить Python
Gemma Из-за «преимущества тела» оно достигает 11 жетон/ы. наконец, давай посмотрим PHI 2B Индикатор производительности:
PHI: Как выучить Python
Можно лишь сказать, что по сравнению с первыми двумя качество ответов совсем другое. Результаты простых тестов по математике аналогичны приведенным выше. Результаты будут опубликованы на Zhihu позже. Если вам интересно, вы можете продолжить.
Давайте сначала посмотрим на эффект языковой модели, при которой MiniCPM работает со скоростью от 8 до 13 токенов/с.
Тест языковой модели MiniCPM
Как упоминалось в предыдущем посте Чжиху, я не совсем помню, кто такой «генеральный директор». Хорошо, что у меня нет «идеологического штампа». Плохо то, что мои знания и способности действительно должны быть такими. усилен. Однако разве это не подходит только для генерации контента с использованием внешних баз знаний?
Далее давайте посмотрим на мультимодальную модель:
Тестирование мультимодальной модели MiniCPM-V
Я загрузил картинку красного конверта для «Начала работы», а затем спросил у модели, что на картинке, а затем провел три простых раунда диалога, и вы видите, что ответы были достойными. Конечно, во время реального тестирования он может ответить на неожиданные вещи. Как объединить бизнес-данные и выполнить точную настройку модели с малыми параметрами для повышения точности ответа, должно стать основным направлением конечной мультимодальной небольшой модели в этом году. .Одна из тем.
Загрузка и инициализация модели изображения аналогична языковой модели, указанной выше. Если ваша сеть может загрузить ее напрямую, нет необходимости заморачиваться. В противном случае загрузите модель вручную и перенесите ее в указанное место на телефоне через ADB.
Инициализация двух модельных приложений немного отличается. SDAI является относительно полностью автоматической (приведенный выше код имеет путь и модель по умолчанию):
Инициализация Android-приложения SDAI
В другой модели после загрузки модели нам нужно вручную указать соответствующие файлы модели и файлы конфигурации:
Настроить путь к модели
Генерация изображения мало чем отличается от веб-версии. Введите «Шаг», «Cfg», «Положительное слово подсказки», «Отрицательное слово подсказки», нажмите «Создать» и подождите, пока изображение завершит вывод. По сравнению с другими приложениями, SDAI имеет еще одну «галерею», в которой могут отображаться все сгенерированные вами изображения.
Пользовательский интерфейс приложения SDAI
Однако в ходе фактического процесса тестирования, когда модель SD была количественно оценена и преобразована в ONNX, даже если параметры оставались такими же, как в исходной модели, в выходных результатах наблюдались некоторые очевидные различия в ухудшении качества. Вместо этого лучше было упростить. параметры и оставьте SEED пустым. Модель создается вслепую.
Мобильный телефон Stable Diffusion генерирует изображения
К счастью, использование модели для генерации изображений на мобильном телефоне не занимает много времени. Самое медленное — всего одна-две минуты (в зависимости от количества шагов и разрешения). Мобильный телефон не особо нагревается и обеспечивает непрерывную генерацию. только тепло.
Ладно, это все в этой статье. В следующей статье по теме давайте поговорим о запуске модели непосредственно в собственной среде мобильного телефона.
Я надеюсь, что моя заявка на получение разрешений для мобильных телефонов и SDK пройдет гладко.
--EOF
Справочная ссылка
[1]
«Версия Qualcomm» Stable Diffusion: https://huggingface.co/qualcomm/Stable-Diffusion
[2]
mlc-ai/mlc-llm: https://github.com/mlc-ai/mlc-llm
[3]
OpenBMB/mlc-MiniCPM: https://github.com/OpenBMB/mlc-MiniCPM
[4]
ShiftHackZ/Stable-Diffusion-Android: https://github.com/ShiftHackZ/Stable-Diffusion-Android
[5]
ZTMIDGO/Android-Stable-diffusion-ONNX: https://github.com/ZTMIDGO/Android-Stable-diffusion-ONNX
[6]
/feature/diffusion: https://github.com/ShiftHackZ/Stable-Diffusion-Android/tree/master/feature/diffusion/src/main/java/com/shifthackz/aisdv1/feature/diffusion
[7]
/docs/models.json: https://github.com/ShiftHackZ/Stable-Diffusion-Android/blob/master/docs/models.json
[8]
Google Play: https://play.google.com/store/apps/details?id=com.shifthackz.aisdv1.app
[9]
F-Droid: https://f-droid.org/zh_Hans/packages/com.shifthackz.aisdv1.app.foss/
[10]
Android Debug Bridge: https://developer.android.com/tools/adb
[11]
Эта статья XDA Developer Сообщения: https://www.xda-developers.com/install-adb-windows-macos-linux/