Привет, это снова oldzoomer, и сейчас я расскажу, как ИИ помогает мне освободить себя от рутинных задач, и заниматься исключительно любимым делом.
Насчёт вайбкодинга
Да, в каком-то смысле я являюсь вайбкодером. В частности, все самые неприятные моменты, связанные с рефакторингом кода, миграцией с одной либы на другую, и так далее, делаю при помощи ИИ.
Однако не надо забывать, что у меня в принципе имеются кое-какие знания в стеке Java-разработки, и поэтому я также способен самостоятельно исправлять те ошибки, которые были образованы при генерации кода.
Поэтому я не являюсь вайбкодером в классическом понимании. Для меня ИИ - это, по большей части, "второй пилот", который способен мне помочь в решении рутинных задач. Ибо, к сожалению, ИИ далеко не идеальны, и могут генерировать код с большим количеством ошибок.
Continue: подбор идеальной модели, LM Studio, Ryzen 3 4300U
Насчёт Continue, скажу ровно одно - надо подбирать идеальную модель.
И тут возникает куча вопросов - "какие модели идеальны для кода", "стоит ли юзать локальные LLM", и тому подобное.
Давайте разберемся с этим поподробнее.
Какую модель выбрать?
В случае с локальными моделями, Continue рекомендует использовать Ollama/LM Studio с 3 основными моделями:
Llama 3.1 8B - чат (chat), "применение" кода (apply)
Qwen 2.5 Coder 1.5B - автокомплит (autocomplete), редактирование кода (edit)
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), имеет огромный контекст, что сильно спасает при больших объемах изменений в свои проекты.
Единственный минус - рабочий код ты никак не загрузишь. Да и в принципе, этого как раз не надо, ибо рабочий код не должен:
Подвергаться слишком большим изменениям сразу, а должно пройти всё это гладко.
Код не должен быть слит в общий доступ, и передаваться любым сторонним лицам.
Как по мне, такие сервисы, как Bolt, годятся именно как инструменты для мелких пет-проектов, и не годится для более крупных коммерческих проектов. Это, в первую очередь, инструмент для создания MVP и небольших проектов, не более.
Итоги
Как по мне, ИИ сильно выручает, но нужно учитывать огромное количество ограничений, которые не даст написать полностью весь проект, или ещё что-то в этом роде. Это, по большей части, инструмент для точечного применения, либо для небольших проектов, которые умещается в контекстное окно какого-нибудь Claude 3.7/4.0.
В крупных проектах ИИ - это всё-таки исключительно "второй пилот", не более, и это стоит учитывать.