Воскресное развлечение: разработка машинного обучения на мобильном телефоне

Можно ли запускать обучение и вывод scikit-learn непосредственно на мобильном устройстве? Да, это так, и этот пост в блоге предназначен для всех, кто любит такие эксперименты. Я показываю пошаговую установку scikit-learn на мобильное устройство, обучение новой модели и вывод. Хотя вся установка в основном представляет собой просто забавный проект, она предлагает несколько идей для будущего использования.

Случаи использования

Мой основной вариант использования — повеселиться во время исследования «возможно ли это?» задача. Еще одна цель — оценка того, чего можно добиться непосредственно по телефону. Последняя цель — проверка работоспособности решения.

Samsung DeX

У меня есть старый телефон Samsung Galaxy S8, который я иногда использую для игр с Android. На этот раз я решил снова протестировать после долгого времени Samsung DeX, целью которого является преобразование вашего мобильного телефона в настольный ПК после подключения мобильного телефона к дисплею, клавиатуре и мыши. Хотя есть некоторые ограничения на выполнение активных задач/программ, я очень доволен тем, как это работает.

Так что мне попробовать?

После запуска DeX я продолжаю проверять, что работает. Я случайно обнаружил приложение Termux на своем мобильном телефоне. Это эмулятор терминала, который я установил несколько лет назад, а потом забыл о нем. Тем не менее, это момент, когда искра идеи зажгла мое любопытство. Я открываю терминал Termux и пробую, на что он способен, с помощью классического «меткого обновления и меткого обновления». Вау, что-то происходит, и это обновление библиотек. Давайте попробуем другую команду «pkg install python». Оно работает! Я успешно установил Python, и даже первые простые попытки установить lib через pip3 увенчались успехом.

Многообещающие моменты

Одна из причин, по которой мне нравится идея DeX, — это мобильность и надежда, что я смогу разрабатывать свои приложения где угодно. К сожалению, до сих пор нет IDE, похожей на IntelliJ Idea, для Android, поэтому мне нужно искать в другом месте. Выбор состоит в том, чтобы протестировать установку Jupyter Lab и….. она работает и выглядит пригодной для использования!!! Следующим шагом будет установка Git и Lab Extensions, которые прекрасно работают. Разработка Python в Jupyter Lab также работает без проблем.

Что может пойти не так?

Лаборатория Jupyter работает, и я собираюсь отпраздновать победу, обучив простую модель scikit-learn на хорошо известном наборе данных Титаник. Поэтому я открываю новый блокнот, загружаю данные и запускаю:

import pandas as pd
... Missing modules error ...

Хорошо, нет проблем, я могу установить недостающие модули….

pip install pandas
… Crash … Missing numpy ...

Хм…

pip install numpy
... Crash...

Хм, это не выглядит хорошо. Это та часть, когда я серьезно сомневаюсь в удобстве использования решения, но я не хочу так просто сдаваться. Таким образом, я продолжаю классический поиск в Google любых подсказок. Я прочитал много страниц и могу поделиться пошаговым руководством руководством:

1. !!! install the latest version of Termux !!!
2. continue with the installation of the other libraries
3. Python installation
  pkg install tur-repo
  pkg upgrade
  pkg update
  pkg install python
3. Pandas, Jupyter Lab and Git
  pkg install python-numpy
  pkg install python-pandas
  pip install --upgrade jupyterlab jupyterlab-git
  pip install --upgrade pip
  pkg install lzmq
  pkg install libzmq
  pip install --upgrade jupyterlab jupyterlab-git
4. The most challenging part is the installation of the scikit-learn
  pkg install scipy
  pkg install python-scipy
  pip install wheel
  pip install setuptools
  MATHLIB="m" pip install -U scikit-learn --no-build-isolation

Установка всех библиотек — это немного алхимии, потому что вам нужно искать наличие пакетов в pkg и pip. Пожалуйста, рассчитывайте на довольно длительное время установки из-за отсутствия библиотек предварительной сборки. Поэтому ваш телефон должен собрать все для вас. Termux хранит в своих репозиториях только последнюю версию, поэтому я получаю Python версии 3.11. Вся настройка требует времени, но это выполнимо. Ура!

Выводы

Скорость. Samsung S8 был выпущен в 2017 году и стал первым телефоном с поддержкой DeX. Несмотря на свой возраст, яприятноудивлен скоростью обучения и логического вывода. Жду подобных экспериментов с последними флагманскими моделями вроде Samsung Fold4. Одним из узких мест DeX/Android при использовании рабочего стола является ограничение количества активных процессов. Вы должны убедиться, что, например: компиляция текущей библиотеки не остановится в середине выполнения.

Удобство использования: хотя это может быть просто забавный проект, он показал, что я могу использовать Git и лабораторию Jupyter прямо на своем мобильном телефоне. В сочетании с внешним монитором/телевизором он может легко заменить ноутбук/рабочий стол для быстрой проверки кода и даже некоторой разработки Python.

Будущее. Лучше всего то, что мобильное устройство + внешний монитор + AWS Sagemaker Studio можно беспрепятственно использовать для разработки машинного обучения любого масштаба.