169 похожих чатов

Ребят, всем привет. Я тут изучаю для собственного проекта рекоммендационные

системы и возник вопрос. Я от коммерческого DS далек достаточно, поизучал материал, состряпал CF модель, но не понимаю как принято строить пайплайн. Прогонять ETL в airflow и дальше запускать pipe с R скриптом или как ? Если поделить ссылкой или собственным рассуждением о best practices, то буду рад

9 ответов

19 просмотров

не думаю, что на этот вопрос есть универсальный ответ, дело в том, что вы по сути говорите об MLOps и там по хорошему следует определить архитектуру исходя из того какая предметная область и идея использования модели рекомендации ... там вопросов масса... НО, если хочется по-простому т.е. без армии архитекторов и MLOps и также хочется остаться внутри R то рекомендую посмотреть R targets вместо Airflow https://books.ropensci.org/targets/

Evgeny-Afanasev Автор вопроса
Dm Kb
не думаю, что на этот вопрос есть универсальный от...

Меня смущает отсутствие драйвера для многих olap решений и выглядит как написать самому, поэтому я думал на одном стеке сделать весь ETL, а ML уже на другом

Evgeny Afanasev
Меня смущает отсутствие драйвера для многих olap р...

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

Evgeny-Afanasev Автор вопроса
Dm Kb
ну вам видимо известно какие OLAP решения нужно по...

Olap как лейк для событий на базе которых и будет cf строится. Дизайн: Абстракция: Нужно построить рекомендационку для заведений на базе user based collaborative filtering. 1. ETL пайплайном строю CSV в котором пользовательским рейтингом будет служить метрика кол-ва посещений, соответственно группирую и перекладываю в CSV в S3 2. С помощью tidyverse либ строю матрицу user item, заполняю нули и ранжирую по кол-вам посещений похожих пользователей и складываю в какое нибудь KV или document хранилище

простой cron очень часто работает на ура.

Evgeny Afanasev
Olap как лейк для событий на базе которых и будет ...

Похоже у вас модель работает батчем т.е. реал тайма у вас нет и следовательно уже можно смотреть варианты решения задачи попроще, если нет сложной логики подготовки данных , то и targets будет перебор. Опять же судя по использованию CSV и tidyverse объемы не очень значительные, но все таки лучше присмотреться к Arrow/parquet. Возможно, стоит сделать два докер контейнера: на подготовку данных и собственно модель для гибкости(в теории можно по разному готовить разные данные). Можно автоматизировать сборку и деплой на том же GitHub actions. Возможно, стоит инвестировать свое время в валидацию данных на входе и логирование. Также подумать о логике инкрементной загрузки данных из источников потому как полный батч в каждый раз - это не очень кошерно )))

Evgeny-Afanasev Автор вопроса
Dm Kb
Похоже у вас модель работает батчем т.е. реал тайм...

Да. Насчет инкремента тоже думал и есть планы по реализации. Спасибо за помощь. Поизучаю arrow тогда еще и видимо действительно на кроне построю пайплайн для 2 докер контейнеров. 1 подготовит статистику просмотров, другой построит рекомендации )

Dm Kb
Похоже у вас модель работает батчем т.е. реал тайм...

Для небольших объемов fst быстрее порядка на два если данные все брать

Сам каркас "ETL" вообще может быть крошечным. Вот пример достаточно простой и надежной конструкции: https://t.me/r_in_action/186

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта