ML Fundamentals

датасет

Набор размеченных или неразмеченных данных для обучения или оценки модели.

Что такое датасет

Датасет (dataset) — структурированный набор данных, используемый для обучения, валидации или оценки ML-моделей. Качество и объём датасета определяют возможности модели не меньше, чем архитектура.

Типы датасетов

Pretraining datasets: огромные корпусы неразмеченного текста для обучения базовых LLM. The Pile, RedPajama, FineWeb — сотни GB–TB токенов. Качество данных критично: web crawl-данные нуждаются в тщательной фильтрации.

Instruction tuning datasets: пары (инструкция, ответ) для SFT. Обычно от нескольких тысяч до миллиона примеров. Alpaca, Dolly, OpenAssistant, ShareGPT, synthetic data (GPT-4-generated).

RLHF/DPO datasets: тройки (промпт, предпочтительный ответ, отвергнутый ответ) для alignment. HH-RLHF, UltraFeedback.

Evaluation datasets: бенчмарки для оценки качества — MMLU, HellaSwag, HumanEval, GSM8K, MT-Bench.

Разбивка датасета

Стандартная практика — разделить данные на три части:

Часть Роль Пример
Train Обучение модели 80%
Validation Оценка в процессе обучения, подбор гиперпараметров 10%
Test Финальная оценка (только один раз) 10%

Датасеты для русскоязычных задач

  • ruGPT-3 datasets: обучающие данные для русских LLM
  • Russian SuperGLUE: бенчмарк для оценки NLU на русском
  • Сrawled Russian web: Common Crawl с фильтрацией по языку
  • Synthetic: генерация синтетических примеров через GPT-4

Формат Hugging Face datasets

from datasets import load_dataset

# Загрузить датасет с Hugging Face Hub
dataset = load_dataset("tatsu-lab/alpaca")
print(dataset["train"][0])
# {'instruction': '...', 'input': '...', 'output': '...', 'text': '...'}

# Или свой датасет из JSONL-файла
dataset = load_dataset("json", data_files="my_data.jsonl")

Связанные термины

  • fine-tuning — требует подготовленного датасета
  • SFT — обучение на instruction datset
  • RLHF — использует preference dataset
  • токенизация — первый шаг обработки датасета

Готовы запустить GPU-задачу?

Запустить GPU-сервер