OnnxRunner
Описание приложения
Пример демонстрирует способ подключения ONNX и загрузку модели TinyStories-33M на мобильном устройстве. Показывает работу локально работающего чат-бота и процесс локальной генерации текста на основе модели TinyStories-33M.
Статус сборки:
Содержание
- Совместимость
- Особенности сборки
- Информация о ветках
- Установка и запуск
- Скриншоты
- Варианты использования
- Структура проекта
- Правила использования и участие в разработке
Совместимость
Проект совместим с актуальными версиями ОС Аврора.
Особенности сборки
Сборка проекта осуществляется с использованием системы сборки CMake. Проект использует пакетный менеджер Conan для получения зависимостей, включая библиотеку MLPack и её зависимости.
Информация о ветках
Версии приложения соответствуют соглашению об наименовании веток
Установка и запуск
Установка и запуск производятся согласно инструкции Сборка примера.
Скриншоты
Варианты использования
Приложение демонстрирует функциональность LLM на примере генерации текста:
Генерация текста
- Модель: TinyStories-33M (≈33M параметров), компактная GPT-2 совместимая LLM для генерации коротких историй
- Особенности: GPT-2 BPE токенизация (~50k словарь), постепенная генерация токен за токеном, оптимизированная ONNX-версия с поддержкой квантизации INT8 для уменьшения размера модели
- Источник модели: Hugging Face — roneneldan/TinyStories-33M
- Конвертация в ONNX: была произведена при помощи скрипта scripts/universal_onnx_converter.py
Структура проекта
Проект имеет стандартную структуру приложения на базе C++ и QML для ОС Аврора с возможностями LLM.
- Файл CMakeLists.txt описывает структуру проекта для системы сборки CMake и зависимости ONNX Runtime.
- Каталог icons содержит иконки приложения для поддерживаемых разрешений экрана.
- Каталог qml содержит исходный код на QML и ресурсы интерфейса пользователя.
- Каталог cover содержит реализации обложек приложения.
- Каталог icons содержит дополнительные иконки интерфейса пользователя.
- Каталог pages содержит страницы приложения.
- Файл OnnxRunner.qml предоставляет реализацию окна приложения.
- Каталог rpm содержит настройки сборки rpm-пакета.
- Файл ru.auroraos.OnnxRunner.spec используется инструментом rpmbuild.
- Каталог src содержит исходный код на C++ с интеграцией ONNX Runtime.
- Файл main.cpp является точкой входа в приложение.
- Файл llmrunner.h заголовочный файл, определяющий интерфейс LLM сервиса.
- Файл llmrunner.cpp реализация LLM вывода с использованием ONNX Runtime.
- Файлы chatmodel.h и chatmodel.cpp управление сообщениями чата.
- Файлы chatmessage.h и chatmessage.cpp обработка отдельных сообщений.
- Каталог translations содержит файлы перевода интерфейса пользователя.
- Каталог models содержит ONNX модели и файлы токенизатора.
- Каталог scripts содержит скрипты для конвертации моделей и инструкции по использованию. См. scripts/README.ru.md.
- Файл ru.auroraos.OnnxRunner.desktop определяет отображение и параметры запуска приложения.
Правила использования и участие в разработке
Исходный код проекта предоставляется по лицензии, которая позволяет использовать его в сторонних приложениях.
Для участия в разработке проекта, пожалуйста, прочитайте соглашение участника. Если вы планируете предоставить свой собственный исходный код для включения в проект, вам необходимо принять условия CLA.
Информация об участниках указана в файле AUTHORS.
Кодекс поведения — это действующий набор правил компании «Открытая Мобильная Платформа», который информирует об ожиданиях по взаимодействию между членами сообщества при общении и работе над проектами.