LLMMobileKotlinAndroid

Архитектура локального RAG на Android

·MAGMA

Что мы строим

Полностью автономный конвейер генерации данных с извлечением информации (RAG) на платформе Android. Без обращений к серверу и передачи данных за пределы устройства.

К концу данного руководства вы поймете, как объединить квантованные модели встраивания через ONNX Runtime Mobile, векторное индексирование в SQLite с помощью библиотеки sqlite-vec, интеллектуальное разбиение документов с учетом ограничений памяти мобильных устройств и потоковую обработку вывода токенов локальной языковой модели (LLM).

Эта архитектура полезна при работе с конфиденциальными данными, такими как медицинские записи или финансовые документы, где отправка данных во внешнюю облачную среду может представлять риск безопасности.

Предварительные требования

Для выполнения данной инструкции вам потребуется:

  • Знание языка программирования Kotlin и фреймворка Jetpack Compose;
  • Настроенная среда разработки Android Studio с установленным пакетом Native Development Kit (NDK);
  • Квантованная модель встраивания формата ONNX (например, all-MiniLM-L6-v2 экспортированная в формат INT8);
  • Локальная языковые модель (LLM) формата GGUF с параметрами около 3 миллиардов и уровнем квантования Q4.

Шаг 1: Создание вложений с использованием ONNX Runtime Mobile

Встраивание текста является наиболее критичным этапом конвейера. Необходимо выбрать компактную модель, которая будет работать быстро (~200 мс на один фрагмент документа) и обеспечивать достаточно точное извлечение информации.

Используйте модель all-MiniLM-L6-v2, экспортируйте её в формат ONNX и примените динамическую квантизацию до уровня INT8. Это уменьшит размер модели примерно с 90 МБ до 23 МБ, сохранив приемлемое качество поиска.

Вернуться к блогу
Локальный RAG на Android: руководство по архитектуре — MAGMA