Фреймворк с открытым исходным кодом с графическим ускорением для эффективного управления данными моделей генеративного искусственного интеллекта ?
NeMo Curator — это библиотека Python, специально разработанная для быстрой и масштабируемой подготовки и управления наборами данных для случаев использования генеративного ИИ, таких как предварительное обучение базовой языковой модели, обучение модели преобразования текста в изображение, предварительное обучение с адаптацией к предметной области (DAPT), контролируемая точная настройка (SFT). ) и точная настройка с эффективным использованием параметров (PEFT). Он значительно ускоряет обработку данных за счет использования графических процессоров с Dask и RAPIDS, что приводит к значительной экономии времени. Библиотека предоставляет настраиваемый модульный интерфейс, упрощающий расширение конвейера и ускоряющий конвергенцию моделей за счет подготовки высококачественных токенов.
NeMo Curator предоставляет коллекцию масштабируемых модулей управления данными для управления текстом и изображениями.
Все наши текстовые конвейеры имеют отличную многоязычную поддержку.
Загрузка и распаковка
Реализации по умолчанию для источников Common Crawl, Wikipedia и ArXiv.
Легко настраивать и распространять на другие источники
Идентификация языка
Переформатирование Юникода
Эвристическая фильтрация
Фильтрация классификатора
быстрыйтекст
Модели с ускорением на графическом процессоре: классификация предметной области, качества и безопасности
Дедупликация с ускорением на графическом процессоре
Точная дедупликация
Нечеткая дедупликация с помощью локально-зависимого хеширования MinHash
Семантическая дедупликация
Обеззараживание последующих задач
Редактирование личной информации (PII)
Встраивание творения
Фильтрация классификатора
Эстетическая классификация и классификация NSFW
Дедупликация графического процессора
Семантический
Эти модули обеспечивают гибкость и позволяют изменять порядок, за некоторыми исключениями. Все модули автоматически масштабируются до нескольких узлов для увеличения пропускной способности.
Документация
Примеры
Учебники
Сообщения в блоге
Курирование наборов данных на триллион токенов: представляем NVIDIA NeMo Data Curator
Масштабируйте и курируйте высококачественные наборы данных для обучения LLM с помощью NVIDIA NeMo Curator
Курирование пользовательских наборов данных для обучения LLM с помощью NVIDIA NeMo Curator
Создание пользовательских наборов данных для точной настройки параметров LLM с помощью NVIDIA NeMo Curator
Оптимизация обработки данных для адаптивного предварительного обучения с помощью NVIDIA NeMo Curator
В этом разделе объясняется, как установить NeMo Curator и использовать библиотеку Python, модули Python и сценарии CLI. Он также включает список учебных пособий, которые помогут вам сразу приступить к работе. Наконец, в этом разделе объясняется, как использовать NeMo Framework Launcher в качестве альтернативного метода взаимодействия с NeMo Curator.
Перед установкой NeMo Curator убедитесь, что выполнены следующие требования:
Питон 3.10
Убунту 22.04/20.04
Графический процессор NVIDIA (опционально)
Volta™ или выше (вычислительные возможности 7.0+)
CUDA 12 (или выше)
Получить NeMo-Curator можно тремя способами.
ПиПи
Источник
Контейнер NeMo Framework
pip установить Cython pip install --extra-index-url https://pypi.nvidia.com nemo-curator[all]
git-клон https://github.com/NVIDIA/NeMo-Curator.git pip установить Cython pip install --extra-index-url https://pypi.nvidia.com "./NeMo-Curator[all]"
Последняя версия NeMo Curator предустановлена в контейнере NeMo Framework. Если вам нужен последний коммит внутри контейнера, вы можете переустановить NeMo Curator, используя:
pip удалить немо-куратор rm -r /opt/НеМо-Куратор git клон https://github.com/NVIDIA/NeMo-Curator.git/opt/NeMo-Curator pip install --extra-index-url https://pypi.nvidia.com "/opt/NeMo-Curator[all]"
NeMo Curator имеет набор дополнительных возможностей, которые вы можете использовать для установки только необходимых модулей для вашей рабочей нагрузки. Эти дополнительные возможности доступны для всех предусмотренных способов установки.
pip install nemo-curator # Устанавливает модули управления текстом только для ЦП -url https://pypi.nvidia.com nemo-curator[image] # Устанавливает модули обработки текста и изображений CPU + GPUpip install --extra-index-url https://pypi.nvidia.com nemo-curator[all] # Устанавливает все вышеперечисленное
Вы также можете установить NeMo Curator, используя ночные сборки RAPIDS. Для этого вы можете установить переменную среды RAPIDS_NIGHTLY=1
.
# установка из pypiRAPIDS_NIGHTLY=установка в 1 пункт --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple "nemo-curator[cuda12x]"# установка из источникаRAPIDS_NIGHTLY=установка в 1 пункт - -extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple ".[cuda12x]"
Если для переменной RAPIDS_NIGHTLY
установлено значение 0 (по умолчанию), будет использоваться стабильная версия RAPIDS.
В следующем фрагменте показано, как создать небольшой конвейер управления данными, который загружает и обрабатывает небольшое подмножество набора данных Common Crawl.
# Загрузите набор данныхdataset = download_common_crawl("/datasets/common_crawl/", "2021-04", "2021-10", url_limit=10)# Создайте свой конвейерcuration_pipeline = Sequential([ # Исправьте unicode Modify(UnicodeReformatter()), # Отбрасываем короткие записи ScoreFilter(WordCountFilter(min_words=80)), # Отбрасываем записи низкого качества ScoreFilter(FastTextQualityFilter(model_path="model.bin")), # Отбрасываем записи из метрик оценки, чтобы предотвратить утечку набора тестов. TaskDecontamination([Winogrande(), Squad(), TriviaQA()]) ])# Выполнение конвейера в вашем наборе данныхcurated_dataset = curation_pipeline(dataset)
Чтобы начать работу с NeMo Curator, вы можете воспользоваться обучающими материалами, доступными здесь. Эти учебные пособия включают в себя:
tinystories
, который фокусируется на обработке данных для обучения LLM с нуля.
peft-curation
, который фокусируется на обработке данных для вариантов использования LLM с эффективной точной настройкой параметров (PEFT).
distributed_data_classification
, который фокусируется на использовании классификаторов качества и предметной области для помощи в аннотациях данных.
single_node_tutorial
, который демонстрирует сквозной конвейер управления данными для управления данными Википедии на тайском языке.
image-curation
, который исследует масштабируемые модули курирования изображений.
Раздел NeMo Curator руководства пользователя NeMo Framework содержит подробную информацию о том, как работают модули Python. Каталог примеров в репозитории GitHub содержит сценарии, демонстрирующие эти модули.
NeMo Curator также предлагает вам сценарии CLI. Скрипты в nemo_curator/scripts
тесно связаны с поставляемыми модулями Python. Дополнительную информацию о модулях и скриптах Python см. в руководстве пользователя NeMo Framework.
В качестве альтернативного метода взаимодействия с NeMo Curator вы можете использовать NeMo Framework Launcher. Лаунчер позволяет легко настраивать параметры и кластер. Он также может автоматически генерировать пакетные сценарии Slurm, которые оборачивают сценарии CLI, необходимые для запуска вашего конвейера.
Кроме того, доступны другие способы запуска NeMo Curator на Slurm. Например, обратитесь к примерам сценариев в examples/slurm
для получения информации о том, как запустить NeMo Curator на Slurm без средства запуска NeMo Framework.
Модули NeMo Curator были в первую очередь разработаны для масштабируемой обработки высококачественных документов из снимков Common Crawl. Чтобы оценить качество курируемых документов Common Crawl, мы провели серию экспериментов по абляции. В этих экспериментах мы обучили модель в стиле GPT с 357 миллионами параметров, используя наборы данных, сгенерированные на различных этапах нашего конвейера курирования данных, который был реализован в NeMo Curator.
На следующем рисунке показано, что использование различных модулей управления данными, реализованных в NeMo Curator, привело к повышению производительности последующих задач модели с нулевым выстрелом.
С точки зрения масштабируемости и производительности вычислений, использование комбинации RAPIDS и нечеткой дедупликации Dask позволило нам дедуплицировать набор данных Red Pajama объемом 1,1 триллиона токенов за 1,8 часа с помощью 64 графических процессоров NVIDIA A100 Tensor Core.
Кроме того, при использовании модулей на базе ЦП в следующей таблице показано необходимое время и итоговое уменьшение размера данных для каждого этапа обработки. Снимок общего сканирования за ноябрь/декабрь 2020 г. с использованием 30 узлов ЦП (с аппаратным обеспечением, аналогичным c5.24xlarge
Amazon AWS C5). пример).
Набор данных | Загрузка и извлечение текста | Очистка текста | Качественная фильтрация | |||
---|---|---|---|---|---|---|
Время | Выходной размер | Время | Выходной размер | Время | Выходной размер | |
Обычное сканирование 2020-50 | 36 часов | 2,8 ТБ | 1 час | 2,8 ТБ | 0,2 часа | 0,52 ТБ |
Мы приветствуем вклад сообщества! Пожалуйста, обратитесь к CONTRIBUTING.md для получения информации о процессе.