Нейросеть, которая решает, является ли число Numberwang
Есть проекты, чья практическая польза стремится к нулю, но исполнение вызывает уважение. Именно таков Numberwang — небольшая нейросеть, которая берётся ответить на вопрос, знакомый поклонникам британского скетч-шоу That Mitchell and Webb Look: является ли данное число «нумбервангом».
Сама игра Numberwang — пародия на телевикторины, где ведущий с непроницаемым лицом объявляет случайные числа «нумбервангом», а зрителю остаётся лишь делать вид, что он понимает правила. Автор проекта отнёсся к этой бессмыслице с полной серьёзностью инженера.
Что внутри
Вся модель — это JSON-файл размером 1,8 МБ, а код вывода умещается примерно в сотню строк на чистом Python из стандартной библиотеки: ни PyTorch, ни NumPy, ставить нечего. Достаточно склонировать репозиторий и запустить. Сеть содержит 80 804 параметра и читает символы напрямую — без токенизатора, нормализатора и какого-либо свода правил. Всё — цифры, операторы, канонические вердикты и одиннадцать языков — зашито в весах.
Вердиктов ровно четыре: «Это нумберванг!», «Это не нумберванг», «Это вообще не число, оно никогда не сможет стать нумбервангом» и загадочное «Это вангернумб! Поверните доску!». Последнее выпадает всему, что равно единице или сорока четырём.
Чему сеть научилась
Принимает она на удивление многое: цифры и слова, отрицательные числа, дроби, валюты, проценты, время, римские цифры, порядковые числительные и арифметические выражения (вердикт выносится по результату). Числа распознаются на одиннадцати языках, причём, как остроумно замечает автор, «вангность» — свойство самого числа, а не языка: four, vier, quatre и cuatro получают одинаковый приговор. А вот вымышленные числа вроде shinty-six сеть тоже считает числами — в лучших традициях шоу.
Точность заявлена на уровне 88,9% на 486 отложенных примерах при потолке около 98%. Недостающие проценты автор объясняет с невозмутимостью: примерно 2% обучающих меток намеренно инвертированы «в соответствии с давней практикой судейства Numberwang». Слабое место — арифметика над незнакомыми операндами: сеть скорее запоминает, чем считает, поэтому 5*2 она берёт уверенно, а 904 * 3 — уже «обоснованная догадка».
Проект распространяется под лицензией MIT. В описании честно указано: никаких гарантий относительно того, является ли то или иное число нумбервангом, не предоставляется. Есть и онлайн-демо на Hugging Face Spaces.
Источник: Hacker News
Комментарии
Войдите, чтобы комментировать.