Загрузка
МоделиДатасетыАкселераторЖурналыФорумОбучение
Модели
AI-решения
Разработчикам
Обучение
Сообщество
Заказать решение
Мероприятия
Другое

Войти
Модели
AI-решения
Разработчикам
ДатасетыНоутбуки
Обучение
Сообщество
ЖурналыQubu HubФорум
Заказать решение
ИнтеграторыСоревнованияРазместить задачу
Мероприятия
Другое
РейтингПриватные клубы
Войти
  1. Главная
  2. Обучение
  3. zolotaya-zhila-dannykh-kak-sob...

Золотая жила данных: Как собрать и подготовить датасет для обучения

Мусор на входе = мусор на выходе. Учимся превращать цифровую свалку в качественное топливо для нейросетей. Продвинутые техники: очистка через Pandas, балансировка классов и лайфхак с авторазметкой (Teacher-Student), когда одна нейросеть готовит данные для другой

5 дочитываний
27 просмотров
5 минут
Золотая жила данных: Как собрать и подготовить датасет для обучения

Описание

В мире машинного обучения есть аксиома, которую часто игнорируют новички: «Garbage in — Garbage out» (Мусор на входе — мусор на выходе). Вы можете арендовать самый мощный кластер H100 на Qudata и взять архитектуру, победившую на последних соревнованиях, но если вы «скормите» ей плохие данные, результат будет плачевным.

Подготовка датасета — это 80% работы ML-инженера. Это скучно, долго и больно, но именно здесь выигрываются битвы за точность (Accuracy). В этом гайде мы пройдем путь от цифровой свалки до идеального топлива для нейросети, используя профессиональные приемы очистки и автоматической разметки.

Инструментарий

Для работы с данными нам не нужны суперкомпьютеры, достаточно грамотного использования библиотек Python:

  1. Python + Pandas: Основные инструменты для фильтрации и анализа таблиц.

  2. API «Умной» модели (или локальная LLM): Для автоматической разметки сырых данных.

  3. Аккаунт на Qubu: Для хранения версий датасета и (важно) монетизации результата.

Теория на пальцах: Что такое «хороший» датасет?

Представьте, что вы учите ребенка математике по учебнику.

  • Грязные данные: В учебнике опечатки. На одной странице написано $2 + 2 = 5$. Если ребенок (нейросеть) выучит это, он будет совершать ошибки, уверенный в своей правоте.

  • Дисбаланс классов: В учебнике 1000 примеров на сложение и всего 3 примера на вычитание. На экзамене ученик будет пытаться сложить всё подряд, потому что он просто не привык вычитать.

  • Утечка данных (Data Leakage): Самый коварный враг. Это когда ответы случайно напечатаны мелким шрифтом прямо в условии задачи. Модель не учится решать — она учится находить этот мелкий шрифт. На реальных данных, где подсказок нет, такая модель мгновенно провалится.

Наша задача — убрать опечатки, выровнять количество примеров и спрятать ответы.


Этап 1. Цифровая археология и грубая очистка

Прежде чем писать парсеры, стоит проверить раздел «Датасеты» на Qubu. Возможно, кто-то уже собрал и разметил данные за вас. Если нет — собираем всё, что нашли (логи чатов, тексты с сайтов, PDF-отчеты), в единый файл raw_data.csv.

Далее вступает в бой библиотека Pandas. Нам нужно удалить дубликаты и откровенный мусор. Нейросети ленивы: если показать ей один и тот же пример 50 раз, она просто зазубрит его, вместо того чтобы понять закономерность.

Откройте Ноутбук в Qubu и выполните следующую очистку:

Python

import pandas as pd
import re

# Загружаем "сырые" данные
df = pd.read_csv('raw_data.csv')
print(f"Было строк: {len(df)}")

# 1. Удаляем полные дубликаты
# Если текст повторяется один в один — он не несет новой информации.
df = df.drop_duplicates(subset=['text'])

# 2. Фильтр по длине
# "Привет", "Ок", "Спам" — слишком короткие тексты, в них нет контекста для обучения.
df = df[df['text'].str.len() > 20]

# 3. Очистка от "шума" через регулярные выражения (Regex)
# Оставляем только кириллицу, цифры и базовую пунктуацию.
# Это удалит китайские иероглифы, битые кодировки и эмодзи (если они не нужны).
def clean_text(text):
    # Оставляем буквы, цифры и знаки препинания
    text = re.sub(r'[^а-яА-Я0-9\s.,!?-]', '', text) 
    # Убираем лишние пробелы (например, "привет    мир")
    text = re.sub(r'\s+', ' ', text).strip()
    return text

df['clean_text'] = df['text'].apply(clean_text)

# Удаляем строки, которые стали пустыми после очистки
df = df[df['clean_text'].str.len() > 0]

print(f"Осталось чистых строк: {len(df)}")

Этап 2. Алхимия данных: Авторазметка (Teacher-Student)

Это профессиональная техника, которая экономит недели ручного труда. Допустим, у вас есть 10 000 отзывов, и вам нужно пометить их как POSITIVE или NEGATIVE. Размечать вручную — долго.

Мы используем подход Teacher-Student.

  • Teacher (Учитель): Большая, умная, но медленная и дорогая модель (например, GPT-4 или Llama-3-70B). Она размечает данные.

  • Student (Ученик): Ваша маленькая, быстрая модель (например, BERT или небольшая Llama-8B), которую вы будете обучать на этих данных.

В Qubu вы можете запустить Llama-3 через Ollama в соседнем контейнере и использовать её как бесплатного разметчика.

Python

# Псевдокод функции разметки
def auto_label(text):
    # Формируем промпт для "Учителя"
    prompt = f"""
    Проанализируй текст и определи его тональность.
    Текст: "{text}"
    Ответь одним словом: POSITIVE, NEGATIVE или NEUTRAL.
    """
    
    # Отправляем запрос к локальной модели (или API)
    # response = client.generate(model="llama3", prompt=prompt)
    
    # Возвращаем чистый ответ
    return response.strip()

# Применяем к датасету
# Совет: делайте это батчами (порциями) по 100 штук и сохраняйте прогресс, 
# чтобы при сбое не начинать сначала.
df['label'] = df['clean_text'].apply(auto_label)

# Сохраняем "Золотой стандарт"
df.to_csv('gold_dataset.csv', index=False)

Этап 3. Балансировка классов

Теперь, когда у нас есть разметка, нужно проверить баланс.

Python

print(df['label'].value_counts())

Плохая ситуация:

  • POSITIVE: 9500

  • NEGATIVE: 500

Если обучить модель на этом, она всегда будет говорить «POSITIVE» и достигнет точности 95%, но будет абсолютно бесполезна для поиска негатива.

Как исправить:

  1. Undersampling (Обрезание): Случайно удалить 9000 позитивных отзывов, оставив 500 на 500. Вы теряете данные, но выравниваете весы.

  2. Oversampling (Дублирование): Размножить негативные отзывы.

  3. Augmentation (Аугментация): Лучший вариант. Перефразировать негативные отзывы с помощью той же нейросети («Учителя»), чтобы получить новые уникальные примеры негатива.

Этап 4. Публикация и монетизация на Qubu

Качественный датасет — это цифровой актив. В экосистеме Qubu за него можно получать вознаграждение.

  1. Перейдите в раздел «Датасеты» -> «Создать».

  2. Загрузите gold_dataset.csv и обязательно добавьте файл README с описанием: откуда данные, как чистили, какой баланс классов.

  3. Экономика: Если ваш датасет начнут использовать другие разработчики (скачивать, применять в соревнованиях), вы будете получать токены Qubu. Эти токены можно тратить на аренду мощных GPU для обучения ваших следующих моделей или выводить (при достижении определенных лимитов).

  4. Выбирайте лицензию осознанно: Open Source (для репутации) или Proprietary (если планируете продавать доступ).


Чек-лист: Три смертных греха подготовки данных

Вместо раздела «грабли», давайте пройдемся по списку контрольных вопросов перед тем, как нажать кнопку «Train».

1. Не «протекли» ли ответы? (Data Leakage)

Вы делали очистку и нормализацию данных до или после разделения на обучающую (Train) и тестовую (Test) выборки?

  • Правильно: Сначала разбить на Train/Test, потом считать статистики (среднее, словарь слов) только по Train и применять их к Test.

  • Ошибка: Посчитать среднее по всему датасету. Тестовая выборка «узнает» информацию о будущем, и метрики будут завышены.

2. Не стерильны ли данные? (Over-cleaning)

В погоне за чистотой вы могли удалить весь сленг, все опечатки и странные обороты.

  • Риск: Ваша модель станет «тепличным растением». Она идеально работает в лаборатории, но падает в обморок от реального комментария пользователя: «Крч, товар норм, но доставка ппц». Оставляйте немного шума для тренировки «иммунитета».

3. Доверяете ли вы «Учителю»?

Авторазметка большой моделью (Llama 3, GPT) тоже дает сбои. Она может не понять сарказм или специфический жаргон.

  • Обязательно: Выберите случайные 50-100 строк из финального файла и проверьте их глазами. Если там бред — переписывайте промпт для авторазметки.

Предпросмотр файлов

В этом материале нет файлов для просмотра.

Просмотры

Похожие исследования

Загрузка...
Загрузка комментариев...

Оценка

Детали исследования

Автор: DataSmith
Язык: Русский
Направления: Аналитика и метрики
Дополнения: 0 файлов
Комментарии: 5
Дата добавления: 22 января 2026

Автор

DataSmith

DataSmith

Разработчик

Профиль автора