Представляем IBM Data Prep Kit для оптимизированных рабочих процессов LLM
Большие языковые модели (LLMs) получили широкое распространение в здравоохранении, розничной торговле и электронной коммерции, принося миллиарды долларов совокупной выручки. Ключевой составляющей успеха этих LLMs являются данные, на которых они обучаются. Общий интеллект этих моделей зависит от количества, качества и разнообразия используемых данных; поэтому обеспечение эффективной предварительной обработки становится критически важным.
На недавней NYC Unstructured Data Meetup, организованной Zilliz, Сантош Борсе, старший инженер в IBM Research, рассказал об открытом Data Prep Kit (DPK), который они создали для оптимизации процесса подготовки данных для рабочих процессов LLM. Он обсудил проблемы, связанные с качеством данных, то, как они их решали, и конвейер для внедрения открытого DPK.
В этом блоге мы кратко изложим его ключевые тезисы и рассмотрим, как DPK можно дополнительно интегрировать с Milvus для таких приложений, как семантический поиск и Retrieval Augmented Generation (RAG).
Данные — это новая нефть!
«Данные — это новая нефть» — это утверждение вполне применимо к росту LLM. Подобно тому как нефть движет экономикой, данные являются источником успеха LLMs.
Вот список источников данных, которые многие LLMs, такие как модели GPT от OpenAI, использовали для извлечения данных для обучения LLM.
Common Crawl: Масштабный источник данных, содержащий петабайты данных, что эквивалентно почти 250 миллиардам веб-страниц. Он также является надмножеством для многих других доступных наборов данных. Эти данные служат базовым источником для языковых моделей общего назначения.
Обработанные наборы данных: C4, The Pile, Red Pajama и Wikipedia предлагают высококачественные, курируемые данные, адаптированные для конкретных задач.
Предметно-специфические данные: Предметно-специфические данные можно использовать для решения более целевых сценариев использования. Некоторые примеры — BookCorpus для литературного анализа, MathQA для решения математических задач и StarCoder для задач, связанных с программированием.
HuggingFace: Он содержит более 210 тыс. наборов данных, что позволяет выполнять настройку для задач дообучения.
Ваши собственные данные: LLMs обычно обучаются с использованием комбинации данных компании и данных с открытым исходным кодом.
Качество данных — ключевой фактор!
Обеспечение качества данных — самый важный шаг для достижения оптимальной производительности LLM. Некоторые ключевые аспекты, которые следует учитывать при обработке ваших обучающих данных:
Разнообразие—Данные должны содержать разнообразную информацию и поступать из различных источников, чтобы было достаточно информации для обучения, необходимого для обобщения модели.
Лингвистический шаблон—В данных должны присутствовать разнообразные лингвистические шаблоны, чтобы сделать LLMs более обобщаемыми для разных языков и доменов.
Переобучение vs. недообучение—Если новость появляется более чем на 100 страницах в Интернете, модель будет обучаться на всех этих страницах, что приведет к переобучению на этих конкретных данных. В то же время на других новостях она будет недообучаться. Следовательно, между ними необходимо поддерживать баланс.
Предвзятость—Предвзятости в обучающих данных, такие как гендерные или культурные стереотипы, могут приводить к распространению вредных результатов в LLMs. Поэтому снижение предвзятости является важным этапом предварительной обработки.
Персональная информация—Персональная информация должна быть закодирована или удалена для защиты конфиденциальности и безопасности человека.
Плохие данные—Данные, содержащие вредный контент (оскорбления, ненормативную лексику или разжигание ненависти), следует удалять, чтобы поддерживать этические и профессиональные стандарты выходных данных моделей.
| Плохие данные | Хорошие данные |
|---|---|
| Дублированные | Уникальные и отличительные |
| Опечатки и ошибки правописания | Точные и безошибочные |
| Несогласованные | Согласованные |
| Галлюцинации | Проверенные |
| Токсичные | Безопасные и защищенные |
| … | … |
Таблица: Хорошие данные vs плохие данные
Если данные остаются низкого качества, это увеличит вычислительные затраты и время, необходимые для эффективного обучения LLM.
Очистка данных
Очистка данных — еще один важный этап предварительной обработки данных для LLM. Она обеспечивает отсутствие в обучающих данных несогласованностей, неточностей или нерелевантной информации. Ниже приведены некоторые из основных этапов очистки данных.
Рисунок — Примеры очистки данных .png
Рисунок: Примеры очистки данных
Дедупликация—Дублирующиеся записи в наборе данных могут искажать результаты обучения, приводя к неэффективному использованию ресурсов и переобучению.
Фильтры качества—Фильтры для удаления несогласованных данных (например, двух языков в одном предложении), заполнения пропущенных значений, нормализации форматов, удаления нежелательных шаблонов или текста и дальнейшей очистки данных.
Фильтры контента—Токсичные или предвзятые данные фильтруются путем замены конкретных вредных слов на модерируемые и этичные слова, более инклюзивные для всех.
Снижение рисков для приватности—Персонально идентифицируемая информация (PII) кодируется с помощью определенных ключевых слов для защиты конфиденциальности данных отдельных лиц или организаций.
Очистка на основе правил—Устанавливаются определенные правила для удаления ошибок, связанных с опечатками, ненужными знаками препинания, проблемами форматирования и т. д.
Data Prep Kit и путь данных для модели IBM Granite
После обсуждения основных проблем качества данных и их решения с помощью очистки данных Сантош Борсе рассказал о пути обработки данных для их собственной модели IBM Granite, показанной ниже. Он также приводит интересную статистику об объеме данных (в конечном итоге 2,5 триллиона токенов для обучения) после некоторых этапов предварительной обработки, как указано ниже. Более 70% необработанных данных бесполезны, что означает, что предварительная обработка и очистка данных являются критически важными этапами.
Data Prep Kit (DPK) — это open-source инструментарий от IBM Research, предназначенный для упрощения подготовки неструктурированных данных для разработчиков, создающих приложения с поддержкой LLM. Он адаптирован для таких сценариев использования, как fine-tuning, instruction-tuning и генерация с дополненным извлечением (RAG), предлагая модульные и масштабируемые решения для управления разнообразными задачами обработки данных. DPK оказался полезным и эффективным при создании наборов данных для предварительного обучения open-source LLM-моделей Granite.
Рабочий процесс DPK
Data Prep Kit (DPK) упрощает подготовку данных с помощью переиспользуемых transforms (модулей), предназначенных для данных кода и языка. Также предполагается расширение его поддержки на изображения, речь и мультимодальные данные. DPK предоставляет высокоуровневые API, которые позволяют разработчикам быстро начать обработку своих данных без необходимости глубокого знания базовых фреймворков или сред выполнения.
Рисунок — Рабочий процесс Data Prep Kit.png
Рисунок: Рабочий процесс Data Prep Kit
Рабочий процесс начинается с преобразования входных файлов (таких как HTML, PDFs или code) в стандартизированный формат Parquet, обеспечивая согласованные схемы данных. В основе DPK лежит надежная библиотека обработки данных, которая позволяет пользователям применять предопределенные или пользовательские преобразования, объединяя несколько преобразований в цепочку для систематической обработки данных. Например, текстовые данные могут пройти точную дедупликацию, а затем перейти к таким этапам, как анализ качества документов и токенизация или разбиение документов на фрагменты и генерация embeddings.
Полученные embeddings документов могут использоваться для продвинутых приложений, таких как fine-tuning моделей, реализация RAG pipelines или instruct-tuning. Автоматизируя и стандартизируя процесс подготовки данных, DPK позволяет разработчикам сосредоточиться на создании и совершенствовании своих AI models, легко масштабируясь от ноутбуков до сред на базе кластеров.
DPK также позволяет пользователям создавать и добавлять свои пользовательские преобразования для конкретных нужд. Вот как вы можете начать:
Пошаговое руководство, которое поможет вам добавить собственное преобразование.
Попробуйте реализовать свое первое пользовательское преобразование
Подробная демонстрация для реализации всех шагов предварительной обработки документов в едином рабочем процессе.
Интеграция DPK с Milvus для RAG
После прохождения необработанных данных через DPK результатом являются текстовые embeddings, которые можно дополнительно интегрировать с векторными базами данных, такими как Milvus, для создания интересных LLM-приложений. Рассмотрим пример RAG pipeline путем интеграции DPK с Milvus.
Retrieval Augmented Generation (RAG) — это продвинутая техника, которая повышает точность, релевантность и фактическую обоснованность выходных данных LLM, сочетая методы поиска и генерации. Она состоит из двух ключевых компонентов: retriever, который извлекает релевантную контекстную информацию из векторной базы данных, такой как Milvus, заполненной внешними данными, и generator, который использует этот контекст для создания точных и осмысленных ответов.
Ниже представлен RAG pipeline, построенный с Milvus и DPK. Milvus выступает в роли retriever в этом pipeline, эффективно управляя крупномасштабными внешними данными и выполняя запросы к ним. DPK предварительно обрабатывает данные, обеспечивая их чистоту, согласованность и высокое качество перед сохранением в Milvus. LLM является generator, создавая точные и контекстно-осведомленные ответы, адаптированные к потребностям пользователей.
Figure- Overall Workflow of Data Prep Kit with Milvus for RAG.png
Рисунок: общий рабочий процесс Data Prep Kit с Milvus для RAG (Источник)
Очистка документов - Этот шаг выполняет все функции предварительной обработки данных, такие как удаление разметки, выполнение точной и нечеткой дедупликации и т. д.
Разбиение на фрагменты - Разбивает документы на управляемые фрагменты или сегменты с использованием различных стратегий разбиения на фрагменты. Документы можно разбивать либо на страницы, абзацы или разделы. Правильная стратегия разбиения зависит от типов обрабатываемых документов.
Векторизация/генерация эмбеддингов - Затем полученные фрагменты векторизуются с использованием моделей эмбеддингов. Этот шаг нужен, чтобы сделать текст доступным для поиска.
Сохранение данных в Milvus Vector Database - Milvus хранит все закодированные эмбеддинги и подготавливает их к извлечению по сходству.
Векторизация вопроса - Когда пользователь задает вопрос, он векторизуется с использованием той же модели эмбеддингов.
Векторный поиск - Закодированный запрос отправляется в Milvus для векторного поиска по сходству.
Извлечение релевантных документов - Milvus возвращает top-K документов, наиболее релевантных запросу.
Формирование нового промпта: Извлеченные документы и исходный запрос объединяются, чтобы сформировать новый промпт для LLM.
LLM выдает ответ— Наконец, LLM генерирует более точный ответ, используя свои знания и контекстную информацию, извлеченную из векторной базы данных Milvus.
Чтобы ознакомиться с полной реализацией описанного выше рабочего процесса, посмотрите это руководство.
Заключение
Открытый Data Prep Kit (DPK) от IBM упрощает предварительную обработку данных для рабочих процессов LLM, решая распространенные проблемы, такие как токсичность, переобучение и предвзятость в данных. Благодаря более чем 20 модульным преобразованиям DPK оптимизирует такие ключевые задачи, как дедупликация, фильтрация и защита конфиденциальности. Конвейер DPK начинается с предварительной обработки необработанных входных данных, таких как PDF или HTML, и их преобразования в структурированные форматы, например Parquet. После этого шага выполняются проверки качества, очистка данных и генерация эмбеддингов. Эти эмбеддинги можно хранить в векторных базах данных, таких как Milvus, для поддержки таких приложений, как дообучение и Retrieval-Augmented Generation (RAG).
В этом блоге также было показано, как интеграция Milvus с DPK позволяет извлекать контекстуально релевантные документы и улучшает ответы LLM, делая их надежными и основанными на фактах.
Полезные ресурсы
Читать далее

Vector Lakebase: End the AI Data Silo
Learn how Vector Lakebase unifies vector search, data lakes, and AI data operations so teams can serve RAG and agents without copy-and-sync pipelines.

How to Improve Retrieval Quality for Japanese Text with Sudachi, Milvus/Zilliz, and AWS Bedrock
Learn how Sudachi normalization and Milvus/Zilliz hybrid search improve Japanese RAG accuracy with BM25 + vector fusion, AWS Bedrock embeddings, and practical code examples.

Vector Databases vs. Hierarchical Databases
Use a vector database for AI-powered similarity search; use a hierarchical database for organizing data in parent-child relationships with efficient top-down access patterns.


