В последние годы мы привыкли, что прогресс в NLP измеряется гига- и терабайтами параметров. Кажется, единственный путь к улучшению качества модели — увеличение ее размера. Но так ли это для специализированных задач?
Мы решили пойти от обратного: можно ли заранее, еще до обучения, понять, насколько большой должна быть модель, чтобы эффективно решать конкретную задачу классификации?
Эксперимент строится на простой, но мощной гипотезе: структура текстов предметной области, отраженная в графе со-встречаемости слов, диктует минимально необходимую архитектуру трансформера. Мы прошли полный цикл — от анализа текстов студенческих запросов до обучения трех моделей разного размера — и подтвердили, что минимальная модель, спроектированная на основе графовых метрик, не уступает «стандартной» по качеству, превосходя ее по ресурсоэффективности в десятки раз.
1. Данные и постановка задачи
В качестве датасета мы использовали university_query_train.csv — 5000 студенческих обращений в университет. Каждая запись включает текст запроса, название департамента и метку приоритета (High, Medium, Low). Задача — классифицировать запросы по трем категориям срочности.
На этапе предобработки мы сознательно отказались от предобученных эмбеддингов и стоп-слов. Вместо этого построили собственный словарь, включив только токены, встречающиеся в корпусе не менее двух раз. Получился «чистый» язык предметной области — всего 90 уникальных токенов.
2. Построение графа со-встречаемости и его анализ
Ключевая идея — построить граф, где вершины — слова (токены), а ребра показывают, как часто эти слова встречаются рядом в тексте (в окне из пяти слов). Для построения мы использовали библиотеку NetworkX.
Полученные метрики:
-
Узлов (токенов): 86
-
Ребер (связей): 824
-
Плотность графа: 0,225 (граф достаточно связный)
-
Средняя степень узла: 19,16 (у каждого слова в среднем 19 соседей)
-
Средний коэффициент кластеризации: 0,617 (высокий — слова формируют устойчивые тематические группы)
-
Диаметр графа: 4 (максимальное расстояние между двумя словами — всего 4 шага)
Что из этого следует? Предметная область очень компактна. Слова тесно связаны друг с другом, а информация между любыми двумя понятиями передается через небольшое количество промежуточных токенов.
3. От графа — к архитектуре трансформера
Мы разработали эвристический метод, который транслирует метрики графа в гиперпараметры модели. Логика проста: архитектура должна соответствовать структуре данных.
1.Размер словаря (vocab_size) напрямую равен количеству узлов в графе (86).
2. Размерность эмбеддингов (d_model) должна быть достаточной, чтобы закодировать информацию о связях слова.
• Минимальная архитектура: 8 log2(avg_degree) (1 + clustering) ≈ 55. Оптимальная архитектура: 20 avg_degree (1 + clustering * 0,5) ≈ 512.
• Количество слоев (num_layers) определяется диаметром графа. Минимальная: ceil (diameter / 3) ≈ 2 слоя. Оптимальная: diameter + 2 ≈ 6 слоев.
Количество голов внимания (nhead) коррелирует с алгебраической связностью графа (мерой его «кластеризуемости»). Значения варьируются от 2 до 8.
-
Размер словаря (vocab_size) напрямую равен количеству узлов в графе (86).
-
Размерность эмбеддингов (d_model) должна быть достаточной, чтобы закодировать информацию о связях слова.
• Минимальная архитектура: 8 log2(avg_degree) (1 + clustering) ≈ 55.
• Оптимальная архитектура: 20 avg_degree (1 + clustering * 0,5) ≈ 51 -
Количество слоев (num_layers) определяется диаметром графа.
• Минимальная: ceil (diameter / 3) ≈ 2 слоя.
• Оптимальная: diameter + 2 ≈ 6 слоев. -
Количество голов внимания (nhead) коррелирует с алгебраической связностью графа (мерой его «кластеризуемости»). Значения варьируются от 2 до 8.
Итоговые архитектуры для эксперимента
|
Модель |
d_model |
nhead |
layers |
ff_dim |
Параметров (прибл.) |
|
Минимальная |
55 |
2 |
2 |
110 |
54K |
|
Промежуточная |
128 |
4 |
4 |
256 |
550K |
|
Стандартная |
256 |
8 |
6 |
512 |
3,2M |
«Стандартную» архитектуру мы включили специально — она близка к конфигурациям, которые часто выбирают «на глаз» для подобных задач.
4. Эксперимент и результаты
Все три модели обучались классифицировать приоритет запроса с использованием кросс-энтропийной потери и оптимизатора AdamW.
-
Минимальная модель (всего 75K параметров) достигла идеальной точности (Accuracy = 1,0) на тестовой выборке за пять эпох.
-
Промежуточная и стандартная модели тоже показали идеальный результат, но с гораздо большими затратами вычислительных ресурсов и времени.
Все три модели справились с задачей на 100%. Но минимальная сделала это в 43 раза эффективнее по количеству параметров.
«Стандартные» архитектуры часто содержат избыточную емкость для узких, специализированных задач. Здесь мы не просто сэкономили память — сократили время обучения и инференса, что критически важно для production-систем.
5. Выводы и практические рекомендации
Эксперимент подтверждает: графовый анализ текстов — не академическое упражнение, а рабочий инструмент инженера.
-
Граф со-встречаемости — карта предметной области. Его метрики (средняя степень, диаметр, кластеризация) дают четкое представление о сложности и связности данных.
-
Размер модели должен соответствовать сложности данных. Если граф маленький и плотный, нет смысла использовать гигантские трансформеры.
-
Экономия ресурсов может быть колоссальной. В нашем случае модель удалось уменьшить в десятки раз без потери качества — прямой путь к снижению затрат на облачные вычисления и к внедрению моделей на мобильных устройствах.
Методика для инженеров
Хотите спроектировать эффективную модель для своей задачи? Начните с графа со-встречаемости для вашего корпуса текстов. Вычислите ключевые метрики — avg_degree, clustering, diameter, algebraic_connectivity — и используйте их как отправную точку для гиперпараметров.
Размерность эмбеддингов считается по формуле
d_model = k avg_degree (1 + clustering),
где k — коэффициент от 8 (для минимальной архитектуры) до 20 (для оптимальной). Количество слоев определяйте через диаметр графа: ceil (diameter / 3) для начала, с возможностью добавить 2–3 слоя для более сложных зависимостей. Количество голов внимания — от 2 до 8, где большее значение соответствует большему числу потенциальных кластеров в графе.
Это первый шаг к осознанному проектированию архитектур, где выбор параметров диктуется не модой, а математикой и структурой данных.
Автор: Mish_Gum


