Как ИИ помогает мне в разработке?

от автора

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

Насчёт вайбкодинга

Да, в каком-то смысле я являюсь вайбкодером. В частности, все самые неприятные моменты, связанные с рефакторингом кода, миграцией с одной либы на другую, и так далее, делаю при помощи ИИ.

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

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

Continue: подбор идеальной модели, LM Studio, Ryzen 3 4300U

Насчёт Continue, скажу ровно одно — надо подбирать идеальную модель.

И тут возникает куча вопросов — «какие модели идеальны для кода», «стоит ли юзать локальные LLM», и тому подобное.

Давайте разберемся с этим поподробнее.

Какую модель выбрать?

В случае с локальными моделями, Continue рекомендует использовать Ollama/LM Studio с 3 основными моделями:

  1. Llama 3.1 8B — чат (chat), «применение» кода (apply)

  2. Qwen 2.5 Coder 1.5B — автокомплит (autocomplete), редактирование кода (edit)

  3. nomic-embed-text-v1.5 — эмбедер (embed), который позволяет обеспечивать индексацию кода и документации.

Если же вы хотите использовать «облачные» ИИ, то разработчики из Continue рекомендуют использовать модели от компании Anthropic.

И да — эти модели лучшие на рынке в настоящий момент, но они жутко дорогие, плюс они очень строго относятся к использованию «трёх букв», и других средств по «виртуальному переезду» в другие страны.

Поэтому лучший вариант — это смешивать локальные модели с удалёнными. Например, локально держать эмбедер и code-specific модели, а удалённо — большие «чатовые» модели, где часто ожидается гораздо лучшее качество модели, нежели даже 8B (8B — 8 миллиардов параметров).

Идеально всего локально держать как минимум эмбедер — оно есть далеко не везде, но если у вас VS Code, то там по умолчанию используется встроенный эмбедер, что часто его хватает за глаза. В случае с JetBrains, необходимо использовать Ollama/LM Studio, плюс ту самую модель от nomic, которая была выше.

Почему Local LLM лучше облачных?

Главные плюсы — доступность (не требуется плата за доступ к API ИИ-провайдера), полный контроль над данными, поступающие в ИИ, оффлайновость (прям как Фидонет :D), и многое другое.

Но есть и жирнючий минус — и это железо, на котором запускаю модельки. А именно — интегрированные GPU от AMD.

Но как-то ты пускаешь модели. Как?

Тут всё просто. Есть Vulkan, и этого вполне себе достаточно. Но есть у него особенность — работает в данном режиме только LM Studio. Ollama не имеет данную поддержку (по крайней мере, в официальных билдах оного). Зато это сильно увеличивает скорость работы модели на ноутбуках, даже бюджетном, как у меня (у меня Ryzen 3 4300U, 16 гигов ОЗУ (апгрейд с дефолтных 8), NVMe на 256 гигов).

Как всё-таки ИИ помогает мне в разработке?

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

И тут для этого я использую ещё один сервис — bolt.new. Вообще, этот сервис создавался под JS-разработчиков (как я понял), но джаву он тоже знает хорошо (ибо базируется оно на Claude 3.7 и 4.0), имеет огромный контекст, что сильно спасает при больших объемах изменений в свои проекты.

Единственный минус — рабочий код ты никак не загрузишь. Да и в принципе, этого как раз не надо, ибо рабочий код не должен:

  1. Подвергаться слишком большим изменениям сразу, а должно пройти всё это гладко.

  2. Код не должен быть слит в общий доступ, и передаваться любым сторонним лицам.

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

Итоги

Как по мне, ИИ сильно выручает, но нужно учитывать огромное количество ограничений, которые не даст написать полностью весь проект, или ещё что-то в этом роде. Это, по большей части, инструмент для точечного применения, либо для небольших проектов, которые умещается в контекстное окно какого-нибудь Claude 3.7/4.0.

В крупных проектах ИИ — это всё-таки исключительно «второй пилот», не более, и это стоит учитывать.


ссылка на оригинал статьи https://habr.com/ru/articles/925284/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *