1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-ElasticRec

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ElasticCTR

ElasticCTR — это решение для распределённого обучения и прогнозирования CTR, которое можно развернуть в один клик. Пользователю нужно только настроить источник данных и формат образца.

  1. Обзор

Этот проект предлагает комплексное решение для обучения и разработки CTR. Основные характеристики:

  • Быстрое развёртывание. ElasticCTR развёртывается на основе Kubernetes-кластера Baidu Cloud. Пользователи могут легко расширить его до других нативных сред Kubernetes.
  • Высокая производительность. В ElasticCTR используется асинхронный распределённый метод обучения PaddlePaddle, который обеспечивает почти линейное масштабирование и значительно экономит ресурсы обучения. Для онлайн-сервисов ElasticCTR использует высокопроизводительный и низкозатратный механизм разреженных параметров Paddle Serving, который может обрабатывать более чем в 10 раз больше запросов, чем обычные открытые компоненты при высокой параллельной нагрузке.
  • Настраиваемость. Пользователи могут изменять методы обучения и базовые настройки через унифицированный файл конфигурации, включая офлайн-обучение, визуализацию показателей процесса обучения, конфигурацию хранения на HDFS и т. д. Кроме того, ElasticCTR использует полностью открытый программный стек, что позволяет пользователям быстро разрабатывать и модифицировать вторичные решения. Kubernetes и Volcano на нижнем уровне обеспечивают гибкое планирование задач верхнего уровня; PaddlePaddle предоставляет гибкие сетевые возможности, а Fleet и Paddle Serving — распределённое обучение и удалённые сервисы прогнозирования. MLFlow обеспечивает визуализацию задач обучения, позволяя пользователям добавлять различные показатели мониторинга системы.
  1. Настройка кластера

Перед использованием ElasticCTR необходимо создать кластер Kubernetes и установить компонент Volcano. Процесс развёртывания кластера Kubernetes сложен и не рассматривается в этой статье. На Baidu Smart Cloud CCE можно использовать контейнерный движок после подачи заявки. Создание кластера Kubernetes на Baidu Cloud описано в документе «Руководство по созданию кластера Kubernetes и использованию». Elastic CTR также поддерживает развёртывание на других облачных платформах, таких как Huawei Cloud и AWS.

После подготовки кластера Kubernetes необходимо настроить HDFS в качестве источника данных.

  1. Однократное развёртывание

Для развёртывания можно использовать скрипт elastic-control.sh. Перед запуском скрипта убедитесь, что на вашем компьютере установлен Python 3 и пакет mlflow, установленный с помощью pip. Команда установки mlflow:

python3 -m pip install mlflow -i https://pypi.tuna.tsinghua.edu.cn/simple

Скрипт используется следующим образом:

bash elastic-control.sh [COMMAND] [OPTIONS]

Доступные команды (COMMAND):

  • -c|--config_client: получение клиентского двоичного файла для отправки запросов на прогнозирование и получения результатов.
  • -r|--config_resource: определение конфигурации обучения.
  • -a|--apply: применение конфигурации и запуск обучения.
  • -l|--log: печать состояния обучения (убедитесь, что обучение запущено).

При определении конфигурации обучения необходимо добавить дополнительные параметры (OPTIONS), чтобы указать ресурсы конфигурации. Доступные параметры конфигурации:

  • -u|--cpu: количество ядер процессора на каждом узле обучения.
  • -m|--mem: объём памяти каждого узла.
  • -t|--trainer: количество узлов тренера.
  • -p|--pserver: количество узлов сервера параметров.
  • -b|--cube: количество фрагментов куба.
  • -hd|--hdfs_address: адрес HDFS для хранения файлов данных.

Обратите внимание, что формат ваших файлов данных должен соответствовать следующему примеру:

$show $click $feasign0:$slot0 $feasign1:$slot1 $feasign2:$slot2......

Пример:

1 0 17241709254077376921:0 132683728328325035:1 9179429492816205016:2 12045056225382541705:3
  • -f|--datafile: путь к файлу данных, укажите адрес HDFS и начальную и конечную даты (конечная дата необязательна).
  • -s|--slot_conf: файл конфигурации слота признаков, обратите внимание, что расширение файла должно быть .txt.

Файл data.config содержит следующие переменные:

export HDFS_ADDRESS="hdfs://${IP}:9000" # HDFS地址
export HDFS_UGI="root,i" # HDFS用户名密码
export START_DATE_HR=20200401/00 # 训练集开始时间,代表2020年4月1日0点
export END_DATE_HR=20200401/03 # 训练集结束时间,代表2020年4月1日3点
export DATASET_PATH="/train_data" # 训练集在HDFS上的前缀
export SPARSE_DIM="1000001" # 稀疏参数维度,可不动

Пример использования скрипта:

bash elastic-control.sh -r -u 4 -m 20 -t 2 -p 2 -b 5 -s slot.conf -f data.config
bash elastic-control.sh -a
bash elastic-control.sh -l
bash elastic-control.sh -c
  1. Отслеживание прогресса обучения

Мы предлагаем два способа отслеживания прогресса обучения:

  1. Просмотр в командной строке. Во время обучения пользователь может ввести следующую команду для вывода состояния Trainer0 и файлового сервера в стандартный вывод для просмотра:
bash elastic-control.sh -l
  1. Прогнозирование

Пользователь может ввести следующую команду, чтобы просмотреть журнал файлового сервера:

bash elastic-control.sh -l

Когда модель будет готова, можно выполнить прогнозирование, выполнив следующую команду:

bash elastic-control.sh -c

Следуйте инструкциям на экране для выполнения прогноза. Результаты будут выведены в стандартном выводе.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

ElasticCTR — это корпоративное решение системы рекомендаций, основанное на Kubernetes. Решение объединяет в себе отточенную в бизнес-сценариях Baidu модель CTR, крупномасштабное распределённое обучение на основе фреймворка PaddlePaddle и разреженные данные промышленного уровня. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-ElasticRec.git
git@api.gitlife.ru:oschina-mirror/mirrors-ElasticRec.git
oschina-mirror
mirrors-ElasticRec
mirrors-ElasticRec
master