RedPajama-Data-V2: El Cambio de Juego para Modelos de Lenguaje de Código Abierto
Published on
Introducción
En el rápido desarrollo del campo de la inteligencia artificial, el desarrollo de poderosos modelos de lenguaje grandes (LLMs, por sus siglas en inglés) ha sido dominado en gran medida por entidades comerciales. Sin embargo, la comunidad de código abierto ha estado dando grandes pasos para democratizar el acceso a la tecnología de IA de vanguardia. Entre las numerosas iniciativas que impulsan este cambio, el proyecto RedPajama se destaca como un faro de innovación y colaboración.
RedPajama, un esfuerzo conjunto de Together, Ontocord.ai, ETH DS3Lab, Stanford CRFM, Hazy Research y MILA Québec AI Institute, tiene como objetivo crear modelos de lenguaje grandes líderes y completamente de código abierto que rivalicen con sus contrapartes propietarias. El último hito del proyecto, RedPajama-Data-V2, está listo para transformar la forma en que se entrena a los modelos de lenguaje de código abierto al proporcionar un conjunto de datos sin precedentes de 30 billones de tokens.
¿Quieres conocer las últimas noticias sobre LLM? ¡Echa un vistazo al última tabla de clasificación de LLM!
RedPajama-Data-V2: Un Cambio de Juego para Modelos de Lenguaje de Código Abierto
RedPajama-Data-V2 es un conjunto de datos web masivo diseñado específicamente para entrenar LLMs. Incluye más de 100 mil millones de documentos de texto obtenidos de 84 instantáneas de CommonCrawl, procesados utilizando el pipeline CCNet. De estos documentos, 30 mil millones vienen con señales de calidad precalculadas y 20 mil millones están deduplicados.
El conjunto de datos incluye cinco idiomas: inglés, francés, español, alemán e italiano. El número de documentos y tokens para la parte del conjunto de datos anotado y deduplicado es el siguiente:
Idioma | # Documentos | Recuento Estimado de Tokens (deduplicados) |
---|---|---|
Inglés | 14.5B | 20.5T |
Alemán | 1.9B | 3.0T |
Francés | 1.6B | 2.7T |
Español | 1.8B | 2.8T |
Italiano | 0.9B | 1.5T |
Total | 20.8B | 30.4T |
La inclusión de más de 40 conjuntos de anotaciones de calidad precalculadas distingue a RedPajama-Data-V2 de otros conjuntos de datos. Estas anotaciones permiten a los usuarios filtrar y ponderar aún más los datos según sus necesidades específicas, brindando una flexibilidad y opciones de personalización sin precedentes.
RedPajama-Data-V2 es actualmente el conjunto de datos públicos más grande diseñado específicamente para el entrenamiento de LLMs, con más de 100 mil millones de documentos brutos y 30 billones de tokens después de la deduplicación y el filtrado. Cubre cinco idiomas: inglés (20.5T tokens), alemán (3.0T), francés (2.7T), español (2.8T) e italiano (1.5T).
En comparación, otros conjuntos de datos prominentes como The Pile (utilizado para entrenar modelos EleutherAI) contienen alrededor de 1.2 billones de tokens, mientras que el conjunto de datos utilizado para entrenar Llama 2 tenía 2.4 billones de tokens. La escala de RedPajama-Data-V2 es inigualable, proporcionando una abundancia de datos de entrenamiento de alta calidad.
Por qué RedPajama-Data-V2 es tan Bueno
Lo que realmente distingue a RedPajama-Data-V2 es la inclusión de más de 40 señales de calidad precalculadas para cada documento. Estas anotaciones cubren diversas categorías como puntuaciones de perplejidad, predicciones de clasificadores, métricas de lenguaje natural, indicadores de toxicidad del contenido y más.
-
Alta Calidad: Contar con estas señales de calidad permite a los investigadores filtrar y ponderar fácilmente el conjunto de datos según sus necesidades específicas. Otros conjuntos de datos suelen aplicar heurísticas fijas, limitando la personalización posterior. RedPajama-Data-V2 brinda una flexibilidad sin precedentes para crear subconjuntos adaptados optimizados para diferentes aplicaciones de LLM.
-
Completamente de Código Abierto: El proyecto RedPajama es completamente de código abierto, con todos los scripts de procesamiento de datos disponibles en GitHub y el conjunto de datos alojado en HuggingFace. Esta transparencia permite a la comunidad comprender, reproducir y desarrollar sobre el conjunto de datos.
-
Reducir el Costo de los Entrenamientos de LLM: La escala y calidad de RedPajama-Data-V2 tienen el potencial de reducir significativamente los costos computacionales de entrenar LLMs potentes. Al proporcionar un vasto conjunto de datos informativos, los modelos pueden lograr un rendimiento sólido con menos parámetros y menos recursos de cómputo.
Configuración de RedPajama-Data-V2
Para comenzar con RedPajama-Data-V2, puedes cargar el conjunto de datos de muestra utilizando el siguiente código de Python:
from datasets import load_dataset
ds = load_dataset("togethercomputer/RedPajama-Data-V2", name="sample")
Para descargar una combinación específica de partition
x snapshot_id
x language
, utiliza el siguiente comando:
wget "https://data.together.xyz/redpajama-data-v2/v1.0.0/urls/minhash-urls.txt" -O "minhash-urls.txt"
Ejecución del Pipeline de RedPajama-Data-V2
El pipeline de RedPajama-Data-V2 consta de tres pasos principales:
- Preparación de los artefactos
- Cálculo de las señales de calidad
- Deduplicación
Paso 1: Preparación de los Artefactos
Este paso crea los artefactos utilizados en los pasos posteriores, incluyendo la construcción de clasificadores de calidad, el entrenamiento de modelos generativos de conjuntos de n-gramos para el cálculo de pesos de importancia, la obtención de la lista de palabras prohibidas del repositorio LDNOOBW y la obtención de la lista más reciente de URLs en lista negra del UT1 blacklist.
Para crear los artefactos, establece las variables de entorno en el archivo de configuración y ejecuta:
bash scripts/run_prep_artifacts.sh \
--config configs/rp_v2.0.conf \
--listings /path/to/listings/file.txt \
--max_workers 32
Paso 2: Cálculo de las señales de calidad
El segundo paso calcula las señales de calidad, incluyendo las firmas de minhash para la deduplicación difusa. Configura las variables de entorno en el archivo de configuración y ejecuta:
bash scripts/apptainer_run_quality_signals.sh \
--config configs/rp_v2.0.conf \
--dump_id "2022-49" \
--input_base_uri "file:///ruta/a/la/carpeta/de/datos" \
--output_base_uri "file:///ruta/a/la/carpeta/de/datos/salida" \
--max_docs -1
Paso 3: Deduplicación
El tercer paso implica la deduplicación exacta y difusa. Para la deduplicación exacta utilizando un filtro de Bloom, ejecuta:
python3 app/src/bloomfilter.py \
--listings /ruta/al/archivo/de/listas.txt \
--input_base_uri "s3://ruta/a/la/carpeta/de/datos/ccnet" \
--output_dir "/ruta/a/la/carpeta/de/salida" \
--s3_profile "..." \
--endpoint_url "..." \
--parallel_readers 32 \
--batch_size 10 \
--capacity "..." \
--error_rate "..."
Para la deduplicación difusa con hashing localmente sensible, ejecuta:
bash scripts/apptainer_run_lsh.sh \
--config configs/rp_v2.0.conf \
--dump_id "2022-49" \
--input_base_uri "file:///ruta/a/la/carpeta/de/datos" \
--output_dir "/ruta/a/la/carpeta/de/salida" \
--similarity "<umbral_de_similitud>" \
--listings "/ruta/al/archivo/de/listas/minhash.txt" \
--max_docs -1
Señales de calidad de RedPajama-Data-V2
RedPajama-Data-V2 incluye un conjunto completo de señales de calidad, que se pueden categorizar en los siguientes grupos:
- CCNet: Señales derivadas del pipeline de CCNet, como la puntuación de perplejidad, la identificación de idioma y la longitud del documento.
- Heurísticas de ML: Señales basadas en modelos de aprendizaje automático, como clasificadores para páginas similares a Wikipedia y remuestreo de importancia.
- Lenguaje natural: Señales relacionadas con las propiedades lingüísticas del contenido, como el recuento de palabras, el recuento de oraciones y la fracción de palabras únicas.
- Repetitividad: Señales que miden la repetitividad del contenido, como la fracción de caracteres en n-gramas duplicados.
- Toxicidad: Señales que indican contenido potencialmente tóxico, como la presencia de palabras de la lista negra LDNOOBW y categorías de la lista negra UT1.
- Deduplicación: Firmas de minhash para la deduplicación difusa a diversos umbrales de similitud de Jaccard.
Una lista detallada de todas las señales de calidad se puede encontrar en la documentación de RedPajama-Data-V2.
El futuro de RedPajama y los modelos de lenguaje de código abierto
RedPajama-Data-V2 marca un hito significativo en el desarrollo de modelos de lenguaje de código abierto. Al proporcionar un amplio conjunto de datos de alta calidad con anotaciones extensas, el proyecto tiene como objetivo reducir las barreras de entrada para investigadores y organizaciones que buscan construir modelos de lenguaje potentes.
El equipo de RedPajama tiene la visión de expandir el conjunto de datos con anotaciones adicionales de calidad, como anotaciones de contaminación, modelado de temas y categorización de documentos. Animan activamente la participación de la comunidad para sugerir y desarrollar nuevas anotaciones con el fin de mejorar aún más la utilidad del conjunto de datos.
En paralelo con el desarrollo del conjunto de datos, Together está construyendo modelos abiertos basados en RedPajama-Data-V2. Estos modelos serán completamente de código abierto y comercialmente viables, proporcionando una alternativa sin problemas y sin drama a los modelos de lenguaje existentes. El proyecto también ofrece asistencia a empresas y organizaciones interesadas en construir modelos personalizados utilizando una combinación de datos de código abierto y datos patentados.
Conclusion
RedPajama-Data-V2 representa un paso significativo en la democratización de la tecnología de IA. Al proporcionar un conjunto de datos de alta calidad totalmente de código abierto para entrenar modelos de lenguaje, el proyecto capacita a investigadores, desarrolladores y organizaciones para crear modelos de lenguaje potentes sin las limitaciones impuestas por las API patentadas.
A medida que el proyecto RedPajama continúa creciendo y evolucionando, tiene el potencial de remodelar el panorama de la IA, fomentando la innovación, la colaboración y la accesibilidad. Con el apoyo y la participación de la comunidad de IA, RedPajama está en una posición privilegiada para convertirse en un catalizador para la próxima generación de modelos de lenguaje y más allá.
¿Quieres conocer las últimas noticias sobre LLM? ¡Echa un vistazo a la última clasificación de LLM!