[中文主頁] | [DOCS] | [API] | [dj-sora] | [很棒的清單]
Data-Juicer是一種一站式多模式數據處理系統,可使數據更高,更重要且更易於LLM。
我們提供一個帶有託管Jupyterlab的操場。在瀏覽器中立即嘗試數據juicer!如果您發現數據簡潔者對您的研究或開發有用,請請我們的工作。
阿里巴巴雲(PAI)AI的平台已引用了我們的工作,並將數據簡化器集成到其數據處理產品中。 PAI是AI本機大型模型和AIGC工程平台,可提供數據集管理,計算電源管理,模型工具鏈,模型開發,模型培訓,模型部署和AI資產管理。有關數據處理的文檔,請參閱:大型模型的PAI-DATA處理。
正在積極更新和維護數據。我們將定期增強並添加更多功能,數據配方和數據集。我們歡迎您加入我們(通過問題,PRS,Slack Channel,Dingding Group,...),促進數據模型共同開發以及(多模式)LLMS的研究和應用!
系統和重複使用:通過80+ Core Ops,20+可重用的配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置配置食譜和20多個專用工具包為用戶授權,旨在獨立於特定的多模式LLM數據集和處理管道。
數據中的環境和沙箱:支持一站式數據模型協作開發,通過沙箱實驗室進行快速迭代,並根據數據和模型,可視化和多維自動評估提供諸如反饋循環之類的功能,以便您可以更好地理解和改善數據和模型。
朝向生產環境:提供有效且並行數據處理管道(Aliyun-Pai ray slurm cuda op Fusion),需要更少的內存和CPU使用,並使用自動斷層容量進行了優化。
全面的數據處理配方:為預培訓,微調,EN,ZH和更多情況提供數十種預構建的數據處理配方。通過參考駱駝和LLAVA模型進行了驗證。
靈活且可擴展:適應大多數類型的數據格式(例如JSONL,PARQUET,CSV,...),並允許操作的靈活組合。隨意實施自己的操作,以進行可自定義的數據處理。
用戶友好的體驗:為簡單性而設計,具有全面的文檔,簡單的啟動指南和演示配置以及直觀的配置,並通過現有配置的簡單添加/刪除操作。
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] | 為所有操作安裝所有依賴項。 |
.[dist] | 安裝依賴項以進行分佈式數據處理。 (實驗) |
.[dev] | 安裝依賴項以開發包裝作為貢獻者。 |
.[tools] | 為專用工具(例如質量分類器)安裝依賴項。 |
.[sandbox] | 安裝沙箱的所有依賴項。 |
pip安裝最新發布的data_juicer : pip install py-data-juicerdata_juicer中的基本API和兩個基本工具(數據處理和分析)才能以此方式使用。如果您需要可自定義且完整的功能,建議您從源安裝data_juicer 。data_juicer的最新功能,我們建議您從源安裝。要么從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 ,與realease版本標籤相同。
import data_juicer as dj
print ( dj . __version__ )在使用與視頻相關的操作員之前,應通過$路徑環境變量安裝FFMPEG並訪問。
您可以使用軟件包管理器安裝FFMPEG(例如在Debian/Ubuntu上的Sudo APT安裝FFMPEG,在OS X上釀造FFMPEG或訪問官方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注意:對於某些涉及未在本地存儲在您的計算機上的第三方模型或資源的運營商,對於第一次運行,它可能會很慢,因為這些操作需要首先將相應的資源下載到目錄中。默認下載緩存目錄是~/.cache/data_juicer 。通過設置Shell環境變量, DATA_JUICER_CACHE_HOME將緩存位置更改為另一個目錄,您還可以以相同的方式更改DATA_JUICER_MODELS_CACHE或DATA_JUICER_ASSETS_CACHE :
注意:當使用具有第三方模型的操作員時,必須在配置文件中聲明相應的mem_required (您可以參考config_all.yaml文件中的設置)。在運行時,Data-Juicer將根據內存可用性和操作員模型的內存要求控製過程數,以實現更好的數據處理效率。使用CUDA環境運行時,如果未正確聲明操作員的MEM_REQUERQUER,則可能導致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實例,並在配置中提供REDIS實例的host和port 。用戶還可以選擇不使用射線,而是將數據集分開以用Slurm在群集上運行。在這種情況下,請使用無射線的默認數據簡潔器。 Aliyun Pai-DLC支持射線框架,Slurm Framework等。用戶可以直接在DLC群集上創建Ray作業和Slurm作業。
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的一些論點。config_all.yaml ,OP文檔和高級堆積指南。python xxx.py --config configs/demo/process.yaml --language_id_score_filter.lang=en基本配置格式和定義如下所示。
數據沙盒實驗室(DJ-Sandbox)為用戶提供了不斷生產數據食譜的最佳實踐。它具有低頂,可移植性和指導。
默認情況下,使用以下命令運行沙箱,有關更多信息和詳細信息,請參閱Sandbox文檔。
python tools/sandbox_starter.py --config configs/demo/sandbox/sandbox.yamltools/preprocess中為您提供一些常見的預處理工具,以便您預處理這些數據。data-juicer的Docker映像,則可以使用此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許可證2.0發布。
我們正在迅速發展的領域,非常受歡迎的新功能,錯誤修復和更好的文檔的貢獻。請參閱開發人員的操作指南。
如果您有任何疑問,請加入我們的討論小組。
Data-Juicer用於各種LLM產品和研究計劃,包括來自阿里巴巴雲的工業LLM,例如Dianjin進行財務分析,以及Zhiwen的閱讀助手,以及阿里巴巴雲的AI(PAI)平台。我們期待您更多的協作經驗,建議和討論!
感謝數據,感謝並指的是幾個社區項目,例如Huggingface-Datasets,Bloom,Redpajama,Pile,Pile,Apaca-Cot,Megatron-LM,Deepspeed,Deepspeed,Arrow,Ray,Ray,Beam,Lm-Harness,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}
}
Data-juicer沙箱:用於多模式數據模型共同開發的綜合套件
數據與多模式大語言模型之間的協同作用:從共同開發的角度進行調查
IMGDIFF:視覺大語言模型的對比度數據綜合
數據混合提高了:語言模型預處理的雙變量縮放定律
?返回索引