[中文主页] | [Документы] | [API] | [DJ-Sora] | [Потрясающий список]
Data-Juicer-это универсальная мультимодальная система обработки данных, чтобы сделать данные более качественными, сочно и более усваиваемыми для LLMS.
Мы предоставляем детскую площадку с управляемым jupyterlab. Попробуйте сразу же в своем браузере! Если вы считаете, что джаницеру, полезным для ваших исследований или разработок, пожалуйста, упоминайте нашу работу.
Платформа для искусственного интеллекта Alibaba Cloud (PAI) пригласила нашу работу и интегрированного Juicer в свои продукты обработки данных. PAI - это крупная модель AI и инженерную платформу AIGC, которая предоставляет управление наборами данных, управление компьютером, цепочка инструментов модели, разработку модели, обучение модели, развертывание модели и управление активами ИИ. Для документации по обработке данных, пожалуйста, см.
Data-Juicer активно обновляется и поддерживается. Мы периодически улучшаем и добавляем больше функций, рецептов данных и наборов данных. Мы приветствуем вас присоединиться к нам (через проблемы, PRS, Slack Channel, Dingding Group, ...), в содействии совместной разработке модели данных вместе с исследованиями и приложениями (мультимодальных) LLMS!
Систематическое и повторное использование : расширение возможностей пользователей с помощью систематической библиотеки из 80+ Core Ops, 20+ повторных рецептов конфигурации и более 20+ функций выделенных наборов инструментов, предназначенных для функционирования независимо от конкретных мультимодальных наборов LLM и трубопроводов обработки.
Data-in-The-The-The Sandbox : поддержка универсальной совместной разработки модели данных, обеспечение быстрой итерации через лабораторию песочницы и предоставление таких функций, как петли обратной связи на основе данных и модели, визуализации и многомерной автоматической оценки, чтобы вы могли лучше понимать и улучшать свои данные и модели.
На пути к производственной среде : предоставление эффективных и параллельных трубопроводов обработки данных (Aliyun-Pai Ray Slurm Cuda OP Fusion), требующая меньшего количества памяти и использования процессора, оптимизированных с автоматическим сбоем.
Комплексные рецепты обработки данных : предлагая десятки предварительно созданных рецептов обработки данных для предварительного обучения, тонкой настройки, en, ZH и большего количества сценариев. В подтверждении моделей Llama и Llava.
Гибкий и расширяемый : приспосабливание большинства типов форматов данных (например, JSONL, Parquet, CSV, ...) и позволяет гибкие комбинации OPS. Не стесняйтесь реализовать свой собственный OPS для настраиваемой обработки данных.
Опыт для пользователя : разработан для простоты, с полной документацией, простыми руководствами запуска и демонстрационными конфигурациями, а также интуитивной конфигурацией с простой добавлением/удалением OPS из существующих конфигураций.
data_juicer в редактируемом режиме: cd < path_to_data_juicer >
pip install -v -e . cd < path_to_data_juicer >
pip install -v -e . # install a minimal dependencies, which support the basic functions
pip install -v -e .[tools] # install a subset of tools dependenciesПараметры зависимости перечислены ниже:
| Ярлык | Описание |
|---|---|
. или .[mini] | Установите минимальные зависимости для базового Juicer. |
.[all] | Установите все зависимости, кроме песочницы. |
.[sci] | Установите все зависимости для всех OPS. |
.[dist] | Установите зависимости для обработки распределенных данных. (Экспериментальный) |
.[dev] | Установите зависимости для разработки пакета в качестве участников. |
.[tools] | Установите зависимости для выделенных инструментов, таких как качественные классификаторы. |
.[sandbox] | Установите все зависимости для песочницы. |
data_juicer с помощью pip : pip install py-data-juicerdata_juicer и два основных инструмента (обработка данных и анализ данных). Если вам нужны настраиваемые и полные функции, мы рекомендуем вам установить data_juicer из Source.data_juicer , мы рекомендуем вам установить из Source.Либо вытащите наше предварительно построенное изображение из Dockerhub:
docker pull datajuicer/data-juicer: < version_tag > или запустите следующую команду для создания изображения Docker, включая последнего data-juicer с предоставленным DockerFile:
docker build -t datajuicer/data-juicer: < version_tag > . Формат <version_tag> похож на v0.2.0 , который такой же, как и тег версии релиза.
import data_juicer as dj
print ( dj . __version__ )Перед использованием операторов, связанных с видео, FFMPEG должен быть установлен и доступен через переменную среды $ Path.
Вы можете установить FFMPEG с помощью менеджеров пакетов (например, Sudo Apt Install FFMPEG на Debian/Ubuntu, Brew Install FFMPEG на OS X) или посетить официальную ссылку FFMPEG.
Проверьте, правильно ли устанавливается путь вашей среды, запустив команду FFMPEG из терминала.
? Вернуться к индексу
process_data.py или инструмент командной строки dj-process с вашим конфигурацией в качестве аргумента для обработки вашего набора данных. # only for installation from source
python tools/process_data.py --config configs/demo/process.yaml
# use command line tool
dj-process --config configs/demo/process.yaml ПРИМЕЧАНИЕ. Для некоторых операторов, которые включают сторонние модели или ресурсы, которые не хранятся локально на вашем компьютере, это может быть медленным для первого запуска, поскольку эти OPS необходимо сначала загружать соответствующие ресурсы в каталог. Каталог скачивания по умолчанию ~/.cache/data_juicer . Измените местоположение кэша, установив переменную среды оболочки, DATA_JUICER_CACHE_HOME на другой каталог, и вы также можете изменить DATA_JUICER_MODELS_CACHE или DATA_JUICER_ASSETS_CACHE таким же образом:
ПРИМЕЧАНИЕ. При использовании операторов со сторонними моделями необходимо объявить соответствующий mem_required в файле конфигурации (вы можете обратиться к настройкам в файле config_all.yaml ). Во время выполнения Data Juicer будет управлять количеством процессов на основе доступности памяти и требований к памяти моделей операторов для достижения лучшей эффективности обработки данных. При запуске в среде CUDA, если MEM_REQUED для оператора не объявлен правильно, это может привести к проблеме CUDA из -за проблемы с памятью.
# cache home
export DATA_JUICER_CACHE_HOME= " /path/to/another/directory "
# cache models
export DATA_JUICER_MODELS_CACHE= " /path/to/another/directory/models "
# cache assets
export DATA_JUICER_ASSETS_CACHE= " /path/to/another/directory/assets " Мы предоставляем различные простые интерфейсы для пользователей на выбор.
#... init op & dataset ...
# Chain call style, support single operator or operator list
dataset = dataset . process ( op )
dataset = dataset . process ([ op1 , op2 ])
# Functional programming style for quick integration or script prototype iteration
dataset = op ( dataset )
dataset = op . run ( dataset )В настоящее время мы реализовали обработку данных с несколькими машинами на основе Ray. Соответствующие демонстрации можно запускать с помощью следующих команд:
# Run text data processing
python tools/process_data.py --config ./demos/process_on_ray/configs/demo.yaml
# Run video data processing
python tools/process_data.py --config ./demos/process_video_on_ray/configs/demo.yamlray , например, ray_video_deduplicator и ray_document_deduplicator . Эти операторы также полагаются на экземпляр Redis. Таким образом, в дополнение к запуску кластера Ray, вам также необходимо заранее настроить экземпляр Redis и предоставить host и port экземпляра Redis в конфигурации.Пользователи также могут не использовать Ray и вместо этого разделять набор данных для работы на кластере с Slurm. В этом случае, пожалуйста, используйте Juicer Data по умолчанию без Ray. Aliyun Pai-DLC поддерживает Ray Framework, Slurm Framework и т. Д. Пользователи могут непосредственно создавать задания Ray и рабочие задания в кластере DLC.
analyze_data.py или инструмент командной строки dj-analyze с вашим конфигурацией в качестве аргумента для анализа вашего набора данных. # only for installation from source
python tools/analyze_data.py --config configs/demo/analyzer.yaml
# use command line tool
dj-analyze --config configs/demo/analyzer.yamlapp.py , чтобы визуализировать набор данных в браузере.streamlit run app.pyconfig_all.yaml , который включает в себя все операции по умолчанию и по умолчанию. Вам просто нужно удалить OPS, который вы не будете использовать, и уточнить некоторые аргументы OPS.config_all.yaml , OP Documents и расширенное руководство по наращиванию для разработчиков.python xxx.py --config configs/demo/process.yaml --language_id_score_filter.lang=enОсновной формат и определение конфигурации показаны ниже.
Laboratory Data Sandbox Laboratory (DJ-Sandbox) предоставляет пользователям наилучшие методы для постоянного производства рецептов данных. Он имеет низкие накладные расходы, портативность и руководство.
Песочница запускается с использованием следующих команд по умолчанию, и для получения дополнительной информации и деталей, пожалуйста, обратитесь к документации Sandbox.
python tools/sandbox_starter.py --config configs/demo/sandbox/sandbox.yamltools/preprocess для вас, чтобы предварительно обработать эти данные.data-juicer , вы можете запустить команды или инструменты, упомянутые выше, используя это изображение Docker. # run the data processing directly
docker run --rm # remove container after the processing
--privileged
--shm-size 256g
--network host
--gpus all
--name dj # name of the container
-v < host_data_path > : < image_data_path > # mount data or config directory into the container
-v ~ /.cache/:/root/.cache/ # mount the cache directory into the container to reuse caches and models (recommended)
datajuicer/data-juicer: < version_tag > # image to run
dj-process --config /path/to/config.yaml # similar data processing commands # start the container
docker run -dit # run the container in the background
--privileged
--shm-size 256g
--network host
--gpus all
--rm
--name dj
-v < host_data_path > : < image_data_path >
-v ~ /.cache/:/root/.cache/
datajuicer/data-juicer:latest /bin/bash
# enter into this container and then you can use data-juicer in editable mode
docker exec -it < container_id > bash? Вернуться к индексу
Data-Juicer выпускается по Apache License 2.0.
Мы находимся в быстро развивающейся области и очень приветствуем вклад новых функций, исправлений ошибок и лучших документаций. Пожалуйста, обратитесь к руководству для разработчиков.
Если у вас есть какие -либо вопросы, присоединяйтесь к нашим дискуссионным группам.
Data-Juicer используется в различных продуктах LLM и исследовательских инициативах, в том числе промышленные LLMS из Tongyi Alibaba Cloud, таких как Dianjin для финансового анализа, и Zhiwen для помощника по чтению, а также платформы Alibaba Cloud для ИИ (PAI). Мы с нетерпением ждем больше вашего опыта, предложений и обсуждений для сотрудничества!
Джайн-джайкерс благодарит и относится к нескольким общественным проектам, таким как Daggingface-Datasets, Bloom, Redpajama, Pile, Alpaca-Cot, Megatron-LM, Deepspeed, стрелка, луч, луч, LM-Harness, Helm, ....
Если вы обнаружите нашу работу полезной для исследования или разработки, пожалуйста, упоминайте следующую статью.
@inproceedings{chen2024datajuicer,
title={Data-Juicer: A One-Stop Data Processing System for Large Language Models},
author={Daoyuan Chen and Yilun Huang and Zhijian Ma and Hesen Chen and Xuchen Pan and Ce Ge and Dawei Gao and Yuexiang Xie and Zhaoyang Liu and Jinyang Gao and Yaliang Li and Bolin Ding and Jingren Zhou},
booktitle={International Conference on Management of Data},
year={2024}
}
Песочница данных: комплексный набор для мультимодальной совместной разработки данных модели данных
Синергия между данными и мультимодальными крупными языковыми моделями: опрос с точки зрения совместной разработки
Imgdiff: Синтез контрастных данных для моделей Vision Large Language Models
Смешивание данных стало эффективным: двумерный закон масштабирования для языковой модели предварительно
? Вернуться к индексу