Да, мы пропустили анонс 0.5.2, но описали, что там делали в предыдущем посте, обязательно посмотрите: Я знаю, что вы сделали с моим open-source проектом.
Итак, что нового в 0.5.3?
ОЗУ Голод
После большой перезаписи и удаления Flink некоторые вычисления, которые выполняет Metarank, были перенесены в его код. И хотя новый подход отлично работает с меньшим набором данных, он приводит к OOM для больших.
Чтобы решить эту проблему, мы ввели определенные оптимизации, которые можно настроить:
- core.clickthrough.maxSessionLength
- core.clickthrough.maxParallelSessions
Раньше Metarank сохранял все события ранжирования в памяти до получения событий взаимодействия. Теперь это поведение настроено с помощью указанных выше свойств, поэтому, если пользователь не взаимодействовал с ранжированием, оно будет отброшено.
Подробнее об этом подходе и цифрах, которые мы увидим, мы поговорим в следующих статьях.
Сортировка исторических данных
Мы представили новую команду sort
в нашем интерфейсе командной строки, чтобы упростить работу с большими наборами исторических данных, которые не отсортированы.
Metarank ожидает, что исторические данные будут отсортированы по отметке времени. Это гарантирует, что все события обрабатываются в правильном порядке, и по умолчанию Metarank пытается отсортировать входные файлы в памяти.
Это проблематично для больших файлов, которые не помещаются в памяти, и здесь новый режим sort
спасет положение.
Просто запустите этот режим со своими данными, и в результате вы получите отсортированный набор данных, который можно использовать напрямую с Metarank:
java -jar metarank.jar sort --config config.yml --data big-unsorted-event-file.jsonl --out sorted.jsonl
Что дальше?
У нас в запасе немало замечательных вещей, так что следите за обновлениями!