Конфигурация DLFlow
Формат файла конфигурации — hocon. Формат hocon похож на json, но поддерживает более гибкий формат, позволяет свободно добавлять комментарии и даже ссылаться на другие файлы конфигурации. Подробнее о hocon можно узнать в HOCON (https://github.com/lightbend/config/blob/master/HOCON.md).
В DLFlow конфигурация верхнего уровня по умолчанию использует прописные буквы и символы подчёркивания в качестве имён конфигурации. Для путей конфигурации рекомендуется использовать абсолютные пути, чтобы избежать ненужных ошибок. Пути HDFS позволяют использовать не-URI формат, пользовательские конфигурации должны обеспечивать правильность доступа.
Вот пример типичной конфигурации:
// Hocon for DLFlow
STEPS : "merge, encode, predict, evaluate, train, UDTs",
MODEL_TAG : "model tag",
MODEL_DATE : "20200101",
FEATURE_TAG : "feature tag",
FEATURE_DATE : "20200101",
PRIMARY_KEYS : "id",
LABELED_KEYS : "label",
MODELS_DIR : "/<path>/static_models",
TASKS_DIR : "/<path>/static_tasks",
LOCAL_WORKSPACE : "<path>/local_workspace",
HDFS_WORKSPACE : "/<hdfs_path>/hdfs_workspace",
SPARK : { include file("/<conf_path>/spark_conf/spark.conf") },
MODEL : { include file("/<conf_path>/model_conf/model.conf") },
BUCKET : { include file("/<conf_path>/bucket_conf/bucket.conf") },
MERGE : {
config_file : "/<conf_path>/merge_conf/merge.conf",
seed_sql : "/<conf_path>/merge_conf/seed.sql",
fit : true,
}
Указывает задачи, которые необходимо выполнить в DLFlow, фреймворк имеет 5 встроенных предопределённых задач:
Кроме того, фреймворк позволяет пользователям определять собственные задачи (UDT, User Define Task), для использования UDT также необходимо настроить STEPS. Задачи STEPS разделяются запятыми, порядок выполнения задач может быть произвольным, фреймворк автоматически упорядочивает выполнение задач в зависимости от их зависимостей.
Метка модели, используется вместе с MODEL_DATE для создания уникального идентификатора модели машинного обучения.
Дата модели, используется вместе с MODEL_TAG для создания уникального идентификатора модели машинного обучения.
Метка признака, представляет версию признака. Она напрямую связана с выбором признаков и способом обработки признаков.
Дата признака, указывает на разные разделы версии признака.
Первичный ключ признака. Несколько первичных ключей могут быть разделены запятыми.
Метки для обучения. Несколько меток могут быть разделены запятыми.
Каталог для хранения пользовательских моделей.
Каталог для хранения пользовательских задач. Если он не нужен, его можно не указывать.
Локальный рабочий каталог, рекомендуется установить, иначе будет использоваться значение по умолчанию ~/dlflow_workspace
.
Рабочий каталог HDFS, рекомендуется установить, иначе будет использоваться значение по умолчанию ~/dlflow_workspace
Конфигурация, связанная со Spark, использует имена конфигурации, принятые в Spark. Например:
SPARK : {
// Установить режим задачи spark
spark.submit.deployMode: "client",
// Установить размер памяти исполнителя
spark.executor.memory: "8G",
...
}
Пользовательская конфигурация модели.
MODEL : {
model_name: "model_name",
input_name: "input_name"
}
Для получения дополнительной информации см. MODEL_DEV.md.
Пользовательская конфигурация сегмента признаков.
BUCKET : {
<bucket_name> : {
features: [
"feature_name_1",
"feature_name_2",
...
],
is_encode: true,
method: "pnorm",
param: {"p": 1.0}
},
...
}
Метод нормализации | Параметры и значения по умолчанию |
---|---|
minmax | "min": 0.0, "max": 1.0 |
zscore | "withMean": true, "withStd": true |
pnorm | "p": 2.0 |
Связанная с объединением признаков конфигурация.
MERGE : {
config_file : "/<conf_path>/merge_conf/merge.conf",
seed_sql : "/<conf_path>/merge_conf/seed.sql",
fit : true
}
Более подробную информацию об объединении признаков см. в разделе «Объединение признаков» (../../../dmflow/README.md)
Поскольку пользовательским моделям и задачам может потребоваться больше параметров конфигурации, DLFlow предоставляет функцию пользовательской конфигурации.
Чтобы создать пользовательскую конфигурацию, сначала необходимо импортировать модуль конфигурации:
from dlflow.mgr import config
Определение конфигурации
При определении модели или задачи добавьте атрибут класса cfg и используйте метод setting() класса config для настройки параметров конфигурации.
@model.reg("my_model")
class MyModel:
cfg = config.setting(
config.req("<CONF_NAME_1>"),
config.opt("<CONF_NAME_2>"),
config.opt("<CONF_NAME_3>", "DEFAULT_VALUE")
)
...
Уровень конфигурации
При настройке параметров конфигурации необходимо указать уровень конфигурации. В DLFlow параметры конфигурации делятся на три уровня:
config.setting(
config.sys("CONF_NAME")
)
config.setting(
config.req("CONF_NAME")
)
config.setting(
config.opt("CONF_NAME", "DEFAULT_VALUE")
)
Ссылка на конфигурацию
# Существующая конфигурация item config.LOCAL_WORKSPACE
cfg = config.setting(
config.opt("MY_CONF_DIR", "$LOCAL_WORKSPACE/my_conf_dir")
)
После активации конфигурации ссылочный параметр $LOCAL_WORKSPACE будет автоматически заменён соответствующим значением.
print(config.LOCAL_WORKSPACE)
# /local_dir
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )