- BrainTools - https://www.braintools.ru -
В последние годы мы привыкли, что прогресс в NLP измеряется гига- и терабайтами параметров. Кажется, единственный путь к улучшению качества модели — увеличение ее размера. Но так ли это для специализированных задач?
Мы решили пойти от обратного: можно ли заранее, еще до обучения [1], понять, насколько большой должна быть модель, чтобы эффективно решать конкретную задачу классификации?
Эксперимент строится на простой, но мощной гипотезе: структура текстов предметной области, отраженная в графе со-встречаемости слов, диктует минимально необходимую архитектуру трансформера. Мы прошли полный цикл — от анализа текстов студенческих запросов до обучения трех моделей разного размера — и подтвердили, что минимальная модель, спроектированная на основе графовых метрик, не уступает «стандартной» по качеству, превосходя ее по ресурсоэффективности в десятки раз.
В качестве датасета мы использовали university_query_train.csv — 5000 студенческих обращений в университет. Каждая запись включает текст запроса, название департамента и метку приоритета (High, Medium, Low). Задача — классифицировать запросы по трем категориям срочности.
На этапе предобработки мы сознательно отказались от предобученных эмбеддингов и стоп-слов. Вместо этого построили собственный словарь, включив только токены, встречающиеся в корпусе не менее двух раз. Получился «чистый» язык предметной области — всего 90 уникальных токенов.
Ключевая идея — построить граф, где вершины — слова (токены), а ребра показывают, как часто эти слова встречаются рядом в тексте (в окне из пяти слов). Для построения мы использовали библиотеку NetworkX.
Полученные метрики:
Узлов (токенов): 86
Ребер (связей): 824
Плотность графа: 0,225 (граф достаточно связный)
Средняя степень узла: 19,16 (у каждого слова в среднем 19 соседей)
Средний коэффициент кластеризации: 0,617 (высокий — слова формируют устойчивые тематические группы)
Диаметр графа: 4 (максимальное расстояние между двумя словами — всего 4 шага)
Что из этого следует? Предметная область очень компактна. Слова тесно связаны друг с другом, а информация между любыми двумя понятиями передается через небольшое количество промежуточных токенов.
Мы разработали эвристический метод, который транслирует метрики графа в гиперпараметры модели. Логика [2] проста: архитектура должна соответствовать структуре данных.
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 слоев.
Количество голов внимания [3] (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 |
«Стандартную» архитектуру мы включили специально — она близка к конфигурациям, которые часто выбирают «на глаз» для подобных задач.
Все три модели обучались классифицировать приоритет запроса с использованием кросс-энтропийной потери и оптимизатора AdamW.
Минимальная модель (всего 75K параметров) достигла идеальной точности (Accuracy = 1,0) на тестовой выборке за пять эпох.
Промежуточная и стандартная модели тоже показали идеальный результат, но с гораздо большими затратами вычислительных ресурсов и времени.
Все три модели справились с задачей на 100%. Но минимальная сделала это в 43 раза эффективнее по количеству параметров.
«Стандартные» архитектуры часто содержат избыточную емкость для узких, специализированных задач. Здесь мы не просто сэкономили память [4] — сократили время обучения и инференса, что критически важно для production-систем.
Эксперимент подтверждает: графовый анализ текстов — не академическое упражнение, а рабочий инструмент инженера.
Граф со-встречаемости — карта предметной области. Его метрики (средняя степень, диаметр, кластеризация) дают четкое представление о сложности и связности данных.
Размер модели должен соответствовать сложности данных. Если граф маленький и плотный, нет смысла использовать гигантские трансформеры.
Экономия ресурсов может быть колоссальной. В нашем случае модель удалось уменьшить в десятки раз без потери качества — прямой путь к снижению затрат на облачные вычисления и к внедрению моделей на мобильных устройствах.
Хотите спроектировать эффективную модель для своей задачи? Начните с графа со-встречаемости для вашего корпуса текстов. Вычислите ключевые метрики — avg_degree, clustering, diameter, algebraic_connectivity — и используйте их как отправную точку для гиперпараметров.
Размерность эмбеддингов считается по формуле
d_model = k avg_degree (1 + clustering),
где k — коэффициент от 8 (для минимальной архитектуры) до 20 (для оптимальной). Количество слоев определяйте через диаметр графа: ceil (diameter / 3) для начала, с возможностью добавить 2–3 слоя для более сложных зависимостей. Количество голов внимания — от 2 до 8, где большее значение соответствует большему числу потенциальных кластеров в графе.
Это первый шаг к осознанному проектированию архитектур, где выбор параметров диктуется не модой, а математикой [5] и структурой данных.
Автор: Mish_Gum
Источник [6]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/29247
URLs in this post:
[1] обучения: http://www.braintools.ru/article/5125
[2] Логика: http://www.braintools.ru/article/7640
[3] внимания: http://www.braintools.ru/article/7595
[4] память: http://www.braintools.ru/article/4140
[5] математикой: http://www.braintools.ru/article/7620
[6] Источник: https://habr.com/ru/companies/gazprombank/articles/1022944/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1022944
Нажмите здесь для печати.