กรอบงานโอเพ่นซอร์สที่เร่งด้วย GPU สำหรับการจัดการข้อมูลโมเดล AI ที่มีประสิทธิภาพ
NeMo Curator เป็นไลบรารี Python ที่ออกแบบมาโดยเฉพาะสำหรับการเตรียมชุดข้อมูลที่รวดเร็วและปรับขนาดได้และการดูแลจัดการสำหรับกรณีการใช้งาน AI เชิงสร้างสรรค์ เช่น การฝึกโมเดลภาษาพื้นฐาน การฝึกโมเดลข้อความเป็นรูปภาพ การฝึกล่วงหน้าแบบปรับโดเมน (DAPT) การปรับแต่งแบบละเอียดภายใต้การดูแล (SFT ) และการปรับแบบละเอียดตามพารามิเตอร์ (PEFT) ช่วยเร่งความเร็วในการดูแลจัดการข้อมูลได้อย่างมากโดยใช้ประโยชน์จาก GPU ด้วย Dask และ RAPIDS ส่งผลให้ประหยัดเวลาได้มาก ไลบรารีมีอินเทอร์เฟซแบบโมดูลาร์ที่ปรับแต่งได้ ช่วยลดความซับซ้อนในการขยายไปป์ไลน์ และเร่งการรวมโมเดลผ่านการเตรียมโทเค็นคุณภาพสูง
NeMo Curator มอบคอลเลกชันโมดูลการจัดการข้อมูลที่ปรับขนาดได้สำหรับการจัดการข้อความและรูปภาพ
ไปป์ไลน์ข้อความทั้งหมดของเรามีการสนับสนุนหลายภาษาที่ยอดเยี่ยม
ดาวน์โหลดและแตกไฟล์
การใช้งานเริ่มต้นสำหรับแหล่งที่มา Common Crawl, Wikipedia และ ArXiv
ปรับแต่งและขยายไปยังแหล่งอื่นได้อย่างง่ายดาย
การระบุภาษา
การจัดรูปแบบ Unicode ใหม่
การกรองแบบฮิวริสติก
การกรองลักษณนาม
ข้อความด่วน
โมเดลที่เร่งด้วย GPU: โดเมน คุณภาพ และการจัดประเภทความปลอดภัย
การขจัดข้อมูลซ้ำซ้อนที่เร่งด้วย GPU
การขจัดข้อมูลซ้ำซ้อนที่แน่นอน
การขจัดข้อมูลซ้ำซ้อนแบบคลุมเครือผ่าน MinHash Locality Hashing ที่ละเอียดอ่อน
การขจัดความซ้ำซ้อนทางความหมาย
การปนเปื้อนงานปลายน้ำ
การปกปิดข้อมูลส่วนบุคคลที่สามารถระบุตัวตนได้ (PII)
การฝังการสร้าง
การกรองลักษณนาม
การจำแนกประเภทความงามและ NSFW
การขจัดความซ้ำซ้อนของ GPU
ความหมาย
โมดูลเหล่านี้มีความยืดหยุ่นและอนุญาตให้จัดลำดับใหม่ได้ โดยมีข้อยกเว้นเพียงไม่กี่ประการ โมดูลทั้งหมดจะปรับขนาดเป็นหลายโหนดโดยอัตโนมัติเพื่อเพิ่มปริมาณงาน
เอกสารประกอบ
ตัวอย่าง
บทช่วยสอน
โพสต์ในบล็อก
การดูแลชุดข้อมูลโทเค็นล้านล้าน: ขอแนะนำ 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 GPU (อุปกรณ์เสริม)
Volta™ หรือสูงกว่า (ความสามารถในการคำนวณ 7.0+)
CUDA 12 (หรือสูงกว่า)
คุณสามารถรับ NeMo-Curator ได้ 3 วิธี
ปิ๊ปิ
แหล่งที่มา
คอนเทนเนอร์กรอบงาน NeMo
pip ติดตั้ง Cython pip ติดตั้ง --extra-index-url https://pypi.nvidia.com nemo-curator [ทั้งหมด]
โคลนคอมไพล์ https://github.com/NVIDIA/NeMo-Curator.git pip ติดตั้ง Cython pip ติดตั้ง --extra-index-url https://pypi.nvidia.com "./NeMo-Curator [ทั้งหมด]"
NeMo Curator รุ่นล่าสุดได้รับการติดตั้งไว้ล่วงหน้าใน NeMo Framework Container หากคุณต้องการคอมมิตล่าสุดภายในคอนเทนเนอร์ คุณสามารถติดตั้ง NeMo Curator ใหม่ได้โดยใช้:
pip ถอนการติดตั้ง nemo-curator rm -r /opt/NeMo-Curator โคลนคอมไพล์ https://github.com/NVIDIA/NeMo-Curator.git /opt/NeMo-Curator การติดตั้ง pip --extra-index-url https://pypi.nvidia.com "/opt/NeMo-Curator [ทั้งหมด]"
NeMo Curator มีชุดคุณสมบัติพิเศษที่คุณสามารถใช้เพื่อติดตั้งโมดูลที่จำเป็นสำหรับปริมาณงานของคุณเท่านั้น บริการพิเศษเหล่านี้มีให้สำหรับวิธีการติดตั้งทั้งหมดที่มีให้
pip ติดตั้ง nemo-curator # ติดตั้งโมดูลการดูแลข้อความ CPU เท่านั้น spip ติดตั้ง --extra-index-url https://pypi.nvidia.com nemo-curator [cuda12x] # ติดตั้งโมดูลการดูแลข้อความ CPU + GPUspip ติดตั้ง --extra-index -url https://pypi.nvidia.com nemo-curator [รูปภาพ] # ติดตั้ง CPU + GPU ข้อความและโมดูลการดูแลรูปภาพ spip ติดตั้ง --extra-index-url https://pypi.nvidia.com nemo-curator [ทั้งหมด] # ติดตั้งทั้งหมดข้างต้น
คุณยังสามารถติดตั้ง NeMo Curator โดยใช้ RAPIDS Nightly Builds เมื่อต้องการดำเนินการดังกล่าว คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม RAPIDS_NIGHTLY=1
ได้
# การติดตั้งจาก pypiRAPIDS_NIGHTLY=1 pip ติดตั้ง --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple "nemo-curator[cuda12x]"# การติดตั้งจาก sourceRAPIDS_NIGHTLY=1 pip ติดตั้ง - -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)# สร้าง Pipelinecuration_pipeline ของคุณ = Sequential([ # แก้ไข Unicode แก้ไข(UnicodeReformatter()), # ละทิ้งบันทึกสั้น ๆ ScoreFilter(WordCountFilter(min_words=80)), # ละทิ้งบันทึกคุณภาพต่ำ ScoreFilter(FastTextQualityFilter(model_path="model.bin")), # ละทิ้งบันทึกจากเมตริกการประเมินผล เพื่อป้องกันการรั่วไหลของชุดทดสอบ งานการปนเปื้อน([Winogrande(), Squad(), TriviaQA()]) ])# ดำเนินการไปป์ไลน์บนชุดข้อมูลของคุณcurated_dataset = curation_pipeline(ชุดข้อมูล)
หากต้องการเริ่มต้นใช้งาน NeMo Curator คุณสามารถปฏิบัติตามบทแนะนำการใช้งานได้ที่นี่ บทช่วยสอนเหล่านี้ประกอบด้วย:
tinystories
ซึ่งมุ่งเน้นไปที่การดูแลจัดการข้อมูลสำหรับการฝึกอบรม LLM ตั้งแต่เริ่มต้น
peft-curation
ซึ่งเน้นที่การดูแลจัดการข้อมูลสำหรับกรณีการใช้งานการปรับพารามิเตอร์ที่มีประสิทธิภาพ (PEFT) ของ LLM
distributed_data_classification
ซึ่งเน้นการใช้คุณภาพและตัวแยกประเภทโดเมนเพื่อช่วยในเรื่องคำอธิบายประกอบข้อมูล
single_node_tutorial
ซึ่งสาธิตขั้นตอนการดูแลจัดการข้อมูลแบบ end-to-end สำหรับการดูแลจัดการข้อมูล Wikipedia ในภาษาไทย
image-curation
ซึ่งสำรวจโมดูลการดูแลรูปภาพที่ปรับขนาดได้
ส่วน NeMo Curator ของคู่มือผู้ใช้ NeMo Framework ให้ข้อมูลเชิงลึกเกี่ยวกับวิธีการทำงานของโมดูล Python ไดเร็กทอรีตัวอย่างในพื้นที่เก็บข้อมูล GitHub มีสคริปต์ที่แสดงโมดูลเหล่านี้
NeMo Curator ยังมีสคริปต์ CLI ให้คุณใช้อีกด้วย สคริปต์ใน nemo_curator/scripts
แมปอย่างใกล้ชิดกับโมดูล Python ที่ให้มา โปรดดูคู่มือผู้ใช้ NeMo Framework สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโมดูลและสคริปต์ Python
คุณสามารถใช้ NeMo Framework Launcher เป็นอีกวิธีหนึ่งในการเชื่อมต่อกับ NeMo Curator ตัวเรียกใช้งานช่วยให้คุณสามารถกำหนดค่าพารามิเตอร์และคลัสเตอร์ได้อย่างง่ายดาย นอกจากนี้ยังสามารถสร้างสคริปต์แบตช์ Slurm ที่ล้อมรอบสคริปต์ CLI ที่จำเป็นในการรันไปป์ไลน์ของคุณได้โดยอัตโนมัติ
นอกจากนี้ ยังมีวิธีการอื่นในการเรียกใช้ NeMo Curator บน Slurm ตัวอย่างเช่น โปรดดูสคริปต์ตัวอย่างใน examples/slurm
สำหรับข้อมูลเกี่ยวกับวิธีการรัน NeMo Curator บน Slurm โดยไม่ต้องใช้ NeMo Framework Launcher
โมดูลภายใน NeMo Curator ได้รับการออกแบบมาเพื่อดูแลจัดการเอกสารคุณภาพสูงจากสแน็ปช็อต Common Crawl ในลักษณะที่สามารถปรับขนาดได้ เพื่อประเมินคุณภาพของเอกสาร Common Crawl ที่ได้รับการดูแลจัดการ เราได้ทำการทดลองระเหยหลายครั้ง ในการทดลองเหล่านี้ เราได้ฝึกโมเดลสไตล์ GPT พารามิเตอร์ 357M โดยใช้ชุดข้อมูลที่สร้างขึ้นในขั้นตอนต่างๆ ของไปป์ไลน์การดูแลจัดการข้อมูลของเรา ซึ่งนำไปใช้ใน NeMo Curator
รูปต่อไปนี้แสดงให้เห็นว่าการใช้โมดูลการจัดการข้อมูลต่างๆ ที่นำมาใช้ใน NeMo Curator ส่งผลให้ประสิทธิภาพงานดาวน์สตรีมแบบ Zero-shot ดีขึ้น
ในแง่ของความสามารถในการปรับขนาดและประสิทธิภาพการประมวลผล การใช้การผสมผสานระหว่าง RAPIDS และการขจัดความซ้ำซ้อนแบบคลุมเครือของ Dask ทำให้เราสามารถขจัดชุดข้อมูล Red Pajama โทเค็น 1.1 ล้านล้านโทเค็นใน 1.8 ชั่วโมงด้วย NVIDIA A100 Tensor Core GPU 64 ตัว
นอกจากนี้ เมื่อใช้โมดูลที่ใช้ CPU ตารางต่อไปนี้จะแสดงเวลาที่ต้องใช้และผลลัพธ์ในการลดขนาดข้อมูลสำหรับขั้นตอนการประมวลผลแต่ละขั้นตอน สแน็ปช็อตการรวบรวมข้อมูลทั่วไปตั้งแต่เดือนพฤศจิกายน/ธันวาคม 2020 โดยใช้โหนด CPU 30 โหนด (ที่มีฮาร์ดแวร์คล้ายกับ c5.24xlarge
Amazon AWS C5 ตัวอย่าง).
ชุดข้อมูล | ดาวน์โหลดและแยกข้อความ | การทำความสะอาดข้อความ | การกรองคุณภาพ | |||
---|---|---|---|---|---|---|
เวลา | ขนาดเอาต์พุต | เวลา | ขนาดเอาต์พุต | เวลา | ขนาดเอาต์พุต | |
การรวบรวมข้อมูลทั่วไปปี 2020-50 | 36 ชม | 2.8 เทราไบต์ | 1 ชม | 2.8 เทราไบต์ | 0.2 ชม | 0.52 เทราไบต์ |
เรายินดีรับการสนับสนุนจากชุมชน! โปรดดูที่ CONTRIBUTING.md สำหรับกระบวนการ