Исследование данных на естественном языке

ChatGPT, новый интерфейс чат-бота с искусственным интеллектом от OpenAI, выпущенный в начале декабря, продемонстрировал замечательную способность отвечать на вопросы и генерировать творческую работу. С возможностью писать стихи, сценарии и даже код возникают вопросы, что он не может делать и кого он в конечном итоге не заменит.

Как специалист по данным, я хотел узнать о его способности копировать запрашиваемую базу данных или инструмент BI. Кто бы не хотел отказаться от громоздкого и жесткого SQL в пользу чего-то более естественного? Но действительно ли исследование данных на естественном языке жизнеспособно? Я решил проверить эту способность в ChatGPT с помощью тестового примера: спросить о росте президентов США.

Пока вроде все хорошо. Он собрал данные, которые я просил. Это идет с оговоркой:

Сравнивая это со списком, который я нашел в другом месте, я вижу некоторые несоответствия. Франклин Пирс был ростом 6 футов 0 футов или 5 футов 10 футов? GPT не известен 100% точностью, что является важным моментом, к которому я вернусь позже, по причинам, помимо фактической правильности.

А пока я хочу увидеть, насколько легко запросить эту информацию. В моей первой попытке ChatGPT фактически сообщил мне, что не может запустить SQL. Я попытался по-другому, пытаясь быть более явным.

Теперь есть некоторый явный код SQL, который выглядит очень разумно. Могу ли я запросить?

Он дает мне несколько примеров запросов и сопутствующих пояснений, но не выполняет их.

Что, если я просто спрошу простым языком?

Опять же, здесь он говорит мне, как это сделать, но результаты, которые он возвращает, приведены просто в качестве примера:

Обратите внимание, что это всего лишь примеры, иллюстрирующие работу запроса. Фактические данные в таблице и результаты запроса могут различаться в зависимости от конкретных данных в таблице.

Что, если я перезапущу ветку и начну снова с того же вопроса, отбросив весь контекст, связанный с таблицами SQL и кодом?

Даже не зная правильных ответов, могу сказать, что это явно неверно. Номер 5 имеет рост 5 футов 4 фута.

После достаточного количества проб и ошибок я, вероятно, мог бы сформулировать более строгий подход к этому. Другие дошли до создания хранилища ключ-значение или виртуальной машины.

В долгосрочной перспективе такой подход, скорее всего, не будет полным решением. Существует множество областей анализа данных, предъявляющих фундаментальные требования к строгости. Например:

  • Воспроизводимость — каждый раз вы получаете один и тот же ответ?
  • Объяснимость — можете ли вы подробно объяснить свой ответ? Можете ли вы идентифицировать неточность в своем вопросе, которая может привести к ответу, который не соответствует вашему запросу?

Представьте себе получение отчетов, связанных с такими вещами, как финансовые результаты, история болезни и судебные решения. Нечеткие границы могут быть проблематичными. Вы хотите быть уверены в том, что получаете.

Другие сравнивают работу ТШП с мышлением Системы 1, инстинктивным мышлением, о котором писал Дэниел Канеман, а не с Системой 2, более строгим и линейным мышлением, возникающим при выполнении кода и математической пошаговой дедукции. Решение для запроса данных Системы 1 может быстро дать вам достойные ответы, но решение Системы 2 необходимо, чтобы им верить.

Конечно, даже мысль о том, что GPT может в конечном итоге заменить SQL, показывает, насколько он впечатляет. Естественный язык не может заменить строгость определенного языка программирования, но потенциально может дополнить его. Как было показано, GPT способен генерировать код, в том числе SQL, и может делать это на основе приглашения на естественном языке. Запрашивая то, что мы хотим, на естественном языке, а затем используя сгенерированный код, чтобы получить то, что мы хотим, мы можем иметь как желаемую простоту, так и необходимую нам строгость.