Как запустить локальную LLM (AI) в Android Studio

в 12:16, , рубрики: android studio, continue.dev, kotlin, lmstudio, local llm

Привет! Если вы мобильный разработчик и следите за AI-трендами, наверняка задумывались о том, как интегрировать языковые модели (LLM) в свои приложения прямо из Android Studio. В этой статье я расскажу, как это можно сделать быстро и просто, не полагаясь на внешние API и облачные решения.

🚀 О чём буду рассказывать

Я поделюсь пошаговой инструкцией о запуске локальной LLM на вашем компьютере и интеграции её в Android Studio. Мы разберёмся, как выбрать модель, подготовить окружение и как использовать.

🛠️ Пошаговый гайд

  • Выбор и загрузка модели

    • Требования к железу

    • Где найти модели и на что обратить внимание

    • Установка и настройка необходимых инструментов и библиотек

    • Какие модели лучше подходят для локального запуска

  • Настройка окружения

    • Настройка и запуск сервера для работы модели локально

  • Интеграция с Android Studio

    • Установка plugin-а Continue (и его проблемы)

    • Запуск и проверка работы прямо из Android Studio

🔍 Что ещё пробовал и выводы

  • Другие варианты запуска LLM на Android (ChatGPT, Cursor)

  • Что дальше?

    Готовы запустить собственный AI прямо у себя на рабочем столе? Тогда поехали! 🚀

    Как запустить локальную LLM (AI) в Android Studio - 1
  • Требования к железу

    Apple Silicon M-Chip с 16+ RAM (желательно от 32)

    Windows ПК с видеокартой NVIDIA/AMD (чем мощнее тем лучше)

  • Выбор и загрузка модели

    Есть прекрасный ресурс по моделям - https://huggingface.co/models, но сходу разобраться и понять, что нам нужно достаточно сложно, так же придется разбираться как их запускать через консоль и читать гайды, скрипты и тд. Хотелось бы этого избежать, особенно когда мы на стадии ознакомления в разными моделями. Для ознакомления - можно посмотреть :)

    Т.к. мы ленивые воспользуемся программой LM Studio. Поддерживает macOS, Windows, Linux. То что нам нужно. Качаем и устанавливаем.

    Как запустить локальную LLM (AI) в Android Studio - 2

    После запуска выбирайте Power User мод и кликайте на Discovery (иконка лупы)

    Как запустить локальную LLM (AI) в Android Studio - 3

В поиске будет большое количество моделей на выбор.
Так же обратите внимание на чекбоксы GGUF и MLX.
Для Apple Silicon (М1/М2/М3/М4) предпочтительнее использовать MLX, тк они должны работать лучше, но не всегда для нужной модели есть MLX модель (это не проблема, если модель маленькая).

Как запустить локальную LLM (AI) в Android Studio - 4

Так же при загрузке модели можно выбрать ее "урезанность". Пробуйте с самой маленькой, если все ок и позволяет железо пробуйте модель пожирнее и т.д.

Квантованные модели — это сжатые версии нейросетей, которые занимают меньше места и требуют меньше ресурсов для запуска (например, на слабом оборудовании).

Обычно они немного хуже оригинала по качеству: чем сильнее сжатие (чем ниже количество бит, например, 2, 4, 8), тем хуже работает модель. При этом 8-битные модели практически не отличаются от оригинала, а 4-битные дают хороший баланс между качеством и размером.

Важно помнить, что количество параметров влияет на качество даже сильнее, чем степень квантования. То есть модель с большим числом параметров, но более низким битом (например, квантованная 13B), чаще всего работает лучше, чем модель с меньшим числом параметров, даже если та вообще не сжата (например, оригинальная 7B).

Как запустить локальную LLM (AI) в Android Studio - 5

В этом примере я буду использовать модель Llama 3.1 8B Instruct 4bit.
(Если у вас слабое железо можно попробовать модель deepseek-coder-6.7b-instruct)

Выбираем и качаем.

Пока ждем загрузку...

Пока ждем загрузку...

Далее переходим в Developer вкладку и выбираем Select a model to Load. Выбираем нашу модуль и загружаем в память.

Как запустить локальную LLM (AI) в Android Studio - 7
  • Настройка окружения

    Когда наша модель прогрузится, нужно по порядку:
    1. Включить чекбокс CORS (открывает возможность для plugin-ов и веба)
    2. Server Port выбираем 11434 (это важно, об этом ниже в настройке плагина)
    3. Старуем сервер по чекбоксу.

Если все ок, то модель должна быть READY и в консоле мы увидим логи. Теперь ваша модель доступна по адресу http://127.0.0.1:11434.

Как запустить локальную LLM (AI) в Android Studio - 8
  • Интеграция с Android Studio

    На текущем момент в Android Studio есть много разных плагинов и большинство из них в активной разработке, поэтому их стабильность и документация оставлять желать лучшего.

    Вот несколько точно рабочих плагинов, которые поддерживают полный оффлайн:
    1. Continue
    2. Juine

    К сожалению, для Junie даже для оффлайн версии нужно регистрироваться и начинать триал, так же у них есть бага при которой невозможно начать даже триал из студии. Я пробовал впн и прокси на ноутбуке, на роутере. Менял страны и регионы. Не завелось. Плюс немного смущает необходимость регистрации и старта триала для оффлайн версии. Поэтому выбор пал на Continue.

  • Установка плагина Continue

    Переходим по ссылке и устанавливаем плагин в Android Studio (моя версия на момент написания статьи Android Studio Meerkat | 2024.3.1 Patch 1). У вас должна появиться вкладка. Кликаем на нее.

    Как запустить локальную LLM (AI) в Android Studio - 9

    Большая вероятность что у вас будет отображаться ошибка Connection Error / Error в окне этого плагина. (потому что Java runtime that has no support for JCEF, issue)

    Для решения этой проблемы нам нужно выбрать рантайм с поддержкой JCEF:

  • Здесь нужно быть осторожным, тк вы можете сломать Android Studio :)

  •  Find Action

  • Choose Boot Runtime for IDE

  • Тут выбирайте любой рантайм с with JCEF (я выбрал тот что на скриншоте)

    Как запустить локальную LLM (AI) в Android Studio - 10

    Если сломали Android Studio, попробуйте несколько разных версий с JCEF. Если совсем сломали, нам нужно удалить файл studio.jdk в директории Android Studio. Где найти директории - тут. У меня завелось все с 1го раза.

  • Далее выбираем в меню плагина Local Assistant. (должен быть выбран по дефолту, если не логинились)

  • Нажимаем на Add chat Models и далее выбираем LM Studio и Autodetect и нажимаем Connect.

    Как запустить локальную LLM (AI) в Android Studio - 11
    Как запустить локальную LLM (AI) в Android Studio - 12
  • В Android Studio должен открыться config.yaml. Обратите внимание на путь apiBase - он содержит /v1/.

    Как запустить локальную LLM (AI) в Android Studio - 13

В конфиге мы можем настроить нашу модель под разные роли. Теперь запрос из Android Studio перенаправляется на локальный сервер. Проверяем - все ок.

Как запустить локальную LLM (AI) в Android Studio - 14
  • Более подробно про роли:
    Нажимаем на иконку куба (Models). Вызжает набор dropdown менюшек с выбором моделей для каждой опции. Здесь мы можем настроить поведение для каждой модели.
    На скриншоте включен chat (общение), edit (редактирование в коде), apply (применение из чата) и autocomplete (умное автодополнение). Если фичи не нужны - отключаем (можно закоменнтить в config.yaml). Так же можно для чата использовать большую модель, а для autocomplete-a более быструю, но тогда в памяти будет висеть 2 модели, поэтому исходите из своего железа и нужд.

Как запустить локальную LLM (AI) в Android Studio - 15

Так же в том же меню в Tools можно настроить поведение для каждой операции.

Как запустить локальную LLM (AI) в Android Studio - 16

У плагина от Continue тож есть баги. Например, у них есть в плагине хардкод для Ollama на port и из студии он слушает именно - 11434. Видел похожие issues, поэтому что бы не ждать фиксов важно было выбрать именно его.

🔍 Что ещё пробовал

Платный ChatGPT:
Можно использовать его через нативное приложение с фичами apply code, но с AS у меня дружит плохо иногда не применяет код или падает при переключении вкладок. Потенциально ChatGPT (OpenAPI), можно использовать и с текущим сетапом в плагине Continue, просто переключаться на онлайн модель.

Платный Cursor:
Под капотом есть несколько моделей, но лучше всего у них работает та же claude-3.7. Переключаться на gpt-mini/o4-mini и подобные особо смысла нет. Так же достаточно недоубно работать в их IDE. Да, они поддерживают расширения для работы с Gradle, Kotlin. Но нормально пользоваться и запускать Cursor из своего окружения они не могут. Я столкнулся с тем, что у меня были запущены 2 Gradle и java - один из Cursor, другой из под AS. И они выжирали почти всю память. Ну и для мобильной разработки ничего удобнее AS нету :). Как вариант - можно дать ему ограниченный доступ в модуль проекта или набор файлов и попросить выполнить определнную задачу - агент сделает сам. У меня часто было так что он то сделает не так, то не то, то сломает и т.д. Особенно сложно, если файлов больше 10.

Что дальше?

  • Погонять и найти для себя приемлемую модель для своего железа (у меня M1 64GB).
    Пока я тестирую такие. Умнее всего claude-3.7-sonnet. Под нее сейчас нету MLX, но пока даже бывают такие кейсы, что MLX работает медленнее.

Как запустить локальную LLM (AI) в Android Studio - 17
  • Примерная нагрузка на моем железе во время обработки запроса на claude-3.7-sonnet (тулза в терминале asitop)

    Как запустить локальную LLM (AI) в Android Studio - 18
  • Так же есть ПК с видеокартой, потенциально можно запустить модель на нем и расшарить это в локальной сети. (LM Studio поддерживает это в 1 клик). Тогда почти вся оперативка на ноутбуке будет доступна. Можно пойти еще дальше пошарить себе в сеть через свой VPN.

  • Попробовать Copilot, Junie (: когда пофиксят баги :-)

    Выводы

    Локальный запуск LLM для Android Studio – это не только удобно, но и существенно расширяет ваши возможности как разработчика. Конечно, на текущий момент решения еще немного «сырые», однако потенциал огромен, и уже сейчас вы можете ощутить реальные преимущества AI прямо у себя на своем железе.

    🔥 Давайте обсудим!

    Расскажите, как у вас получилось интегрировать локальную LLM? Какие модели показались самыми удобными? (В идеале, если напишите железо и то что подошло вам и размер проекта).

    Делитесь своими мыслями и задавайте вопросы в комментариях :-)

    Было интересно и есть вопросы?
    мой linkedin (добавляйтесь :)
    мой medium (там недавно был гайд про self-hosted аналог Google Photos)

Автор: ArtemAsoyan

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js