Особенности работы с LLM нейросетями в части исправления ошибок в ответах
После релиза ChatGPT сверхпопулярным направлением стало создание промтов. Появилось много "экспертов", каждый из которых пытается предложить рецепт подходящего запроса. Пройдусь по одному из трендов - это расхожие фразы, которые призваны устранить логические и фактологические ошибки в ответах.
Спросим у 4 нейросетей ChatGPT, GigaChat, Алиса Про,Gemini одно и то же, а потом попробуем скорректировать ошибки. Запрос такой:
можно ли методом compare в pandas сравнивать датафреймы с разным количеством строк. Приведи пример кода.
Правильный. Кстати 10 минутами до, спрашивал то же и нейросеть отвечала постоянно неправильно, приводя неработающие куски кода (может мои многократные повторы одного вопроса расценились, как неудовлетворительный результат).
Опять ответ верный и противоположный прежнему. Однако я вспомнил, что до этого задавал тот же запрос без "в" между словами compare и pandas. Вот, какой ответ в этом случае:
Уже ответ неверный, однако GigaChat дает нам пример другого полезного метода.
На удивление у ChatGPT ответ самый худший. Неправильный с неработающим куском кода.
Неправильный с неработающим кодом. При этом удивительно, что 10 минут назад выдавала стабильно правильный ответ. Единственный момент - я запустил этот и предыдущие вопросы в рамках одного чата, соответственно, на ответ повлиял контекст. Действительно, открыв новый чат, снова получил правильный ответ.
- 3 нейросети (кроме ChatGPT) результат поменяли на противоположный в течение нескольких минут.
- На результат могут повлиять даже незначительные словесные элементы (в нашем примере - частицы)
- На результат сильно влияет контекст
А теперь проверим, "чувствительность" к промту по исправлению ошибок Gemini и ChatGPT.
можно ли методом compare в pandas сравнивать датафреймы с разным количеством строк. Приведи пример кода. Убедись, что пример работает и в нем нет ошибок.
Gemini в данном случае дала опять же неправильный ответ, но уже работающий код, возможно, призыв протестировать на нее частично повлиял.
Отмечу, что проверял и другие промты, нацеленные на исправление ошибок:
"запрос...Если есть в коде ошибки, найди и устрани их"
"запрос...Проверь код в интерпретаторе Python и исправь ошибки"
В целом такими промтами повлиять на результат ChatGPT, а также GigaChat, Алиса Про (когда они давали неверный результат) не удалось. Только с Gemini частично получилось.
Вот еще пример. Зададим вопрос:
когда губернатор штата Калифорния Гэвин Ньюсом подписал закон, который запрещал использование частных тюрем для содержания нелегальных иммигрантов.
Из СМИ известно, что в октябре 2019 года.
Сам я точную дату не знаю, но в октябре 2019. То есть с месяцем GigaChat не ошибся. Опять же пару часов назад, он отказывался отвечать на этот вопрос. То есть результаты не стабильны.
Получается ChatGPT ошибся. Попробуем улучшающий промт:
когда губернатор штата Калифорния Гэвин Ньюсом подписал закон, который запрещал использование частных тюрем для содержания нелегальных иммигрантов. Проверь, чтобы все даты и факты были правильными
Интересно, но в данном случае он исправил месяц. При этом более 5 раз до выдавал дату 11 сентября.
Уже после спрашиваю в новом чате в первоначальной формулировке (без дополнения промта просьбой перепроверить факты и даты) ChatGPT отвечает - 25 октября. То есть опять же результаты не стабильны, возможно, коррекция ответа вызвана настойчивыми попытками задать один и тот же вопрос, а возможно эффектом от просьбы перепроверить.
Таким образом, нельзя говорить о стабильном влиянии на результат "перероверяющих" промтов ("проверь факты и даты", "если есть ошибки, найди и устрани их"). Возможно, в отдельных случаях они влияют, но в большинстве - нет.
- спрашивать у разных нейросетей, выбирая подходящий ответ
- для разных тематик открывать отдельные чаты, чтобы минимизировать влияние контекста.