EasyRec 使用介绍|学习笔记

简介: 快速学习 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的插件,进行简单的数据存、查、删等操作。
相关文章
|
存储 SQL 缓存
StarRocks常见面试问题(一)
StarRocks常见面试问题(一)
|
6月前
|
存储 搜索推荐 PyTorch
为什么使用 TorchRec 训练和推理更快
本文结合TorchEasyRec实践,从四大维度解析推荐系统加速:1)KeyedJaggedTensor统一变长特征,实现Embedding批量融合查找;2)自动分布式分片突破单卡显存瓶颈;3)TrainPipelineSparseDist流水线并行,重叠通信与计算;4)fbgemm-gpu融合优化器,减少显存访问。端到端提升训练效率与扩展性。
634 9
|
6月前
|
分布式计算 MaxCompute iOS开发
TorchEasyRec 在 macOS 上的功能限制总结
本文总结tzrec在macOS上的功能限制:核心依赖(如torchrec、fbgemm-gpu、graphlearn等)无法安装;分布式训练、原生数据管线、Embedding模块、Triton/CUDA算子、TDM树模型等功能完全不可用;优化器与模型导出部分失效;单元测试大多因强依赖而失败。
349 15
|
6月前
|
搜索推荐 调度 C++
TorchEasyRec的dbmtl 模型 config 详解
DBMTL(Deep Bayesian Multi-Target Learning)是阿里开源的多任务学习模型,显式建模任务因果依赖(如CTR→CVR)。基于TorchEasyRec实现,采用共享Bottom MLP+双Tower结构,CVR Tower融合CTR中间表征,体现贝叶斯条件关系。
371 5
|
机器学习/深度学习 缓存 PyTorch
为什么要用TorchEasyRec processor?
TorchEasyRec处理器支持Intel和AMD的CPU服务器及GPU推理,兼容普通PyTorch模型。它具备TorchEasyRec的特征工程(FG)和模型推理功能,提供更快的推理性能,降低成本。通过Item Feature Cache特性,它能够缓存特征以减少网络传输,进一步提升特征工程与推理的速度。
498 2
|
运维 监控 安全
物联网卡:物联网卡为什么不能使用在手机上
物联网卡(IoT SIM卡)通常是为物联网设备设计的,这些设备包括但不限于智能家居设备、可穿戴设备、工业监控设备等。它们与用于智能手机的SIM卡有所不同,主要是因为设计目标、功能限制、资费结构以及网络接入策略上的差异。以下是物联网卡不能直接在手机上使用的主要原因:
|
搜索推荐 算法
模型小,还高效!港大最新推荐系统EasyRec:零样本文本推荐能力超越OpenAI、Bert
【9月更文挑战第21天】香港大学研究者开发了一种名为EasyRec的新推荐系统,利用语言模型的强大文本理解和生成能力,解决了传统推荐算法在零样本学习场景中的局限。EasyRec通过文本-行为对齐框架,结合对比学习和协同语言模型调优,提升了推荐准确性。实验表明,EasyRec在多个真实世界数据集上的表现优于现有模型,但其性能依赖高质量文本数据且计算复杂度较高。论文详见:http://arxiv.org/abs/2408.08821
761 7
|
人工智能 自然语言处理 API
AI大模型 智能AI开源模型与大模型接口整理(8个开源模型+7个大模型接口)
AI大模型 智能AI开源模型与大模型接口整理(8个开源模型+7个大模型接口)
4008 5

热门文章

最新文章