Мне тоже надоели адепты замещения программистов языковыми моделями, я к ним не отношусь. Но и к отрицателям прогрессивных технологий я отношусь с недоверием. Полагаю, что у этой новой технологии большое будущее и нужно пользоваться этим инструментом. Абсолютно согласен с вами по вопросу, что нужен глаз да глаз за их творчеством (впрочем также как и за человеческим).
Я тоже очень веселился, когда шарики были изначально квадратными. Видимо модели это все равно и надо было явно это указывать первоначально. А вообще, глобально, вы очень правы в том, что то что кажется очевидным для нас, модели нужно четко и подробно описывать. Это такой особый стиль общения с ней, ее глубокое свойство, которое проявляется постоянно.
Подтверждаю, с математикой (решение задач) практически у всех доступных для использования локально моделей просто беда. Элементарная последовательность математических действий модель очень часто сделать не может. Я с этим тоже экспериментировал, результат - неуд.
Возможно, вы правы, но моя идея состоит в том, чтобы мы все программисты были готовы оказаться в новом чудном мире симбиоза с LLM, который неминуемо придет, как бы мы этому не сопротивлялись.
Да, я большую часть жизни занимался программированием в разных областях, был руководителем крупного программного проекта в области полной автоматизации гостиничного бизнеса. Я хорошо представляю себе, что значит самому писать код (даже не так, а ЧИСТЫЙ КОД) или распределить задачу между другими группами программистов поручив это сделать им. В данном случае вместо меня это желает модель. Это несколько другой уровень и стиль работы и именно это я и хотел подчеркнуть.
Я с вами отчасти соглашусь и название статьи слегка провокационное. Сложный проект нейросеть в целом не потянет, но создавать по точному и подробному описанию значительные функциональные блоки очевидно уже может. Рефакторинг делает, предложить неожиданные варианты реализации способна, ошибки исправляет, текст комментирует и способна на многое другое. В хороших руках вещь великолепная.
Так в конце я это и сделал, реализовал свою фантазию, которой первоначально не было с помощью такого описательного промпта "Измени код так, чтобы выбранный шарик передвигался в указанную клеточку плавно, последовательно перемещаясь в одну из соседних примыкающих слева, справа, сверху или снизу клеточку пока не достигнет указанной клеточки. Траектория передвижения должна каждый раз рассчитываться так, чтобы не пересекаться ни с одним другим шариком в игровом поле." Если вы напишите "Измени код так, чтобы ..." а дальше любая другая ваша фантазия, то последовала бы программная ее реализация. Вот и все.
Я рискнул попросить модель оптимизировать довольно грязно и запутанно написанный фрагмент своего рабочего кода в одном из проектов и затем, проанализировав то что она предложила, согласился внести этот ее вариант в рабочий проект.
Что интересно, модель каждый раз предлагает совершенно разные реализации по одному и тому-же промпту если многократно делать попытки, что как-бы намекает, что она действительно не копирует фрагменты кода из обучающей выборки, а сама создает логические конструкции из кода по условиям задачи.
Что касается "делать фичи и фиксить баги", то я думаю так. Если ваш проект изначально хорошо продуман и структурирован так, что каждый элемент этой структуры имеет выраженную функциональность (которая не размазана по всему коду проекта), то модель прекрасно справляется с задачами оптимизации кода и исправлением ошибок, предлагая свои варианты реализации тех или иных функций. Я проделывал и такие (весьма успешные) эксперименты над кодом из своих проектов. Но это, возможно, будет в другой статье.
Я пришел к выводу, что если решать задачу поэтапно, делая сначала основные шаги, затем более мелкие, постепенно уточняя задачу, то можно получить качественный код процентов 80% от общего объема.
Мне тоже надоели адепты замещения программистов языковыми моделями, я к ним не отношусь. Но и к отрицателям прогрессивных технологий я отношусь с недоверием. Полагаю, что у этой новой технологии большое будущее и нужно пользоваться этим инструментом. Абсолютно согласен с вами по вопросу, что нужен глаз да глаз за их творчеством (впрочем также как и за человеческим).
Я тоже очень веселился, когда шарики были изначально квадратными. Видимо модели это все равно и надо было явно это указывать первоначально. А вообще, глобально, вы очень правы в том, что то что кажется очевидным для нас, модели нужно четко и подробно описывать. Это такой особый стиль общения с ней, ее глубокое свойство, которое проявляется постоянно.
Опрометчиво, но дает надежду и импульс для вектора движения.
Подтверждаю, с математикой (решение задач) практически у всех доступных для использования локально моделей просто беда. Элементарная последовательность математических действий модель очень часто сделать не может. Я с этим тоже экспериментировал, результат - неуд.
Возможно, вы правы, но моя идея состоит в том, чтобы мы все программисты были готовы оказаться в новом чудном мире симбиоза с LLM, который неминуемо придет, как бы мы этому не сопротивлялись.
Да, я большую часть жизни занимался программированием в разных областях, был руководителем крупного программного проекта в области полной автоматизации гостиничного бизнеса. Я хорошо представляю себе, что значит самому писать код (даже не так, а ЧИСТЫЙ КОД) или распределить задачу между другими группами программистов поручив это сделать им. В данном случае вместо меня это желает модель. Это несколько другой уровень и стиль работы и именно это я и хотел подчеркнуть.
Я с вами отчасти соглашусь и название статьи слегка провокационное. Сложный проект нейросеть в целом не потянет, но создавать по точному и подробному описанию значительные функциональные блоки очевидно уже может. Рефакторинг делает, предложить неожиданные варианты реализации способна, ошибки исправляет, текст комментирует и способна на многое другое. В хороших руках вещь великолепная.
Так в конце я это и сделал, реализовал свою фантазию, которой первоначально не было с помощью такого описательного промпта "Измени код так, чтобы выбранный шарик передвигался в указанную клеточку плавно, последовательно перемещаясь в одну из соседних примыкающих слева, справа, сверху или снизу клеточку пока не достигнет указанной клеточки. Траектория передвижения должна каждый раз рассчитываться так, чтобы не пересекаться ни с одним другим шариком в игровом поле." Если вы напишите "Измени код так, чтобы ..." а дальше любая другая ваша фантазия, то последовала бы программная ее реализация. Вот и все.
Я рискнул попросить модель оптимизировать довольно грязно и запутанно написанный фрагмент своего рабочего кода в одном из проектов и затем, проанализировав то что она предложила, согласился внести этот ее вариант в рабочий проект.
Что интересно, модель каждый раз предлагает совершенно разные реализации по одному и тому-же промпту если многократно делать попытки, что как-бы намекает, что она действительно не копирует фрагменты кода из обучающей выборки, а сама создает логические конструкции из кода по условиям задачи.
Что касается "делать фичи и фиксить баги", то я думаю так. Если ваш проект изначально хорошо продуман и структурирован так, что каждый элемент этой структуры имеет выраженную функциональность (которая не размазана по всему коду проекта), то модель прекрасно справляется с задачами оптимизации кода и исправлением ошибок, предлагая свои варианты реализации тех или иных функций. Я проделывал и такие (весьма успешные) эксперименты над кодом из своих проектов. Но это, возможно, будет в другой статье.
Я пришел к выводу, что если решать задачу поэтапно, делая сначала основные шаги, затем более мелкие, постепенно уточняя задачу, то можно получить качественный код процентов 80% от общего объема.
Извиняюсь, что не оставил ссылку. В ближайшее время обязательно выложу.
Ссылка на полный рабочий код: https://disk.yandex.ru/d/ycfiSHoJ_czQCg
Все, что описано в статье - это действительно создано моделью. Нет никакого обмана или манипуляций.