Языковые модели. Решение задачи извлечения ключевых слов. Часть адын.

Еще во время разработки конкурента авито (три раза ХА!!!), появилась мысль о возможности разработки системы извлечения ключевых слов (ключевого смысла) для решения задачи категоризации, каталогизации, установки тегов и т.д. Так как разработка не дошла даже до этапа релиза (не удивительно), об идее такого продукта пришлось забыть. Через некоторое время мне попалась статья на хабре, где в достаточно понятной форме было написано о том, как задача извлечения ключевых слов, с использованием языковой модели ruT5 может быть решена. Прочитав статью, я вспомнил о своей затее и осознал всю глубину глубин предстоящей задачи.

Так точно
Так точно

Было принято решение вооружиться этой информацией и изобретать свой собственный велосипед, дабы разобраться и контролировать процесс/продукт.

Мой велосипед
Мой велосипед

Я давно уже разбираюсь в этих ваших искусственных нейронных сетях и понимал, что для достижения хорошего результата обучающих данных, которые были представлены в статье (около 7000 экземпляров), будет недостаточно. Поэтому первым делом перед мною встала задача по увеличению датасета в несколько раз. Первоначально я думал, что порядка 15-20 тысяч примеров будет более чем достаточно, как же я ошибался.

Обожаю мемы с ним
Обожаю мемы с ним

По итогу мне удалось собрать порядка 39000 примеров, что в два раза превышает ранее определенное количество примеров. Добавлю, что такой объем датасет имеет после фильтрации, когда я убираю все лишнее. До фильтрации датасет содержит порядка 60000 примеров. Да, пришлось пожертвовать количеством примеров, ради итогового качества модели.

Может возникнуть вопрос, зачем городить свой велосипед если текущие языковые модели прекрасно справляются с этой задачей? Конечно, скажу я вам, но (!!!), подразумевается, что объём обрабатываем данных будет огромным. Если использовать версию языковых моделей в виде чата, то данная задача не автоматизируется (плохо) и не масштабируется (очень плохо). А за доступ по апи надо платить, не миллионы конечно, но в случае миллионов, а то и миллиардов входных токенов (даже без учета выходных токенов) сумма может набраться существенная. Тогда используй локальные модели, о которых ты писал тутачки. Да, это вариант, но (!!!), чтобы модель давала приемлемый результат (запускалась и давала хорошую скорость токенов в секунду), количество параметров в ней должно быть несколько миллиардов, а для запуска такой модели вам понадобиться соответствующее железо (которое тоже не бесплатно), а в случае обработки большого количества данных и множественных запросов, задача может оказаться не масштабируемой. Давайте не буду мудрить и просто скажу, что ruT5-base (которую я использовал для дообучения) обладает 240 миллионами параметров. Не миллиардов, миллионов. Если взять языковую модель даже в миллиард параметров, то ruT5-base требует в 4 (!!!!!!!!!!!!!!) раза меньше ресурсов. Что положительным образом сказывается на конечной стоимости генерации токенов. Все просто, экономика рулит.

Только такую подходящую (???) картинку нашел
Только такую подходящую (???) картинку нашел

Поэтому конкурентами для модели ruT5-base-keywords (назовем дообученную модель так) являются не большие (средние и малые) языковые модели, а классические инструменты извлечения ключевых слов, такие как YAKE и keyBert. Перейдем к практическим результатам.

Оригинальный текст: Питомец в доме — это счастье и... много забот. Шерсть на мебели, крошки от корма, постоянная стирка подстилок — все это требует времени и сил. Рассказываем о технике, с которой уход за любимцами перестанет быть утомительным.

Ключевые слова от:

keyBert – питомец доме, много забот, доме это, сил рассказываем, доме, на мебели, быть утомительным, времени сил, корма постоянная, за любимцами;

YAKE – Питомец, доме, счастье, забот, постоянная стирка, стирка подстилок, Шерсть, мебели, крошки, корма;

ruT5-base-keywords – домашний питомец, уход за домашними животными.

Оригинальный текст: Раскрываются проблемы оценки эффективности деятельности таможенных органов Российской Федерации на современном этапе. Обосновывается тезис о том, что повышение эффективности государственного управления требует смещения приоритетов системы оценки деятельности таможенных органов в сторону определения эффективности создания институциональных условий для осуществления, повышения прозрачности и открытости системы оценки для участников.

Ключевые слова от:

keyBert – эффективности государственного, таможенных органов, деятельности таможенных, оценки эффективности, определения эффективности, приоритетов системы, государственного управления, институциональных условий, управления требует, российской федерации

YAKE – Российской Федерации, Обосновывается тезис, деятельности таможенных, таможенных органов, органов Российской, Раскрываются проблемы, современном этапе, повышения прозрачности, системы оценки, государственного управления;

ruT5-base-keywords – таможенные органы, система оценки эффективности, институциональные условия, институциональная открытость.

Оригинальный текст: Активная хозяйственная деятельность человека приводит к изменению состава и структуры видов, входящих в естественные и искусственные биоценозы...

Ключевые слова от:

keyBert – биоценозы, искусственные биоценозы, естественные искусственные, входящих естественные, структуры видов, деятельность человека, естественные, активная хозяйственная, хозяйственная деятельность, видов входящих;

YAKE – Активная хозяйственная, структуры видов, искусственные биоценозы, хозяйственная деятельность, деятельность человека, человека приводит, изменению состава, Активная, видов, входящих;

ruT5-base-keywords – биоценозы, природные биоценозы, естественные биоценозы, искусственные биоценозы.

Вроде, вы вполне можете уловить разницу, ruT5-base-keywords выявляет ключевые слова/смысл сильно лучше двух других методов и совершенно без шума. На этом для вводной первой части все. В следующей части расскажу об обучении и других особенностях модели ruT5-base-keywords.

Начать дискуссию