Яньшуай Цао представил проект Turing для генерации SQL-запросов

The TWIML AI Podcast 3,4 тыс. 41 мин 7 мин 16.09.2021
Главное

В новом выпуске подкаста The TWIML AI Podcast ведущий Сэм Чаррингтон беседует с Яньшуаем Цао (Yanshuai Cao), старшим руководителем исследовательской группы в Borealis AI. Разговор посвящен проекту Turing — академической демоверсии интерфейса для баз данных, переводящего естественный язык в структурированные SQL-запросы. Главным прорывом команды стала технология, позволяющая обучать сверхглубокие нейросети на крайне малых объемах данных, что открывает новые возможности для интеграции искусственного интеллекта в финансовый сектор.

🎓 От гауссовских процессов к уязвимостям нейросетей 0:41

Свой путь в сфере искусственного интеллекта Яньшуай Цао начал в Университете Торонто, где изучал компьютерные науки, математику и статистику. Во время учебы ему удалось поработать в лаборатории компьютерного зрения под руководством Дэвида Флита (David Fleet), что предопределило его дальнейшую научную карьеру. Впоследствии Цао защитил докторскую диссертацию, посвященную гауссовским процессам — классу байесовских непараметрических моделей, способных быстро обучаться на малых объемах данных. Его работа была сосредоточена на масштабировании вычислений для таких процессов.

Параллельно исследователь увлекся проблемой состязательной робастности (adversarial robustness) нейросетей. В то время научное сообщество только обнаружило, что незначительные, незаметные для человеческого глаза изменения пикселей на картинке могут заставить модель полностью изменить класс объекта. Команда Цао пошла дальше: они выяснили, что можно модифицировать не просто итоговую метку, а внутренние признаки (features) изображения.

В качестве эксперимента ученые взяли фотографию самого Яньшуая Цао. Как продемонстрировало исследование, после применения состязательного шума нейросеть начинала воспринимать внутренние признаки его лица в точности так же, как признаки автомобиля конкретной марки, цвета и ракурса. В тот момент казалось, что эта проблема будет решена быстро, однако, по словам гостя, она остается нерешенной и по сей день.

🌐 Переход в NLP и рождение проекта Turing 2:54

Позже, присоединившись к команде Borealis AI (исследовательскому подразделению Королевского банка Канады, RBC), Цао обнаружил, что состязательные атаки работают не только в компьютерном зрении, но и в обработке естественного языка (NLP), где злоумышленники могут добавлять скрытый текст для обмана моделей. Это натолкнуло его на фундаментальный вывод: математические модели представляют мир иначе, чем люди. По мнению Цао, современные алгоритмы склонны полагаться на «ложные корреляции» и короткие пути вместо реального понимания сути.

Для решения этой проблемы исследователь решил переключиться на NLP, поскольку язык сам по себе является готовой моделью мира и гораздо ближе стоит к человеческому мышлению и логике. Кроме того, внутри банковской структуры Borealis AI существовал огромный потенциал для практического применения текстовых технологий.

Результатом этой работы стал проект Turing — академическая демоверсия интерфейса базы данных на естественном языке. С практической точки зрения цель проекта заключается в том, чтобы позволить нетехническим специалистам извлекать ценные инсайты из структурированных данных без знания языков программирования. С научной же точки зрения, как подчеркивает Цао, это сложнейшая задача семантического парсинга. Модель должна преобразовать гибкий и неоднозначный английский язык в строгий и однозначный машинный код SQL. Ситуация осложняется тем, что без знания точной схемы базы данных запрос пользователя остается недоопределенным. Модель обязана научиться обобщать свои знания на совершенно новые, незнакомые ей домены и базы данных.

📊 Turing против OpenAI Codex: специфика SQL-данных 7:43

Ведущий Сэм Чаррингтон отметил, что обсуждение проекта Turing совпало по времени с громким релизом модели Codex от OpenAI, предназначенной для генерации кода. Цао провел детальное сравнение этих систем, выделив ключевые различия в их сложности и доступности данных.

По мнению гостя подкаста, Codex демонстрирует впечатляющие результаты во многом благодаря специфике целевых языков программирования, таких как Python или JavaScript. Для их обучения доступен колоссальный объем открытых данных в репозиториях вроде GitHub. Ситуация с SQL принципиально иная.

Основные барьеры для Text-to-SQL моделей, согласно анализу Цао, включают в себя:

Именно поэтому, как объясняет исследователь, Turing создавался как академический проект для обкатки новых архитектурных решений, в то время как OpenAI на базе Codex смогла сразу построить коммерческий продукт.

🧠 Здравый смысл и архитектурные хитрости 9:50

Чтобы успешно транслировать речь в SQL-запрос, искусственный интеллект должен обладать тем, что люди называют здравым смыслом и контекстным мышлением. Яньшуай Цао привел простой пример: если пользователь спрашивает «Какие города имеют наибольшее количество сотрудников моложе 30?», фраза «моложе 30» очевидно указывает на возраст. Однако в самой базе данных слово «возраст» может вообще не фигурировать в тексте вопроса — модель должна сама связать число 30 с колонкой age. Другой пример логического вывода — умение связывать две разрозненные таблицы, между которыми нет прямых внешних ключей (foreign keys), понимая, что для построения корректного SQL-запроса нужно задействовать третью, промежуточную таблицу.

Архитектурно Turing построен на базе классической структуры «энкодер-декодер», но со специфическими модификациями:

Стандартные трансформеры воспринимают входные данные как полносвязный граф, где каждое слово связано со всеми остальными. Модифицированная модель Borealis AI накладывает на этот граф априорные структурные связи (inductive biases). Система изначально получает информацию о связях внешних ключей из схемы базы данных и эвристические предположения о том, какие слова запроса могут относиться к конкретным колонкам. В процессе сквозного (end-to-end) обучения сеть учится корректировать эти веса и отсеивать ложные, шумные ассоциации.

🛠️ Метод DT-Fixup: как обучить глубокий трансформер на 5000 примеров 20:26

Главной гордостью команды Яньшуая Цао стала победа над проблемой нехватки данных. Для обучения семантических парсеров используется стандартный бенчмарк Spider. По меркам современного глубокого обучения он крошечный: всего 200 баз данных и чуть более 5000 учебных запросов. При этом от модели требуется способность работать на совершенно новых доменах.

Исследователи упомянули, что некоторые научные группы пытаются обучать модели не на самих текстах SQL-запросов, а на результатах их выполнения базой данных. Однако, как утверждает Цао, этот подход обычно работает плохо, если не использовать методы подкрепления (reinforcement learning). Команда Borealis AI пошла другим путем: они использовали результаты выполнения запросов исключительно для последующей аугментации данных, что позволило заметно повысить точность.

Тем не менее, если построить очень глубокий реляционный трансформер, на маленьком датасете он попросту не обучится. Существовало стойкое убеждение, что для глубоких трансформеров необходимы гигантские массивы информации. Команда Цао опровергла этот тезис, представив на конференции ACL метод DT-Fixup (Data-dependent Transformer Fixup).

Суть метода заключается в особом способе инициализации параметров модели:

Благодаря DT-Fixup ученым удалось стабильно обучить сеть глубиной в 48 слоев на выборке менее чем в 5000 запросов. Более того, они протестировали этот подход на абсолютно другой сложной задаче — логическом понимании прочитанного текста (logical reading comprehension) — и без какой-либо дополнительной инженерной настройки получили результат, близкий к мировому рекорду (state-of-the-art).

🔍 Проблема объяснимости и генерация в реальном мире 31:12

Несмотря на технологические прорывы, Цао честно признает, что Text-to-SQL системы еще не достигли стопроцентной точности, позволяющей безоговорочно доверять исполнению сгенерированного кода в реальном бизнесе. Чтобы решить эту проблему, в интерфейс демоверсии Turing был встроен уникальный модуль объяснимости (explainability module).

Во время работы Turing генерирует не один, а несколько вариантов SQL-запросов (гипотез). Затем система переводит эти варианты обратно на понятный человеку естественный язык и подсвечивает различия между ними. Пользователь может увидеть, например, что в одной гипотезе используется одна колонка данных, а во второй — другая, и сам выбирает вариант, который точно соответствует его первоначальному замыслу.

Интересно, что для обратного перевода из SQL в английский язык разработчики сознательно отказались от использования нейросетей. По словам Цао, применение генеративного ИИ здесь недопустимо, так как он привносит собственный шум и языковые искажения. Вместо этого они создали строгую лингвистическую модель на базе правил и грамматики, которая композиционально, шаг за шагом, расшифровывает логику SQL-запроса.

Исследователь считает, что пользователю нет необходимости понимать внутреннюю работу триллионов синапсов нейросети. Гораздо важнее дать ему надежный дискретный интерфейс (каковым и является SQL), который служит мостом для общего понимания между машиной и человеком. В будущем команде предстоит решить еще один глобальный вызов — робастность моделей в дикой природе, поскольку при переносе систем на данные, собранные по другим протоколам, точность работы ИИ все еще ощутимо падает.

💬 Цитаты

«Математические модели представляют мир иначе, чем люди.»

Яньшуай Цао 04:14

«Язык — это уже готовая модель мира.»

Яньшуай Цао 05:07
👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
Семантический парсинг
Процесс перевода текста на естественном языке в формальное машиночитаемое логическое выражение или код.
Состязательная робастность
Устойчивость моделей машинного обучения к специальным микроискажениям входных данных, призванным обмануть систему.
Внешний ключ (Foreign key)
Столбец или группа столбцов в таблице базы данных, которая ссылается на первичный ключ другой таблицы для связи между ними.
Индуктивное смещение (Inductive bias)
Набор априорных допущений, которые алгоритм машинного обучения использует для прогнозирования результатов на незнакомых данных.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Text-to-SQL Yanshuai Cao Borealis AI DT-Fixup