# Янник Кильхер о DSI: как нейросети запоминают документы

Источник: https://www.youtube.com/watch?v=qlB0TPBQ7YY
Канал: Yannic Kilcher
Опубликовано: 16.04.2022

---

## Будущее поиска: как превратить веса нейросети в базу данных
[[JUMP:0:00]]

Исследователи из Google представили концепцию **Differentiable Search Index (DSI)** — революционный подход, в котором привычный поисковый движок не просто индексирует документы, а «запоминает» их содержание прямо в своих весах. В этом обзоре Янник Кильхер разбирает, как нейронная сеть учится напрямую сопоставлять запрос пользователя с уникальным идентификатором документа, минуя классические этапы токенизации и инвертированного индекса.

### 🔍 Классический поиск против Differentiable Search Index
[[JUMP:3:19]]

Традиционный поиск опирается на инвертированные индексы: текст разбивается на токены, для каждого слова создается список упоминаний в документах, а затем система ранжирует их по метрикам вроде BM25. Современный нейронный поиск чаще использует двухэтапную схему: документы и запросы превращаются в векторы (эмбеддинги), а система ищет ближайших соседей в векторном пространстве.

DSI предлагает радикально иной путь:

*   **Прямое отображение:** Нейросеть (обычно на базе архитектуры T5) тренируется так, что на выходе она сразу выдает идентификатор (ID) документа, наиболее подходящего под запрос.
*   **Интеграция:** Поскольку вся система полностью дифференцируема, её можно встраивать в более сложные нейронные архитектуры и обучать end-to-end.
*   **Память:** Вся информация о корпусе документов «зашивается» непосредственно в веса модели.

### 🛠 Инженерные стратегии и архитектура
[[JUMP:16:57]]

Авторы исследования провели серию экспериментов, чтобы понять, какие параметры влияют на точность индексации. 

**Методы индексации:**

*   **Inputs to Targets:** Классический sequence-to-sequence подход, где текст документа превращается в его ID. По наблюдениям Кильхера, этот метод оказался наиболее эффективным.
*   **Targets to Inputs:** Попытка обучить модель декодировать текст документа из его ID. Метод не показал значительных преимуществ.
*   **Span Corruption:** Использование маскирования, аналогичного алгоритму BERT. Метод оказался неэффективным для данной задачи.

**Представление ID документов:**

1.  **Атомарные (неструктурированные) идентификаторы:** Каждому документу присваивается уникальный ID. Это превращает задачу в многоклассовую классификацию.
2.  **Наивные строковые идентификаторы:** ID представляется в виде последовательности токенов (чисел).
3.  **Семантические идентификаторы:** Hierarchical Clustering (иерархическая кластеризация) разбивает документы на группы (например, «бытовая техника» -> «холодильники»). Предполагается, что общие префиксы ID помогают модели лучше понимать структуру данных.

### 📊 Результаты и критика
[[JUMP:39:16]]

Янник Кильхер отмечает, что результаты эксперимента выглядят несколько неоднородными и «шумными», что вызывает вопросы к стабильности метода. 

*   **Масштабируемость:** С ростом корпуса документов эффективность DSI падает быстрее, чем у классических двухкодерных моделей (dual encoders). Чем больше данных, тем сложнее «утрамбовать» их в веса нейросети.
*   **Мощность модели:** Увеличение размера модели (например, использование более крупных версий T5) дает значительный прирост производительности.
*   **Zero-shot обучение:** В режиме, где модель не видела примеров пар «запрос-документ», метод с атомарными ID внезапно показал отличные результаты, превзойдя даже BM25.

Кильхер скептически относится к использованию DSI в классических поисковиках для миллионов документов. Однако он подчеркивает, что этот подход может стать критически важным для агентов с обучением с подкреплением (reinforcement learning), которым требуется хранить и извлекать информацию в ходе выполнения эпизода.