EasyRec 使用介绍|学习笔记

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 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 文件。

相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
相关文章
|
机器学习/深度学习 缓存 PyTorch
为什么要用TorchEasyRec processor?
TorchEasyRec处理器支持Intel和AMD的CPU服务器及GPU推理,兼容普通PyTorch模型。它具备TorchEasyRec的特征工程(FG)和模型推理功能,提供更快的推理性能,降低成本。通过Item Feature Cache特性,它能够缓存特征以减少网络传输,进一步提升特征工程与推理的速度。
354 2
|
机器学习/深度学习 人工智能 数据管理
文生图的基石CLIP模型的发展综述
CLIP(Contrastive Language-Image Pre-training)是OpenAI在2021年发布的多模态模型,用于学习文本-图像对的匹配。模型由文本和图像编码器组成,通过对比学习使匹配的输入对在向量空间中靠近,非匹配对远离。预训练后,CLIP被广泛应用于各种任务,如零样本分类和语义搜索。后续研究包括ALIGN、K-LITE、OpenCLIP、MetaCLIP和DFN,它们分别在数据规模、知识增强、性能缩放和数据过滤等方面进行了改进和扩展,促进了多模态AI的发展。
2979 0
|
12月前
|
SQL 分布式计算 DataWorks
使用DataWorks PyODPS节点调用XGBoost算法
本文介绍如何在DataWorks中通过PyODPS3节点调用XGBoost算法完成模型训练与测试,并实现周期离线调度。主要内容包括:1) 使用ODPS SQL构建数据集;2) 创建PyODPS3节点进行数据处理与模型训练;3) 构建支持XGBoost的自定义镜像;4) 测试运行并选择对应镜像。适用于需要集成机器学习算法到大数据工作流的用户。
501 24
|
11月前
|
存储 分布式计算 API
基于PAI-FeatureStore的LLM embedding功能,结合通义千问大模型,可通过以下链路实现对物品标题、内容字段的离线和在线特征管理。
本文介绍了基于PAI-FeatureStore和通义千问大模型的LLM embedding功能,实现物品标题、内容字段的离线与在线特征管理。核心内容包括:1) 离线特征生产(MaxCompute批处理),通过API生成Embedding并存储;2) 在线特征同步,实时接入数据并更新Embedding至在线存储;3) Python SDK代码示例解析;4) 关键步骤说明,如客户端初始化、参数配置等;5) 最佳实践,涵盖性能优化、数据一致性及异常处理;6) 应用场景示例,如推荐系统和搜索排序。该方案支持端到端文本特征管理,满足多种语义理解需求。
354 1
|
搜索推荐 算法
模型小,还高效!港大最新推荐系统EasyRec:零样本文本推荐能力超越OpenAI、Bert
【9月更文挑战第21天】香港大学研究者开发了一种名为EasyRec的新推荐系统,利用语言模型的强大文本理解和生成能力,解决了传统推荐算法在零样本学习场景中的局限。EasyRec通过文本-行为对齐框架,结合对比学习和协同语言模型调优,提升了推荐准确性。实验表明,EasyRec在多个真实世界数据集上的表现优于现有模型,但其性能依赖高质量文本数据且计算复杂度较高。论文详见:http://arxiv.org/abs/2408.08821
625 7
|
机器学习/深度学习 存储 搜索推荐
可能是推荐系统最详细且简单的入门教程
本文将深入介绍推荐系统的工作原理,和其中涉及的各种推荐机制,以及它们各自的优缺点和适用场景,帮助用户清楚的了解和快速构建适合自己的推荐系统。
2908 0
可能是推荐系统最详细且简单的入门教程
|
机器学习/深度学习 算法 搜索推荐
多任务学习模型之DBMTL介绍与实现
本文介绍的是阿里在2019年发表的多任务学习算法。该模型显示地建模目标间的贝叶斯网络因果关系,整合建模了特征和多个目标之间的复杂因果关系网络,省去了一般MTL模型中较强的独立假设。由于不对目标分布做任何特定假设,使得它能够比较自然地推广到任意形式的目标上。
|
搜索推荐 算法
EasyRec在公开数据集上的benchmark测试
在pai平台上可公开读取的数据集,不用再费劲去下载和处理数据集: Taobao 数据集介绍 Avazu CTR 数据集 AliCCP 数据集 CENSUS 数据集
877 0
|
机器学习/深度学习 算法
【DSW Gallery】如何使用EasyRec训练DeepFM模型
本文基于EasyRec 0.4.7 展示了如何使用EasyRec快速的训练一个DeepFM模型
【DSW Gallery】如何使用EasyRec训练DeepFM模型
|
机器学习/深度学习 分布式计算 算法
深度解析开源推荐算法框架EasyRec的核心概念和优势
如何通过机器学习PAI实现快速构建推荐模型