RedPajama-Data-V2: 오픈소스 대형 언어 모델에 대한 게임체인저
Published on
소개
인공지능의 급변하는 풍경에서 강력한 대형 언어 모델(Large Language Models, LLMs)의 개발은 크게 상용기업들이 주도해왔습니다. 그러나 오픈소스 커뮤니티는 첨단 인공지능 기술에 대한 접근성을 더 폭넓게 제공하기 위해 중대한 발전을 이루고 있습니다. 이러한 변화를 주도하는 다양한 이니셔티브 가운데서 RedPajama 프로젝트는 혁신과 협력의 상징으로 빛납니다.
Together, Ontocord.ai, ETH DS3Lab, Stanford CRFM, Hazy Research, 및 MILA Québec AI Institute이 함께하는 RedPajama 프로젝트는 프로젝트의 최신 이정표인 RedPajama-Data-V2를 통해 상용 대응물을 견줄 대형 오픈소스 LLMs를 만들고자 합니다. 이 프로젝트는 30조 개의 토큰으로 이루어진 전례없는 데이터셋을 제공함으로써 오픈소스 LLMs의 훈련 방식을 변혁할 것입니다.
최신 LLM 뉴스를 알고 싶으신가요? 최신 LLM 리더보드를 확인하세요!
RedPajama-Data-V2: 오픈소스 LLM에 대한 게임체인저
RedPajama-Data-V2는 LLM 훈련을 위해 구축된 대규모 웹 데이터셋입니다. CCNet 파이프라인을 사용하여 84개의 CommonCrawl 스냅샷에서 가져온 1000억 개 이상의 텍스트 문서로 구성되어 있습니다. 이 중 30%의 문서는 사전 계산된 품질 신호를 포함하고 있으며, 20%는 중복이 제거되었습니다.
이 데이터셋은 영어, 프랑스어, 스페인어, 독일어, 이탈리아어라는 다섯 가지 언어를 포함하고 있습니다. 데이터셋의 주석이 달린 부분과 중복이 제거된 head_middle 부분의 문서 및 토큰 개수는 다음과 같습니다:
언어 | 문서 개수 | 토큰 개수(중복 제거) |
---|---|---|
영어 | 1450억개 | 205조 개 |
독일어 | 190억개 | 3000조 개 |
프랑스어 | 160억 개 | 2700조 개 |
스페인어 | 180억 개 | 2800조 개 |
이탈리아어 | 90억 개 | 1500조 개 |
총합 | 208억 개 | 3040조 개 |
40개 이상의 사전 계산된 품질 주석이 함께 포함되어 있는 것이 RedPajama-Data-V2의 특징입니다. 이러한 주석을 통해 사용자는 데이터를 필터링하고 가중치를 특정 요구에 따라 조정할 수 있습니다. 이를 통해 예전에는 제한되던 다운스트림 사용자 정의화를 제공하여 다양한 LLM 응용에 최적화된 사용자 지정 하위 데이터셋을 생성할 수 있는 예대로운 유연성을 제공합니다.
RedPajama-Data-V2는 현재 오픈소스 LLM 훈련을 위해 특별히 생성된 가장 큰 공개 데이터셋으로, 중복 제거 및 필터링을 거친 결과로 1000억 개의 원시 문서와 30조 개의 토큰을 보유하고 있습니다. 영어(205조 토큰), 독일어(3000조 토큰), 프랑스어(2700조 토큰), 스페인어(2800조 토큰), 이탈리아어(1500조 토큰)의 다섯 가지 언어가 포함되어 있습니다.
비교해 보면, EleutherAI 모델을 훈련하기 위해 사용되는 The Pile은 약 120조 개의 토큰을, Llama 2를 훈련하기 위해 사용된 데이터셋은 240조 개의 토큰을 포함하고 있습니다. RedPajama-Data-V2의 규모는 비할데 없이 크며, 고품질 훈련 데이터의 풍부함을 제공합니다.
RedPajama-Data-V2의 우수점과 장점
RedPajama-Data-V2를 독특하게 만드는 것은 각 문서에 대해 40개 이상의 사전 계산된 품질 주석이 포함되어 있다는 점입니다. 이 주석은 퍼플렉서티 점수, 분류기 예측 결과, 자연어 메트릭, 콘텐츠 독성 지표 등 다양한 카테고리를 다루고 있습니다.
-
높은 품질: 이러한 품질 신호를 가지고 있기 때문에 연구자들은 데이터셋을 쉽게 필터링하고 가중치를 조정할 수 있습니다. 다른 데이터셋들은 일반적으로 고정된 휴리스틱을 적용하여 다운스트림 사용자 정의화를 제한하였습니다. RedPajama-Data-V2는 다양한 LLM 응용에 최적화된 사용자 정의화 하위 데이터셋을 생성하기 위한 전례없는 유연성을 제공합니다.
-
완전히 오픈소스: RedPajama 프로젝트는 완전히 오픈소스로서, 데이터 처리 스크립트는 GitHub에서 모두 확인할 수 있으며 데이터셋은 HuggingFace에 호스팅되고 있습니다. 이러한 투명성은 커뮤니티가 데이터셋을 이해하고 재현하며 개선할 수 있도록 돕습니다.
-
LLM 훈련 비용 감소: RedPajama-Data-V2의 규모와 품질은 강력한 LLM의 훈련 비용을 크게 감소시킬 수 있는 잠재력을 가지고 있습니다. 다양한 정보를 제공하는 방대한 데이터로 인해 모델은 적은 파라미터와 적은 컴퓨팅 리소스로 높은 성능을 달성할 수 있습니다.
RedPajama-Data-V2 설정하기
RedPajama-Data-V2를 사용하기 위해 다음의 Python 코드를 사용하여 샘플 데이터셋을 로드할 수 있습니다:
from datasets import load_dataset
ds = load_dataset("togethercomputer/RedPajama-Data-V2", name="sample")
partition
x snapshot_id
x language
의 특정 조합을 다운로드하려면 다음 명령을 사용하십시오:
wget "https://data.together.xyz/redpajama-data-v2/v1.0.0/urls/minhash-urls.txt" -O "minhash-urls.txt"
RedPajama-Data-V2 파이프라인 실행하기
RedPajama-Data-V2 파이프라인은 다음과 같은 세 가지 주요 단계로 구성됩니다:
- 자료 준비
- 품질 신호 계산
- 중복 제거
단계 1: 자료 준비
이 단계에서는 품질 분류기를 구축하고 중요도 가중치 계산을 위해 N그램 생성모델을 학습하고, LDNOOBW 리포지토리에서 나쁜 단어 목록을 가져오고, 최신 블랙리스트 URL 목록을 UT1 블랙리스트에서 가져오는 등의 작업이 수행됩니다.
아래 명령을 실행하여 자료를 준비하십시오:
bash scripts/run_prep_artifacts.sh \
--config configs/rp_v2.0.conf \
--listings /path/to/listings/file.txt \
--max_workers 32
단계 2: 품질 신호 계산
두 번째 단계는 품질 신호를 계산하는 것으로, 흐릿한 중복을 위한 minhash 서명을 포함합니다. 구성 파일에서 환경 변수를 설정하고 다음을 실행하십시오:
bash scripts/apptainer_run_quality_signals.sh \
--config configs/rp_v2.0.conf \
--dump_id "2022-49" \
--input_base_uri "file:///path/to/data/root" \
--output_base_uri "file:///path/to/outout/data/root" \
--max_docs -1
단계 3: 중복 제거
세 번째 단계는 정확하고 흐릿한 중복을 포함합니다. 블룸 필터를 사용하여 정확한 중복 제거를 수행하려면 다음을 실행하십시오:
python3 app/src/bloomfilter.py \
--listings /path/to/listings/file.txt \
--input_base_uri "s3://path/to/ccnet/data" \
--output_dir "/path/to/output" \
--s3_profile "..." \
--endpoint_url "..." \
--parallel_readers 32 \
--batch_size 10 \
--capacity "..." \
--error_rate "..."
지역 민감 해시를 사용한 흐릿한 중복 제거를 위해 다음을 실행하십시오:
bash scripts/apptainer_run_lsh.sh \
--config configs/rp_v2.0.conf \
--dump_id "2022-49" \
--input_base_uri "file:///path/to/data/root" \
--output_dir "/path/to/output" \
--similarity "<similarity_threshold>" \
--listings "/minhash/listings/file.txt" \
--max_docs -1
RedPajama-Data-V2 품질 신호
RedPajama-Data-V2에는 품질 신호의 포괄적인 세트가 포함되어 있으며 다음 그룹으로 분류 할 수 있습니다:
- CCNet: CCNet 파이프라인에서 유도 된 신호, 예를 들어 의아함 점수, 언어 식별 및 문서 길이 등.
- ML 휴리스틱: 머신 러닝 모델에 기반한 신호, 예를 들어 Wikipedia와 유사한 페이지 및 중요도 리샘플링에 대한 분류기 등.
- 자연 언어: 콘텐츠의 언어적 특성과 관련된 신호, 예를 들어 단어 수, 문장 수 및 고유 단어의 비율 등.
- 반복성: 콘텐츠의 반복성을 측정하는 신호, 예를 들어 중복된 n-gram의 문자 비율 등.
- 독성: 잠재적으로 유해한 콘텐츠를 나타내는 신호, 예를 들어 LDNOOBW 블록 목록의 단어 및 UT1 블랙리스트의 카테고리 등.
- 중복 제거: 여러 Jaccard 유사성 임계값에서 흐릿한 중복 제거를 위한 minhash 서명.
모든 품질 신호의 상세 목록은 RedPajama-Data-V2 문서에서 찾을 수 있습니다.
RedPajama 및 오픈 소스 LLM의 미래
RedPajama-Data-V2는 오픈 소스 LLM 개발에 있어서 중요한 이정표입니다. 프로젝트는 광범위한 주석으로 높은 품질의 데이터셋을 제공함으로써 강력한 언어 모델을 구축하려는 연구원과 조직의 진입 장벽을 낮추기 위해 목표를 가지고 있습니다.
RedPajama 팀은 오염 주석, 주제 모델링 및 문서 분류와 같은 추가적인 품질 주석으로 데이터셋을 확장하는 것을 염두에 두고 있습니다. 그들은 데이터셋의 유틸리티를 더욱 향상시키기 위해 기여자들에게 새로운 주석을 제안하고 개발하는 것을 적극적으로 장려하고 있습니다.
데이터셋 개발과 병행하여 Together는 RedPajama-Data-V2를 기반으로하는 오픈 모델을 구축하고 있습니다. 이러한 모델은 완전히 오픈 소스이면서 상업적으로도 타당하며, 기존 LLM에 대한 깨끗한 환경, 드라마가 없는 대안을 제공합니다. 이 프로젝트는 또한 오픈과 프로프라이어터리 데이터를 결합하여 사용자 정의 모델을 구축에 관심이 있는 기업 및 조직에 지원을 제공합니다.
결론
RedPajama-Data-V2는 AI 기술의 민주화를 위한 큰 한걸음을 나타냅니다. 완전히 오픈 소스이고 고품질의 데이터셋을 제공하여 프로프라이어터리 API가 적용하는 제약 조건없이 강력한 언어 모델을 만들 수 있도록 연구원, 개발자 및 조직에게 권한을 부여합니다.
RedPajama 프로젝트가 계속 성장하고 발전함에 따라 인공지능의 풍경을 형성하여 혁신, 협력 및 접근성을 촉진하는 잠재력을 가지고 있습니다. AI 커뮤니티의 지원과 참여를 통해 RedPajama는 LLM의 다음 세대를 위한 촉매제가 되기위해 잘 준비되어 있습니다.
최신 LLM 뉴스를 알고 싶으세요? 최신 LLM 리더보드를 확인해보세요!