Сейчас многие компании пытаются внедрять ИИ-помощники в среды разработки в надежде упростить работу программистам и повысить эффективность работы. В начале этого года у нас провели пилотное тестирование бесплатной Codeium. Нейросеть использовалась из коробки (без дообучения). В статье расскажу про использование Codeium при разработке на C# в Visual Studio 2022(продуктовый код и тесты). В целом работоспособность Codeium мне не понравилась и вот почему.

Понимание контекста

Создается ощущение, что нейросеть смотрит только в контексте текущего файла. Неправильно советует использовать поля и методы (публичные !) из других классов, просто генерирует рандомные имена. Не умеет работать со сторонними библиотеками. 

Лучше генерирует код, если в коде присутствуют комментарии. Пробовала специально в некоторых местах добавлять комментарии, чтобы проверить поведение нейросети. И да, Codeium  в таких случаях начинает реагировать быстрее и советовать более ожидаемый код. Для меня это неудобно, т.к. я не оставляю в коде такое количество комментариев, которое требует Codeium. Еще замечена особенность, что для совершенно нового кода генерирует предложения лучше, при доработке текущего - хуже.

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

[Test]
public void Test_1()
{
    ...
}

// Ставлю курсор здесь и получаю рекомендацию от Codeium
Test_2();

[Test]
public void Test_2()
{
    ...
}

Качество сгенерированного кода

Что касается синтаксического сахара: советует что-то из более старых стандартов языка. После принятия сгенерированного кода приходится его редактировать, это занимает время.

Скорость работы

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

Часто не может предложить варианты вообще.

Раздражает, что после установки расширения Codeium в Visual Studio наблюдались небольшие тормоза. После удаления Codeium среда разработки снова работает как обычно.

Дообучение нейросети

Создатели Codeium обещают повышение качества генерируемого кода за счет дообучения нейросети. Тут есть два варианта, и к каждому из них есть вопросы:

  • Обучение на продуктовой кодобазе

    Большие проекты содержат код совершенно разного качества и, конечно, много легаси кода. Вопрос в том, на чем обучать? Какой код более подходящий? Код  пятилетней давности будем считать приемлемым?

  • Сгенерированный код принят, значит он правильный

    При работе с нейросетью программисты часто придерживаются позиции: принимаешь сгенерированный код, даже если он не совсем корректный, а потом редактируешь до нужного вида. Но если нейросеть способна обучаться, то принятие рекомендуемого кода трактуется нейросетью как правильный вариант. В этом случае нейросеть никогда не поймет, что код неверный.

Есть одна вещь, которая реально понравилась

Единственное, на чем экономишь время с использованием Codeium: нейросеть отлично автодополняет комментарии (на русском и английском). И для меня это все. Но ради этого устанавливать Codeium, думаю, не стоит :) Помню, на прошлой работе использовали ReSharper, который тоже отлично с этим справлялся.

За месяц использования Codeium обнаружила для себя много минусов, и они перевешивают плюсы. Из коробки нейросеть Codeium работает слабовато. Аргументов для внедрения Codeium в качестве помощника на каждый день, на мой взгляд, мало.

Комментарии (16)


  1. nakirrrr
    24.07.2024 17:20

    попробуй https://www.codefy.ai/ .


  1. milssky
    24.07.2024 17:20
    +2

    Вы бы предупредили, что реферальную ссылку дали. Так хоты бы было бы честно.


    1. AnROm Автор
      24.07.2024 17:20

      Действительно, ссылка некорректная, исправила. Спасибо, закешировалась в браузере.


  1. gudvinr
    24.07.2024 17:20

    Codeium довольно сносно предлагает дополнения для обработки енумов, если они все одинаковые, вроде case ENUM-VALUE_1: return "VALUE_1";

    Из того же, всякие стандартизированные вещи типа кодов ответа HTTP или MIME типов

    Но даже в этом случае все равно приходится исправлять ответы, потому что порой выдумывает несуществующие сущности

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


  1. Homyakin
    24.07.2024 17:20
    +2

    А я как раз буквально пару недель назад начал пользоваться

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

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


    1. AnROm Автор
      24.07.2024 17:20

      Codeium генерирует произвольные имена полей и методов для сторонних библиотек, менять которые невозможно. Это действительно мешает.


  1. itmind
    24.07.2024 17:20
    +2

    Мне наоборот Codeium зашел для Go и Rust и он активно развивается и бесплатный. Есть возможность указывать предварительно контекст (например: "Rust, отвечать по русски"). Gigachat, codium пока в разы хуже.


  1. VicIamQuick
    24.07.2024 17:20

    Кто-нибудь может прояснить пожалуйста. Вот Codeium, написано бесплатен для индивдуального использования. А что если сначала проект создавался в одиночку, а потом разросся в командный из нескольких человек. Я всё еще могу использовать Codeium по индивидуальному плану или должен переходить на платный?


  1. luckfinder
    24.07.2024 17:20
    +1

    Гигакод вообще лучше не пробуй.

    Огорчишься


  1. Sigest
    24.07.2024 17:20
    +1

    У меня жутко тормозит Intelij IDEA с codeium на очень хорошей конфигурации (i9 13000K, 64Gb ram, хотя видео слабое - 1050Ti). Тормозит на Котлине, на java тоже тупит, но меньше, на k8s yaml файлах работает нормально, но и бесполезен. Тормозит и при этом жрет цпу на 100%


  1. Vladek
    24.07.2024 17:20

    в Visual Studio у них ужасное расширение, что мешает выдавать нормальные примеры кода. В VS Code расширение гораздо лучше - стоит проверить работу Codeium именно там.


  1. MaksimMukharev
    24.07.2024 17:20

    Я заметил, что он довольно хорошо даёт подсказки, если написать комментарий с тем, что ожидается. После комментария получается очень адекватный результат.


  1. qiper
    24.07.2024 17:20

    Скоро-скоро, вот-вот-вот, всё станет хорошо! https://habr.com/ru/posts/831268/ :D


  1. alexMolex
    24.07.2024 17:20

    А какая модель используется? Base или GPT-4? При выборе последней качество подсказок становится выше. Да, согласен, что контекст как правило берется из открытого файла, но все равно, подсказывает в целом неплохо. А основным преимуществом является чат, с ним даже гуглить ничего не надо. Лично на своем опыте могу сказать, что с ним скорость написания именно нового функционала возрастает чуть ли не x2. Недостатки тоже есть, но они перекрываются преимуществами. А главное преимущество это бесплатность и доступность в России. Пользовались как-то платным copilot, так там качество подсказок заметно ниже, к тому же танцы с бубном при пополнении


  1. Alexander_Front-end
    24.07.2024 17:20

    Я уже месяц где-то использую codeium для Typescript в VS Code. Вполне неплохо угадывает и подсказывает, часто пихаю в него функцию и прошу юнит тесты написать


  1. undersunich
    24.07.2024 17:20
    +1

    Codeium раздражает тем что всегда что то предлагает дополнить. Даже когда это не нужно Это отвлекает в больших проектах