Вавилонская библиотека
Здесь лежит любой текст, который можно составить из 3200 знаков: этот абзац, ваше имя, протокол совещания, которое еще не состоялось. Все это уже написано и ждет по своему адресу. Единственная сложность — назвать адрес.
Ссылка открывает ровно эту страницу, а не библиотеку вообще. В превью подставится вырезка с вашей фразой.
Библиотеку собрали между заказами. Что собираем и ломаем дальше — компьютерное зрение, edge-инференс, замеры железа и разборы чужих архитектур — пишем в morana.log.
Что такое Вавилонская библиотека
Хранилище из рассказа Хорхе Луиса Борхеса 1941 года: в нем стоят все книги, которые можно составить перебором знаков алфавита. Комбинаций конечное число, поэтому там лежит любой существующий текст и любой возможный — вместе с миллионом почти таких же, разошедшихся с ним на одну букву.
Хранилища здесь нет и быть не может: страниц больше, чем частиц во Вселенной, их негде разместить. Вместо хранения — вычисление. Адрес разворачивается в страницу прямой функцией, страница сворачивается обратно в тот же адрес.
Счетчик под текстом показывает номер страницы в шестиграннике — их там миллиард с небольшим. Это не размер библиотеки, а размер одной комнаты: шестигранник нужен, чтобы было чем листать, и служит единицей навигации, а не мерой целого.
Отсюда следствие, которое сначала выглядит как недоработка: адрес страницы весит ровно столько же, сколько сама страница — 16 000 бит. Иначе и быть не может. Страниц 32 в степени 3200, значит и адресов нужно столько же, а короче они не станут ни при какой выдумке. Указать на ответ стоит столько же, сколько сам ответ.
- алфавит филиала
- 32
- страница
- 40 × 80
- страниц всего
- 104816
- адрес страницы
- 16 000 бит
- в шестиграннике
- 1 073 741 824
- расчет страницы
- 0,6 мс
31 буква и пробел — ровно 5 бит на знак
3200 знаков, как в томе Борхеса
это 32 в степени 3200. Атомов в наблюдаемой Вселенной — 10 в степени 80
ровно столько же, сколько в самой странице
64 этажа, 16 стен, 16 полок, 64 тома, 1024 страницы
на клиенте, без сервера и без задержки
Алфавит на 32 знака — не эстетика
32 — это степень двойки, поэтому один знак занимает ровно 5 бит, и вся кодировка страницы сводится к битовым сдвигам за один проход. Любой другой размер алфавита заставляет переводить страницу в огромное число делением в цикле: это квадратичная сложность на длинной арифметике и десятки миллисекунд в главном потоке браузера.
Замер на одной машине, страница 3200 знаков, полный цикл в обе стороны:
| подход | цикл | 30 страниц |
|---|---|---|
| алфавит 36, длинная арифметика | 10,37 мс | 311 мс |
| алфавит 32, битовые сдвиги | 0,15 мс | 4,5 мс |
Разница в 69 раз. Триста миллисекунд в главном потоке — это заметная человеку задержка на каждое действие, и на телефоне разрыв только растет. Плюс мы не грузим сюда ни рекламных скриптов, ни платежных виджетов: страница обязана считаться мгновенно, а не соревноваться за поток с чужим кодом.
Библиотека — прибор, а не аттракцион
Мы занимаемся компьютерным зрением и языковыми моделями, и эта штука собрана не ради красивой ссылки. Она наглядно показывает то, с чем мы сталкиваемся в работе каждый день: текст можно найти всегда, но найти и отличить от соседнего — разные операции, и стоят они по-разному.
Соседняя страница здесь отличается от нужной одним знаком и выглядит ровно так же убедительно. Языковая модель ходит по такому же пространству — только не вслепую, а по подсказкам. Из этого следует и то, почему модель никогда не отвечает «не знаю»: пустых полок в библиотеке не бывает.
Как проверить любую библиотеку
Вавилонскую библиотеку легко имитировать: достаточно обложить введенную фразу случайными буквами до нужной длины и показать рядом внушительный набор координат. Снаружи это выглядит ровно так же, как настоящая адресация, и по одному виду страницы отличить одно от другого нельзя. В сети такие реализации встречаются.
Отличаются они поведением, и на все четыре проверки уходит около минуты. Делать их нужно руками: встроенная кнопка «проверено» ничего не стоит, нарисовать ее может любой сайт. Чужие адреса мы намеренно не разбираем — критерий полезнее разбора и, в отличие от него, не устареет.
Постоянство адреса
Главная проверка. Если она провалена, остальные можно не делать.
Найдите любую фразу и запишите адрес целиком. Перезагрузите страницу и найдите ту же фразу еще раз.
- норма
- Адрес совпал знак в знак.
- отказ
- Адрес другой. Страница собирается под запрос заново при каждом обращении и существует только в момент показа — вернуться на нее нельзя.
Возврат по ссылке
Отделяет настоящую адресацию от привязки к текущему сеансу.
Скопируйте адрес и откройте его в другом браузере или на телефоне, где эта библиотека не открывалась.
- норма
- Открылась та же страница, найденный фрагмент стоит на том же месте.
- отказ
- Открылось другое. Адрес хранит не положение страницы, а состояние вашей вкладки: поделиться находкой и проверить чужую невозможно.
Соседняя полка
Показывает, настоящая ли перестановка стоит за адресацией.
Откройте страницу, запомните первую строку и перелистните на одну страницу вперед.
- норма
- Текст сменился целиком. Совпадений около трех процентов — столько же, сколько у двух случайно взятых страниц.
- отказ
- Соседняя страница похожа на исходную и отличается только хвостом. Адресация линейная, а хаос дорисован сверху.
Цена листания
Самая быстрая проверка: видно за десять секунд, особенно на телефоне.
Пролистайте десяток страниц подряд, не останавливаясь.
- норма
- Интерфейс отвечает мгновенно на каждом шаге.
- отказ
- Вкладка подвисает при листании. Обычная причина — перевод страницы в большое число делением в цикле: это квадратичная сложность на длинной арифметике.
Эта библиотека проходит все четыре. Верить нам на слово при этом не нужно и не стоит: проверки написаны так, чтобы их можно было провести за минуту здесь и повторить на любом другом сайте.
Частые вопросы о библиотеке
Что такое Вавилонская библиотека?
Как работает Вавилонская библиотека?
Есть ли Вавилонская библиотека на русском языке?
Существует ли Вавилонская библиотека на самом деле?
Сколько страниц в библиотеке?
Почему вокруг моей фразы стоят случайные буквы?
Один и тот же текст всегда лежит по одному адресу?
Чем этот сайт отличается от других вавилонских библиотек?
Что происходит с цифрами в запросе?
Библиотека работает на английском?
Как отличить настоящую библиотеку от имитации?
Где хранятся все эти страницы?
Идея принадлежит Хорхе Луису Борхесу, рассказ 1941 года. Эта реализация — наша: алфавит, геометрия хранилища и адресация переписаны с нуля. MoranaLabs
В рабочее время мы делаем то же самое
Библиотека считает страницу за 0,15 мс, потому что кто-то сел и разобрался, как уложить алфавит в степень двойки. Дальше начинается арифметика: 69-кратная разница в таблице выше намеряна на этой самой странице, и посмотреть ее может любой. В заказах происходит ровно то же, только задачу приносит заказчик.
- компьютерное зрение
- Детекция людей, техники, СИЗ и дронов на видео в реальном времени. Считаем на кадрах заказчика до подписания договора.
- edge-инференс
- Нейросети на железе объекта: без облака, без абонентской платы за кадр и без канала наружу.
- 1С
- Обмен с любой системой, закупки, первичка, маркетплейсы, Честный знак, СБИС. В том числе нетиповые конфигурации.
- документы
- Распознавание пачками, разбор сканов и приведение к структуре, которую примет учетная система.
- ERP и инфраструктура
- Внедрение и аудит, серверы, сопровождение. Разбираем и то, что уже внедрено и работает плохо.
- веб-инструменты
- Вроде этой библиотеки: расчет в браузере, работает на телефоне, держит нагрузку без серверной фермы.
Условие у задачи одно: результат должен быть измерим, чтобы через месяц было чем отчитаться. Направления списком не заканчиваются — если вашего тут нет, спросите, обычно оно попадает.