Llama.cpp на Android: Туториал для Snapdragon 888 и 8 ГБ ОЗУ | AiManual
AiManual Logo Ai / Manual.
03 Янв 2026 Гайд

Llama.cpp на телефоне: Запускаем 7B-модель на Snapdragon 888 и 8 ГБ ОЗУ без облаков

Пошаговая инструкция по установке llama.cpp и запуску LLM моделей на Android через Termux. Работает на Snapdragon 888 с 8 ГБ ОЗУ.

Запустить большую языковую модель на телефоне - это не магия, а просто правильная настройка. Если у вас Android с 8 ГБ ОЗУ и процессором уровня Snapdragon 888, то 7B-модель (в 4-битном квантовании) будет работать с комфортной скоростью 10-15 токенов в секунду. Не как в кино, но вполне пригодно для ответов на вопросы или генерации текста.

Почему это работает? Потому что современные флагманы 2021-2022 годов по производительности CPU примерно равны десктопным процессорам 5-летней давности. А именно на таком железе llama.cpp и задумывался.

Ваш телефон должен быть не залочен (bootloader unlocked) или рутирован. Без этого Termux не получит доступ к полному набору утилит. Некоторые производители блокируют компиляцию.

Что вы получите в итоге

1. Полноценный llama.cpp бинарник, скомпилированный под ARM64
2. Рабочий веб-сервер на порту 8080 с API, совместимым с OpenAI
3. Возможность запускать модели до 7B параметров (в 4-битном формате)
4. Доступ к LLM через браузер на этом же телефоне или с других устройств в сети

Шаг 0: Подготовка - очистите место

Модель 7B в формате Q4_K_M занимает около 4 ГБ. Плюс Termux, плюс исходники llama.cpp, плюс компилятор и зависимости. Нужен минимум 10 ГБ свободного места. Если у вас телефон на 128 ГБ - проблем нет. Если на 64 - лучше подключить карту памяти.

💡
Не пытайтесь установить это на рабочий телефон, где каждый гигабайт на счету. Либо выделите отдельное устройство, либо будьте готовы к чистке кэша приложений.

1 Установка Termux с правильными репозиториями

Первая ошибка 90% пользователей - скачивают Termux из Google Play. Там версия 2020 года, которая не обновляется. Нужен Termux из F-Droid.

  1. Установите F-Droid с официального сайта fdroid.org
  2. В F-Droid найдите "Termux" (должен быть от Fredrik Fornwall)
  3. Установите, откройте, дайте все разрешения

Проверяем, что всё работает:

pkg update && pkg upgrade -y
pkg install git wget cmake python -y

Если команды выполняются без ошибок - хорошо. Если пишет "permission denied" - проверьте настройки разрешений Android для Termux.

2 Компиляция llama.cpp

Здесь начинается самое интересное. ARM процессоры в телефонах поддерживают не все инструкции, которые есть в x86. Некоторые оптимизации придётся отключить.

# Клонируем репозиторий
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

# Собираем
mkdir build && cd build
cmake .. -DLLAMA_METAL=OFF -DLLAMA_VULKAN=OFF -DLLAMA_CUBLAS=OFF \
  -DLLAMA_MPI=OFF -DLLAMA_BLAS=OFF -DCMAKE_BUILD_TYPE=Release \
  -DLLAMA_NATIVE=OFF -DLLAMA_AVX=OFF -DLLAMA_AVX2=OFF \
  -DLLAMA_AVX512=OFF -DLLAMA_FMA=OFF -DLLAMA_F16C=OFF

make -j4

Флаги -DLLAMA_AVX=OFF и подобные отключают векторные инструкции, которых нет в ARM. Флаг -DLLAMA_NATIVE=OFF важен - он отключает автоматическое определение CPU возможностей, которое может сломать сборку.

Компиляция займёт 10-15 минут на Snapdragon 888. Если процесс завис на несколько часов - что-то пошло не так. Прервите комбинацией Ctrl+C и проверьте, хватает ли ОЗУ.

Проверяем, что бинарник создался:

cd ..
ls -lh ./build/bin/main
# Должен быть файл размером ~5-10 МБ

3 Загрузка модели

Не пытайтесь скачивать модели в формате .safetensors или .bin напрямую. Они не совместимы с llama.cpp. Нужен конвертированный формат GGUF.

Есть два пути:

  • Скачать готовую - проще, но выбор ограничен
  • Сконвертировать самому - можно любую модель, но нужно больше места и Python на ПК

Для первого запуска рекомендую готовую модель Mistral 7B:

# Создаём папку для моделей
cd ~
mkdir models && cd models

# Скачиваем Mistral 7B Instruct Q4_K_M (лучшее качество/размер)
wget https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.2-GGUF/resolve/main/mistral-7b-instruct-v0.2.Q4_K_M.gguf

Файл весит около 4 ГБ. Скачивание займёт время в зависимости от скорости интернета. Если обрывается - используйте wget -c для продолжения.

💡
Формат Q4_K_M - оптимален для телефонов. Q8_XX будет точнее, но в 2 раза больше. Q2_K меньше, но качество заметно хуже. Q4_K_M - золотая середина.

4 Первый запуск и тест

Перед запуском сервера проверяем, что модель работает в интерактивном режиме:

cd ~/llama.cpp
./build/bin/main -m ../models/mistral-7b-instruct-v0.2.Q4_K_M.gguf \
  -p "Building a website in HTML" -n 256 -t 4 -c 2048

Параметры:

Флаг Что делает Значение для Snapdragon 888
-t Количество потоков 4 (оптимально, больше - падение производительности)
-c Размер контекста 2048 (больше - съедает ОЗУ)
-ngl Слои на GPU 0 (на Android GPU ускорение не работает)

Если видите текст, генерируемый моделью - всё работает. Скорость должна быть 8-12 токенов в секунду. Медленно? Это телефон, что вы хотели.

5 Запуск веб-сервера

Интерактивный режим неудобен. Запускаем сервер:

./build/bin/server -m ../models/mistral-7b-instruct-v0.2.Q4_K_M.gguf \
  -c 2048 --host 0.0.0.0 --port 8080 -t 4

Теперь откройте браузер на телефоне и перейдите по адресу http://localhost:8080. Увидите веб-интерфейс Chat UI.

Если хотите подключиться с другого устройства в той же Wi-Fi сети:

# Узнайте IP телефона
ifconfig

Затем на компьютере откройте http://[IP-телефона]:8080

Брандмауэр Android может блокировать входящие подключения. Если с компьютера не подключается, проверьте настройки брандмауэра или используйте несколько телефонов в кластере как альтернативу.

Оптимизация: Как выжать максимум

8 ГБ ОЗУ на Android - это не 8 ГБ на Linux. Система резервирует память под себя. Вот как распределяется память на Snapdragon 888 с 8 ГБ:

  • Система Android: 2-3 ГБ
  • Фоновые приложения: 1-2 ГБ
  • Доступно для llama.cpp: 3-4 ГБ

Что делать:

  1. Закройте все приложения перед запуском
  2. Используйте -c 1024 вместо 2048 (контекст в 2 раза меньше, но памяти хватит)
  3. Включите zRAM в настройках разработчика (компрессия ОЗУ)
  4. Не запускайте сервер и веб-интерфейс одновременно на одном устройстве

Какие модели реально работают

Модель Размер (Q4_K_M) Токенов/сек Качество
Phi-2 2.7B 1.7 ГБ 25-30 Среднее
Mistral 7B 4.2 ГБ 10-15 Хорошее
Llama 3 8B 4.8 ГБ 8-12 Отличное

Phi-2 быстрее, но тупее. Mistral - баланс. Llama 3 8B - лучшая, но требует почти всю доступную память.

Почему не работает GPU ускорение

Vulkan в llama.cpp теоретически поддерживается, но на Android:

  • Драйвера GPU у каждого производителя свои
  • Память GPU и CPU не унифицирована (UMA)
  • Тепловыделение - GPU греется сильнее CPU

Если очень хочется GPU, смотрите клиенты с аппаратным ускорением. Но там свои ограничения.

Типичные проблемы и решения

1. "killed" при запуске

Android убивает процесс, если не хватает памяти. Решение:

# Уменьшаем контекст
./build/bin/main -m model.gguf -c 1024 -t 4

# Или закрываем всё лишнее
pkill -9 chrome
pkill -9 spotify

2. Очень медленная генерация (1-2 токена/сек)

Проверьте частоту CPU:

# Установите CPU-Z или посмотрите в настройках разработчика
# Если CPU троттлит (перегревается) - снимите чехол, положите на холодную поверхность

3. Termux падает при компиляции

Не хватает оперативной памяти. Добавьте файл подкачки:

# Создаём файл подкачки 2 ГБ
dd if=/dev/zero of=$HOME/swapfile bs=1M count=2048
mkswap $HOME/swapfile
swapon $HOME/swapfile

Что дальше?

Рабочий llama.cpp на телефоне - это только начало. Дальше можно:

  1. Подключить LocalAI для работы с PDF
  2. Настроить AI-ассистента с памятью
  3. Использовать как бэкенд для мобильного приложения
  4. Построить кластер из нескольких телефонов

Главное помнить: это эксперимент. Не ждите стабильности как на сервере. Телефон может перегреться, система - убить процесс, а батарея - сесть за час.

Но когда работает - это магия. Собственный ИИ в кармане, без интернета, без подписок. Стоит потраченного времени.