Kerangka Kerja Sumber Terbuka yang Dipercepat GPU untuk Kurasi Data Model AI Generatif yang Efisien ?
NeMo Curator adalah pustaka Python yang dirancang khusus untuk persiapan dan kurasi kumpulan data yang cepat dan skalabel untuk kasus penggunaan AI generatif seperti pra-pelatihan model bahasa dasar, pelatihan model teks-ke-gambar, pra-pelatihan adaptif domain (DAPT), penyempurnaan yang diawasi (SFT) ) dan penyempurnaan hemat parameter (PEFT). Ini sangat mempercepat kurasi data dengan memanfaatkan GPU dengan Dask dan RAPIDS, sehingga menghemat waktu secara signifikan. Perpustakaan menyediakan antarmuka yang dapat disesuaikan dan modular, menyederhanakan perluasan saluran dan mempercepat konvergensi model melalui persiapan token berkualitas tinggi.
NeMo Curator menyediakan kumpulan modul kurasi data yang dapat diskalakan untuk kurasi teks dan gambar.
Semua saluran teks kami memiliki dukungan multibahasa yang hebat.
Unduh dan Ekstraksi
Implementasi default untuk sumber Common Crawl, Wikipedia, dan ArXiv
Sesuaikan dan perluas dengan mudah ke sumber lain
Identifikasi Bahasa
Pemformatan Ulang Unicode
Penyaringan Heuristik
Penyaringan Pengklasifikasi
teks cepat
Model dengan akselerasi GPU: Klasifikasi Domain, Kualitas, dan Keamanan
Deduplikasi yang Dipercepat GPU
Deduplikasi Tepat
Deduplikasi Fuzzy melalui Hashing Sensitif Lokalitas MinHash
Deduplikasi Semantik
Dekontaminasi Tugas Hilir
Redaksi Informasi Identifikasi Pribadi (PII).
Menanamkan Ciptaan
Penyaringan Pengklasifikasi
Klasifikasi Estetika dan NSFW
Deduplikasi GPU
Semantik
Modul-modul ini menawarkan fleksibilitas dan memungkinkan penyusunan ulang, dengan hanya beberapa pengecualian. Semua modul secara otomatis diskalakan ke beberapa node untuk meningkatkan throughput.
Dokumentasi
Contoh
Tutorial
Postingan blog
Mengkurasi Kumpulan Data Triliun Token: Memperkenalkan Kurator Data NVIDIA NeMo
Skalakan dan Kurasi Kumpulan Data Berkualitas Tinggi untuk Pelatihan LLM dengan Kurator NVIDIA NeMo
Mengkurasi Kumpulan Data Khusus untuk Pelatihan LLM dengan Kurator NVIDIA NeMo
Mengkurasi Kumpulan Data Khusus untuk Penyempurnaan Efisien Parameter LLM dengan Kurator NVIDIA NeMo
Menyederhanakan Pemrosesan Data untuk Pra-pelatihan Adaptif Domain dengan Kurator NVIDIA NeMo
Bagian ini menjelaskan cara menginstal NeMo Curator dan menggunakan pustaka Python, modul Python, dan skrip CLI. Ini juga mencakup daftar tutorial untuk membantu Anda memulai segera. Terakhir, bagian ini menjelaskan cara menggunakan NeMo Framework Launcher sebagai metode alternatif untuk berinteraksi dengan NeMo Curator.
Sebelum menginstal NeMo Curator, pastikan persyaratan berikut terpenuhi:
Python 3.10
Ubuntu 22.04/20.04
GPU NVIDIA (opsional)
Volta™ atau lebih tinggi (kemampuan komputasi 7.0+)
CUDA 12 (atau lebih tinggi)
Anda bisa mendapatkan NeMo-Kurator dengan 3 cara.
PyPi
Sumber
Wadah Kerangka NeMo
pip instal cython pip install --extra-index-url https://pypi.nvidia.com nemo-curator[semua]
git klon https://github.com/NVIDIA/NeMo-Curator.git pip instal cython pip install --extra-index-url https://pypi.nvidia.com "./NeMo-Curator[semua]"
Rilis terbaru NeMo Curator sudah diinstal sebelumnya di NeMo Framework Container. Jika Anda ingin komit terbaru di dalam container, Anda dapat menginstal ulang NeMo Curator menggunakan:
pip uninstall nemo-kurator rm -r /opt/NeMo-Kurator git clone https://github.com/NVIDIA/NeMo-Curator.git /opt/NeMo-Curator pip install --extra-index-url https://pypi.nvidia.com "/opt/NeMo-Curator[semua]"
NeMo Curator memiliki serangkaian tambahan yang dapat Anda gunakan untuk hanya menginstal modul yang diperlukan untuk beban kerja Anda. Ekstra ini tersedia untuk semua metode instalasi yang disediakan.
pip install nemo-curator # Menginstal modul kurasi teks khusus CPUpip install --extra-index-url https://pypi.nvidia.com nemo-curator[cuda12x] # Menginstal modul kurasi teks CPU + GPUpip install --extra-index -url https://pypi.nvidia.com nemo-curator[image] # Memasang teks CPU + GPU dan modul kurasi gambarpip install --extra-index-url https://pypi.nvidia.com nemo-curator[all] # Instal semua hal di atas
Anda juga dapat menginstal NeMo Curator menggunakan RAPIDS Nightly Builds. Untuk melakukannya, Anda dapat mengatur variabel lingkungan RAPIDS_NIGHTLY=1
.
# pemasangan dari pypiRAPIDS_NIGHTLY=1 pemasangan pip --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple "nemo-curator[cuda12x]"# pemasangan dari sourceRAPIDS_NIGHTLY=1 pemasangan pip - -extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple ".[cuda12x]"
Ketika variabel RAPIDS_NIGHTLY
diatur ke 0 (yang merupakan default), maka akan menggunakan versi stabil RAPIDS.
Cuplikan berikut menunjukkan cara membuat alur kurasi data kecil yang mengunduh dan mengkurasi sebagian kecil kumpulan data Common Crawl.
# Unduh datasetdataset Anda = download_common_crawl("/datasets/common_crawl/", "2021-04", "2021-10", url_limit=10)# Bangun pipeline Andacuration_pipeline = Sequential([ # Perbaiki unicode Ubah (UnicodeReformatter()), # Buang catatan pendek ScoreFilter(WordCountFilter(min_words=80)), # Buang catatan berkualitas rendah ScoreFilter(FastTextQualityFilter(model_path="model.bin")), # Buang catatan dari metrik evaluasi untuk mencegah kebocoran set pengujian. TugasDekontaminasi([Winogrande(), Squad(), TriviaQA()]) ])# Jalankan pipeline pada kumpulan data Andacurated_dataset = curation_pipeline(dataset)
Untuk memulai NeMo Curator, Anda dapat mengikuti tutorial yang tersedia di sini. Tutorial ini meliputi:
tinystories
yang berfokus pada kurasi data untuk pelatihan LLM dari awal.
peft-curation
yang berfokus pada kurasi data untuk kasus penggunaan penyempurnaan efisien parameter (PEFT) LLM.
distributed_data_classification
yang berfokus pada penggunaan pengklasifikasi kualitas dan domain untuk membantu anotasi data.
single_node_tutorial
yang mendemonstrasikan alur kurasi data ujung ke ujung untuk kurasi data Wikipedia dalam bahasa Thailand.
image-curation
yang mengeksplorasi modul kurasi gambar yang dapat diskalakan.
Bagian Kurator NeMo pada Panduan Pengguna NeMo Framework memberikan informasi mendalam tentang cara kerja modul Python. Direktori contoh di repositori GitHub menyediakan skrip yang menampilkan modul-modul ini.
NeMo Curator juga menawarkan skrip CLI untuk Anda gunakan. Skrip di nemo_curator/scripts
dipetakan secara dekat dengan modul Python yang disediakan. Lihat Panduan Pengguna NeMo Framework untuk informasi lebih lanjut tentang modul dan skrip Python.
Sebagai metode alternatif untuk berinteraksi dengan NeMo Curator, Anda dapat menggunakan NeMo Framework Launcher. Peluncur memungkinkan Anda mengonfigurasi parameter dan cluster dengan mudah. Itu juga dapat secara otomatis menghasilkan skrip batch Slurm yang membungkus skrip CLI yang diperlukan untuk menjalankan pipeline Anda.
Selain itu, metode lain tersedia untuk menjalankan NeMo Curator di Slurm. Misalnya, lihat contoh skrip di examples/slurm
untuk informasi tentang cara menjalankan NeMo Curator di Slurm tanpa NeMo Framework Launcher.
Modul dalam NeMo Curator terutama dirancang untuk menyusun dokumen berkualitas tinggi dari snapshot Common Crawl dengan cara yang dapat diskalakan. Untuk mengevaluasi kualitas dokumen Common Crawl yang dikurasi, kami melakukan serangkaian eksperimen ablasi. Dalam eksperimen ini, kami melatih model gaya GPT dengan parameter 357M menggunakan kumpulan data yang dihasilkan pada berbagai tahap pipeline kurasi data kami, yang diterapkan di NeMo Curator.
Gambar berikut menunjukkan bahwa penggunaan modul kurasi data berbeda yang diterapkan di NeMo Curator menghasilkan peningkatan performa tugas hilir model zero-shot.
Dalam hal skalabilitas dan kinerja komputasi, menggunakan kombinasi deduplikasi fuzzy RAPIDS dan Dask memungkinkan kami menghapus duplikat kumpulan data Red Pajama token 1,1 Triliun dalam 1,8 jam dengan 64 GPU NVIDIA A100 Tensor Core.
Selain itu, dengan menggunakan modul berbasis CPU, tabel berikut menunjukkan waktu yang diperlukan dan pengurangan ukuran data yang dihasilkan untuk setiap langkah pemrosesan Snapshot Perayapan Umum dari November/Desember 2020 menggunakan 30 node CPU (dengan perangkat keras yang mirip dengan Amazon AWS C5 c5.24xlarge
contoh).
Kumpulan data | Unduh dan ekstraksi teks | Pembersihan teks | Penyaringan kualitas | |||
---|---|---|---|---|---|---|
Waktu | Ukuran Keluaran | Waktu | Ukuran Keluaran | Waktu | Ukuran Keluaran | |
Perayapan Umum 2020-50 | 36 jam | 2,8 TB | 1 jam | 2,8 TB | 0,2 jam | 0,52 TB |
Kami menyambut kontribusi komunitas! Silakan merujuk ke CONTRIBUTING.md untuk prosesnya.