Itinai.com a split screen photorealistic image of two compute 3f3c3d48 14eb 458c bcf3 739369f920b8 2

Как собрать стабильный Fable 5 Traces в Colab: парсинг и аудит

Itinai.com a split screen photorealistic image of two compute 3f3c3d48 14eb 458c bcf3 739369f920b8 2

Что делает представленный скрипт?

Скрипт — это набор шагов, которые позволяют быстро оценить и подготовить датасет “Fable 5” для последующего машинного обучения. Основные задачи:

  • Обучить два простейших классификатора Naive Bayes на чистом Python без сторонних библиотек;
  • Сгенерировать отчёты: метрики, матрицы ошибок, топ‑токены для каждого класса;
  • Сохранить артефакты (CSV, JSON, PNG) в удобную структуру;
  • Создать вспомогательный поиск по ключевым словам в таблице — полезно при быстрой проверке строк.

Кому будет полезен такой подход?

Если вы работаете с «теле‑метрикой» моделей, собираете данные из интерактивных сессий и планируете построить простую baseline‑модель, данный шаблон экономит часы ручной работы. Он покрывает всё: от предобработки до готовых файлов экспорта.

Пошаговый разбор кода

1. Предобработка и проверка достаточности данных

Перед обучением скрипт отсекает строки, где output_type пустой, и проверяет, что классов минимум два и строк ≥ 30. Это защита от «плохой статистики», которая могла бы привести к ошибкам в обучении.

2. Обучение первого классификатора – предсказание output_type

  • Текст из поля context обрезается до 12 000 символов (чтобы не перегрузить память);
  • Разделение на train/test происходит стратифицировано, что сохраняет равномерное представление классов;
  • Классификатор PureMultinomialNB (реализация Naive Bayes) настраивается:
    • max_features=20000 – ограничение словаря,
    • min_df=2 – игнорировать редкие токены,
    • alpha=1.0 – гладкость Лапласа.
  • После обучения выводятся метрики (accuracy, precision, recall, f1), матрица ошибок и топ‑токены, которые наиболее характерны для каждого класса.
  • Все результаты сохраняются в CSV/JSON в директорию OUT_DIR.

3. Обучение второго классификатора – предсказание tool_name

Подход идентичен первому, но:

  • Отбираются только строки, где output_type == "tool_use";
  • Для редких инструментов создаётся «заглушка» __OTHER__, чтобы сохранить достаточную частоту классов;
  • Только 12 самых популярных инструментов учитываются как отдельные метки.

4. Инструмент быстрого поиска по ключевому слову

Функция search_rows сканирует несколько колонок (context, cot, completion, text_payload) и возвращает первые несколько совпадений с превью текста. Это удобный способ проверить, «не пропустили» ли вы важные примеры в датасете.

5. Формирование итогового отчёта

В JSON‑файле analysis_summary.json собираются сведения о датасете: количество строк, распределение классов, топ‑инструменты, статистика длины полей и ссылки на все артефакты. Кроме того, генерируется Markdown‑отчёт REPORT.md для быстрой презентации результата.

Где искать «сырой» код и данные?

Исходный репозиторий с полным набором скриптов, моделью PureMultinomialNB и инструкциями доступен на GitHub: github.com/your-org/fable5-analysis. Датасет “Fable 5” можно получить из официального источника: huggingface.co/datasets/fable5.

Практические рекомендации

  • Проверяйте размер словаря. Если vocab_size слишком большой, уменьшите max_features или поднимите min_df – экономия памяти будет значительной.
  • Баланс классов. При сильном дисбалансе стоит рассмотреть взвешивание классов (class_weight) или использовать техники oversampling.
  • Контроль утечек. Обязательно проверьте колонку possible_secret_anywhere – строки, содержащие потенциальные токены или ключи, следует удалить или замаскировать.
  • Экспорт без CoT. Если вы планируете fine‑tuning, используйте файлы *_no_cot_chat_*.jsonl – они содержат чистый диалог без промежуточных цепочек размышлений.
  • Автоматизируйте CI. Добавьте шаг генерации отчётов в пайплайн, чтобы каждый новый импорт данных сразу проходил проверку качества.

Что дальше?

После того как baseline‑модель готова, вы можете:

  • Протестировать более сложные алгоритмы (Logistic Regression, SVM, небольшие трансформеры);
  • Подключить эмбеддинги (TF‑IDF, FastText) вместо «чистого» bag‑of‑words;
  • Разработать пайплайн для активного обучения – модель будет предлагать самые «неразобранные» примеры для ручной разметки.

Запустите свой ИИ проект бесплатно

ИИ-агенты искусственный интеллект онлайн для бизнеса

Лучший ИИ онлайн