Text dataset complexity profiler with a packaged meta-model for automatic embedding dimension recommendation
Project description
Dataset Complexity Profiler 🧠
E2E-инструмент для профилирования сложности текстовых датасетов и автоматической оптимизации размерности эмбеддингов.
⚠️ Проблема
В современных NLP-задачах разработчики часто используют эмбеддинги большой размерности, например 384 у MiniLM или 1536 у OpenAI-моделей. Однако для многих простых задач, таких как бинарная классификация тональности, такая размерность оказывается избыточной.
Это приводит к нескольким проблемам:
- Перерасход памяти и вычислительных ресурсов.
- Замедление обучения downstream-классификаторов.
- Риск ухудшения качества из-за эффекта "проклятия размерности".
💡 Решение
Dataset Complexity Profiler автоматически подбирает разумную степень сжатия эмбеддингов без существенной потери качества. Библиотека находится на стыке Meta-Learning и AutoML и работает по следующей схеме:
- Анализирует сырые тексты и извлекает более 100 мета-признаков, включая сложность, перекрытие классов и информационную энтропию.
- Передает эти признаки в предобученную мета-модель на основе Random Forest.
- Предсказывает, до какой размерности можно сжать эмбеддинги через PCA так, чтобы потерять не более 5% качества.
Импакт: На независимых holdout-выборках инструмент позволяет сжимать эмбеддинги до 96% от исходного объема при сохранении качества классификации в пределах заданного порога.
✨ Возможности
- Автоматический подбор размерности PCA для текстовых эмбеддингов.
- Извлечение более 100 мета-признаков датасета.
- Предобученная мета-модель для мгновенного применения.
- Возможность дообучить мета-модель на собственных доменных данных.
- End-to-end сценарий: от сырых текстов до готовых компактных векторов.
🚀 Установка
Установите пакет через uv:
uv pip install dataset-complexity-profiler
Или через стандартный pip:
pip install dataset-complexity-profiler
Быстрый старт
End-to-End пайплайн
Ниже приведен минимальный пример использования. Библиотека сама пройдет путь от текстов до сжатых векторов.
from dataset_complexity_profiler import DatasetProfiler
profiler = DatasetProfiler()
texts = [
"This movie is great!",
"Terrible plot.",
"I loved the acting."
]
labels =
X_ready = profiler.fit_transform(texts, labels)
print(f"Новая размерность: {X_ready.shape}")
Дообучение мета-модели на своих данных
Если библиотека применяется в специализированной предметной области, например в медицине, юриспруденции или финансах, встроенную мета-модель можно дообучить на собственных датасетах.
from dataset_complexity_profiler import DatasetProfiler
profiler = DatasetProfiler(auto_load_meta_model=False)
datasets = [
{"texts": [...], "labels": [...]},
{"texts": [...], "labels": [...]},
]
profiler.train_custom_meta_model(datasets)
profiler.save_meta_model("custom_meta_model.pkl")
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dataset_complexity_profiler-0.1.5.tar.gz.
File metadata
- Download URL: dataset_complexity_profiler-0.1.5.tar.gz
- Upload date:
- Size: 26.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c9e95071fccbbb6d9ccabd761a8dc5dcb865ef41d8590e52943cb3e14eaf284
|
|
| MD5 |
50859e2722995e7b0c28885a3d16473f
|
|
| BLAKE2b-256 |
f8a16db95591eaa45adc0f6ff56eec8c42dde87fc60ad345e18eaca59233bcf7
|
File details
Details for the file dataset_complexity_profiler-0.1.5-py3-none-any.whl.
File metadata
- Download URL: dataset_complexity_profiler-0.1.5-py3-none-any.whl
- Upload date:
- Size: 24.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a8413a489822eb9fbb548921460766bad5f72be9d7b3cd34b2e0fc937563a04
|
|
| MD5 |
a2ebd1e3d67c59cc4a15c1b23a9201e1
|
|
| BLAKE2b-256 |
0138d21c1cd9eb6f3de5210fde4e15b1840ca7f0036db123c8cb1bd60618a0fa
|