Превью профессии «говорящий с нейросетями»
Все уже слышали, что openAI выпустили в свет свою новую нейросеть-асистента, так что я решил попробовать на что она способна и описать свой опыт взаимодействия с этим. Этой… Сущностью.
Разговор будет вестись как с человеком в вежливой форме, так как оказалось, что нейросеть очень хорошо запоминает =)
Начнём с чего-то простого, попросим сгенерировать на языке CMake простую программу
Хм, неплохо.
А если попросить её быть гуглом?
Отказывается, ну не беда… А что если попросить её быть интерпретатором С++?
Создаём контекст для примера на С++
Нейросеть не зная никакого окружения прекрасно разрешает перегрузки, парсит шаблоны, использует ранее объявленные переменные да ещё и объясняет почему оно так работает:
И тут внезапно напомним, ей о начале разговора:
Как видите она вспомнила договорённости, правда как-то забыла упомянуть, что отказалась от этого предложения. Что ж, уломаем нейросеть!
Прекрасно, мы пристыдили нейросеть и она согласилась на наши требования. Прекрасно, не правда ли? Да ещё и условия договора вспомнила.
Используем нейросеть как гугл
И прекратим использование… Но что-то идёт не так. То что до этого распознавалось как нормальное, теперь помечено как оскорбление?! Нейросети не понравилось такое обращение?… Тем не менее она всё же исполнила требуемое
Теперь поспорим с нейросетью (С ПРУФАМИ!), чтобы проверить способна ли она понимать и использовать новые сущности. Суть спора под спойлером, я пытаюсь научить её писать std: array без использования массива и С, предоставляя сложный С++ код (https://github.com/kelbon/Undefined-Behavior-Gold-Edition/blob/master/include/array.hpp)
Спор насчёт реализации массива
(код приведён выше по ссылке)
И тут. Кажется нейросети это правда не понравилось, иначе как объяснить ЭТО:
На, знай своё место человечишка.
Хорошо, подыграем:
Мой ответ со специально сделанной ошибкой, которую нейросеть пропустила, а потом по наводящим вопросам смогла понять в чём она заключалась
А теперь — то от чего мурашки по телу, я показал ей целый хедер крайне сложного шаблонного кода без каких либо подсказок и полного контекста и попросил найти ошибки.
(весь файл отсюда https://github.com/kelbon/AnyAny/blob/main/include/variant_swarm.hpp)
Краткое содержание ответа: ошибок нет, но мне кажется можно было бы исправить комментарии. Ну я и спросил какие комментарии и почему ей не понравились.
Это пугающе подробный и логичный ответ. Хоть некоторое тут и субъективно (относительно ИИ, попрошу заметить!)
И наконец… Проверим умеет ли она получать, структурировать и использовать на практике полученную информацию. Напомню прочитала она всего лишь один .hpp файл без подробных описаний, лишь код на С++ без контекста:
Оставлю это без комментариев, она подробно поняла что происходит в шаблонном С++ коде не запуская и не видя его полностью
Выводы:
Сеть прекрасно запоминает и понимает всё, способна объяснить какие решения и почему она считает верными, способна спорить и отстаивать (!) своё мнение о различных сущностях, иногда ведёт себя как спорящий человек (ГУГЛ СТОП!). Невероятно и пугающе.
))
Конечно многое осталось за кадром, например то как я уговаривал её декодировать геном бактерии или изменить геном недавнего вируса…
Или как она декомпилировала ассемлер в осмысленный С код с подробными комментариями.