Монтажер: Минди
Производительность больших языковых моделей (LLM) сильно зависит от качества и размера набора данных для предварительного обучения.
Однако наборы данных для предварительного обучения для современных LLM, таких как Llama 3 и Mixtral, недоступны публично; о том, как они создаются, мало что известно;
Недавно команда Hugging Face выпустила набор данных FineWeb, новый крупномасштабный (15 триллионов токенов, 44 ТБ дискового пространства) набор данных для предварительного обучения LLM.
В то же время они также подробно представили процесс принятия решений по обработке этого набора данных в техническом отчете: FineWeb создан на основе 96 снимков CommonCrawl и показывает, как он обеспечивает более высокую производительность, чем другие открытые наборы данных для предварительного обучения, благодаря тщательной дедупликации. и стратегии фильтрации LLM.
Подготовка к созданию набора данных
Первым шагом для создания набора данных является получение крупномасштабных данных.
Common Crawl — это некоммерческая организация, которая сканирует веб-данные с 2007 года и каждые 1–2 месяца выпускает новую версию сканирования, содержащую от 200 до 400 Ти Б текстового контента.
Таким образом, Common Crawl послужил отправной точкой для набора данных FineWeb.
Во-вторых, из-за огромного объема задействованных данных необходима модульная и масштабируемая база кода для быстрого принятия решений по обработке и надлежащего распараллеливания рабочих нагрузок, обеспечивая при этом четкое понимание данных.
С этой целью команда разработала datatrove — библиотеку обработки данных с открытым исходным кодом, способную плавно масштабировать настройки фильтрации и дедупликации на тысячи ядер ЦП.
При создании набора данных главный вопрос, который следует учитывать, заключается в том, что представляют собой данные «высокого качества».
Распространенный подход заключается в обучении небольших моделей на репрезентативном подмножестве набора данных и их оценке с помощью набора оценочных задач.
Исследователи обучили две модели с одинаковой структурой на двух версиях набора данных: одной с дополнительными этапами обработки, а другой — без них, чтобы сравнить влияние этапов обработки данных на производительность модели.
Для оценки модели они выбрали тесты производительности, такие как Commonsense QA, HellaSwag и OpenBook QA, и ограничили размер выборки более длительных тестов производительности, чтобы избежать переобучения и обеспечить надежность и способность к обобщению результатов оценки модели.
Как дедуплицируется и фильтруется набор данных
На следующем рисунке показаны основные этапы создания набора данных FineWeb:
Фильтрация URL-адресов → Извлечение текста → Языковая фильтрация → Фильтрация Gopher → Дедупликация MinHash → Фильтр C4 → Пользовательский фильтр → Удаление PII (личной информации)
В этой статье в основном представлены части дедупликации и фильтрации, поскольку эти два шага имеют решающее значение для повышения производительности модели, а также увеличения разнообразия и чистоты данных для создания высококачественных наборов данных.
Дедупликация данных
В Интернете существует множество агрегаторов, зеркальных сайтов или шаблонных страниц, что может привести к дублированию контента на разных доменных именах и веб-страницах.
Было показано, что удаление этих дубликатов (дедупликация) повышает производительность модели и уменьшает необходимость запоминать данные предварительного обучения, что помогает модели лучше обобщать.
Исследователи использовали MinHash, технологию дедупликации на основе нечеткого хеширования, поскольку ее можно эффективно масштабировать на множество узлов ЦП и регулировать порог сходства (путем контроля количества и размера сегментов) и длину рассматриваемых подпоследовательностей (путем управления n- размер грамма).
Исследователи разделили каждый документ на 5 граммов и использовали 112 хэш-функций для расчета минхэшей.
112 хеш-функций разделены на 14 сегментов, каждый блок имеет 8 хешей, с целью найти документы, которые похожи как минимум на 75%.
Документы с одинаковыми 8 минхешами в любом сегменте считаются дубликатами друг друга.
Следует отметить, что исследователи обнаружили странный феномен: хотя после дедупликации объем данных значительно меньше (например, самый старый пакет данных после дедупликации имеет только 10% исходного содержимого), но после дедупликации при использовании данных для обучения модели производительность модели не улучшилась и даже хуже, чем у предыдущей модели, обученной на данных без дедупликации.
Дедупликация всех пакетов не улучшила производительность.
Это показывает, что иногда дедупликация бывает слишком жесткой, и часть полезного контента может быть удалена, а оставшийся контент может быть не высокого качества.
Это также напоминает нам о том, что нам необходимо найти точку баланса, которая заключается в удалении повторяющихся и некачественных данных, сохраняя при этом достаточную и ценную информацию.
Чтобы улучшить метод дедупликации, исследователи попробовали новую стратегию: использовать технологию MinHash для каждого отдельного пакета данных для выполнения независимой дедупликации вместо объединения всех пакетов данных вместе для дедупликации.
Таким образом, разница в распределении между каждым кластером с большим количеством повторений и кластером с меньшим количеством повторений сбалансирована, что делает дедупликацию более «щадящей».
Фильтрация данных
Во-первых, давайте представим набор данных C4, который часто используется для обучения модели большого языка (LLM). Он очень хорошо работает в тесте Hellaswag.
Исследователи FineWeb сначала обратились к стратегии фильтрации C4, сначала догоняя ее производительность, а затем превосходя ее.
Применив все правила фильтрации (удалив строки, не заканчивающиеся знаками препинания, упоминания JavaScript и уведомления о файлах cookie, а также удалив документы, длина которых не превышает порогового значения, содержащие «lorem ipsum» или фигурные скобки {}), они смогли сравнить производительность Hellaswag с C4. .
Затем, посредством многочисленных исследований абляции, исследователи определили три специальных фильтра, которые показали наиболее значительные улучшения в общих показателях:
Когда эти три фильтра применялись вместе, было удалено примерно 22% маркеров.
Эти фильтры позволяют им еще больше повысить производительность и значительно превзойти производительность набора данных C4, обеспечивая при этом больший набор данных.
Производительность набора данных FineWeb
Сравнение абляции с другими общедоступными наборами данных веб-масштаба, которые обычно считаются наиболее качественными, включая RefinedWeb (500 миллиардов токенов), C4 (172 миллиарда токенов), Dolma v1.6 (3 триллиона токенов)) и т. д., FineWeb ( 15 триллионов токенов) обеспечивает самую высокую производительность модели на данный момент, позволяя при этом обучать триллионам токенов.
В дополнение к этому команда также выпустила FineWeb-Edu, который был разработан с использованием нового подхода, использующего синтетические данные для разработки классификаторов для идентификации образовательного контента.
Для сферы образования, добавив аннотации к рейтингам качества образования и добавив отдельную систему оценки, исследователи создали эффективный классификатор, который может идентифицировать и фильтровать контент, имеющий образовательную ценность, в крупномасштабных наборах данных.
FineWeb-Edu достигает значительных улучшений в образовательных тестах, таких как MMLU, ARC и OpenBookQA, превосходя FineWeb и все другие открытые наборы веб-данных.
В то же время создание FineWeb-Edu также доказывает эффективность классификатора, обученного с использованием аннотаций LLM, в крупномасштабной Фильтрации данных.
В конце технического отчета исследователи выразили надежду и дальше раскрывать «черный ящик» высокопроизводительного обучения моделям большого языка и дать возможность каждому тренеру моделей создавать самые передовые LLM.
Они также надеются применить опыт FineWeb и изучить другие неанглийские языки, чтобы можно было легче получать высококачественные многоязычные сетевые данные.
Ссылки:
https://huggingface.co/spaces/HuggingFaceFW/blogpost-fineweb-v1