효율적인 생성 AI 모델 데이터 큐레이션을 위한 GPU 가속 오픈 소스 프레임워크 ?
NeMo 큐레이터는 기초 언어 모델 사전 훈련, 텍스트-이미지 모델 훈련, DAPT(도메인 적응형 사전 훈련), SFT 감독 미세 조정(SFT)과 같은 생성적 AI 사용 사례를 위한 빠르고 확장 가능한 데이터 세트 준비 및 큐레이션을 위해 특별히 설계된 Python 라이브러리입니다. ) 및 PEFT(매개변수 효율적인 미세 조정)가 있습니다. Dask 및 RAPIDS와 함께 GPU를 활용하여 데이터 큐레이션을 크게 가속화하여 상당한 시간을 절약합니다. 라이브러리는 맞춤형 모듈식 인터페이스를 제공하여 파이프라인 확장을 단순화하고 고품질 토큰 준비를 통해 모델 수렴을 가속화합니다.
NeMo 큐레이터는 텍스트 및 이미지 큐레이션을 위한 확장 가능한 데이터 큐레이션 모듈 모음을 제공합니다.
우리의 모든 텍스트 파이프라인은 훌륭한 다국어 지원을 제공합니다.
다운로드 및 추출
Common Crawl, Wikipedia 및 ArXiv 소스에 대한 기본 구현
쉽게 사용자 정의하고 다른 소스로 확장
언어 식별
유니코드 형식 재지정
휴리스틱 필터링
분류자 필터링
fastText
GPU 가속 모델: 도메인, 품질 및 안전 분류
GPU 가속 중복 제거
정확한 중복 제거
MinHash 지역 민감 해싱을 통한 퍼지 중복 제거
의미론적 중복 제거
다운스트림 작업 오염 제거
개인 식별 정보(PII) 수정
임베딩 생성
분류자 필터링
미적 및 NSFW 분류
GPU 중복 제거
의미론적
이러한 모듈은 몇 가지 예외를 제외하고 유연성을 제공하고 재정렬을 허용합니다. 모든 모듈은 처리량을 높이기 위해 자동으로 여러 노드로 확장됩니다.
선적 서류 비치
예
튜토리얼
블로그 게시물
수조 개의 토큰 데이터 세트 관리: NVIDIA NeMo 데이터 큐레이터 소개
NVIDIA NeMo 큐레이터를 사용하여 LLM 교육을 위한 고품질 데이터세트 확장 및 관리
NVIDIA NeMo 큐레이터를 사용하여 LLM 교육을 위한 맞춤형 데이터세트 큐레이팅
NVIDIA NeMo 큐레이터를 사용하여 LLM 매개변수 효율적인 미세 조정을 위한 맞춤형 데이터세트 큐레이팅
NVIDIA NeMo 큐레이터를 사용하여 도메인 적응형 사전 훈련을 위한 데이터 처리 간소화
이 섹션에서는 NeMo Curator를 설치하고 Python 라이브러리, Python 모듈 및 CLI 스크립트를 사용하는 방법을 설명합니다. 또한 바로 시작하는 데 도움이 되는 튜토리얼 목록도 포함되어 있습니다. 마지막으로 이 섹션에서는 NeMo 큐레이터와 인터페이스하기 위한 대체 방법으로 NeMo Framework Launcher를 사용하는 방법을 설명합니다.
NeMo Curator를 설치하기 전에 다음 요구 사항이 충족되는지 확인하십시오.
파이썬 3.10
우분투 22.04/20.04
NVIDIA GPU(선택 사항)
Volta™ 이상(컴퓨팅 기능 7.0+)
CUDA 12(또는 그 이상)
NeMo-Curator는 3가지 방법으로 얻을 수 있습니다.
파이파이
원천
NeMo 프레임워크 컨테이너
pip 설치 사이썬 pip install --extra-index-url https://pypi.nvidia.com nemo-curator[all]
자식 클론 https://github.com/NVIDIA/NeMo-Curator.git pip 설치 사이썬 pip install --extra-index-url https://pypi.nvidia.com "./NeMo-Curator[all]"
NeMo 큐레이터의 최신 릴리스는 NeMo 프레임워크 컨테이너에 사전 설치되어 제공됩니다. 컨테이너 내부에 최신 커밋을 원할 경우 다음을 사용하여 NeMo Curator를 다시 설치할 수 있습니다.
pip 제거 nemo-큐레이터 rm -r /opt/NeMo 큐레이터 자식 클론 https://github.com/NVIDIA/NeMo-Curator.git /opt/NeMo-Curator pip install --extra-index-url https://pypi.nvidia.com "/opt/NeMo-Curator[all]"
NeMo 큐레이터에는 작업 부하에 필요한 모듈만 설치하는 데 사용할 수 있는 추가 기능 세트가 있습니다. 이러한 추가 기능은 제공된 모든 설치 방법에 사용할 수 있습니다.
pip install nemo-curator # CPU 전용 텍스트 큐레이션 모듈 설치pip install --extra-index-url https://pypi.nvidia.com nemo-curator[cuda12x] # CPU + GPU 텍스트 큐레이션 모듈 설치pip install --extra-index -url https://pypi.nvidia.com nemo-curator[image] # CPU + GPU 텍스트 및 이미지 큐레이션 모듈 설치pip install --extra-index-url https://pypi.nvidia.com nemo-curator[all] # 위의 모든 항목을 설치합니다.
RAPIDS Nightly Builds를 사용하여 NeMo Curator를 설치할 수도 있습니다. 이렇게 하려면 환경 변수 RAPIDS_NIGHTLY=1
설정하면 됩니다.
# pypiRAPIDS_NIGHTLY=1 pip install --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple "nemo-curator[cuda12x]"에서 설치 RAPIDS_NIGHTLY=1 pip install - -extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple ".[cuda12x]"
RAPIDS_NIGHTLY
변수가 0(기본값)으로 설정되면 안정적인 버전의 RAPIDS를 사용합니다.
다음 스니펫은 공통 크롤링 데이터세트의 작은 하위 집합을 다운로드하고 선별하는 작은 데이터 선별 파이프라인을 만드는 방법을 보여줍니다.
# 데이터세트 다운로드dataset = download_common_crawl("/datasets/common_crawl/", "2021-04", "2021-10", url_limit=10)# 파이프라인 구축curation_pipeline = Sequential([ # 유니코드 수정 Modify(UnicodeReformatter()), # 짧은 레코드 삭제 ScoreFilter(WordCountFilter(min_words=80)), # 품질이 낮은 레코드 삭제 ScoreFilter(FastTextQualityFilter(model_path="model.bin")), # 테스트 세트 유출을 방지하기 위해 평가 지표에서 레코드를 삭제합니다. TaskDecontamination([Winogrande(), Squad(), TriviaQA()]) ])# 데이터세트에서 파이프라인 실행curated_dataset = curation_pipeline(dataset)
NeMo 큐레이터를 시작하려면 여기에서 제공되는 튜토리얼을 따르세요. 이 튜토리얼에는 다음이 포함됩니다.
LLM을 처음부터 교육하기 위한 데이터 큐레이션에 중점을 둔 tinystories
입니다.
LLM 매개변수 효율적 미세 조정(PEFT) 사용 사례에 대한 데이터 큐레이션에 초점을 맞춘 peft-curation
.
distributed_data_classification
분류는 데이터 주석을 돕기 위해 품질 및 도메인 분류자를 사용하는 데 중점을 둡니다.
태국어로 Wikipedia 데이터를 선별하기 위한 엔드투엔드 데이터 선별 파이프라인을 보여주는 single_node_tutorial
.
확장 가능한 이미지 큐레이션 모듈을 탐색하는 image-curation
.
NeMo 프레임워크 사용자 안내서의 NeMo 큐레이터 섹션에서는 Python 모듈 작동 방식에 대한 심층적인 정보를 제공합니다. GitHub 저장소의 예제 디렉터리는 이러한 모듈을 보여주는 스크립트를 제공합니다.
NeMo 큐레이터는 사용자가 사용할 수 있는 CLI 스크립트도 제공합니다. nemo_curator/scripts
의 스크립트는 제공된 Python 모듈과 밀접하게 매핑됩니다. Python 모듈 및 스크립트에 대한 자세한 내용은 NeMo 프레임워크 사용자 안내서를 참조하십시오.
NeMo 큐레이터와 인터페이스하는 대체 방법으로 NeMo Framework Launcher를 사용할 수 있습니다. 시작 관리자를 사용하면 매개변수와 클러스터를 쉽게 구성할 수 있습니다. 또한 파이프라인을 실행하는 데 필요한 CLI 스크립트를 래핑하는 Slurm 배치 스크립트를 자동으로 생성할 수도 있습니다.
또한 Slurm에서 NeMo Curator를 실행하는 데 다른 방법도 사용할 수 있습니다. 예를 들어, NeMo Framework Launcher 없이 Slurm에서 NeMo Curator를 실행하는 방법에 대한 자세한 내용은 examples/slurm
의 예제 스크립트를 참조하세요.
NeMo 큐레이터 내의 모듈은 주로 확장 가능한 방식으로 Common Crawl 스냅샷의 고품질 문서를 선별하도록 설계되었습니다. 선별된 Common Crawl 문서의 품질을 평가하기 위해 우리는 일련의 제거 실험을 수행했습니다. 이 실험에서 우리는 NeMo Curator에서 구현된 데이터 큐레이션 파이프라인의 다양한 단계에서 생성된 데이터세트를 사용하여 357M 매개변수 GPT 스타일 모델을 훈련했습니다.
다음 그림은 NeMo 큐레이터에 구현된 다양한 데이터 큐레이션 모듈을 사용하여 모델 제로샷 다운스트림 작업 성능이 향상되었음을 보여줍니다.
확장성과 컴퓨팅 성능 측면에서 RAPIDS와 Dask 퍼지 중복 제거의 조합을 사용하면 64개의 NVIDIA A100 Tensor Core GPU를 사용하여 1.1조 토큰 Red Pajama 데이터세트의 중복을 1.8시간 만에 제거할 수 있었습니다.
또한 다음 표는 CPU 기반 모듈을 사용하여 30개의 CPU 노드( c5.24xlarge
Amazon AWS C5와 유사한 하드웨어 사용)를 사용하여 2020년 11월/12월부터 각 처리 단계에 필요한 시간과 그에 따른 데이터 크기 감소를 보여줍니다. 사례).
데이터세트 | 다운로드 및 텍스트 추출 | 텍스트 정리 | 품질 필터링 | |||
---|---|---|---|---|---|---|
시간 | 출력 크기 | 시간 | 출력 크기 | 시간 | 출력 크기 | |
일반 크롤링 2020-50 | 36시간 | 2.8TB | 1시간 | 2.8TB | 0.2시간 | 0.52TB |
커뮤니티 기여를 환영합니다! 프로세스는 CONTRIBUTING.md를 참조하세요.