主搜-原生交付

详细API文档: recis.framework.Exporter

使用FG RecISModel模块交付流程(推荐)

RecISModel 以及 FG 模块已经为导图处理做过适配,使用该模块的模型可以轻松完成在线交付。 FG API实践:Feature Generator(FG模块)

fg规范

参考:rtp-guifan

tips:

  1. 主搜rtp不支持hash_bucket_size为0的fg定义

  2. 主搜rtp不支持multihash的fg特征定义

  3. 能被RecIS FG模块解析的fg即可满足在线规范

模型定义规范

tips:

  1. 交付主搜rtp的模型在使用RecISModel.from_fg方法时,不能将split_seq设置为True

  2. dense arch的输出为Tensor 或 Tuple[Tensor] 表示需要在线打分结果

class MyModel(nn.module):
    def __init__(self, fg, **kwargs):
        super().__init__()
        # sparse模型定义,from_fg方法不支持 split_seq 参数为True
        self.sparse_arch = RecISModel.from_fg(fg)
        # dense模型定义,输入为RecISModel的返回结果,输出为需要在线打分的tensor
        self.dense_arch = MyDense(model_conf, fg)

    def forward(self, samples):
        samples, sample_ids, labels = self.sparse_arch(samples)
        predicts = self.dense_arch(samples)
        loss = xxx
        return loss

使用Exporter导出在线dense图

from framework.exporter import Exporter
# fg = xxx
# dataset = xxx
# model = MyModel(fg)
exporter = Exporter(
    model=model,
    # sparse部分模型在model中的名字
    sparse_model_name="sparse_arch",
    # dense部分模型在model中的名字
    dense_model_name="dense_arch",
    # 输入数据
    dataset=dataset,
    # 需要上线的ckpt路径或Mos uri(精确到版本)
    ckpt_dir=get_config("export", "output_dir"),
    # 在线文件导出路径
    export_dir=get_config("export", "output_dir"),
    # dense optimizer
    dense_optimizer=None,
    # dense部分导出的文件夹名,和在线配置相关
    export_folder_name="fx_user_model",
    # dense部分导出的模型名,和在线配置相关
    export_model_name=get_config("export", "model_name"),
    # dense arch输出结果(在线打分结果)名
    export_outputs=get_config("export", "out_node_names"),
    # 任务feature generator
    fg=fg,
    # 是否需要将sparse参数过滤optimizer信息进行交付,默认为False
    filter_sparse_opt=False,
)
exporter.export()
  • model:完整模型

  • sparse_model_name:model中sparse部分名称,一般为RecISModel

  • dense_model_name:model中dense部分名称,输入为RecISModel的输出结果,输出为Tensor 或 Tuple[Tensor]表示打分结果

  • dataset:输入的io数据

  • ckpt_dir:需要在线交付的模型地址,精确到模型版本

  • export_dir:导出的在线模型文件地址

  • dense_optimizer:如果模型完成过反向计算,需传入dense optimizer,用于清理grad状态

  • export_folder_name:dense部分在线文件夹名,默认为”fx_user_model”,需要和在线配置一致

  • export_model_name:在线模型名,默认为”user_model”,需要和在线配置一致

  • export_outputs:dense model输出tensor对应的在线打分名称

  • fg:feature_generator

  • filter_sparse_opt:是否将sparse部分参数过滤optimizer相关信息后导出到export_dir中。默认为False。

自定义模型交付流程(不推荐)

参考:rtp-jiaofu

其他RTP相关文档

参考:rtp