EasyRec 使用介绍|学习笔记

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储OSS,敏感数据保护2.0 200GB 1年
对象存储 OSS,内容安全 1000 次 1年
简介: 快速学习 EasyRec 使用介绍。

开发者学堂课程【PAL 平台学习路线:机器学习入门到应用:EasyRec 使用介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/855/detail/14100


EasyRec 使用介绍

 

内容介绍:

一、EasyRec 简介

二、DataWorks 上EasyRec 训练评估导出的流程

三、EasyRec config 文件的配置工作

 

一、EasyRec 简介

EasyRec 是阿里云easy 学习平台自研的适用于推荐广告、搜索场景的深度学习算法库,它实现了多种业界常用的推广搜模型,包括DSM、mand 召回模型、deptfm、多塔、din等排序模型,还有ESMM、DBSTL 等多目标模型,用户也可以基于EasyRec 进行自定义算法的开发。另外,EasyRec 兼容ODPS、OSS、HDFS 等多种输入,支持多种类型的特征,损失函数、优化器以及评估指标,支持大规模的并行训练。使用EasyRec,只需要简单的配置config 文件,就可以通过命令行调用的方式,实现训练、评估、导出、推理等功能,不需要进行代码的开发,就可以帮助用户快速的搭建推广搜算法。

 

二、DataWorks 上EasyRec 训练评估导出的流程

(1)训练任务

输入-name easy_rec_ext 对PAI下面的EasyRec ext 算法进行调用,设置dcmd=train,并且输入dtrain_tables 配置一张训练表,输入deral_tables 配置一张评估表。然后,输入dcluster 申请训练任务所需要的集群资源信息。

此处申请了两个ps 节点,八个worker 节点,并为每个节点申请了十个cpu 以及40G 的内存。deval_method=separate 表示八个节点中有一个节点用来做训练,一个节点用来做评估,其他七个节点用来做训练。

如果想八个节点都用来做训练,那可以设置deval-method=arn,并且提供一个config 文件以及模型路径。darn=act:ram:xxx:role/aliyunodpspaidefaultrole’,dbuckets=’oss://xiaoyue-bj.oss-cn-beijing-internal.aliyuncs.aliyuncs.com/,dosshost=oss-cn-beijing-internal.aliyuncs.com/ 表示配置PAI 访问oss 所需要的权限信息。

(2)评估任务

Dconfig=oss://xiaoyue-bi/video_demo/multitowei.config 与dcluster表示评估任务与导出任务同样需要一个config 文件以及 cluster 信息,注意此处 cluster 评估任务与导出任务都只需要配置一个worker 节点,并不需要配置ps 节点。Tables 表示待评估的表以及模型路径和 checkpoint 路径。如果 checkpoint 路径不提供,则默认为模型路径下最新的checkpoint 文件。模型评估的结果会打印在模型下面的 eval result 中。在 eval result 中,1200度对应的aoc 为0.612。

(3)导出任务

Dcluster={worker:{count=1,”“cpu:1000,memory:40000}}表示导出命令只需要配置一个worker 节点,并且提供模型路径和checkpoint 路径,额外还需要提供一个 exportdir,dexport_dir=oss://xiaoyue-bj/video_demo/checkpoint/easyrec_tb_multitower_demo/export/best 表示模型 fiwmodel 的输出路径。

(4)离线推理

此处用户需要输入 pai_online_project/tables/easyrec_demo_taobao_test_data 来提供一张带推理的表,以及输入tables/easyrec_demo_taobao_test_data_pred_res 推理结果表和模型上面导出的 fiwModel 路径,dexcluded_cols=label,dreserved_cols=all_columns 指定一下模型打印所需要的结果列。dcluster='{worker:{“count”:,“cpu”:1000表示用户可以用五个节点同时做离线推理。最后,推理结果打印在 dateworks里,props 列即为模型的输出值。


三、EasyRec config 文件的配置工作

(1)train_config

此处输入 adam_optimizer 使用的为adam 为优化器,innitial_learning_rate:1000表示它以0.001为初始学习率,然后 decay_factor:0.5表示程序每1000步会进行0.5倍的衰减。log_step_count_steps:100表示每100步会打印一下模型 的 log 信息,save_checkpoints_steps:100表示每100步会保存模型的checkpoint 文件。sync_replicas=true 表示这里是同步训练任务,如果想使用异步训练的方式,可以将此处置为false。num_steps=5000表示模型训练5000步就停止,此处推荐用 num_steps 来控制,而不是 applc 来控制。

(2)eval_config

Eval_config{表示此处使用 aoc 为评估指标,也可以使用 mse、required、top k 等其他指标。

(3)data_config

因为模型是在 ODPS 上读取 max compute 表来进行训练,所以 input_type 是 ODPS input_v2,如果用户想要在本地训练,那么 inputv2 应为 csfin-input。然后,用户需要对每一个需要用到的类型及需要用到的字段设置一个input fields,这里面需要指定每一个字段的名字以及字段的类型。如果不指定字段类型,默认为 string 类型。

(4)feature_config

EasyRec 主要支持了 IdFeature、RawFeature、TagFeature、SequenceFeature 以及 ComboFeature 五种特征类型,最常用的是 IdFeature、RawFeature、TagFeature,尤其是 IdFeature,IdFeature 适合于 item_id、category-id 以及一些星座、年龄段的离散值特征。此处用 hash_bucket_size、num_buckets 或者v ocab_list 来控制特征的映射。

第二种是 RawFeature,RawFeature 适用于连续值特征。例如,用户历史期间的点击次数、用户历史七天的购买次数等等这种连续值特征。但是并不建议将连续直接未尽模型,推荐的做法是先使用分箱组件得到分箱信息,然后将分箱信息导入到 config 中直接进行训练。这里面模型的输入是连续值,但是内部会进行离散化,这样处理方式就与ID特征是一致的。

接下来是 TagFeature,TagFeature 适用于像商品标签这类取值为多值的 ID 特征。因此,它的配置与 IdFeature 大同小异。这里支持对多个 lookup 的特征进行聚合,比如均值聚合、sum 聚合以及带权重的聚合。

(5)model_config

这里面指定了一个多塔模型,将特征分为 user 、item、combo 三个 feature_groups,并为每个 Feature_groups 配置一个 tower 网络,然后每个group 就会进入到各自的 tower 网络中,得到一个高维的 featureinbrandding,最后将三个 featureinbrandding 聚合起来拼接后,进入到 final_dnn 网络中,得到最后模型的输出。同时,为了缓解模型过拟合,我们也配置了L2正则、embedding 正则这些手段,EasyRec 同样也支持dropout 的手段。如果用户想更换模型,通常情况下只需要修 改 model config,此处替换为 deephidmodel,然后切换成 deephidmodel 的配置即可,通常不需要修改其他模块的配置。

(6)export_config

这里指定了 best 导出,设置 aoc 为衡量是否 best 标准,这里也可以使用 final 导出,这样就会在训练的最后给予最新的 checkpoint,导出一份 PB 文件。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
相关文章
|
搜索推荐 算法
模型小,还高效!港大最新推荐系统EasyRec:零样本文本推荐能力超越OpenAI、Bert
【9月更文挑战第21天】香港大学研究者开发了一种名为EasyRec的新推荐系统,利用语言模型的强大文本理解和生成能力,解决了传统推荐算法在零样本学习场景中的局限。EasyRec通过文本-行为对齐框架,结合对比学习和协同语言模型调优,提升了推荐准确性。实验表明,EasyRec在多个真实世界数据集上的表现优于现有模型,但其性能依赖高质量文本数据且计算复杂度较高。论文详见:http://arxiv.org/abs/2408.08821
359 7
|
7月前
|
机器学习/深度学习 缓存 PyTorch
为什么要用TorchEasyRec processor?
TorchEasyRec处理器支持Intel和AMD的CPU服务器及GPU推理,兼容普通PyTorch模型。它具备TorchEasyRec的特征工程(FG)和模型推理功能,提供更快的推理性能,降低成本。通过Item Feature Cache特性,它能够缓存特征以减少网络传输,进一步提升特征工程与推理的速度。
173 2
|
8月前
|
存储 分布式计算 算法
企业级推荐开发平台 PAI-Rec
本文介绍了企业推荐系统的关键技术和解决方案。主要内容分为四部分:1) 推荐系统面临的挑战,如数据治理和算法优化;2) 提高开发效率的解决方案,通过配置化和自动化减少重复工作;3) 高性能推荐算法和推理服务,包括GPU优化和特征组合;4) 高效特征管理平台PAI FeatureStore,支持离线和实时特征处理。文中还提到了EasyRecTorch框架,用于加速训练和推理,并分享了如何通过这些工具提升推荐系统的性能和降低成本。
|
搜索推荐 算法 大数据
基于内容的推荐系统算法详解
【7月更文挑战第14天】基于内容的推荐系统算法作为推荐系统发展的初期阶段的重要技术之一,具有其独特的优势和广泛的应用场景。然而,随着大数据和人工智能技术的发展,传统的基于内容的推荐系统已经难以满足日益复杂和多样化的推荐需求。因此,未来的推荐系统研究将更加注重多种推荐算法的融合与创新,以提供更加精准、个性化的推荐服务。
1477 2
|
机器学习/深度学习 算法 搜索推荐
多任务学习模型之DBMTL介绍与实现
本文介绍的是阿里在2019年发表的多任务学习算法。该模型显示地建模目标间的贝叶斯网络因果关系,整合建模了特征和多个目标之间的复杂因果关系网络,省去了一般MTL模型中较强的独立假设。由于不对目标分布做任何特定假设,使得它能够比较自然地推广到任意形式的目标上。
|
机器学习/深度学习 存储 搜索推荐
可能是推荐系统最详细且简单的入门教程
本文将深入介绍推荐系统的工作原理,和其中涉及的各种推荐机制,以及它们各自的优缺点和适用场景,帮助用户清楚的了解和快速构建适合自己的推荐系统。
2696 0
可能是推荐系统最详细且简单的入门教程
|
机器学习/深度学习 SQL 分布式计算
PAI-Designer中的EasyRec组件和预制推荐模板介绍
EasyRec是一个配置化的企业级推荐算法框架(https://github.com/alibaba/EasyRec),是阿里云PAI平台自研的适用于推荐广告、搜索场景的深度学习算法库,它实现了多种业界常用的模型,包括DSSM、MIND召回模型,DeepFM、多塔、DIN排序模型,还有ESMM、DBMTL、MMoE等多目标排序模型。 本文介绍EasyRec的PAI-Designer组件和预制模板。
537 1
|
机器学习/深度学习 算法
【DSW Gallery】如何使用EasyRec训练DeepFM模型
本文基于EasyRec 0.4.7 展示了如何使用EasyRec快速的训练一个DeepFM模型
【DSW Gallery】如何使用EasyRec训练DeepFM模型
|
机器学习/深度学习 搜索推荐 算法
推荐系统[二]:召回算法超详细讲解[召回模型演化过程、召回模型主流常见算法(DeepMF_TDM_Airbnb Embedding_Item2vec等)、召回路径简介、多路召回融合]
推荐系统[二]:召回算法超详细讲解[召回模型演化过程、召回模型主流常见算法(DeepMF_TDM_Airbnb Embedding_Item2vec等)、召回路径简介、多路召回融合]
推荐系统[二]:召回算法超详细讲解[召回模型演化过程、召回模型主流常见算法(DeepMF_TDM_Airbnb Embedding_Item2vec等)、召回路径简介、多路召回融合]
|
搜索推荐 算法
EasyRec在公开数据集上的benchmark测试
在pai平台上可公开读取的数据集,不用再费劲去下载和处理数据集: Taobao 数据集介绍 Avazu CTR 数据集 AliCCP 数据集 CENSUS 数据集
613 0