Pull to refresh

Практическая инструкция для чайника по использованию нейросетей в разработке

Level of difficultyEasy
Reading time5 min
Views23K

Статья написана для юзверя (в том числе разработчика) с базовыми знаниями работы в операционной системе, консолью, IDE и браузером.

В статье рассматривается инструкция для установки LLM локально на ПК юзверя для обхода проблем работы с удаленными серверами. Также статья поможет в совсем базовом понимании работы с LLM.

Здесь будет рассматриваться IDE VSCode, однако всё нижеописанное актуально и для JB Webstorm или Pycharm (и др).

Предисловие

Я, как профессиональный разработчик, использующий в своей жизни нейросети для дополнения кода, встретил препятствие в своей комфортной рабочей среде: для РФ закрыли полностью или ухудшили качество пользования автодополнением кода.

Сначала я использовал VSCode + Codeium (переименован плагин Windsurf, не путать с IDE Windsurf). Разработчики утверждали о вечном безлимитном доступе к базовым услугам (дополнение кода и чат), но качество соединения сильно ухудшилось (со стороны РФ или нет — не уверен).

Попробовал перейти на IDE Windsurf (нагуглил, что там соединение лучше). Прошел опрос и получил Pro версию на дополнительный месяц. Некоторое время всё было отлично, мне понравилась функция замены нескольких строк. Через 2 месяца (примерно в феврале 2025) дополнение кода сошло с ума: начало везде вставлять одно и то же и засчитывать это как предложение вставки из лимита замены нескольких строк. По исчерпании лимита просто отказывался работать.

Ушел обратно на VSCode и попробовал использовать аналоги Codeium (Windsurf): Cody, CoPilot (с VPN) и еще несколько китайских. Самым качественным показался CoPilot, но я его пробовал всего 2 дня против 6 месяцев Codeium и не могу утверждать.

Проблема осталась: качественного дополнения для кода не было. Тут я узнал про Ollama, стал читать про LLM, вышел JB Junie и еще много интересного.

Что такое LLM для чайников

Дословно «Большая языковая модель», но это не улучшает понимания. По факту — это обученные «мозги» для вашего ассистента, который будет вам помогать.

Этого самого ассистента можно учить по‑разному (на разных данных и типах обучения), соответственно, и помощь он оказывает разную. Для разработки выделяют отдельные LLM, но это не значит, что общие LLM не помогут разработчику, но помощь будет менее качественной.

Подробнее про LLM вы можете найти в других статьях. Уверен, что есть гораздо более умные авторы в этом направлении.

Пару важных слов:

  • Контекст — это область «памяти» нейросети. Сколько и как качественно она помнит. Чем больше — тем лучше. Качество работы с контекстом бывает разное.

  • Кол‑во параметров LLM — условно, на каком количестве данных обучалась нейросеть. Чем больше — тем умнее. Чем больше — тем больше ресурсов машины будет использовать при запуске.

Конфиденциальность

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

Выделим два типа использования: локальное (на ПК разработчика) и серверное (внутри и за пределами контролируемого контура).

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

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

Виды LLM (сокращенно)

На самом деле их немало, но остановлюсь на тех, которые пригодятся разработчику и в повседневных задачах:

  • чаты;

  • дополнения кода;

  • служебные инструменты (например, для обработки специализированных данных, работы с большим объемом контекста, вставки и т. д.).

Как определиться с нужной LLM

Есть простой, но эффективный способ решить задачу — обратиться к другой нейросети. Я рекомендую Qwen (chat.qwen.ai). Чтобы получить помощь, нужно сделать запрос: «Помоги выбрать LLM для моих нужд. Я работаю с [например: Angular, TypeScript, RxJS, NGXS] в проекте». Можно также добавить: «Для скачивания использую Ollama [если для кода: и для работы с IDE VSCode с плагином Continue]». Об этом расскажу дальше.

Если у вас есть много свободной оперативной памяти (>32 Gb) и памяти на видеокарте (>12 GB), то можете позволить себе запустить локально 32b (32 миллиарда параметров) и более. Стоит отметить, что это не всегда нужно: 7–9b для комплита кода более чем достаточно. Для чата или агента (редактирование кода в паре с ассистентом) лучше 32b и больше.

Еще есть «квантовые версии» для LLM, они потребляют меньше памяти.

Сейчас наиболее интересные для коддинга, по моему мнению:

  • Qwen (qwen2.5-coder)

  • Deepseek

  • LLama.

Откуда взять LLM

На мой взгляд, сейчас самое удобное рядовому пользователю — использовать Ollama. Пример использования:

  1. Скачиваем программу с официального сайта ollama.com. Устанавливаем, перезагружаем комп (чтобы PATH прописались, если ОС Windows). Если нужно установить конкретное место установки LLM, прописываем переменную OLLAMA_MODELS:

  2. Заходим в репозиторий с LLM (ollama.com/search) и выбираем нужную. На скрине в правом верхнем углу код для копирования в командную строку. Скачивается LLM.

    То же самое проделываем с LLM nomic-embed-text:latest

  3. Устанавливаем Continue (ссылка). Заходим во вкладку установленного плагина.

    По умолчанию Continue предложит некоторые стандартные LLM. Можете попробовать их. Тогда копируем команды в терминал из предложенных Continue и нажимаем «Далее». Следующие пункты можно пропустить, если вы пойдете этим путем (файл конфигурации настроят автоматически).

    Здесь жмём на Local Assistant и на шестерёнку. Откроется файл конфигурации (yaml, в ранних гайдах был json).

  4. Пихаем туда следующий код:

name: Local Assistant
version: 1.0.0
schema: v1
models:
  - name: Qwen2.5-coder:latest
    provider: ollama
    model: qwen2.5-coder:latest
    roles:
      - chat
      - edit
      - apply
  - name: Qwen2.5-coder:latest
    provider: ollama
    model: qwen2.5-coder:latest
    roles:
      - autocomplete
  - name: Nomic Embed
    provider: ollama
    model: nomic-embed-text:latest
    roles:
      - embed
context:
  - provider: code
  - provider: docs
  - provider: diff
  - provider: terminal
  - provider: problems
  - provider: folder
  - provider: codebase

Сохраняем. На этом установка завершена.

Использование для коддинга

Теперь у вас есть локальный автокомплит (дополнение кода; autocomplete). Можете обнаружить его благодаря серым участкам кода при написании кода. Нажав Tab (стандартно), код будет активирован).

Вы можете использовать чат в меню плагина Continue и агент. Подробнее об их использовании рассказано в статье не будет, тут весьма интуитивно. Попробуйте.

Использование для сторонних нужд

По умолчанию Ollama привязан к адресу 127.0.0.1 на порту 11 434. Это означает, что доступ к серверу возможен только с локальной машины. Это можно исправить, выбросив адрес в локальную (к примеру) сеть. Данный способ рассматриваться в статье не будет (они периодически меняются, лучше нагуглить актуальный).

Можно обратиться к LLM напрямую через консоль ollama run [model] или можно поставить UI для этого, например Page Assist.

Также есть специализированные UI. Например для НРИ — SillyTavern.

Для генерации изображений как правило нужен специфичный UI, который можно развернуть локально. Для этого можно почитать, например, тут.

Выводы и итоги

Установить и использовать LLM локально легко и доступно для любого современного ПК и любой операционной системы. Это не так сложно, как может показаться.

Tags:
Hubs:
+23
Comments13

Articles