Здравствуй читатель.
Как ты уже мог заметить, некоторые статьи на этом канале, так или иначе касались инструментов и различных решений для возможности автономного существования и альтернативных видов связи на случай каких то форс-мажоров, будь то глобальный блэкаут или локальные отключения интернета.
Надеюсь какие то из этих статей уже принесли пользу читателям.
С момента их публикации прошло не так много времени но технологии успели убежать вперёд, появились новые производительные микрочипы, новое программное обеспечение позволяющее создавать и использовать возможности железяк. В области нейросетей нынче сенсация за сенсацией, так что скорей всего эта статья тоже устареет к моменту её публикации)
Рассматривать сценарии глобальных катастроф с метеоритами, ядерными грибами, землетрясениями и наводнениями мы не будем... в этот раз будем поскромнее и представим, что я просто попал в неловкую ситуацию, например:
- в очередной раз отключили интернет из за БПЛА;
или
- на даче в результате грозы, снова отключили электричество, света нет, роЛтер приуныл :)
телефон есть, НО отсутствует возможность что либо "гуглить" 📶🚫
Вот тут мне на помощь приходят "Большие Языковые Модели" (LLM)
Хорошо что, перед тем как попасть в эту неловкую ситуацию, благодаря этому Дзен каналу и донатам от некоторых своих Уважаемых читателей, я приобрёл для своих экспериментов
Vivo IQOO 10 NEO
Заказал, Получил, Тестируем...
Для начала разберём процесс установки больших языковых моделей на свой телефон, для локального использования:
1) Прежде всего необходимо установить эмулятор терминала Termux с F-Droid или Github репозитория
2) Предоставить доступ к хранилищу куда будем загружать LLM модели и подтянуть необходимые зависимости для компиляции.
Выполнив в терминале следующие команды:
termux-setup-storage
pkg update && pkg upgrade -y
pkg install git cmake clang build-essential wget python -y
3) Клонируем репозиторий llama.cpp с официальной ветки проекта
( или из нашего форка )
И запускаем процесс компиляции:
git clone https://github.com/sw3nlab/llama.cpp
cd llama.cpp
cmake -B build
cmake --build build --config Release
После успешной сборки, среди прочих файлов в директории:
llama.cpp/build/bin
Можно будет увидеть заветные бинарники: llama-cli и llama-server
Думаю по окончаниям файлов интуитивно понятно что llama-cli - это утилита для работы с LLM из интерфейса командной строки.
А llama-server - это утилита стартующая сервер для работы с LLM из браузера.
Разберём оба варианта запуска
4) Осталось загрузить LLM модель для своих тестов, в нашем репозитории на HuggingFace я собрал несколько моделей которые приведены в данной статье, которыми пользовался сам и которые на мой взгляд достойны внимания.
- Madlad 400 (переводчик)
- DeepSeek R1 0528 qwen3 8B (поисковик по общим вопросам)
- MedGemma 4B (терапевт советчик)
- CodeGemma 7b (программист советчик)
mkdir LLM
cd LLM
wget https://huggingface.co/cyberunit/DeepSeek-R1-0528-Qwen3-8B-Q4_K_M-GGUF/resolve/main/deepseek-r1-0528-qwen3-8b-q4_k_m.gguf
После загрузки нужной модели можно приступать к её локальному тестированию.
А - Автономность
Чтоб всё было честно и никто из нас не подсматривал ответы в интернете :) можно перевести свой телефон в режим полёта ✈️
Переходим в каталог с нашими ранее откомпилеными бинарями и запускаем ./llama-cli в консольном режиме с моделью смеси экспертов от DeepSeek
cd llama.cpp/build/bin
./llama-cli -m /LLM/deepseek-r1-0528-qwen3-8b-q4_k_m.gguf -p "Привет, перечисли планеты Солнечной системы"
CTRL+C
Теперь пробуем узконаправленую модель MedGemma от Google DeepMind, в этот раз с веб интерфейсом
Загружаем модель и
выполняем:
cd LLM
wget https://huggingface.co/cyberunit/medgemma-4b-pt-Q4_K_M-GGUF/resolve/main/medgemma-4b-it-q4_k_m.gguf
cd ~/llama.cpp/build/bin
./llama-server -m /LLM/medgemma-4b-it-q4_k_m.gguf
и переходим в браузере по адресу:
http://127.0.0.1:8080/
Внимание! Хочу обратить ваше внимание на то, что я ни в коем случае не призываю вас доверять всему, что пишет вам нейросеть. И руководствоватся её советами. Эта статья просто демонстрирует возможности локального запуска на мобильных устройствах.
По узким направлениям возможно лучше выбирать узконаправленную модель.
Отталкиваясь от того, в какой области у вас чаще всего будут возникать вопросы.
На последок попробуем с помощью той же Gemma 3 от Google распознать гос.номера на фотографии случайного крузака найденого в открытом доступе на Yaндекс картинках.
Инференс конечно занял порядка 4 минут и стоил мне 3% заряда аккумулятора, но результат на лицо
Всего доброго !
Лайки, Подписки, Донаты