Ответ
Да, в ряде сценариев fine-tuned BERT может проигрывать более простым классическим моделям машинного обучения. В моей практике это происходило по нескольким причинам:
- Небольшие объемы данных: BERT и другие трансформеры требуют значительных данных для эффективного дообучения (fine-tuning). На проекте с несколькими тысячами размеченных текстов для классификации отзывов логистическая регрессия на TF-IDF признаках показала accuracy 89%, в то время как дообученный
bert-base-uncasedдал только 85% и сильнее переобучался. - Вычислительная сложность: Обучение и инференс BERT требуют GPU и времени. Для продакшн-системы, где нужны предсказания за миллисекунды, легковесная модель на основе
scikit-learnчасто оказывается более практичным выбором. - Простые задачи: Для задач вроде определения тональности (positive/negative) или фильтрации спама, где важны ключевые слова и их частота, сложность BERT может быть избыточна.
Пример сравнения подходов:
# Классический пайплайн (быстро, эффективно на малых данных)
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
pipe = make_pipeline(TfidfVectorizer(max_features=5000),
LogisticRegression(C=1.0))
pipe.fit(train_texts, train_labels) # Обучение за секунды на CPU
accuracy = pipe.score(test_texts, test_labels)
Поэтому мой стандартный workflow — сначала построить сильный baseline на классических методах (TF-IDF + Logistic Regression/SVM), а уже потом, если точности недостаточно и данных много, экспериментировать с трансформерами.