Feature Generator(FG模块)
RecIS提供一套标准的 fg / mc 解析处理模块,能够自动构建模型的稀疏部分,包括:
IO:根据配置,为io添加需要消费的特征列
FeatureEngine:根据配置,生成特征转换方式,创建feature engine
EmbeddingEngine:根据配置,生成embedding option,并创建embedding engine
RecIS的FG模块集成了 广告rtp fg 和 主搜rtp fg 的解析处理逻辑,并在rtp在线配置基础上做了一定拓展,为训练使用。 使用RecIS的FG模块需要准备2个配置文件:
fg.json:特征处理以及查表配置
mc.json:block级别的特征聚合(concat)配置
简单示例
def get_fg():
fg = build_fg(
"./conf/fg.json", # fg配置文件路径
mc_conf_path="./conf/mc.json", # mc配置文件路径
)
fg.add_label("label")
return fg
def get_odps_dataset_by_fg(fg):
worker_idx = int(os.environ.get("RANK", 0))
worker_num = int(os.environ.get("WORLD_SIZE", 1))
transform_fn = [lambda x: x[0]]
# 定义dataset
dataset = OdpsDataset(
batch_size=1024,
worker_idx=worker_idx,
worker_num=worker_num,
read_threads_num=2,
prefetch=1,
is_compressed=False,
drop_remainder=True,
transform_fn=transform_fn,
dtype=torch.float32,
device="cuda",
save_interval=100,
)
# 添加path
dataset.add_path(
"odps://xxx/tables/xxx/ds=xxx",
)
fg.add_io_features(dataset)
return dataset
Tips
fg中所需要的字段一定要正确,否则处理可能不符合预期
确保mc中出现的列和特征名,一定会被模型用到,请手动删除不需要的列配置
参考文档
参考:rtp