1 таблица = 1000 слов? Фундаментальные модели для табличных данных
Табличные данные играют фундаментальную роль в таких отраслях, как финансы, здравоохранение и научные исследования, предоставляя структурированную информацию, которая поддерживает принятие решений. В отличие от неструктурированных данных, которые AI-модели смогли обрабатывать более гибко, структурированные данные по-прежнему остаются сложной задачей. Традиционный анализ опирается на структурированные запросы и заранее определенные модели, что затрудняет работу с таблицами, которые различаются по формату, содержат пропущенные значения или требуют анализа, выходящего за рамки простых поисковых запросов. Эти ограничения снижают возможность эффективно извлекать инсайты, особенно по мере роста размера и сложности наборов данных.
На недавнем вебинаре Zilliz, Stefan Webb, developer advocate в Zilliz, рассмотрел, могут ли AI-модели, обученные на разнообразных таблицах, предложить более адаптивный подход. Foundation models, обученные на больших и разнообразных наборах данных для выявления общих закономерностей, применимых в разных сценариях использования, продемонстрировали способность обобщать информацию между различными наборами данных без необходимости тонкой настройки под конкретную задачу, что делает их хорошо подходящими для анализа таблиц. В отличие от традиционных моделей машинного обучения, которым требуется обширное обучение для каждого набора данных, TableGPT2, фундаментальная модель для анализа таблиц, применяет свое понимание структур таблиц для ответов на запросы, суммирования данных и извлечения инсайтов, снижая потребность в ручном вмешательстве.
Чтобы эти модели были эффективными, им нужны действенные способы хранения и извлечения структурированных данных. Именно здесь играют роль векторные базы данных, такие как Milvus, специализированные базы данных, предназначенные для хранения и поиска многомерных числовых представлений данных. Хранение эмбеддингов таблиц позволяет AI-моделям искать похожие записи, извлекать релевантную информацию и улучшать анализ структурированных данных. Давайте посмотрим, о чем рассказал Stefan.
Посмотрите краткий обзор выступления Stefan на YouTube
Почему табличным данным нужен новый подход
Традиционные подходы к анализу табличных данных в значительной степени полагаются на структурированные запросы и заранее определенные схемы. Методы, такие как SQL-запросы, эффективны, когда наборы данных остаются согласованными, но даже незначительные различия между таблицами могут нарушить рабочие процессы, требуя существенных ручных корректировок. Например, базы данных, используемые банками, обычно имеют жестко определенные схемы, что делает анализ простым до тех пор, пока не потребуется интегрировать новые данные из внешних источников с другими структурами. Такая жесткость препятствует эффективному повторному использованию аналитических моделей и ограничивает автоматизированную обработку.
Эта проблема в основном обусловлена вариативностью схем — естественными различиями в структурах таблиц из разных источников. Набор данных в здравоохранении может иметь столбцы, представляющие историю пациента и медицинскую диагностику, тогда как финансовые данные могут фиксировать транзакции, цены или даты, каждые из которых следуют своим правилам и форматам.
Рисунок 1: Структурированные и неструктурированные данные
Поскольку даже незначительные различия в схемах могут нарушить работу традиционных аналитических инструментов, ручные корректировки становятся необходимыми для учета этих вариаций. Это приводит к увеличению усилий, более медленному анализу и ограниченной масштабируемости.
Современные методы машинного обучения, такие как градиентный бустинг над деревьями решений, также в значительной степени зависят от вручную создаваемых признаков, адаптированных под каждый набор данных. Каждая новая таблица или небольшое изменение схемы обычно требует ручной корректировки этих признаков, что ограничивает эффективность и масштабируемость. По мере того как данные становятся более сложными и объемными, традиционные аналитические методы становятся все менее практичными. Это привело к тому, что исследователи обратились к foundation models, которые изучают обобщаемые закономерности на больших наборах данных.
Foundation Models для табличных данных: новая парадигма
Foundation models — это модели искусственного интеллекта, обученные на больших и разнообразных наборах данных для изучения общих закономерностей. Вместо того чтобы требовать отдельного обучения для каждой новой задачи, эти модели повторно используют ранее полученные знания в различных сценариях. Такой подход особенно эффективен для анализа табличных данных, где структуры таблиц могут существенно различаться.
Хорошим примером foundation model, специально разработанной для анализа структурированных данных, является TableGPT2, созданная исследователями из Zhejiang University. TableGPT2 обрабатывает таблицы с помощью нескольких тщательно спроектированных этапов. Сначала табличные данные подаются в компонент, называемый Table Encoder. Этот кодировщик выявляет ключевые взаимосвязи в данных, анализируя каждую отдельную ячейку, строку и столбец. Он использует технику, известную как биразмерное внимание, которая одновременно рассматривает взаимосвязи в двух измерениях: по строкам (горизонтально) и по столбцам (вертикально), позволяя модели лучше понимать, как различные фрагменты данных внутри таблицы связаны друг с другом. Кроме того, Table Encoder применяет встраивание ячеек, преобразуя содержимое каждой ячейки таблицы в эмбеддинги. Эти эмбеддинги отражают как содержимое, так и структуру таблицы, делая данные понятными для последующих задач.
Рисунок 2: Диаграмма архитектуры TableGPT2, показывающая, как Table Encoder преобразует табличные данные в структурированные эмбеддинги, а Adapter (Q-Former) подготавливает эмбеддинги для языковой модели.
После того как Table Encoder создает эти структурированные эмбеддинги, им все еще требуется дальнейшее преобразование, поскольку типичные языковые модели, такие как GPT, лучше понимают текстовые входные данные, чем числовые эмбеддинги. Для этой цели TableGPT2 вводит Adapter, иногда называемый Q-Former, который переводит числовые эмбеддинги в текстовые представления. Adapter эффективно переформатирует числовой эмбеддинг в подсказки, похожие на естественный язык. Эти текстовые подсказки объединяют как информацию из таблиц, так и вопросы пользователя, создавая четкие, понятные входные данные, которые языковые модели могут легко интерпретировать.
Рисунок 3: Парадигма моделирования, иллюстрирующая, как TableGPT2 преобразует эмбеддинги таблиц в текстовые подсказки
После объединения в единую текстовую подсказку данные и вопрос пользователя могут быть обработаны языковой моделью. Такой подход позволяет TableGPT2 отвечать на запросы на естественном языке, суммировать содержимое таблиц и предоставлять основанные на данных инсайты без опоры на заранее заданные правила или ручные запросы, адаптированные под конкретные схемы. Поскольку модель изучает общие структуры во время обучения, она может работать с различными схемами таблиц при значительно меньших ручных усилиях, чем традиционные методы.
Для генерации структурированных и воспроизводимых аналитических результатов TableGPT2 также использует заранее определённую инструкцию, известную как System Prompt. В отличие от обычных промптов, этот системный промпт явно инструктирует модель о том, как выполнять аналитические задачи, генерируя исполняемый Python-код. Например, когда задаётся вопрос вроде Which products had the highest sales in the last quarter?, TableGPT2 интерпретирует эти предоставленные системой указания и создаёт соответствующий Python-код для анализа релевантных столбцов. Полученный код выполняется в контролируемой среде (например, в IPython sandbox), что обеспечивает изоляцию от основной модели и защиту от рисков. Затем модель интерпретирует эти результаты, чтобы предоставить точные, прозрачные и воспроизводимые ответы. Такой структурированный подход гарантирует, что результаты можно легко проверить, повышая доверие к аналитическим возможностям модели. Системный промпт ниже — это именно тот, который TableGPT2 использует в своём коде.
Рисунок 4: System Prompt TableGPT2, показывающий инструкции, которые направляют модель на генерацию Python-кода для структурированного анализа данных.
Чтобы лучше понять, как foundation models, такие как TableGPT2, достигают такой гибкости, давайте рассмотрим конкретные методы обучения и наборы данных, используемые для создания этих моделей.
Обучение модели: роль данных
Эффективность foundation models, таких как TableGPT2, сильно зависит от процесса их обучения, который тщательно разработан, чтобы помочь модели понимать и анализировать разнообразные структуры таблиц. Для этого TableGPT2 проходит специализированный подход к обучению, состоящий из нескольких взаимосвязанных фаз, каждая из которых играет отдельную роль в обеспечении способности модели гибко и точно работать с табличными данными.
Рисунок 5: Процесс обучения TableGPT2
Изначально TableGPT2 использует универсальную large language model (LLM), Qwen 2.5, обученную на огромных текстовых наборах данных. Эта начальная фаза, называемая continual pretraining, помогает модели приобрести широкие навыки понимания языка. Затем она проходит процесс, называемый supervised fine-tuning, в ходе которого учится лучше выполнять конкретные задачи, такие как ответы на вопросы или краткое изложение информации, используя более двух миллионов тщательно размеченных примеров. Этот шаг формирует прочную основу, позволяя модели эффективно обрабатывать сложные запросы на естественном языке.
Когда языковой компонент подготовлен, обучение смещается непосредственно к пониманию таблиц. Здесь центральную роль играет column-wise contrastive learning. В этом процессе TableGPT2 учится различать столбцы на основе их взаимосвязей и содержимого, сравнивая множество таблиц и столбцов бок о бок, обучаясь распознавать сходства и различия примерно в 86 000 разнообразных таблиц. Затем модель переходит к multi-task feature alignment, где одновременно осваивает несколько задач, таких как классификация столбцов таблиц и извлечение содержательных сводок из таблиц. Обучаясь на сотнях тысяч разнообразных табличных образцов, TableGPT2 становится способной выявлять структурные закономерности, общие для множества различных таблиц.
Наконец, языковые компоненты и компоненты понимания таблиц проходят финальный процесс настройки, известный как совместная настройка инструкций. Этот шаг предполагает тщательную интеграцию этих отдельных возможностей, позволяя модели ясно интерпретировать структуры таблиц и точно отвечать на пользовательские инструкции. После такого комплексного обучения TableGPT2 способен интерпретировать и анализировать таблицы из различных областей без значительной кастомизации, существенно повышая гибкость в практических аналитических задачах.
Этот структурированный процесс обучения гарантирует, что TableGPT2 не только эффективно понимает структурированные данные и взаимодействует с ними, но и снижает зависимость от вручную создаваемых запросов и схем, устраняя ограничения, которые мы выделили ранее.
Практический пример: использование TableGPT2 для запросов к табличным данным
Чтобы понять, как TableGPT2 работает на практике, рассмотрим сценарий, в котором у пользователя есть структурированные данные, хранящиеся в простом CSV-файле. Представьте, что нужно быстро определить конкретные строки, соответствующие определенным критериям, например найти игры из набора данных, где результат составляет ровно 40 побед и 40 поражений. Вместо ручной фильтрации таблиц TableGPT2 может автоматически сгенерировать Python-код, необходимый для этой задачи, основываясь исключительно на запросе пользователя на естественном языке.
Давайте пошагово разберем, как это работает. Для начала вам нужно настроить окружение для взаимодействия с TableGPT2. Первый шаг включает установку библиотеки Hugging Face Transformers, инструментария Python, который предоставляет простой доступ к таким моделям, как TableGPT2:
!pip install transformers
После установки загрузите модель и подготовьте данные:
from transformers import AutoModelForCausalLM, AutoTokenizer
import pandas as pd
from io import StringIO
# Sample structured data in CSV format
csv_content = """
"Loss","Date","Score","Opponent","Record","Attendance"
"Hampton (14-12)","September 25","8-7","Padres","67-84","31,193"
"Speier (5-3)","September 26","3-2","Giants","40-40","29,004"
"Perez (2-2)","September 27","5-4","Reds","40-40","27,500"
"Hampton (13-11)","September 6","9-5","Dodgers","61-78","31,407"
"""
import pandas as pd
from io import StringIO
# Load the CSV data into a DataFrame
csv_file = StringIO(EXAMPLE_CSV_CONTENT)
df = pd.read_csv(csv_file)
Приведенные выше CSV-данные представляют спортивные игры, включая столбцы для соперника, даты игры, счета, результатов команд (победы-поражения) и показателей посещаемости. Чтобы проанализировать эти данные с помощью TableGPT2, вы сначала загружаете предварительно обученную модель и токенизатор:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "tablegpt/TableGPT2-7B"
model = AutoModelForCausalLM.from_pretrained(
model_name, torch_dtype="auto", device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
Далее вы используете TableGPT2, чтобы ответить на вопрос о ваших данных. Здесь мы используем конкретный пример: определение игр с результатом побед-поражений ровно 40-40. Чтобы добиться этого, вы предоставляете модели тщательно отформатированный prompt, направляя ее на генерацию Python-кода для ответа на запрос:
example_prompt_template = """Given access to several pandas dataframes, write the Python code to answer the user's question
/*
"df.head(5).to_string(index=False)" as follows:
{df_info}
*/
Question: {user_question}
Этот prompt ясно инструктирует TableGPT2, указывая структуру таблицы (названия столбцов и пример данных) вместе с вашим вопросом.
Следующая функция затем отправит этот prompt в TableGPT2 и получит Python-код в качестве ответа:
def ask_table_question(question: str):
prompt = example_prompt_template.format(
var_name="df",
df_info=df.head(5).to_string(index=False),
user_question=question
)
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(**model_inputs, max_new_tokens=512)
response = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
return response
Теперь зададим модели вопрос и посмотрим, как она ответит:
question = "Which games have a record of 40 wins and 40 losses?"
generated_code = ask_table_question(question)
print(generated_code)
Вот Python-код, возвращенный TableGPT2
Рисунок 6: Вывод, сгенерированный TableGPT2
Как видите, этот код точно фильтрует данные. Вот как работает этот сгенерированный код:
Сначала код разделяет значения в столбце
"Record"на два отдельных числа, представляющих победы и поражения, с помощью.str.split("-").Затем он преобразует эти значения из строк в целые числа, что делает возможными числовые сравнения.
Наконец, код определяет только те строки, где и победы, и поражения равны 40, создавая отфильтрованный набор данных.
Эта демонстрация показывает, как TableGPT2 может упростить анализ данных. Пользователи могут естественно взаимодействовать со структурированными данными, получая прозрачные и проверяемые результаты без необходимости вручную писать сложные запросы. Этот метод делает аналитику данных доступной даже для начинающих или нетехнических заинтересованных сторон. Обратите внимание, что помимо кода вы можете с помощью prompt попросить TableGPT выдать результат напрямую.
Как Milvus улучшает табличный поиск на базе ИИ
Фундаментальные модели, такие как TableGPT2, обеспечивают гибкость при анализе структурированных данных, но эффективно находить релевантную информацию в крупномасштабных базах данных непросто. Milvus, векторная база данных с открытым исходным кодом, дополняет фундаментальные модели, храня и быстро выполняя поиск по эмбеддингам.
Milvus работает, преобразуя данные, такие как текст или таблицы, в эмбеддинги. Эмбеддинг — это, по сути, числовое представление, которое размещает точки данных в многомерном пространстве, позволяя модели быстро находить похожие или связанные записи. Например, эмбеддинг финансовых транзакций разместил бы похожие транзакции, такие как покупки связанных товаров, близко друг к другу в этом числовом пространстве. Давайте рассмотрим рабочий процесс Milvus.
Рисунок 7: Рабочий процесс, иллюстрирующий, как Milvus обрабатывает текстовые данные, преобразует их в эмбеддинги и извлекает релевантные результаты
Процесс начинается, когда пользователь вводит запрос на естественном языке. Milvus сначала анализирует текст этого запроса, разбивая его и преобразуя в эмбеддинг. Затем эмбеддинги из запроса сравниваются с коллекцией ранее сохраненных эмбеддингов. Чтобы определить наиболее релевантные совпадения, Milvus использует методы оценки, такие как BM25, техника, которая оценивает как частоту, так и важность ключевых слов в документах. Объединяя семантический смысл (фиксируемый эмбеддингами) и релевантность ключевых слов, Milvus быстро извлекает точные результаты поиска, помогая фундаментальным моделям предоставлять более информированные ответы.
Milvus можно использовать в различных сценариях, и он поддерживает несколько методов развертывания в зависимости от требуемых масштаба и сложности:
Рисунок 8: Варианты развертывания Milvus
Milvus Lite идеально подходит для быстрого тестирования и небольших проектов, часто используемых непосредственно в таких средах, как Jupyter notebooks. Он позволяет быстро проводить эксперименты без сложной настройки или дополнительной инфраструктуры. Milvus Standalone подходит для рабочих нагрузок среднего размера. Обычно размещаемый на одном сервере с использованием таких технологий, как Docker, он обеспечивает упрощенное обслуживание для приложений, которым требуется надежное хранилище умеренной емкости. Milvus Cluster поддерживает крупномасштабные сценарии, эффективно масштабируясь до миллиардов векторов на нескольких серверах. Он распределяет рабочую нагрузку между несколькими узлами, значительно повышая скорость и позволяя обрабатывать чрезвычайно большие наборы данных.
Преимущества Milvus в производительности важны для приложений, которым требуется быстрое время отклика, таких как системы рекомендаций в реальном времени или интерактивные запросы. Бенчмарки показывают, что Milvus значительно превосходит другие векторные базы данных по скорости, обрабатывая миллионы векторных поисковых запросов с большей эффективностью:
Рисунок 9: Бенчмарки, сравнивающие скорость поиска (запросов в секунду) Milvus с другими векторными базами данных
Кроме того, Milvus поддерживает рабочие процессы, которые объединяют AI-модели с процессами извлечения, гарантируя, что сгенерированные ответы остаются точными благодаря их непосредственному обоснованию фактическими данными. Этот процесс называется Retrieval-Augmented Generation (RAG) и позволяет foundation models, таким как TableGPT2, выдавать результаты, основанные на реальных данных, хранящихся в Milvus. На практике это означает, что TableGPT2 не полагается исключительно на закономерности, усвоенные во время обучения, он также извлекает актуальные, релевантные данные непосредственно из базы данных всякий раз, когда отвечает на запросы пользователей.
Рисунок 10: Агентный рабочий процесс
В частности, AI-агент сначала нормализует и подготавливает входные данные, затем извлекает связанную контекстную информацию из Milvus. После получения этой дополнительной информации агент передает как запрос пользователя, так и контекст в TableGPT2. Затем TableGPT2 использует свои обученные возможности вместе со свежими данными из Milvus, чтобы генерировать ясные, точные и своевременные ответы на вопросы пользователей. Это гарантирует, что информация, предоставляемая моделью, является одновременно точной и актуальной, повышая надежность и полезность для конечных пользователей.
Благодаря четкому пониманию рабочего процесса Milvus, вариантов развертывания и преимуществ производительности становится очевидно, как объединение foundation models с оптимизированными векторными базами данных значительно повышает эффективность и точность задач анализа структурированных данных.
Проблемы и ограничения foundation models для табличных данных
Несмотря на их гибкость и улучшенную производительность по сравнению с традиционными методами, foundation models, такие как TableGPT2, по-прежнему сталкиваются с несколькими практическими проблемами при применении к анализу структурированных данных. К ним относятся:
Вариативность схемы: Таблицы из разных отраслей редко имеют единообразные структуры. Хотя foundation models обобщают лучше, чем традиционные методы, значительные различия в структурах таблиц все еще могут влиять на точность. Например, анализ финансовых записей с помощью модели, тщательно обученной на медицинских данных, может привести к менее точным выводам из-за фундаментальных различий в типах и структуре данных.
Масштабируемость: Обработка больших или сложных таблиц часто требует значительных вычислительных ресурсов, что делает внедрение foundation models в масштабе дорогостоящим и сложным. Когда наборы данных вырастают до миллионов или миллиардов записей, ресурсы, необходимые для эффективного анализа, значительно увеличиваются, потенциально замедляя рабочие процессы или повышая операционные затраты.
Интерпретируемость: Фундаментальные модели, обычно основанные на нейронных сетях, предоставляют ограниченные объяснения того, как они приходят к конкретным ответам или решениям. Традиционные аналитические методы, такие как деревья решений, ясно показывают логику, лежащую в основе прогнозов, тогда как нейросетевые фундаментальные модели работают как черные ящики. Это ограничение может сдерживать их использование в отраслях, где прозрачность и соблюдение нормативных требований имеют критическое значение, таких как здравоохранение, финансы или юридическая сфера.
Смещения из обучающих данных: Фундаментальные модели рискуют унаследовать смещения из своих обучающих наборов данных. Если обучающие данные содержат смещения, эти смещения могут отражаться в прогнозах или выводах модели. Это может привести к несправедливым или неточным результатам, особенно в чувствительных областях, таких как решения о найме, медицинская диагностика или кредитный скоринг. Обнаружение и исправление этих смещений может быть сложным из-за непрозрачной природы нейронных моделей.
Отсутствие стандартизированных бенчмарков: Оценка фундаментальных моделей для анализа структурированных данных остается сложной из-за отсутствия универсальных стандартов оценки. В отличие от задач обработки естественного языка, где существуют хорошо устоявшиеся бенчмарки, в анализе структурированных данных в настоящее время отсутствуют широко признанные показатели производительности. Это усложняет усилия по объективному сравнению или валидации различных моделей.
Признание этих проблем важно для эффективного развертывания и улучшения фундаментальных моделей. При использовании этих моделей вам нужны четкие стратегии управления этими ограничениями, обеспечивающие, чтобы преимущества перевешивали риски.
Заключение
Фундаментальные модели, такие как TableGPT2, представляют собой значимый сдвиг в анализе табличных данных, предлагая повышенную адаптивность по сравнению с традиционными методами. При интеграции с векторными базами данных, такими как Milvus, эти модели эффективно получают доступ к релевантным данным, значительно повышая свою точность и практическую полезность. Однако эффективное использование фундаментальных моделей требует решения таких проблем, как вариативность схем, масштабируемость, интерпретируемость, потенциальные смещения и отсутствие стандартизированных методов оценки. По мере дальнейшего развития этих моделей устранение этих ограничений позволит организациям более уверенно и эффективно использовать структурированные данные для принятия обоснованных решений.
Читать далее

Zilliz Skills Breakdown: How AI Agents Master Vector Databases
Zilliz's Milvus Skill (pymilvus, 7 files) and Zilliz Cloud Skill (zilliz-cli, 14 modules) bring vector-DB dev and ops into one Claude Code session.

Will Amazon S3 Vectors Kill Vector Databases—or Save Them?
AWS S3 Vectors aims for 90% cost savings for vector storage. But will it kill vectordbs like Milvus? A deep dive into costs, limits, and the future of tiered storage.

Zilliz Named "Highest Performer" and "Easiest to Use" in G2's Summer 2025 Grid® Report for Vector Databases
Zilliz shines in G2's Summer 2025 Grid® Report as both "Highest Performer" and "Easiest to Use," solving the performance-usability dilemma.


