В цикле «ПрактикАнт» я в основном рассматриваю свои практические наработки и решения. Поэтому читателям, не очень подготовленным, не погруженным в программирование, смысл статьи может быть не совсем понятен, но постараюсь изъясняться не на «птичьем» языке кодеров. 😁
Началось всё немного издалека, написал комментарий к одной статье на Дзен, в которой что-то было про нейросети, и как хорошо и просто с ними работать, потому что даже программировать не надо, пиши себе запросы на русском, и всё у тебя получится. Хотя на деле всё оказывается далеко не таким радужным и прекрасным. 😪
Вот это мой комментарий:
Некоторые читатели оценили мой комментарий положительно, судя по количеству лайков, но вот у одного из читателей имелось свое мнение, и он его высказал:
Основной посыл читателя – Вы просто не умеете «правильно готовить», потому и не можете получить положительный эффект. «Ситуацию не знаете», но уже чего-то ожидаете. 😏
Странным мне показался подобный посыл, потому что стараюсь использовать нейросеть как раз, чтобы прояснить ситуацию. Иначе какой в ее использовании смысл? 🙄
В продолжении дискуссии:
Читатель порекомендовал «учиться эффективно применять», хотя под этим выражением можно понимать всё, что угодно. И по поводу «ускорить поставку фич», тоже выглядит не очень правдоподобно, потому что моя практика показывает, что скорость то как раз и не растет. Привел ему в ответ пример из своего ближайшего опыта, когда попытка решить проблему в SQL с помощью нейросети, привела к затратам времени в несколько часов, и без результата. А отказ от нейросети и глубокое погружение в проблему самостоятельно привело к нахождению решения через полтора часа. 😛
Можно предположить, что это частный случай, скорее связанный с моим некомпетентным подходом к работе с нейросетью. Но вот еще один пример, покажу свое общение и к каким результатам оно привело.
Сразу оговорюсь, что пример достаточно простой, даже для программиста уровня Джуна. И если Джун не глупый, то он сам найдет приемлемое решение примера за небольшое количество времени. Нейросети также зачастую квалифицируют как соответствующие уровню Джун, а специализированные и выше. Но вот как повела себя нейросеть, мне показалось - совсем как Джун недотёпа 🙃.
Вот первый запрос к нейросети с постановкой задачи:
Выделены ключи, которые требуется сохранить при объединении массивов.
Могу сказать, что задача выставлена не прям уж очень четко, потому что под «ключами первого уровня» можно понять и «group». Но ничего страшного, если сетка не поймет, то сможем уточнить запрос на второй итерации.
А вот и ответ нейросетки:
Где показан пример результата, который говорит о том, что нейронка меня правильно поняла.
Получил функцию, и естественно, что стал ее использовать не проверяя. Иначе теряется смысл использование нейросети, мог бы сразу залезть в мануал языка РНР и найти функцию в поисковике.
Но вот какой результат был получен:
Ключи явно не те, что требовались, а ведь результирующий пример нейросеть приводила с совсем другим результатом. Похоже обманула! Но ведь и Джуны обманывают, они ведь люди, иногда и просто по незнанию.
Что ж, какое-то время уже затрачено, с отрицательным результатом. Смотрим дальше на ответы нейросети:
Теперь нейросеть меня обвинила в произошедшем, потому что я использовал предложенную ею функцию в предыдущем запросе. Ну, и предложила альтернативное решение, которое выросло во много строк. На мой профессиональный взгляд – это рабочее решение, но несколько громоздкое, поэтому начинаю уточнять нюансы, и первое, что хочу получить массив с конкретным названием:
Код стал немного короче, но всё равно еще есть что улучшать. Начинаю задавать наводящие вопросы:
Код не уменьшился в размере, вероятно не дошел мой наводящий вопрос, попробуем по-другому:
Нейросеть это понимает, но почему то в своем решении предлагала не простое присвоение, а перебор элементов первого массива. Уточним ей задачу:
Вот, вроде и доползли до простенького решения.
ВЫВОД:
Для Джуна написание такого кода должно было занять минут 15, с учетом размышлений и осмыслений, если не тупой конечно 🤨. Нейросеть же сначала обманула, подсунула решение, которое оказалось неверным. Потом обвинила меня в неверном выборе решения 😣. Далее предложила неоптимальное решение – много кода и итераций. И только после ряда уточнений (часть была мной пропущена) смогла выдать приемлемый результат. А если бы я был тем самым Джуном, и не понимал нюансы языка? 😟
И это только небольшой кусочек проб и ошибок общения с нейронкой. В итоге, мы не имеем улучшения эффективности скорости работы, придумать код самому в такой простейшей ситуации намного быстрее. Не имеем оптимального решения сразу, его приходится выдаивать из нейронки, и то если есть понимание, какой должен быть в результате код. То есть уровень компетенций, для общения с нейронкой и получения эффективного кода должен быть достаточно высокий, не ниже Мидл+, а еще лучше Сеньор.
А как тогда быть со сложными задачами? Уровень компетенций проверяющего код после нейронки должен быть еще выше – профессор или академик?
Конечно я не предлагаю отказываться от использования нейронок, и могу сказать, что они меня учат размышлять. Особенно когда требуется критично посмотреть на «результаты труда» искусственного интеллекта. Но говорить о том, что они всех и вся заменят и всё упростят... как минимум рано!