Код ChatGPT вообще не ок.
Эта тупая хреновина неспособна даже выполнить код, который ей дали.
Запускаешь функцию в консоли браузера - всё работает верно.
Просишь нейронку этот код выполнить - ответ с ошибками.
Т.е. она просто вносит свои правки, при выполнении, но утверждает, что выполняет функцию, которую ты ей дал.
Эта тупая хреновина неспособна даже выполнить код, который ей дали.
Запускаешь функцию в консоли браузера - всё работает верно.
Просишь нейронку этот код выполнить - ответ с ошибками.
Т.е. она просто вносит свои правки, при выполнении, но утверждает, что выполняет функцию, которую ты ей дал.
Никогда не требуй у чистого чатгпт без надстроек и модулей сложного кода. Только разбитые на кусочки задания. Я только 3.5 пользую, прекрасно позволяет писать всякие интересные рекурсии, что мне было бы лень писать.
Да оно же просто предиктит следующие слова/символы, оно не знает и не понимает как код работает.
Да оно же просто предиктит следующие слова/символы, оно не знает и не понимает как код работает.
Моя проблема даже не в "написать".
Моя проблема в том, что он выполнить написанное не может, без ошибок.
Я юзал бесплатный 3.5.
Хотел автоматизировать перебор вариантов в задаче с перестановками.
Написал функцию, скормил её боту, бот выпоняет - результат с ошибкой.
Та же функция, запущенная в консоли браузера, - без ошибок.
Т.е. я не прошу писать код за меня. Я прошу выполнить функцию в пару строк, - и уже с этим у бота проблемы. Две строчки выполнить без ошибок не может.
Моя проблема в том, что он выполнить написанное не может, без ошибок.
Я юзал бесплатный 3.5.
Хотел автоматизировать перебор вариантов в задаче с перестановками.
Написал функцию, скормил её боту, бот выпоняет - результат с ошибкой.
Та же функция, запущенная в консоли браузера, - без ошибок.
Т.е. я не прошу писать код за меня. Я прошу выполнить функцию в пару строк, - и уже с этим у бота проблемы. Две строчки выполнить без ошибок не может.
Бля.. без модулей он такое не умеет:
По сути LLM это матрица из всех возможных комбинаций рядом двух символов. С их частотой встречания в датасете на котором происходит обучение. Дальше уже учат нейронку отвечать как человек - есть вопросы, на которые модель должна отвечать.
Чатгпт не умеет запускать код, он может попытаться интерпретировать его. Ты сам взял молоток и пытаешься им закручивать саморезы. Ты неправильно используешь инструмент!
По сути LLM это матрица из всех возможных комбинаций рядом двух символов. С их частотой встречания в датасете на котором происходит обучение. Дальше уже учат нейронку отвечать как человек - есть вопросы, на которые модель должна отвечать.
Чатгпт не умеет запускать код, он может попытаться интерпретировать его. Ты сам взял молоток и пытаешься им закручивать саморезы. Ты неправильно используешь инструмент!
Оно само предложило.
Я в начале пытался обучить его словами, описывая какая команда что с матрицей делает.
Потом упёрся в то, что он тупо забывает команды, которые выучил раньше.
Т.е. 3-4 - помнит, говоришь ему, он выполняет, матрица меняется.
Но у меня команд больше, и он тупо начинает путаться.
В какой-то момент, он предложил описать требуемое действие кодом.
Но оказалось, что это работает ещё хуже.
Он помнит все команды (функции), но ошибается при их выполнении.
Если, при описании словами, он мог 4 команды выполнять над матрицей, то при описании кодом - он даже одну команду не может выполнить без ошибок. Не может переставить 2 элемента массива, поменять местами. Хотя при словесном описании " поменяй местами 1 1 и 2 2", - всё работало.
Хотя при этом само предложило сделать доп. переменную, чтобы не затирать иссходные данные. Т.е. какое-то понимание происходящего у него есть.
Я в начале пытался обучить его словами, описывая какая команда что с матрицей делает.
Потом упёрся в то, что он тупо забывает команды, которые выучил раньше.
Т.е. 3-4 - помнит, говоришь ему, он выполняет, матрица меняется.
Но у меня команд больше, и он тупо начинает путаться.
В какой-то момент, он предложил описать требуемое действие кодом.
Но оказалось, что это работает ещё хуже.
Он помнит все команды (функции), но ошибается при их выполнении.
Если, при описании словами, он мог 4 команды выполнять над матрицей, то при описании кодом - он даже одну команду не может выполнить без ошибок. Не может переставить 2 элемента массива, поменять местами. Хотя при словесном описании " поменяй местами 1 1 и 2 2", - всё работало.
Хотя при этом само предложило сделать доп. переменную, чтобы не затирать иссходные данные. Т.е. какое-то понимание происходящего у него есть.
Нахера ты делаешь тролейбус из буханки хлеба?
Нейросеть обучается. Ей просто впадлу делать твою работу.
Насчёт "оно не понимает" - он сам предложил мне, доступные действия, описать в виде программы/функций. Но, по факту, оказалось что он ломается уже на трёхстрочной функции, меняющей элементы массива местами.
То что он предложил - это может быть он из книжек/лекций/форумов взял или вообще галлюционировал. Запомни, там просто куча нейронов с огромным датасетом. Оно не имеет глаз, пальцев, так что не воспринимай его ответы так серьёзно. Да, он пытается быть вежливым.
Чёт я не понимаю, что ты от него вообще хочешь, приведи пример что ты пытаешься ему скормить и что получить в результате?
Да в целом-то уже не важно, я уже своей головой допёр, как решать.
----
Ну а по тому, что я пытался скормить...
Есть матрица вида:
1 2
3 4
6 5
Можно вращать верхнее "колесо" или нижнее. Т.е. верхние 4 цифры двигать по/против часовой или нижние.
Нужно получить правильный порядок:
1 2
3 4
5 6
---------
Нейронке скармливал правила вида: tt, tr, tl, dd, dr, dl.
Т.е. двойной/по часовой/против часовой поворот верхнего/нижнего колеса.
В начале описывал словами, что должно произойти с матрицей, если применяю ту или иную команду.
На командах с последовательными перестановками цифр (tt, dd) - всё норм было.
На командах, где надо переставить сразу 4 цифры (обычные повороты вправо/влево) - оно начало ломаться и тупить.
Потом предложило описать задачу в виде кода на питоне.
Но я питон в рот шатал, так что спросил можно ли на js - сказало, что умеет.
Написал каждую команду как функцию, раз уж нейронка сама подсказала и сказала, что умеет работать с переменными.
И вот на функциях tt/dd, где надо сделать 2 перестановки цифр (цифры по диагоналям местами меняются) - одна перестановка проходит правильно, вторая - с ошибкой.
Но то же самое в консоли браузера - работает правильно.
От чего вывод - оно вмешивается в готовый код и не может просто его выполнить.
----------
В целом, повторюсь, задачу уже сам решил.
Но планировалось, что я опишу условия, опишу команды, а оно мне выдаст последовательность команд, которую надо сделать, чтобы привести входную матрицу к целевой. Но вот не срослось, - оно затупило на простом выполнении кода, который даже генерить не надо, просто выполнить.
----
Ну а по тому, что я пытался скормить...
Есть матрица вида:
1 2
3 4
6 5
Можно вращать верхнее "колесо" или нижнее. Т.е. верхние 4 цифры двигать по/против часовой или нижние.
Нужно получить правильный порядок:
1 2
3 4
5 6
---------
Нейронке скармливал правила вида: tt, tr, tl, dd, dr, dl.
Т.е. двойной/по часовой/против часовой поворот верхнего/нижнего колеса.
В начале описывал словами, что должно произойти с матрицей, если применяю ту или иную команду.
На командах с последовательными перестановками цифр (tt, dd) - всё норм было.
На командах, где надо переставить сразу 4 цифры (обычные повороты вправо/влево) - оно начало ломаться и тупить.
Потом предложило описать задачу в виде кода на питоне.
Но я питон в рот шатал, так что спросил можно ли на js - сказало, что умеет.
Написал каждую команду как функцию, раз уж нейронка сама подсказала и сказала, что умеет работать с переменными.
И вот на функциях tt/dd, где надо сделать 2 перестановки цифр (цифры по диагоналям местами меняются) - одна перестановка проходит правильно, вторая - с ошибкой.
Но то же самое в консоли браузера - работает правильно.
От чего вывод - оно вмешивается в готовый код и не может просто его выполнить.
----------
В целом, повторюсь, задачу уже сам решил.
Но планировалось, что я опишу условия, опишу команды, а оно мне выдаст последовательность команд, которую надо сделать, чтобы привести входную матрицу к целевой. Но вот не срослось, - оно затупило на простом выполнении кода, который даже генерить не надо, просто выполнить.
Не, ну код он точно исполнять не будет, это просто дыра в безопасности была бы, так что да, он просто проходит по коду и предполагает как он должен бы сработать, часто чтобы лучше работало можно попросить его объяснить кусок кода, тогда меньше шанс ошибки что на вопрос, что этот код сделает он выдаст неправильный ответ.
Обычно такие задачи без генерации кода питона/js он должен решать, если ему скормить правила с примерами. Типа массив такой 1 2 3 4 5 6, если выполнить tl то массив получится такой 2 1 4 3 5 6. И хотя бы два примера на каждое правило. Потом немного погонять, давая исходные массивы и прося выполнить одну операцию, чтобы проверить что он запомнил, потом привести полный пример решения задачи, а потом уже можно давать задание как какой-то массив привести к другому виду.
Хотя из описания твоей задачи я чёт сам в ступоре, что должны делать tt и dd, и чем tl отличается от tr.
Обычно такие задачи без генерации кода питона/js он должен решать, если ему скормить правила с примерами. Типа массив такой 1 2 3 4 5 6, если выполнить tl то массив получится такой 2 1 4 3 5 6. И хотя бы два примера на каждое правило. Потом немного погонять, давая исходные массивы и прося выполнить одну операцию, чтобы проверить что он запомнил, потом привести полный пример решения задачи, а потом уже можно давать задание как какой-то массив привести к другому виду.
Хотя из описания твоей задачи я чёт сам в ступоре, что должны делать tt и dd, и чем tl отличается от tr.
> код он точно исполнять не будет, это просто дыра в безопасности была бы
Почему же?
Код запускается в песочнице и всё. Ничем не отличается от 100500 онлайн-песочниц.
---
> Потом немного погонять, давая исходные массивы и прося выполнить одну операцию, чтобы проверить что он запомнил
Ну вот я с этого и начал. tt/dd, где две последовательные перестановки чисел - он осилил.
На tr - стал ломаться, т.к. там надо 4 цифры параллельно переместить.
Когда более-менее разобрался - оказалось, что tt/dd уже забыл и надо объяснять заново.
* Я уже молчу о том, что он периодически забывает где строки, а где столбцы, - и начинает их местами путать, выполняя операцию в пределах одной строки или столбца, а не по диагонали, например.
---
> я чёт сам в ступоре, что должны делать tt и dd, и чем tl отличается от tr.
Эм... я ж написал прямо:
"Т.е. двойной/по часовой/против часовой поворот верхнего/нижнего колеса." (с)
Первая буква - указатель колеса, вторая - направление (либо повтор, если двойной поворот, не хотел делать td/dd [top double/down double], чтобы не путаться лишний раз [чтоб не было прочтения top down, например]).
tt - двойной поворот верхнего колеса. Пофиг, в какую сторону, главное чтобы оба поворота были в одну. Де факто - перестановка чисел в "колесе" по диагонали.
dd - то же самое с нижним колесом.
tr - поворот верхнего колеса вправо (по часовой стрелке).
dr - поворот нижнего колеса вправо (по часовой стрелке).
tl - поворот верхнего колеса влево (против часовой стрелки).
dl - поворот нижнего колеса влево (против часовой стрелки).
Почему же?
Код запускается в песочнице и всё. Ничем не отличается от 100500 онлайн-песочниц.
---
> Потом немного погонять, давая исходные массивы и прося выполнить одну операцию, чтобы проверить что он запомнил
Ну вот я с этого и начал. tt/dd, где две последовательные перестановки чисел - он осилил.
На tr - стал ломаться, т.к. там надо 4 цифры параллельно переместить.
Когда более-менее разобрался - оказалось, что tt/dd уже забыл и надо объяснять заново.
* Я уже молчу о том, что он периодически забывает где строки, а где столбцы, - и начинает их местами путать, выполняя операцию в пределах одной строки или столбца, а не по диагонали, например.
---
> я чёт сам в ступоре, что должны делать tt и dd, и чем tl отличается от tr.
Эм... я ж написал прямо:
"Т.е. двойной/по часовой/против часовой поворот верхнего/нижнего колеса." (с)
Первая буква - указатель колеса, вторая - направление (либо повтор, если двойной поворот, не хотел делать td/dd [top double/down double], чтобы не путаться лишний раз [чтоб не было прочтения top down, например]).
tt - двойной поворот верхнего колеса. Пофиг, в какую сторону, главное чтобы оба поворота были в одну. Де факто - перестановка чисел в "колесе" по диагонали.
dd - то же самое с нижним колесом.
tr - поворот верхнего колеса вправо (по часовой стрелке).
dr - поворот нижнего колеса вправо (по часовой стрелке).
tl - поворот верхнего колеса влево (против часовой стрелки).
dl - поворот нижнего колеса влево (против часовой стрелки).
вместо меня гпт меняет
у меня есть чат который уже знает что делать
скидываешь в него первым абзацем код проекта
вторым абзацем код что нужно интегрировать
PROFIT
у меня есть чат который уже знает что делать
скидываешь в него первым абзацем код проекта
вторым абзацем код что нужно интегрировать
PROFIT
именно поэтому в недалёком будущем it ждёт сильное уменьшение зарплат и значимости
А после этого - десятилетия работы вида "найди в этой куче ИИ кода что с ним блядь не так, ебаный GPT опять все сломал"
Смотря какие направления. Формошлёпов, вероятно, станет меньше, а мидлов и выше - вряд ли. Пока языковые модели не могут родить костыльный велосипед из того бреда что несёт заказчик, никаких уменьшений зарплат и значимости не предвидится. Как мне кажется.
В айтешечке и сейчас много лишних людей.
В айтешечке и сейчас много лишних людей.
Формошлёпы - какое изощренное ругательство. Не знаю, всякий прикладной софт, типа бухгалтерского учёта итп, и так лепят на формах, иногда своими силами даже и дальше кабинетов он не уходит. Мне даже один наш местный чувак вспомнился. У нас в Мухосранске есть больничка, когда началась вся эта цифровизация, местному it-шнику пришлось писать софт по заносу историй болезни в БД и много чего ещё по мелочи. Завидовать тут правда нечему, поскольку он штатный it-шник в бюджетном учреждении, то он мега-фулстек-специалист, он и за софт отвечает, и сети плетёт, и принтеры заправляет, и всё это за бюджетный оклад.
Был схожий опыт делания всего за корку хлеба, ага.
Сейчас «формошлёп» - это, скорее, фронтенд или фуллстек веб разраб низкой квалификации, который только и занимается, что готовыми шаблонами реализует стоковую фигню. К Win Forms или Qt уже не имеет особого отношения в связи с критически малой популярностью последних.
Сейчас «формошлёп» - это, скорее, фронтенд или фуллстек веб разраб низкой квалификации, который только и занимается, что готовыми шаблонами реализует стоковую фигню. К Win Forms или Qt уже не имеет особого отношения в связи с критически малой популярностью последних.
Принял, одна из разновидностей "хуяк-хуяк и в продакшн"
Win Forms да пожалуй, сильно устарел, но для мелкого прикладного софта он неплох, он просто, немысловат, без лишних свистелок и перделок, наверняка его в вузах до сих пор преподают, но наверно в бизнесе крупнее ларька почти не используется уже, а так платформа одна .NET, перекатиться в какой-нибудь свежий MAUI упоротому формовщику-виндовщику будет не трудно.
Win Forms да пожалуй, сильно устарел, но для мелкого прикладного софта он неплох, он просто, немысловат, без лишних свистелок и перделок, наверняка его в вузах до сих пор преподают, но наверно в бизнесе крупнее ларька почти не используется уже, а так платформа одна .NET, перекатиться в какой-нибудь свежий MAUI упоротому формовщику-виндовщику будет не трудно.
Думаю, что многие it-шнные профессии ждут похожие изменения, на те, что случились с профессией фотографа за последние 30 лет.
Теперь фотографы ещё обязательно обязаны фотошопить. И тут им могут тоже нейронки помочь
Я не совсем об этом :)
1) Несмотря на то, что сейчас практически у любого человека, есть в кармане смартфон, способный делать фотографии в достаточно хорошем качестве, профессия фотографа всё равно остаётся достаточно массовой. Фотографы также как и раньше снимают свадьбы, фоторепортажи и фотопортреты, снимают товары, для промышленных брендов.
2) Стоимость труда на самом низком профессиональном уровне сильно снизилась. Уверен, что сегодня курьер зарабатывает куда больше, чем человек делающий "фото на паспорт".
4) По этой причине есть видимое перетекание специалистов из фото в видео-продакшен. Так как там в среднем выше оплата труда. Это особенно заметно на начальном уровне. Достаточно просто иметь дрон, и владеть базовыми навыками аэросъемки с его помощью, и уже можно снимать облеты построек, для строительных компаний, и зарабатывать не меньше, чем курьер. :)
3) При этом топовые фотографы сейчас зарабатывают даже больше чем раньше. К примеру Энни Лейбовиц зарабывает 3 миллиона долларов в год.
Я это всё веду к тому, что в it-индустрии нейросети, будут играть похожую роль, котороую играют смартфоны в фотографии. Несмотря на то, что они есть у каждого, потребность в фотографах не исчезла. И топовые специалисты продолжают высоко цениться.
1) Несмотря на то, что сейчас практически у любого человека, есть в кармане смартфон, способный делать фотографии в достаточно хорошем качестве, профессия фотографа всё равно остаётся достаточно массовой. Фотографы также как и раньше снимают свадьбы, фоторепортажи и фотопортреты, снимают товары, для промышленных брендов.
2) Стоимость труда на самом низком профессиональном уровне сильно снизилась. Уверен, что сегодня курьер зарабатывает куда больше, чем человек делающий "фото на паспорт".
4) По этой причине есть видимое перетекание специалистов из фото в видео-продакшен. Так как там в среднем выше оплата труда. Это особенно заметно на начальном уровне. Достаточно просто иметь дрон, и владеть базовыми навыками аэросъемки с его помощью, и уже можно снимать облеты построек, для строительных компаний, и зарабатывать не меньше, чем курьер. :)
3) При этом топовые фотографы сейчас зарабатывают даже больше чем раньше. К примеру Энни Лейбовиц зарабывает 3 миллиона долларов в год.
Я это всё веду к тому, что в it-индустрии нейросети, будут играть похожую роль, котороую играют смартфоны в фотографии. Несмотря на то, что они есть у каждого, потребность в фотографах не исчезла. И топовые специалисты продолжают высоко цениться.
Может быть. Но точно не из-за лингвомоделек. Уж сколько этим пугают, а где это всё? Взять хоть клауд. Столько документации, примеров, но она дырявая. Кажется, вот пожалуйста, пишите заново код, пайплайны настраивайте. Но кодяра после чата не работает. Близко, но не то.
А вообще со времён перфокарт стало в сотни раз легче разрабатывать. Тут тебе и иде, и визуальные интерфейсы, и помощи сколько, вместо простого мануала. А значимость и зп только выросли.
А вообще со времён перфокарт стало в сотни раз легче разрабатывать. Тут тебе и иде, и визуальные интерфейсы, и помощи сколько, вместо простого мануала. А значимость и зп только выросли.
С другой стороны, "во времена перфокарт" всю доступную память процесса можно было на одном листе миллиметровки нарисовать и там же распланировать. А сейчас любой HelloWord тебе мегабайты дампов кидает.
А ии будет сам себя писать и улучшать.
Не, это не так работает. Тоже начитался, насмотрелся - решил попробовать сделать элементарное приложение через гпт.
По интерфейсу все ок - реально можно объяснить как должно выглядеть и он плюс-минус выдаст. А вот по функционалу уже начинается проёб, если нужно что-то, что не спрашивали на стаковерфлоу. На коде больше 200 строк начинает путаться в собственных названиях переменных. Выдумывает несуществующие пакеты с несуществующим функционалом.
Не, это не так работает. Тоже начитался, насмотрелся - решил попробовать сделать элементарное приложение через гпт.
По интерфейсу все ок - реально можно объяснить как должно выглядеть и он плюс-минус выдаст. А вот по функционалу уже начинается проёб, если нужно что-то, что не спрашивали на стаковерфлоу. На коде больше 200 строк начинает путаться в собственных названиях переменных. Выдумывает несуществующие пакеты с несуществующим функционалом.
200 строк кода пока оно не может осилить... Да ты сам осилишь 200 строк держать в голове?
В голове то оно по другому представляется, более абстрактно, каждую переменную ты в голове не удержишь это понятно, но всё равно ты иногда такой думаешь: "нуууу, общий план ясен, вопрос - хуйня, приключение на 20 минут".... Спустя три часа.. "Да блять!"
Да мне как бы и не надо, у меня структура программы/функции в голове, а весь код перед глазами. Да и работает он не как человек.
К слову, сомнительно что генеративные ии и ллм в принципе смогут преодолеть этот барьер в разработке. Сейчас уже есть железо, которые создано специально для таких задач (чтобы не на видеокарте запускать), например в свободном доступе с Groq можно поиграть, у него скорость генерации в сотни раз больше, а качество плюс-минус одно и то же.
Но профессию именно кодера он заменит точно, потому что сгенерировать не очень элементарные функции на любом языке программирования он сейчас может за секунду. А вот программисты, которые понимают, как строится программа, могут выстроить структуру и т.п. будут в цене всегда.
К слову, сомнительно что генеративные ии и ллм в принципе смогут преодолеть этот барьер в разработке. Сейчас уже есть железо, которые создано специально для таких задач (чтобы не на видеокарте запускать), например в свободном доступе с Groq можно поиграть, у него скорость генерации в сотни раз больше, а качество плюс-минус одно и то же.
Но профессию именно кодера он заменит точно, потому что сгенерировать не очень элементарные функции на любом языке программирования он сейчас может за секунду. А вот программисты, которые понимают, как строится программа, могут выстроить структуру и т.п. будут в цене всегда.
Иногда может с подсказками исправляться, но это если есть малое количество вариантов, из которых он нашел все, но выбрал неправильный. А если надо
Вроде бы элементарную но не совсем тривиальную задачку дал с целью понять, влезет ли большой телевизор в пассажирский лифт, если повернуть, он в итоге так и не справился.
(большая часть диалога скипнута).
Вроде бы элементарную но не совсем тривиальную задачку дал с целью понять, влезет ли большой телевизор в пассажирский лифт, если повернуть, он в итоге так и не справился.
(большая часть диалога скипнута).
... а он перестал работать. Возвратил имена переменных, как было -- работает...
Example Driven Development: полная беспомощность в самостоятельном решении задачи. Код может быть написан, либо скопирован только по готовому примеру; самостоятельно, например с помощью документации написан быть не может. Очень частое явление в индустрии.
Явление опасно тем, что в примерах, как правило, не учитывается множество нюансов: не обрабатываются или плохо обрабатываются ошибки, используются упрощения в логике и т.д, все это в неизменном виде перекочевывает в боевой код и потом потенциально приводит к проблемам.
Явление опасно тем, что в примерах, как правило, не учитывается множество нюансов: не обрабатываются или плохо обрабатываются ошибки, используются упрощения в логике и т.д, все это в неизменном виде перекочевывает в боевой код и потом потенциально приводит к проблемам.
Поэтому всегда нужно прогонять тесты на проверку и обязательно датасет на ошибки, если код справляется хоть с тестами, то уже скопиравано хорошо.
Чтобы написать коммент, необходимо залогиниться
Весь код на стаковерфлоу идёт по гну лицензии или какой-то аналогичной открытой, пользуй код смело, но разумно!