Создайте Суперсигнал для преобразования естественного языка в SQL для OpenAI.

Как создать мощный инструмент для преобразования естественного языка в SQL с помощью OpenAI

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

Эта статья является частью бесплатного курса о больших языковых моделях, доступного на GitHub.

Изображение, созданное автором с использованием Dall-E2.

В этой статье мы рассмотрим, как создать запрос, чтобы модели GPT от OpenAI могли выполнять задачи NL2SQL. А именно, переводить пользовательские языковые запросы в команды SQL, которые будут извлекать запрашиваемые данные.

Для этого мы начнем с работы из Огайо Университета: ‘Как проинструктировать LLM для работы с текстом-в-SQL: исследование в нулевом, однообластном и междуобластном настройках.‘. Мы изменим то, что уже видели во второй статье курса по большим языковым моделям.

Структура запроса.

Запрос будет состоять из четырех разделов:

  • Структура таблицы с примерами ее содержимого.
  • Инструкции для направления модели на генерацию SQL.
  • Корректные примеры SQL, известные как Few Shot Samples.
  • Вопрос пользователя.

Запрос, который мы собираемся создать, является самым полным, включая несколько примеров с перекрестными ссылками между таблицами.

Не всегда необходимо предоставлять примеры SQL модели – если таблица проста и мы предоставили достаточно информации, модель сможет сгенерировать правильный SQL только на основе структуры базы данных.

Однако эти примеры также позволяют нам влиять на стиль и формат, в котором мы хотим получить SQL.

Структура таблиц:

create table employees(        ID_Usr INT primary key,        name VARCHAR);    /*3 строки примера    select * from employees limit 3;    ID_Usr    name    1344      George…