Объявления на карте авито: Поиск объявления по карте Авито

Объявления на карте авито: Поиск объявления по карте Авито

Содержание

Поиск объявления по карте Авито

QQROOZA
ЕКАТЕРИНА ОСИНОВСКАЯ

Содержание

  • Введение
  • Как пользоваться картой на площадке Авито
  • Другие статьи
  • Кто вы вообще такие?

Введение

Меня зовут Екатерина Осиновская, я руководитель отдела клиентского сервиса компании QQROOZA.

Представляю вам свой цикл статей, который поможет вам детально разобраться с интерфейсом площадки Авито.

Эта статья расскажет вам как искать объявления по карте Авито.
Приятного чтения!

Как пользоваться картой на площадке Авито

Искать объявления по карте очень удобно. Так вы можете найти работу, квартиру или найти нужные услуги в определенном районе. Только объявления в категориях «услуги», «вакансии» и «недвижимость» можно смотреть на карте.

Для поиска по карте введите нужные вам параметры: тип категории; название объявления, по которому будет совершен поиск; город или регион. Также вы можете указать метро или район. После того как вы ввели нужные вам параметры, нажмите на кнопку «Найти».

Чуть ниже поиска появится карта. Нажмите на «Показать объявления на карте».

На новой карте появятся все объявления. Вы можете выбрать нужный вам район, приблизив карту колесиком мышки или же нажать на плюсик с правой стороны. Также вы можете перемещаться по карте, зажав левую кнопку мыши и двигая стрелкой мыши в нужном для вас направлении.

Для выбора нужного объявления нажмите на него. Его значок на карте станет красным, а с левой стороны появится краткое описание объявления: название объявления; фото; цена; месторасположение.

Чтобы ознакомиться с объявлением подробнее, нажмите на название объявления. Вам откроется новая страница, на которой вы сможете прочитать полную информацию.

Остальные статьи из цикла об интерфейсе площадки:

Цикл статей о продвижении на Авито:

Несколько наших кейсов:

Агентство QQROOZA

Агентство QQROOZA – эффективная команда молодых и креативных профессионалов, которая обеспечит вам комфортное взаимодействие и высокий, а главное полностью прозрачный результат от вложенного вами рекламного бюджета. Наша задача — сделать так, чтобы каждый вложенный вами рубль приносил вам прибыль.

В наши услуги входит:

· Проведение аудита и конкурентного анализа вашего бизнеса на Авито
· Создание и правильное оформление магазина на Авито
· Составление продающих текстов
· Создание качественных уникальных объявлений
· Подбор и редактирование фотографий для объявлений
· Своевременный ежедневный постинг ваших объявлений
· Корректировка рейтинга вашего магазина
· Переговоры и решение конфликтных ситуаций с поддержкой площадки
· Гарантия на случай блокировки
· Помощь в интеграции Авито с вашей CRM системой
· Еженедельный отчет по 22 показателям вашей рекламной кампании
· Ежедневный краткий отчет за прошедший день продвижения

Оставьте заявку прямо сейчас

и получите бесплатный аудит и конкурентный анализ вашей ниши на Авито

Как посмотреть объявления на Авито на карте

Прочее › Авито › Объявление

Чуть ниже поиска появится карта. Нажмите на «Показать объявления на карте». На новой карте появятся все объявления. Вы можете выбрать нужный вам район, приблизив карту колесиком мышки или же нажать на плюсик с правой стороны.

  • На Авито можно просматривать объявления на карте, для этого нужно нажать на «Показать объявления на карте» под строкой поиска.
  • Для просмотра всех своих объявлений на Авито необходимо перейти в свой аккаунт и выбрать вкладку «Мои объявления».
  • Чтобы привязать банковскую карту на Авито, нужно выбрать необходимый Пакет услуг и оплатить его, выбрав вариант оплаты «Банковская карта». Затем заполните форму на следующей странице.
  • Номер объявления на Авито можно посмотреть на странице объявления, он расположен над фотографиями и под заголовком.
  • Избранные объявления на Авито можно найти во вкладке «Мое избранное», которая доступна в выпадающем меню под именем профиля.
  • Пять самых популярных досок объявлений: EDC.SALE, Авито, Юла, Из рук в руки и Убу.
  • Для просмотра своего видеообъявления на Авито нужно войти в аккаунт Google Рекламы, нажать на «Видеокампании» и выбрать нужное объявление в столбце «Объявление». Затем выберите «Просмотр».
  • Чтобы искать объявления на карте на Авито, нужно установить параметры поиска и нажать на кнопку «Найти». Затем нажать на ссылку «Поиск объявлений на карте» и открыть карту.
  • Деньги с Авито за товар и доставку оплачивает покупатель, деньги резервируются на счете. Банк может взять комиссию при оплате заказа.
  1. Как на Авито посмотреть все объявления
  2. Как на Авито сделать карту
  3. Где в Авито посмотреть номер объявления
  4. Как посмотреть избранные объявления на Авито
  5. Где можно посмотреть объявления
  6. Как посмотреть свои объявления
  7. Как посмотреть объявления на карте
  8. Куда приходят деньги с Авито
  9. Как разводят на Авито продавцов
  10. Как на Авито увидеть реальный номер
  11. Как узнать номер на Авито Если нет объявлений
  12. Как можно пробить номер телефона человека
  13. Где на Авито Мои объявления
  14. Что означает знак сердечко на Авито
  15. Как в Авито скрыть остальные объявления
  16. Сколько по времени может висеть объявление на Авито
  17. Что чаще всего покупают на Авито 2022
  18. Можно ли по номеру телефона найти объявление на Авито
  19. Можно ли вводить данные карты на Авито
  20. Как изменить способ оплаты на Авито
  21. Как вывести деньги с баланса Авито
  22. Зачем Авито скрывает номер телефона
  23. Для чего на Авито просят номер телефона
  24. Почему я не вижу своё объявление в Авито
  25. Как узнать на кого я подписан на Авито
  26. Как выглядит выделенное объявление на Авито
  27. Что значит на Авито в избранном
  28. Что значит на Авито 1 1
  29. Сколько стоит Авито
  30. Где посмотреть отзывы обо мне на Авито
  31. Что будет если не забрать посылку с Авито
  32. Что лучше всего берут на Авито
  33. Что такое Авито Exmail
  34. Как посмотреть историю звонков на Авито
  35. Как связаться с покупателем на Авито
  36. Почему не могут дозвониться на Авито
  37. Где на Авито найти свои объявления
  38. Как на Авито сделать скрытые объявления
  39. Как посмотреть старую цену на Авито
  40. Как посмотреть историю поиска на Авито

Как на Авито посмотреть все объявления

Для этого нужно зайти в свой аккаунт, выбрать вкладку « Мои объявления». Там можно посмотреть все объявления, которые выкладывались когда-то либо и статистику по ним.

Как на Авито сделать карту

Как привязать банковскую карту на Авито:

  • Зайдите на Авито.
  • Выберите необходимый Пакет услуг. Оплатите его, выбирая способ оплаты «Банковская карта».
  • На экране появится форма для заполнения данных карты.
  • На следующей странице вам предложат привязать карту, по которой совершилась оплата.
  • Теперь карта привязана к Авито.

Где в Авито посмотреть номер объявления

Как узнать номер объявления на сайте Авито? Перейдите на страницу объявления на Авито. Номер объявления указан в верхней части страницы, прямо под заголовком и над фотографиями.

Как посмотреть избранные объявления на Авито

Как на Авито посмотреть раздел «Мое избранное»? Чтобы перейти в список всех понравившихся товаров, на полноценном сайте можно нажать значок сердечка рядом с именем профиля. Кроме того, раздел Избранное можно найти во вкладке «Мои объявления» в выпадающем меню, которое появляется при нажатии на имя профиля.

Где можно посмотреть объявления

5 самых популярных досок объявлений:

  • Доска объявлений EDC. SALE.
  • Доска объявлений Авито
  • Доска объявлений Юла
  • Доска объявлений Из рук в руки
  • Доска объявлений Убу

Как посмотреть свои объявления

Как посмотреть свое видеообъявление:

  • Войдите в аккаунт Google Рекламы.
  • Нажмите Видеокампании на панели навигации.
  • В меню выбора страниц нажмите Объявления и объекты.
  • Наведите указатель мыши на нужное объявление в столбце «Объявление» и нажмите на значок карандаша.
  • Выберите Просмотр.

Как посмотреть объявления на карте

Как искать объявления на карте?:

  • Установите параметры поиска и нажмите на кнопку «Найти».
  • Над первым объявлением из результатов поиска вы увидите блок «Поиск объявлений на карте»:
  • Нажмите на ссылку «Поиск объявлений на карте», чтобы открыть карту, на которой будут отмечены объявления по указанным параметрам:

Куда приходят деньги с Авито

При оформлении заказа покупатель оплачивает на Авито стоимость товара и доставки. После этого деньги резервируются на счёте. При оплате заказа банк-эмитент может взять комиссию. Подробнее о ней лучше узнать в поддержке вашего банка — это можно сделать до оплаты.

Как разводят на Авито продавцов

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

Как на Авито увидеть реальный номер

Чтобы узнать реальный номер телефона владельца объявления, вставьте http-ссылку на объявление в диалоговое окно, которое появляется при нажатии на кнопку «Avito: Запрос реального номера»: Реальный номер можно узнать также через ICQ.

Как узнать номер на Авито Если нет объявлений

К сожалению, такой возможности нет. Единственный способ узнать номер телефона продавца, перейти к нему в аккаунт и узнать, есть ли у него активные объявления. Если есть, то там будет его номер телефона.

Как можно пробить номер телефона человека

Самый простой способ узнать информацию о человеке по номеру телефона — написать цифры телефона в строке поисковой системы. Дело в том, что поисковые системы подгружают в выдачу информацию со всех сайтов, где такой номер когда-либо встречался. Таким способом с большой вероятностью можно определить спам-звонки.

Где на Авито Мои объявления

В разделе «Мои объявления» на Авито вы сможете посмотреть все свои объявления, отредактировать их или снять с публикации.

Что означает знак сердечко на Авито

Нажимая на сердечко рядом с объявление, вы откладываете данное объявление в «Избранное». Именно в этом разделе вы можете посмотреть товары, услуги и тп, которые вас заинтересовали ранее. В случае изменения цены на товар/услугу в этом объявлении, Вам будут приходить уведомления.

Как в Авито скрыть остальные объявления

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

Сколько по времени может висеть объявление на Авито

Что происходит с объявлением, когда срок размещения заканчивается? Обычно срок размещения составляет 30 дней (за исключением объявлений, размещенных в категории «Резюме»). После окончания срока размещения объявление перестанет отображаться на сайте, а в вашем Личном кабинете переместится на вкладку «Завершённые».

Что чаще всего покупают на Авито 2022

Пианино и клавишные покупают на 50 % чаще.К концу года, по исследованиям площадки, в топе продаж:

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

Можно ли по номеру телефона найти объявление на Авито

На Авито не предусмотрен поиск объявления по номеру телефона. Можно попробовать ввести телефон в поисковую строку любого поисковика — иногда таким образом удаётся найти другие предложения пользователя. Рекомендуем Вам добавлять интересное в Избранное.

Можно ли вводить данные карты на Авито

Не указывайте код с карты

А также имя владельца и срок действия. Когда вы продадите товар через Авито Доставку, мы попросим только номер карты. Это случится после того, как покупатель заберёт посылку.

Как изменить способ оплаты на Авито

Как отвязать банковскую карту?:

  • Зайдите в Личный кабинет, в раздел «Настройки».
  • Перейдите в блок «Привязанные способы оплаты», где указан номер банковской карты. Нажмите на красный крестик, после чего банковская карта будет отвязана.

Как вывести деньги с баланса Авито

Как вывести деньги с кошелька Авито? Если есть такая необходимость, пользователь имеет возможность снять со счета оставшийся баланс. Однако — это невозможно сделать самостоятельно, как и войти в заблокированный кошелек. В таких случаях необходимо обращаться к операторам службы поддержки.

Зачем Авито скрывает номер телефона

Номера телефонов из объявлений о продаже авто или квартиры в интернете часто попадают в базы спамеров. Чтобы защитить вас от непрошеных сообщений, на Авито работает бесплатная защита номера — никто не узнает ваш реальный телефон и не пришлёт смс-спам.

Для чего на Авито просят номер телефона

Это сделано для борьбы с мошенниками, спамерами и парсерами. Сервис «Защита номера» появился на Авито 4 года назад и изначально был доступен только продавцам, размещающим объявления в категориях «Авто» и «Недвижимость».

Почему я не вижу своё объявление в Авито

Не сразу: перед тем, как опубликовать объявление, мы его проверяем. Это недолго — обычно занимает от пары минут до получаса, в особо сложных (и редких) случаях можем проверять до двух дней. Если с объявлением всё в порядке, оно появится в поиске сразу после публикации.

Как узнать на кого я подписан на Авито

Для этого откройте любое свое объявление, в правом нижнем углу нажмите на фотографию или название своего профиля. На странице своего профиля в левом нижнем углу вы можете увидеть сколько подписчиков у вашего профиля. Узнать кто именно эти люди, сервис Авито, к сожалению, не представляет возможности.

Как выглядит выделенное объявление на Авито

Если человек ищет товар с мобильной версии сайта или в приложении для Android, он увидит название объявления, выделенное желтым цветом. Стоимость услуги зависит от категории и параметров объявления.

Что значит на Авито в избранном

Если освоить добавление в избранное объявлений на Авито, можно легко и быстро находить их, когда это потребуется. Данный раздел используется чтобы отслеживать статус представляющих интерес публикаций и при необходимости оперативно связываться с теми, кто их разместил.

Что значит на Авито 1 1

Если человек много раз за сутки зашёл в объявление, засчитается только 1 посещение. Несколько запросов телефона и старт переписки будут посчитаны как 1 контакт.

Сколько стоит Авито

В 2021 году «Авито» опустился на пятое место в списке самых дорогих компаний рунета. К февралю 2021 года стоимость «Авито» составила 4,9 млрд долларов.

Где посмотреть отзывы обо мне на Авито

Если раньше вы не обращали внимание, какие отзывы оставляют вам покупатели, пора это проверить. Для этого переходите в раздел «Мои отзывы» в профиле.

Что будет если не забрать посылку с Авито

Покупатель не забирает заказ

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

Что лучше всего берут на Авито

В список ТОП товаров вошли медицинские маски, велосипеды, кроссовки, ноутбуки, столы, диваны, телевизоры, игровые консоли. Также в статистике запросов на доске объявлений часто присутствовали детская обувь, свадебное платье, пуховик, автомобиль с пробегом.

Что такое Авито Exmail

2) Филиал EXMAIL — это полноценное представительство экспресс-логистики со штатом сотрудников и собственной курьерской службой.

Как посмотреть историю звонков на Авито

Статистика и записи разговоров появятся в разделе «Звонки» Авито Pro. Вы сможете понять, как ваши действия влияют на количество вызовов и хорошо ли сотрудники работают с обращениями.

Как связаться с покупателем на Авито

Зайдя на объявление, покупатель может нажать кнопку «Позвонить», увидеть номер продавца и совершить вызов.

Почему не могут дозвониться на Авито

Авито блокирует твой номер и не даёт возможность звонить по объявлениям с подменным номером, если ты более 3-х раз пытался дозвониться до продавца, когда у него было занято. Служба поддержки объясняет это так « с вашего номера массово поступали звонки по подменным номерам Авито.

Где на Авито найти свои объявления

В разделе»Мои объявления« на Авито вы сможете посмотреть все свои объявления, отредактировать их или снять с публикации.

Как на Авито сделать скрытые объявления

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

Как посмотреть старую цену на Авито

Мониторинг цен на Авито возможен при добавлении объявлений в»избранное« в расширении Shopintab. Для этого достаточно слева от названия объявления нажать на кнопку»S». С помощью сервиса Shopintab Вы можете отследить динамику цен на Авито.

Как посмотреть историю поиска на Авито

Как на Авито посмотреть историю просмотров? На Авито можно узнать просмотры любого объявления, как своего так и чужого. Откройте интересующее вас объявление и прокрутите страницу вниз. В правом нижнем углу рядом с иконкой глаза вы увидите количество просмотров объявления.

  • Почему не могут дозвониться на Авито

Авито Прогноз кликабельности по объявлениям

ПРИМЕР

  • Местоположение
    Москва, Россия
  • Промышленность
    Реклама

Когда сотрудник любой компании приступает к работе, ему сначала необходимо получить доступ к компьютеру, необходимый для выполнения его роли.

СКАЧАТЬ

гостеприимство

Можно ли предсказать успех ресторана?

Tab Food Investments управляет ресторанами быстрого обслуживания в основном в Турции и Китае с 19 лет.95.

Чтение Подробнее

Электронная коммерция

Как ИИ предсказывает потребности сотрудника

Когда новый сотрудник приступает к работе на новой должности или получает повышение, его требования меняются. согласно должностной роли.

Чтение Подробнее

Маркетинг

Можно ли предсказать успех рекламы?

Разместить объявление непросто, но все мы знаем, что это очень важно при продаже чего-либо.

Чтение Подробнее

Программное обеспечение

Как метрики воронки революционизируют успех продаж

Продажи — это искусство, но также и наука. Таким образом, все аспекты функции продаж могут быть измерены. против конкретных целей.

Чтение Подробнее

Производство

Можно ли уменьшить количество брака на производстве?

Когда такая компания, как Bosch, решает проблему, мир слушает. Пришло время учиться.

Чтение Подробнее

Путешествовать

Как ИИ может ускорить исследования

Технологии изменили нашу жизнь, особенно с появлением Интернета.

Чтение Подробнее

Страхование

Прогноз ожидаемых потерь от пожара для страховых полисов

Неопределенность приводит к росту цен на страховые полисы. Прогноз потерь от пожара чрезвычайно изменчив для две причины:

Чтение Подробнее

Человеческие ресурсы

Помогаем ресторанам сосредоточиться на том, что для них важно

Будь моим гостем. Прогнозирование того, сколько посетителей будет у ресторана сегодня.

Чтение Подробнее

Розничная торговля

Помощь менеджерам в прогнозировании их продаж с помощью ИИ

ПРОГНОЗ ПРОДАЖ МАГАЗИНА ROSSMANN. «Для меня также важно не сдаваться слишком рано».
Кортик Россманн

Чтение Подробнее

Розничная торговля

Как узнать, когда и что спросит клиент?

Прогнозирование продаж продукции для крупной корпоративной сети

Чтение Подробнее

Интернет Сервис

Использование пользовательских изображений для классификации ресторанов

Превращение изображений в слова с помощью Yelp. Назначение нескольких меток изображениям ресторана с помощью ИИ.

Чтение Подробнее

Маркетинг

Категоризация долгоживущего контента в Интернете

Раскрытие скрытых драгоценных камней. Создание классификатора для категоризации веб-страниц для StumbleUpon.

Чтение Подробнее

Страхование

Подверженность страхователя взаимным рискам Liberty

Компания Liberty Mutual Insurance, входящая в список Fortune 100, предлагает широкий спектр страховых продуктов.

Чтение Подробнее

Маркетинг

Можно ли предсказать успех рекламы?

Разместить объявление непросто, но все мы знаем, что это очень важно при продаже чего-либо.

Чтение Подробнее

Маркетинг

Категоризация долгоживущего контента в Интернете

Раскрытие скрытых драгоценных камней. Создание классификатора для категоризации веб-страниц для StumbleUpon.

Чтение Подробнее

Розничная торговля

Помощь менеджерам в прогнозировании их продаж с помощью ИИ

ПРОГНОЗ ПРОДАЖ МАГАЗИНА ROSSMANN. «Для меня также важно не сдаваться слишком рано».
Кортик Россманн

Чтение Подробнее

Розничная торговля

Как узнать, когда и что спросит клиент?

Прогнозирование продаж продукции для крупной корпоративной сети

Чтение Подробнее

Электронная коммерция

Как ИИ предсказывает потребности сотрудника

Когда новый сотрудник приступает к работе на новой должности или получает повышение, его требования меняются. согласно должностной роли.

Чтение Подробнее

Производство

Можно ли уменьшить количество брака на производстве?

Когда такая компания, как Bosch, решает проблему, мир слушает. Пришло время учиться.

Чтение Подробнее

гостеприимство

Можно ли предсказать успех ресторана?

Tab Food Investments управляет ресторанами быстрого обслуживания в основном в Турции и Китае с 1995 года.

Чтение Подробнее

Человеческие ресурсы

Помогаем ресторанам сосредоточиться на том, что для них важно

Будь моим гостем. Прогнозирование того, сколько посетителей будет у ресторана сегодня.

Чтение Подробнее

Страхование

Прогноз ожидаемых потерь от пожара для страховых полисов

Неопределенность приводит к росту цен на страховые полисы. Прогноз потерь от пожара чрезвычайно изменчив для две причины:

Чтение Подробнее

Страхование

Подверженность страхователя взаимным рискам Liberty

Компания Liberty Mutual Insurance, входящая в список Fortune 100, предлагает широкий спектр страховых продуктов.

Чтение Подробнее

Интернет Сервис

Использование пользовательских изображений для классификации ресторанов

Превращение изображений в слова с помощью Yelp. Назначение нескольких меток изображениям ресторана с помощью ИИ.

Чтение Подробнее

Программное обеспечение

Как метрики воронки революционизируют успех продаж

Продажи — это искусство, но также и наука. Таким образом, все аспекты функции продаж могут быть измерены. против конкретных целей.

Чтение Подробнее

Путешествовать

Как ИИ может ускорить исследования

Технологии изменили нашу жизнь, особенно с появлением Интернета.

Чтение Подробнее

Почему мы перешли с Python на Go в системе рекомендаций Авито | Василий Копытов | АвитоТех | март 2023 г.

Привет! Меня зовут Василий Копытов, я руковожу группой разработки рекомендаций Авито. Мы занимаемся системами, предоставляющими пользователю персонализированную рекламу на сайте и в приложениях. На примере нашего основного сервиса я покажу, когда переходить с Python на Go, а когда оставить все как есть. В конце я дам несколько советов по оптимизации сервисов Python.

Любой, кто заходит на главную страницу сайта или приложения, видит персонализированную ленту объявлений — рекомендации. Нагрузка на наш основной рекомендательный сервис, отвечающий за генерацию бесконечной ленты объявлений на главной странице, составляет около 200 000 запросов в минуту. Общий трафик до 500 000 запросов в минуту на рекомендации.

Так выглядят рекомендации в приложении и на сайте

Сервис выбирает наиболее подходящие объявления из 130 миллионов активных объявлений (товаров) для каждого пользователя. Рекомендации генерируются на основе каждого действия человека за последний месяц.

Представительство работает по следующему алгоритму:

1. Сервис обращается к хранилищу истории пользователя и извлекает из него агрегированную историю действий и интересов.

Интересы — это набор категорий и подкатегорий рекламы, которую человек недавно просматривал. Например, детская одежда, домашние животные или товары для дома.

2. Затем передается история и интересы как набор параметров, воздействие на модели машинного обучения первого уровня.

Модели машинного обучения первого уровня являются базовыми службами. Сейчас у нас есть 4 таких модели. Они предсказывают элементы, используя различные алгоритмы машинного обучения. На выходе каждого сервиса получаем список id (рекомендуемых).

3. Мы фильтруем идентификатор на основе истории пользователя. У нас получается около 3000 элементов на пользователя.

4. И самое интересное, что представление внутри использует модель машинного обучения второго уровня, основанную на CatBoost, для ранжирования рекламы из моделей машинного обучения первого уровня в реальном времени.

5. Из данных готовим характеристики. Это параметры ранжирования рекомендаций. Для этого мы используем id элемента для получения данных в хранилище (осколочная база данных 1 ТБ, Redis). Данные товара — название, цена и еще около 50 полей.

6. Служба передает функции и элементы в модель машинного обучения второго уровня на основе библиотеки CatBoost. Результатом является ранжированная лента объявлений.

7. Далее представление выполняет бизнес-логику. Например, подбирает в ленте те объявления, за премиум размещение которых взимается плата (boost VAS).

8. Кешируем и отдаем сгенерированный фид рекомендации пользователю, в нем около 3000 объявлений.

Алгоритм формирования ленты рекомендаций

Представительство как услуга очень загружено в Авито. Он обрабатывает 200 000 запросов в минуту. Сервис стал таким не сразу: мы постоянно вносили что-то новое и улучшали качество рекомендаций. В какой-то момент он начал потреблять почти столько же ресурсов, сколько и весь остальной монолит Авито. Нам стало сложно выкатывать сервис в дневное время, в часы пик, из-за нехватки ресурсов в кластере — в это время большинство разработчиков развертывали свои сервисы.

Карта взаимодействия сервисов Авито. Размер круга показывает, сколько ресурсов кластера потребляет служба

Вместе с ростом потребления ресурсов росло и время отклика службы. Во время пиковых нагрузок пользователи могли ждать свои рекомендации до 1,6 секунды — это в 8 раз больше, чем за последние 2 года. Все это могло заблокировать дальнейшее развитие и совершенствование рекомендаций.

Причины этого достаточно очевидны:

  1. Высокая нагрузка, связанная с вводом-выводом. В представлении каждый запрос состоит примерно из 20 сопрограмм — блоков кода, которые выполняются асинхронно при обработке сетевых запросов.
  2. Нагрузка на ЦП от вычислений в реальном времени по ML-модели, которые полностью заняты ЦП, пока происходит ранжирование рекламы.
  3. GIL — представление изначально было написано на однопоточном Python. В этом языке программирования невозможно совместить рабочие нагрузки, связанные с вводом-выводом и с привязкой к ЦП, чтобы служба эффективно использовала ресурсы.

Позвольте мне рассказать вам, что помогло нам справиться с нашими нагрузками в Python.

1. ProcessPoolExecutor

ProcessPoolExecutor создает пул воркеров из процессорных ядер. Каждый воркер — это отдельный процесс, работающий на отдельном ядре. Вы можете передать нагрузку, связанную с ЦП, на рабочий процесс, чтобы он не замедлял другие процессы.

В представлении мы изначально использовали ProcessPoolExecutor для разделения рабочих нагрузок, связанных с процессором и вводом-выводом. В дополнение к основному процессу Python, который обслуживает запросы и ходит по сети (с привязкой к IO), мы выделили три воркера для ML-модели (с привязкой к CPU).

У нас есть асинхронная служба на aiohttp, которая обслуживает запросы и успешно обрабатывает нагрузку, связанную с вводом-выводом. ProcessPoolExecutor создает пул рабочих процессов. Рабочую нагрузку, связанную с ЦП, можно передать такому рабочему процессу, чтобы он не замедлял основной процесс службы и не влиял на задержку всей службы.

Выигрыш времени от использования ProcessPoolExecutor составляет около 35%. Для эксперимента мы решили сделать код синхронным и отключили ProcessPoolExecutor. То есть рабочие нагрузки, связанные с вводом-выводом и процессором, начали выполняться в одном процессе.

Без ProcessPoolExecutor время отклика увеличилось на 35%

Как это выглядит в коде:

 async def process_request(user_id): 
# Задача ввода-вывода
async with session.post(
feature_service_url,
json= {'user_id': user_id},
) as resp:
functions = await resp.json()

return features

У нас есть асинхронный обработчик, который обрабатывает запрос. Для тех, кто не знаком с синтаксисом асинхронного ожидания, это ключевые слова, обозначающие точки переключения сопрограммы.

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

 def предсказание (функции) 
preprocessed_features = процессор.препроцесс (представленный)
return model.infer(preprocessed_features)

async def process_request(user_id):
# задача ввода-вывода
асинхронно с session.post(
feature_service_url,
json ={'user_id': user_id},
) as resp:
features = awat resp.json()

# блокировка CPUtask
return predict(features)

Внезапно нам нужно выполнить загрузку с привязкой к ЦП из ML-модели. И так на предсказать функцию наша сопрограмма заблокирует процесс python. Чтобы все сервисные запросы не стояли в очереди и время ответа сервиса не увеличивалось, как мы видели ранее.

 исполнитель = concurrent.futures.ProcessPoolExecutor(man_workers=N) 

по определению предсказать(функции):
preprocessed_features = processing.preprocess(features)
return model.infer(preprocessed_features)

async def process_request(user_id):
# задача ввода/вывода
async with session. post(
feature_service_url,
json={'user_id': user_id},
) as resp:
features = await resp.json()

# Неблокирующая задача ЦП
return await loop.run_in_executor(executor, predict(features))

Здесь ProcessPoolExecutor вступает со своим собственным пул рабочих, который решает эту проблему. В строке 1 мы создаем пул. В конце блока кода мы берем рабочего оттуда и перемещаем задачу, связанную с процессором, на отдельное ядро. Таким образом, функция прогнозирования будет выполняться асинхронно по отношению к родительскому процессу, а не блокировать его. Приятно то, что все это будет завернуто в обычный синтаксис async-await, а задачи, привязанные к процессору, будут выполняться асинхронно, как и задачи, связанные с вводом-выводом, но под капотом будет дополнительная магия с процессами.

ProcessPoolExecutor позволил нам снизить накладные расходы от модели ML в реальном времени, но и с ним в какой-то момент стало плохо. Первое, с чего мы начали, было самым очевидным — профилированием и выявлением узких мест.

2. Профилирование службы

Даже если служба написана опытными программистами, ее можно улучшить. Чтобы понять, какие части кода медленные, а какие быстрые, мы профилировали сервис с помощью профилировщика py-spy.

Профилировщик строит диаграмму, на которой горизонтальные полосы показывают, сколько процессорного времени тратится впустую на участок кода. Первое, что вы видите, это 3 полосы справа. Это всего лишь наши дочерние процессы для оценки функций модели ML.

Результат профилирования Rec-представления. Например, видно, что воркеры ProcessPoolExecutor для модели ML занимают почти одинаковое количество ресурсов ЦП

На графике пламени мы увидели некоторые интересные детали:

  • 7% процессорного времени тратится на сериализацию данных между процессами. Сериализация — это преобразование данных в байты. В Python этот процесс называется pickle , а обратный — unpickle .
  • 3% времени уходит на оверхед ProcessPoolExecutor — подготовка пула воркеров и распределение нагрузки между ними.
  • 6,7% времени тратится на сериализацию данных для сетевых запросов в json.loads и json.dumps.

В дополнение к процентному распределению, мы хотели знать конкретное время, затрачиваемое на выполнение различных частей кода. Для этого мы снова отключили ProcessPoolExecutor, запустили модель ML для ранжирования синхронно.

Без ProcessPoolExecutor ранжирование происходит быстрее, т.к. все процессорное время занято только подготовкой фич и скорингом по ML модели, нет накладных расходов на pickle/unpickle и IO-wait

Но проблема остается — конкретный кусок кода стало быстрее, но сам сервис стал медленнее.

Поэкспериментировав, мы выяснили:

  • Накладные расходы ProcessPoolExecutor составляют около 100 миллисекунд.
  • Запросы, связанные с вводом-выводом, от сопрограмм ждут 80 миллисекунд, то есть сопрограмма засыпает, и цикл событий снова обращается к ней через 80 мс, чтобы возобновить ее выполнение. В Representation есть три большие группы IO-bound запросов — всего на IO-wait тратится 240 миллисекунд.

Именно тогда мы впервые подумали о переходе на Go, так как он имеет более эффективную модель планирования подпрограмм из коробки.

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

Одним из больших изменений, которые мы пытались сделать, было удаление модели машинного обучения в отдельную службу повторного ранжирования. То есть мы сохранили наш сервис представления только с сетевыми запросами, а скоринг ML-модели был на отдельном сервисе rec-ranker, куда мы передавали все необходимые данные и возвращали скоринг для ранжирования. Казалось, что мы немного уменьшим латентность и масштабируем обе части по отдельности.

Эксперимент показал, что мы экономим время на работе модели, но получаем задержку в 270 миллисекунд при передаче данных по сети и json.loads/json.dumps. Нам нужно передать около 4 Мб на запрос, а для очень активных пользователей до 12 Мб данных для модели ML. После масштабирования rec-ranker реплики стали ненамного меньше старого представления, а время отклика не изменилось. Для нашего случая разбиение на сервисы оказалось неудачным решением, поэтому мы вернулись к предыдущей реализации Representation.

4. Оцененная общая память

В службе Представление данные передаются между процессами посредством pickle/unpickle. Вместо этого процессы, которые совместно используют данные, могут указывать на общую область памяти. Это экономит время сериализации.

Максимальная оценка состоит в том, что мы могли бы выиграть около 70 миллисекунд на сериализацию с таким же сокращением времени для объема выполнения запроса, поскольку загрузка процессора блокировала основной процесс Python, который обрабатывал запросы от пользователей. Такой вывод мы сделали по профилю: pickle/unpickle занимает всего 7% процессорного времени, от разделяемой памяти особого профита не будет.

5. Подготовка фич в Go

Мы решили сначала протестировать работоспособность Go на части сервиса. Для эксперимента мы выбрали самую ресурсоемкую задачу в сервисе — подготовку фич.

Возможности в сервисе рекомендаций — данные о товаре и действия пользователя. Например, название объявления, цена, информация о показах и кликах. Существует около 60 параметров, влияющих на результат модели машинного обучения. То есть мы готовим все эти данные для 3000 элементов и отправляем их в модель, и она дает нам оценку для каждого элемента, которую мы используем для ранжирования фида.

Чтобы связать код Go для подготовки функций с остальной частью кода службы в Python, мы использовали ctypes.

 def get_predictions( 
raw_data: bytes,
model_ptr: POINTER(c_void_p),
size: int,
) -> list:
raw_predictions = lib.GetPredictionsWithModel(
GoString(raw_data, len(raw_data)), 90r
)
прогнозов = [raw_predictions[i] для i в диапазоне (размере)]
прогнозов возврата

Вот как выглядит подготовка функций внутри Python. Модуль lib представляет собой скомпилированный пакет Go с функцией GetPredictionsWithModel. В него мы передаем байты с данными об элементах и ​​указатели на ML-модель. Все функции подготовлены кодом Go.

Результаты были впечатляющими:

  • Функции Go считаются в 20–30 раз быстрее;
  • весь шаг ранжирования в 3 раза быстрее с учетом дополнительной сериализации данных в байты;
  • отклик главной страницы упал на 35%.
Подготовка фич на Go ускорила загрузку главной страницы сайта с 1060 до 680 миллисекунд Время ранжирования рекомендаций по ML-модели с подготовкой фич. Здесь также нужно учитывать, что в случае с Go у нас синхронный код и мы не используем ProcessPoolExecutor

Результаты

После всех экспериментов мы сделали четыре вывода:

  • Функции Go для 3000 элементов на запрос считаются в 20–30 раз быстрее, что экономит 30% времени.
  • ProcessPoolExecutor тратит впустую около 10% времени.
  • Три группы запросов, связанных с вводом-выводом, занимают 25% времени пустых ожиданий.
  • После перехода на Go мы сэкономим около 65% времени.

Есть модель ML в представлении-го. Естественно кажется, что ML хорош только для Python, но в нашем случае модель ML на CatBoost и у нее есть C-API, который можно вызывать из Go. Этим мы и воспользовались.

Ниже приведен фрагмент кода на Go. Не буду на этом особо останавливаться, отмечу только, что логический вывод дает те же результаты, что и в Python. C — это псевдопакет, предоставляющий Go интерфейс для библиотек C.

 if !C.CalcModelPrediction( 
model.Handler,
C.size_t(nSamples),
floatsC,
C.size_t(floatFeaturesCount),
CatsC,
C.size_t(categoryFeaturesCount),
(*C.double) (&results[0]),
C.size_t(nSamples),
) {
вернуть nil, getError()
}

Проблема в том, что модель машинного обучения все еще обучается на Python. И для того, чтобы он изучал и строил одни и те же функции, важно, чтобы они не расходились.

Мы начали их готовить по коду Go-service. Обучение происходит на отдельных машинах, туда загружается сервисный код в Go, по этому коду готовятся фичи, сохраняются в файл, затем Python-скрипт скачивает этот файл и обучает на них модель. В качестве бонуса обучение также стало в 20–30 раз быстрее.

Representation-go показал отличные результаты:

  • Время отклика главной страницы сократилось в 3 раза с 1280 миллисекунд до 450 миллисекунд.
  • Потребление ЦП снизилось в 5 раз.
  • Потребление ОЗУ снизилось в 21 раз.
Сервис в три раза быстрее написан на Go по сравнению с Python

Мы разблокировали дальнейшую разработку рекомендаций — мы можем продолжать реализовывать тяжелые функции .

В нашем случае переход на Go принес желаемый результат. Основываясь на нашем опыте работы с механизмом рекомендаций, мы определили три условия, когда вам следует подумать о переходе на Go:

  1. сервис имеет высокую нагрузку на ЦП
  2. в то же время высокая нагрузка на IO
  3. вам необходимо отправить большой объем данных по сети на подготовить характеристики.

Если у вас есть только рабочие нагрузки, связанные с вводом-выводом, вам лучше придерживаться Python. Переход на Go не выиграет вам много времени, вы только сэкономите ресурсы, что не так важно для малых и средних рабочих нагрузок.

Если сервис использует обе нагрузки, но не передает по сети столько данных, сколько мы, есть два варианта:

  1. Использовать ProcessPoolExecutor. Накладные расходы времени не будут очень большими, а обслуживание не огромным.
  2. Поскольку нагрузка по трафику становится слишком высокой, разделите его на 2 службы — службы с привязкой к ЦП и службы с привязкой к IO, чтобы масштабировать их отдельно.

Оптимизация службы, с чего начать

Профилируйте свою службу. Используйте py-spy, как мы, или другой профилировщик Python. Скорее всего, ваш код не имеет огромных неоптимальных областей. Но вам нужно повнимательнее присмотреться ко всем небольшим областям, которые будут значительно улучшены. Возможно, вам не потребуется переписывать весь код.

Запустить py-spy в неблокирующем режиме:

 record -F -o record.

Об авторе

alexxlab administrator

Оставить ответ