Onnx Runner

Onnx Runner

This example demonstrates how to integrate ONNX and load the TinyStories-33M model on a mobile device. It showcases a locally running chatbot and the process of local text generation based on the TinyStories-33M model.

RU | EN

OnnxRunner

Описание приложения

Пример демонстрирует способ подключения ONNX и загрузку модели TinyStories-33M на мобильном устройстве. Показывает работу локально работающего чат-бота и процесс локальной генерации текста на основе модели TinyStories-33M.

Статус сборки:

  1. example - pipeline status
  2. dev - pipeline status

Содержание

Совместимость

Проект совместим с актуальными версиями ОС Аврора.

Особенности сборки

Сборка проекта осуществляется с использованием системы сборки CMake. Проект использует пакетный менеджер Conan для получения зависимостей, включая библиотеку MLPack и её зависимости.

Информация о ветках

Версии приложения соответствуют соглашению об наименовании веток

Установка и запуск

Установка и запуск производятся согласно инструкции Сборка примера.

Скриншоты

screenshots

Варианты использования

Приложение демонстрирует функциональность 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-пакета.
  • Каталог 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.

Кодекс поведения — это действующий набор правил компании «Открытая Мобильная Платформа», который информирует об ожиданиях по взаимодействию между членами сообщества при общении и работе над проектами.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.