Я собирался идти спать, но вместо этого занялся расшифровкой...
248
Я собирался идти спать, но вместо этого занялся расшифровкой внутреннего семантического поиска Chrome, — пишет Деян Петрович.
Я нашел точный механизм чанкинга, логику эмбеддингов и теперь могу просматривать, искать и кластеризовать свою историю поиска с помощью декодированных векторных эмбеддингов 😐
Вот краткое изложение того, что я обнаружил:
— Чанкинг: Chrome разбивает каждую страницу на пассажи (до 30 штук), каждый объемом примерно в 200 слов.
— Эмбеддинг: Каждый пассаж преобразуется в 1540-мерный вектор.
— Хранение: Эмбеддинги для каждого посещения сохраняются в embeddings_blob в базе данных History.
Процесс чанкинга пассажей и создания эмбеддингов в Chrome
Механика извлечения пассажей
Chrome разбивает страницы на логические "пассажи". Параметры определены в файле history_embeddings_features.h и включают в себя:
— max_passages_per_page = 30
— passage_extraction_max_words_per_aggregate_passage = 200
Это означает:
→ Chrome ограничивает количество создаваемых эмбеддингов до 30 на страницу (что соответствует массивам (30, 1540)).
→ Он кластеризует текст страницы в чанки объемом примерно 200 слов каждый.
Процесс генерации эмбеддингов
Сервис HistoryEmbeddingsService управляет этим конвейером:
1. Когда страница полностью загружена, Chrome извлекает пассажи и вызывает ComputeAndStorePassageEmbeddings(url_id, visit_id, visit_time, passages).
2. Если требуются эмбеддинги, он вызывает embedder_->ComputePassagesEmbeddings(priority, passages, callback).
3. После вычисления векторы сохраняются в объекте UrlData и записываются в базу данных через vector_database.SaveTo(sql_database).
Почему ваши данные выглядят именно так
— Массив (30, 1540) означает эмбеддинг для всей страницы: 30 пассажей × 1540-мерный вектор для каждого.
— Массивы меньшего размера (например, 1 или 3 чанка) появляются на коротких страницах с небольшим количеством текста.
— Очень большие и очень маленькие значения float16 — это артефакты квантования/сжатия.
https://dejan.ai/blog/inside-chromes-semantic-engine-a-technical-analysis-of-history-embeddings/
@MikeBlazerX

– https://www.linkedin.com/feed/update/urn:li:activi...
– https://t.me/MikeBlazerX
Источник новости https://t.me/mikeblazerx/5551...

