tgoop.com/plush_python/29
Last Update:
Проклятие правил (часть 2/2)
#ml
Так значит, всё просто? Для сложных задач размечаем датасет и используем машобуч, а для относительно простых - придумываем хорошие эвристики? Проблема в том, что во многих компаниях неверно оценивают сложность задачи и начинают решать её системой правил, думая, что это "дёшево и сердито" и что так будет всегда. Поначалу всё выглядит неплохо: правила позволяют быстро получить какой-то приемлемый результат, а для дальнейшего улучшения системы, как кажется, нужно всего лишь учесть в правилах все возникающие исключения. Но это очень большое "всего лишь". Проклятие правил в том, что чем сложнее становится система, тем труднее и дороже её становится поддерживать. Штат экспертов, пишущих правила, постоянно растёт, как растёт и время, необходимое для обучения новых сотрудников (чем больше система правил, тем дольше в ней приходится разбираться даже опытному человеку). А допускать ошибки в таких системах становится всё легче. При этом у руководства компании может возникнуть ощущение, что раз в эту систему уже вбухали столько ресурсов, то нужно её развивать и дальше, а не отказываться от неё в пользу чего-то другого (например, машинного обучения). А тут на рынке появляется новый стартап, который с самого начала решал эту задачу как задачу машинного обучения. И вот он уже обходит компанию, которая за несколько лет на рынке вложила в свой продукт огромные ресурсы.
В качестве наглядной иллюстрации приведу ещё один пример из опыта. В одной из компаний, где я раньше работал, был матёрый программист, который в течение года разрабатывал систему правил для извлечения именованных сущностей (имён людей, географических локаций, названий компаний и т.п.) из текстов. Он работал над этой системой год. В ней была сложная логика, написанная на Джаве, использовались разные хитрые словари и списки исключений, а запуск полного цикла тестов занимал целую ночь. В конце концов автору системы и его начальству стало очевидно, что уровень качества распознавания всё ещё недостаточно высок, все исключения учесть невозможно, а любое изменение в раздувшейся до невозможности системе вызывает больше новых ошибок, чем исправляет старых. В результате компании всё равно пришлось переходить на ML, но уже было впустую потрачено слишком много времени и ресурсов.
Такие вот дела. Вывод: используйте правила для несложных задач, но используйте их с умом и помните, что иногда они становятся проклятием.
BY Плюшевый Питон
Share with your friend now:
tgoop.com/plush_python/29