Почти всё последнее время варюсь в задаче мультиклассовой классификации тестовых данных.
Хочу поделиться инсайтом (хотя, может, для кого-то это и очевидно).
🔑 Самое важное в любой ML-задаче — это данные. Чем лучше вы подготовите исходный датасет, тем лучше и стабильнее будет обучаться модель. Очистка — это только первый шаг. Тут важно учитывать особенности самой модели: cased/uncased, максимальная длина токенов, распределение классов и прочие нюансы.
Но один из самых недооценённых этапов — оптимизация датасета. Особенно, если у вас не 10к строк, а, скажем, как у меня — почти 200к.
💡 Что я сделал: применил кластеризацию KMeans на эмбеддингах, чтобы "сжать" датасет и отобрать наиболее репрезентативные примеры. Конкретно:
- Разбил данные на кластеры по эмбеддингам;
- Для каждого класса взял по 5000 наиболее типичных примеров (ближайших к центру кластера);
- Ввёл score threshold = 0.5, чтобы отсеять шумные и нетипичные точки.
📈 В итоге получил компактный, чистый и сбалансированный датасет, который реально помог модели лучше обобщать и ускорил обучение.
Если кто-то использует похожие подходы — делитесь, интересно будет сравнить идеи 👇
Post #195
240
- 👍 2