Как многие уже убедились, ChatGPT хорош, но есть некоторые типы задач, с которыми у него возникают трудности:
- Он не может получать новые актуальные знания из сети.
- Он не может выполнить какие‑либо действия.
- У него сложности с алгоритмическими задачами (перевернуть строку, решить уравнение, произвести вычисления с применением численных методов).
И если задача 1 решается с помощью BingChat, то 2 и 3 мы сегодня будем решать в рамках данного туториала.
Основная идея такая: пусть ChatGPT сам решает, может ли он справиться с задачей «в уме» или же это лучше сделать с помощью написания кода на python, а наш сервер сразу же выполняет этот код и снова отдает результат работы ChatGPT, чтобы он мог его интерпретировать и выдать пользователю окончательный ответ или исправить ошибку в своей программе и попытаться ещё раз.
Давайте посмотрим, как это работает на примерах. (Важно отметить, что это конечно же happy day scenario — в реальности было достаточно много ошибок и ситуаций, когда код написаный ChatGPT так и не заработал. В этом случае сеть выдает вполне адекватные оправдания и рекомендации, и приносит извинения пользователю).
Начнем со школьных задач по линейной алгебре
А что, так разве можно было? Видно, что GPT написал код, выводящий цифры, а затем обернул результат в корректный ответ. Что ж, попробуем ещё задачку:
И снова правильное решение, хотя подход на этот раз несколько другой.
Переходим к практическим задачам — загрузка данных из интернета!
Задачи на матанализ и численные методы
Здесь у меня возникли сложности. Сеть лихо пользуется библиотеками которые, умеют дифференцировать, интегрировать, считать пределы и делать всякие штуки, которые в школе не проходили:) с помощью аналитических приемов. Вот как это выглядит:
Здесь стоит обратить внимание на то, как классно отработала пост‑обработка ответа. Код возвращает только число, а сеть добавляет к нему справочную информацию о том, что это за число. Чтож, попробуем задачу, которая явно не имеет аналитического решения:
Ну почти… хоть решение найдено, но всё ещё сложно понять, насколько система хорошо понимает проблему. Использовать готовые библиотеки такого уровня — много ума не надо. Попробуем ей это запретить:
Очень классный результат! Сеть не только решила пример, но и дала пояснение о том, каким именно методом воспользовалась, а результат совпал с предыдущим, что говорит о том, что решение скорее всего верное. На всякий случай проверим:
Пара слов про метамышление
Как пишет Стивен Флеминг в своей книге «Метамышление», способность к познанию своих ментальных возможностей (понимание и применение того, что ты чего-то не знаешь, а в чем-то сомневаешься, а окружающие тебя существа не знают чего-то, что известно тебе) — один из самых сложных видов мозговой деятельности, предвестник сознания, которым обладают только люди, дельфины и некоторые человекоподобные обезьяны, например шимпанзе.Здесь мы видим, что нейронная сеть тоже проявляет способности к метапознанию — она неплохо распознает задачи, которые неспособна решить «в уме» и активно пользуется данными ей инструментами для их решения. Мне кажется, что это невозможно без построения сетью модели самой себя в окружающем мире. Есть о чем задуматься…