Практические уроки от создания встроенного искусственного интеллекта в 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

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

Управленческая структура для эффективного руководства агентами искусственного интеллекта
Гайды

Управленческая структура для эффективного руководства агентами искусственного интеллекта

Бывший ведущий backend-разработчик отмечает стагнацию продуктивности ИИ-агентов и предлагает фреймворк, основанный на трёх дисциплинах: кибернетике, теории информации и менеджменте. Фреймворк детализирует два операционных режима: Капитан и Архитектор.

OpenClawRadar
12GB VRAM 基准测试:在 RTX 4070 Super 上运行 Qwen 3.6 和 Gemma 4 模型
Гайды

12GB VRAM 基准测试:在 RTX 4070 Super 上运行 Qwen 3.6 和 Gemma 4 模型

Пользователь Reddit делится подробными бенчмарками скорости для Qwen3.6-35B-A3B, Qwen3.6-27B, Gemma 4 26B и Gemma 4 31B на 12 ГБ RTX 4070 Super с оптимизированными настройками llama.cpp.

OpenClawRadar
Практические шаблоны рабочего процесса для надежного кодирования ИИ в проектах с несколькими файлами
Гайды

Практические шаблоны рабочего процесса для надежного кодирования ИИ в проектах с несколькими файлами

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

OpenClawRadar
Запись на Reddit: Разработчикам нужны лучшие практики работы с ИИ, а не просто лучшие инструменты
Гайды

Запись на Reddit: Разработчикам нужны лучшие практики работы с ИИ, а не просто лучшие инструменты

В посте на Reddit утверждается, что недовольство разработчиков инструментами ИИ для написания кода проистекает из плохих практик составления промптов, а именно из использования «сырых промптов» без контекста или структуры. Автор рекомендует использовать каркасы, такие как CLAUDE.md, и структурированные рабочие процессы для получения готового к производству кода от Claude.

OpenClawRadar