Небольшая доработка шаблона проекта llama.cpp для ОС Аврора 5.1+
Недавно был опубликован проект запуска llama.cpp на ОС Аврора от ОМП:
Я немного его доработал (в основном внешний вид) и выкладываю исходный код и сборку aarch64 для устройств с количеством ОЗУ больше 6 Гб:
Исходники (для сборки нужен установленный Conan в IDE):
zip
LLMrunner_KVADRA-sources.zip746.09 Kb
Установка Conan в IDE:
(я ставил по шагу 1, проверьте, может в шаге 1 пункт 1 и 2 не нужны)
Готовая сборка aarch64 для ОС Аврора 5.1+ (сборка SDK 5.1.1.60):
rpm
ru.auroraos.LlmRunner-1.0.0-1.aarch64.rpm2.11 Mb
Устанавливаем / собираем приложение и качаем модель (2.84 Гб) в папку Downloads или Documents пользователя:
Имя файла (скачать по ссылке выше и поместить в папку Downloads или Documents):
NVIDIA-Nemotron-3-Nano-4B-Q4_K_M.gguf
Список небольших доработок:
- следование за выводом (прокрутка listview к выводу - к низу последнего элемента в списке, где формируется ответ модели)
- Label заменены на TextArea, теперь можно копировать текст промтов и ответов модели
- доработка обложки
- небольшие изменения в интерфейсе
- более полная русификация (доработка перевода)
Назначение приложения: исследование возможностей LLM на мобильных устройствах, развлечение
Модель включена сюда думающая, сначала идут размышления (заканчиваются, когда увидите </think>). Размышления хорошо отображают качество запроса (промта) - по содержанию размышлений вы сможете дополнить или изменить запрос (промт). Либо по размышлениям вы сможете понять, каким качественно будет ответ - знает модель материал вопроса или не знает.
Практическое применение: подготовка кода (например, QML, C++, JS) по шаблону (шаблон вставляется в виде текста в промт), подготовка sql-запросов, создание кусков кода на требуемом языке (я пробовал qml и c++, но модель по многим вопросам плавает), просто генерация текста по запросу.
Сами спросите, что она может: "Расскажи подробнее о себе"
Известные баги:
- само размышление не выделяется, о его окончании говорит только </think>
- форматирование вывода модели пока не происходит, то есть нет форматирования таблиц, выделений элементов как в оригинальной веб-версии llama.cpp
- иногда уходит в зацикливание, но не часто (всё-таки это ужатая версия до 2.8 Гб)
- это не баг, а особенность - при работе кушац батарею и греемся, ну вы понимаете, вычислительная нагрузка достаточно высокая для мобильного устройства
Помощь при сборке проекта и консультации оказал Даниил Маркевич из ОМП - огромное спасибо за это великолепное приложение, я всего лишь чууточку его доработал (самую малость)!
P.S. Сборку armv7 для устройств типа T1, T800 не выкладываю - эта модель там работать не будет, есть модель для этих устройств поменьше, на днях выложу