机器学习PAI常见问题之配了exporter_type: "final",训练完却没有如何解决

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。

问题一:请教个机器学习PAI问题~不同目标的auc计算时,num_thresholds都是固定的同一个是吧?


请教个机器学习PAI问题~不同目标的auc计算时,num_thresholds都是固定的同一个是吧?

如果是的话,这里会不会拆开比较好呢?


参考回答:

在阿里云机器学习PAI中,不同目标的AUC(Area Under the Curve)计算时,num_thresholds参数并不一定是固定的同一个数值。num_thresholds 参数用于指定计算AUC时划分正负样本的阈值数量,不同的任务和模型可能会有不同的最优阈值数。

例如,在多标签分类或多任务学习场景下,各个任务的目标函数和评价指标可能不尽相同,因此针对每个目标计算AUC时,可以根据实际情况设置不同的num_thresholds

至于是否需要拆开,主要取决于以下因素:

  1. 任务复杂性:若各任务之间差异较大,或者每个任务的最佳阈值分布范围相差很大,可能需要独立设置num_thresholds以获得更精确的AUC估计。
  2. 计算资源:增加num_thresholds会增大计算量,如果计算资源有限,可能需要权衡每个任务的精度和整体计算时间。
  3. 评估准确性:更多的阈值划分可以使AUC曲线更加平滑,从而更精确地反映模型性能,但如果任务间差异不大,或者任务比较简单,过多的阈值划分可能并无太大意义。

总之,在实际应用中,应当根据具体任务需求和计算资源情况灵活设置num_thresholds,不必拘泥于固定的一个数值。在PAI平台上,你可以为每个目标或任务单独配置相应的评估参数。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/593249


问题二:机器学习PAI task里面单独配置后,上面的eval_config就不生效了吗?


机器学习PAI task里面单独配置后,上面的eval_config就不生效了吗?


参考回答:

在阿里云机器学习PAI的某些场景下,如果你在task级别单独配置了与评估相关的参数或设置了不同的评估策略,那么默认的eval_config中的设置可能不会生效,会被task级别的配置覆盖。

举个例子,在PAI-EasyRec中,如果在模型训练任务(Task)的配置中直接指定了评估数据集、评估间隔或者其他评估相关的选项,那么这部分设置将会优先于eval_config中定义的内容被执行。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/593250


问题三:请教一下机器学习PAI为什么我配了exporter_type: "final",训练完却没有呢?


请教一下机器学习PAI为什么我配了exporter_type: "final",训练完却没有export呢,这是我的训练命令:

pai -name easy_rec_ext -project algo_public

-Dconfig=oss://rta-bucket/dssm/dnn_exp/dnn_for_dssm_epoch.config

-Dversion=20210712

-Dcmd=train

-Dtables=odps://ump_ads_dev/tables/dssmtrain${model},odps://ump_ads_dev/tables/dssmtest${model}

-Dcluster='{"worker" : {"count":1, "gpu":100}}'

-Dbuckets="oss://rta-bucket/?role_arn=acs:ram:::role/rta-role&host=oss-cn-hangzhou-zmf-internal.aliyuncs.com"

-Dmodel_dir='oss://rta-bucket/dssm/dnnexp/gpu2${model}_v2/'

-Deval_method=none


参考回答:

在阿里云PAI-EasyRec框架中,exporter_type: "final" 表示在训练结束后导出最终模型。从你提供的命令行参数来看,你配置了训练任务,但没有明确指明导出模型的命令。为了在训练结束后自动导出模型,你需要在EasyRec的配置文件(dnn_for_dnn_epoch.config)中正确设置export相关的参数。

然而,你当前的命令行参数只包含了训练(-Dcmd=train)和评估方法(-Deval_method=none),并没有包括模型导出的相关指令或参数。

为了在训练结束后导出模型,请在你的配置文件(dnn_for_dnn_epoch.config)中确认以下内容:

# 在easy_rec配置文件中添加或确认以下部分
exporters:
  - name: final_model_exporter
    type: final
    model_path: ${your_oss_model_save_path}  # OSS路径保存模型

之后在命令行中确保引用了包含导出配置的文件。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/593251


问题四:机器学习PAI行为序列里面的值,如何用共享embedding啊?


机器学习PAI行为序列里面的值,如何用共享embedding啊?行为序列里面没有 combiner,但是一个kv特征有combiner,然后会报shared embed info is not matched,要共享的是一个类别特征


参考回答:

在阿里云PAI机器学习平台中,如果你想让一个类别特征的embedding与行为序列特征共享同一个embedding矩阵,同时另一个KV特征也共享这个embedding矩阵,但KV特征有自己的combiner,而行为序列特征没有明确指定combiner,这可能会导致共享冲突。

行为序列特征通常会通过序列模型组件(如GRU、LSTM或Transformer等)来处理,这些组件内部会隐含地对序列中的元素进行某种形式的组合(combiner),而不是在特征层面显式定义。

解决共享embedding匹配问题,你可以按照以下步骤操作:

  1. 确保所有要共享embedding的特征都在特征配置(FeatureConfig)中指定了相同的embedding_name属性,这样它们都会引用同一个嵌入层。
  2. 对于KV特征,配置combiner以合并多个key的嵌入向量,例如使用combiner: "mean"combiner: "sum"
  3. 对于行为序列特征,即使它没有明确的combiner属性,也需要确保在模型架构中正确处理序列特征的嵌入向量。序列模型通常会对序列元素逐个嵌入后再通过序列模型进行编码,而不是直接进行简单的向量组合。
  4. 检查模型搭建时,序列特征经过嵌入层后,是否与其他特征在统一的维度上,以便后续能够进行合理的融合或连接操作。

如果仍然出现shared embed info is not matched的错误,可能的原因包括:

  • 特征配置中的维度不一致。
  • 序列特征在模型构建阶段没有正确地与共享的embedding矩阵对接。
  • KV特征的combiner与序列特征处理方式之间存在逻辑冲突,比如序列特征已经隐含进行了某种形式的组合,而KV特征又进行了额外的组合。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/593252


问题五:机器学习PAI一个类别特征,emb共享 序列特征和一个kv特征,我这种应该怎么办呢?


机器学习PAI一个类别特征,emb共享 序列特征和一个kv特征,

序列特征和kv特征的emb name一样,但是kv有combiner,序列是seq combiner

我这种应该怎么办呢?为什么要combiner一样呢?暂时没想明白~还是我对这个操作的具体方式哪里理解有误


参考回答:

在阿里云PAI机器学习平台上,当你处理多种类型的特征并进行嵌入(embedding)时,可能会遇到不同特征使用相同嵌入层的情况。这里的“emb name一样”指的是不同类型特征(如类别特征、KV特征、序列特征)共享相同的嵌入向量空间。

序列特征(Sequence Feature)和键值对(Key-Value,KV)特征虽然都是高维稀疏特征,但它们的处理方式有所不同:

  • 序列特征(例如用户的浏览历史序列)通常会用到专门针对序列结构的嵌入方法,如SeqCombiner,它可以捕捉序列内部的上下文信息和顺序依赖性。
  • KV特征是由一组(key, value)对组成的特征,每一个key都有对应的value,这种特征更适合使用Embedding Lookup + Combiner的方式进行处理,这里的Combiner可能是Average、Sum、Concatenate等多种聚合策略,用于将多个key-value对映射后的嵌入向量进行综合。

如果序列特征和KV特征确实需要使用相同的嵌入层(即共享同一份词典和嵌入向量),但在组合特征时采用了不同的Combiner,这是因为两种特征的结构和含义不同,因此在聚合嵌入向量时采取的策略也不同。

解决办法:

  • 如果需要共享同一个嵌入层,那么在设计模型时,可以先对这两种特征分别做嵌入转换,然后依据特征的性质使用不同的Combiner,最后再将各自处理过的嵌入向量合并到一起参与后续的神经网络结构中。
  • 确保在PAI平台配置模型时,正确区分这两种特征的处理流程,即便它们共享同样的嵌入层名称,也要在模型结构中清晰地标记和区分它们所使用的Combiner类型。

总结来说,即使特征共享相同的嵌入层,但由于特征本身的性质差异,可以并且应该根据特征的特点和需求来使用不同的组合方式(Combiner)。这样做有助于模型更好地理解和捕获不同特征表达的信息。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/593253

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
6月前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI产品使用合集之机器学习PAI的学习方法不知道如何解决
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6月前
|
机器学习/深度学习 人工智能 并行计算
人工智能平台PAI产品使用合集之机器学习PAI中特征重要性的原理不知道如何解决
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6月前
|
机器学习/深度学习 存储 人工智能
人工智能平台PAI产品使用合集之如何通过通用文本标记解决方案文档与PAI机器学习平台一起使用
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
基于PAI-QuickStart搭建一站式模型训练服务体验
【8月更文挑战第5天】基于PAI-QuickStart搭建一站式模型训练服务体验
118 0
|
4月前
|
机器学习/深度学习 存储 分布式计算
PAI机器学习平台如何进行分布式训练?
【7月更文挑战第1天】PAI机器学习平台如何进行分布式训练?
124 1
|
6月前
|
机器学习/深度学习 SQL 人工智能
人工智能平台PAI 操作报错合集之机器学习PAI缺失值补充报错,从odps读取数据正常 进行下一步时,补充缺失值报错如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
机器学习/深度学习 人工智能 NoSQL
人工智能平台PAI产品使用合集之机器学习PAI EasyRec训练时,怎么去除没有意义的辅助任务的模型,用于部署
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6月前
|
机器学习/深度学习 人工智能 运维
人工智能平台PAI产品使用合集之机器学习PAI可以通过再建一个done分区或者使用instance.status来进行部署吗
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6月前
|
机器学习/深度学习 人工智能 API
人工智能平台PAI产品使用合集之机器学习PAI中的sample_weight怎么加在样本中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6月前
|
机器学习/深度学习 人工智能 数据处理
人工智能平台PAI产品使用合集之机器学习PAI EasyRec中的eval_config的使用方法是什么
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。

相关产品

  • 人工智能平台 PAI