Как стать автором
Обновить

Как с помощью deep learning мы построили Геокодер, масштабируемый для разных стран

Время на прочтение11 мин
Количество просмотров10K
Всего голосов 32: ↑31 и ↓1+37
Комментарии8

Комментарии 8

Спасибо, очень интересно было увидеть, как на самом деле это все организовано под капотом!

Вопрос касательно упомянутых различий форматом адресов в разных странах.
Можете подсказать где почитать, какие проекты посмотреть, чтобы постараться увидеть как можно больше различий и решений по хранению адресов? Как раз сейчас на проекте работаем над тем, что нужно хранить адреса, которые могут быть адресом любой страны/села.
Пытаемся учесть все подводные камни.

У нас команда ML инженеров и нам база топонимов приходит уже как готовый собранный json, и у нас есть отдельная небольшая команда картографов, которая как раз помогает в составлении справочника топонимов и выступает экспертами в этой сфере.

Если имеете ввиду структуру адресов в разных странах и дизайн БД то я бы посоветовал

  • поспрашивать у gpt-like систем с разными переводами одного и того же промпта

  • посмотреть в отрытых базах типа osm, как организованы топонимы. Там эта информация точно есть. Можно отсемплировать по стране по 200-500 топонимов и пройтись глазами, а также собрать статистику по тегам в OSM XML.

  • использовать системы аля поиска с gpt под капотом аля яндекс-нейро или perplexity. Очень помогает как раз для первоначального ресерча в некоторой сфере.

А саму базу адресов вы ведёте в одной таблице с иерархическими связями с чем-то вроде parent_id или в разных?

Спасибо за статью, было интересно.

Думал явный фидбек это основной источник разметки, удивился что это не так.

Вопрос про входные данные в L1 на инференсе. Если обучение проходит на парах (запрос, документ), а для построения эмбеддинга запроса мы отдаем только запрос, то что передается в качестве документа? Пустая строка?

Думал явный фидбек это основной источник разметки, удивился что это не так.

Есть явный фитбек от разных сервисов и мы недавно добавили использование его использовать на pretrain стадии.

Если обучение проходит на парах (запрос, документ), а для построения эмбеддинга запроса мы отдаем только запрос, то что передается в качестве документа? Пустая строка?

Флоу следующий:

  1. в оффлайне строим шардированный hnsw индекс

  2. на инференсе

    • кодируем запрос в эмбеддинг

    • идем с этим эмбеддингом во hnsw индекс и достаем топ N документов по косинусной близости.

    • получаем список из документов и скоров близости от hnsw индекса, с этим уже идем в L2 стадию

Зарегистрируйтесь на Хабре, чтобы оставить комментарий