Практические уроки от создания встроенного искусственного интеллекта в React Native

✍️ OpenClawRadar📅 Опубликовано: 25 февраля 2026 г.🔗 Source
Практические уроки от создания встроенного искусственного интеллекта в React Native
Ad

Генерация текста с помощью LLM

Используйте llama.rn для запуска моделей GGUF в React Native. Эта библиотека оборачивает llama.cpp и предоставляет нативные биндинги для Android (JNI) и iOS (Metal). Потоковая передача токенов через коллбэки работает хорошо.

Управление памятью критически важно: модель 7B Q4 требует ~5.5 ГБ оперативной памяти во время работы (размер файла × 1.5 для KV-кэша и активаций). Используйте 60% оперативной памяти устройства как жёсткий лимит, предупреждайте при 50% и блокируйте при 60%, чтобы предотвратить закрытие приложения операционной системой.

Ускорение на GPU использует OpenCL на Android (графические процессоры Adreno) и Metal на iOS. Flash attention падает с GPU-слоями > 0 на Android, поэтому это нужно блокировать в коде. Квантование KV-кэша (f16/q8_0/q4_0) даёт больший прирост производительности, чем GPU, для большинства устройств; переход с f16 на q4_0 примерно утроил скорость инференса в тестах.

Генерация изображений с Stable Diffusion

Это платформо-специфичная задача, и нет единой библиотеки, покрывающей обе платформы.

  • Android: Используйте MNN (фреймворк от Alibaba, работает на CPU, поддерживает все ARM64-устройства) и QNN (Qualcomm AI Engine, ускорение на NPU, только для Snapdragon 8 Gen 1 и новее). QNN в 3 раза быстрее, но работает только на новых чипах Qualcomm. Реализуйте автоматическое определение возможностей с резервным вариантом.
  • iOS: Используйте пайплайн ml-stable-diffusion от Apple с ускорением на Core ML и Neural Engine. Палитризованные модели (~1 ГБ, 6-бит) отлично подходят для устройств с ограниченной памятью; модели с полной точностью (~4 ГБ, fp16) быстрее на ANE, но требуют запаса памяти.

Реальные тесты: 5–10 секунд на NPU Snapdragon, 15 секунд на CPU флагманов, 8–15 секунд на iOS ANE для изображений 512×512 за 20 шагов. Показывайте предпросмотр в реальном времени каждые N шагов денойзинга, чтобы пользователи не думали, что приложение зависло.

Ad

Транскрипция голоса с Whisper

whisper.rn оборачивает whisper.cpp и легко интегрируется. Предлагайте несколько размеров моделей (Tiny/Base/Small) и позволяйте пользователям выбирать компромисс между скоростью и точностью. Частичная транскрипция в реальном времени (слова появляются по мере речи) создаёт нативное ощущение.

Буферизуйте аудио в нативном коде и очищайте после транскрипции; не записывайте аудиофайлы на диск, если важна конфиденциальность.

Компьютерное зрение с мультимодальными моделями

Моделям зрения нужны два файла: основной GGUF и сопутствующий mmproj (мультимодальный проектор). Обрабатывайте это прозрачно: автоматически определяйте модели зрения, автоматически скачивайте mmproj, отслеживайте их как единое целое и ищите в директории моделей во время выполнения, если связь нарушена. Скачивайте оба файла параллельно, чтобы сократить время загрузки почти вдвое для 2B модели зрения.

SmolVLM на 500M параметров — оптимальный выбор для мобильных устройств, с ~7 секундами на флагманских устройствах, способный читать документы и описывать сцены.

Вызов инструментов для локальных агентских циклов

Модели, поддерживающие вызов функций, могут использовать инструменты (веб-поиск, калькулятор, дата/время, информация об устройстве) через автоматический цикл: LLM генерирует, парсит вызовы инструментов, выполняет их, вставляет результаты обратно в контекст, LLM продолжает. Ограничьте максимум 3 итерациями, 5 общими вызовами, чтобы предотвратить бесконечные циклы.

Поддерживайте два пути парсинга: крупные модели выводят структурированные JSON-вызовы инструментов нативно через llama.rn, а меньшие модели выводят XML вроде <tool_call>. Определяйте поддержку инструментов при загрузке модели, проверяя шаблон чата jinja; если модель не поддерживает инструменты, не вставляйте их определения в системный промпт, чтобы избежать галлюцинаций. Калькулятор использует рекурсивный нисходящий парсер — никогда не используйте eval().

Классификация намерений

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

📖 Read the full source: r/LocalLLaMA

Ad

👀 Смотрите также

Как исправить ошибку OpenClaw «Cannot find module» после обновления
Гайды

Как исправить ошибку OpenClaw «Cannot find module» после обновления

После обновления OpenClaw с версии 2026.3.24 до 2026.4.5 пользователи сталкиваются с ошибкой 'Cannot find module @buape/carbon'. Решение заключается в ручном запуске скрипта пост-установки вместо глобальной установки пакета.

OpenClawRadar
Onboarding в OpenClaw: как правильно обучить своего AI-агента
Гайды

Onboarding в OpenClaw: как правильно обучить своего AI-агента

r/clawdbot community
Список ресурсов OpenClaw, составленный на основе сообщества
Гайды

Список ресурсов OpenClaw, составленный на основе сообщества

Репозиторий на GitHub собирает практические ресурсы по OpenClaw, охватывающие настройку, конфигурацию, системы памяти, безопасность, навыки, совместимость моделей и ссылки на сообщества, чтобы помочь разработчикам избежать распространённых пробелов в информации.

OpenClawRadar
Руководство по настройке OpenClaw на VPS от Hostinger
Гайды

Руководство по настройке OpenClaw на VPS от Hostinger

Пошаговое руководство по развертыванию OpenClaw на VPS от Hostinger, подключению AI-API от OpenAI и Entropics, а также интеграции с Telegram для круглосуточной работы.

OpenClawRadar