问题一:机器学习PAI我配置了负采样表,但是不知道在训练样本里label_fields该怎么设置?
机器学习PAI我们场景里,目前只有用户的搜索的指定类型的数据,没有负样本,所以我们的训练样本标签都为1,预备从负采样表中采样负样本作为0。我配置了负采样表,但是不知道在训练样本里label_fields该怎么设置?
参考答案:
都设置为1.就是表中 “标签都为1的” 那一列的列名
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/573252
问题二:请教一下机器学习PAI,如果使用DSSM负采样版本,我们的label_fields应该怎么配置?
请教一下机器学习PAI,如果使用DSSM负采样版本,训练数据只有正样本,我们的label_fields应该怎么配置?这个项目直接置空吗?
参考答案:
你框里面的是指的训练的模型的目标字段名称,和负采样没有关系了。负采样相关的配置只限制在 negative_sampler{} 里面
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/573250
问题三:机器学习PAI这里的model_path应该填哪个path呢?
机器学习PAIexport过程优先使用ckpt_path,ckpt_path没有就使用model_path,但是没有model_path会报错:
参考答案:
在 tensorflow 的接口里面,model_dir 和 checkpoint_path 一般不等价,model_dir 里面除了 checkpoint path, 还会有计算图和其它元数据,所以一般不能用 checkpoint_path 来代替 model_dir 。
这个地方的 Dconfig 应该使用你 model_dir 里面的那个 pipeline.config, 这个 pipeline.config 里面有 model_dir 这个信息,这样的话你可以直接按文档来:https://easyrec.readthedocs.io/en/latest/export.html
如果你的 config 没有 model_dir 的信息,没有的话就需要手动指定一下参数 Dmodel_dir, 原因是虽然同时有 model_dir 和 checkpoint_path 的时候我们会用 checkpoint_path 来加载 checkpoint (见代码:https://github.com/alibaba/EasyRec/blob/master/easy_rec/python/main.py#L772), 但是在加载 checkpoint 之前会有一个建立 estimator 的操作 (见代码:https://github.com/alibaba/EasyRec/blob/master/easy_rec/python/main.py#L763),这个操作复用了 tensorflow 的 api, 里面会要求传入 config.model_dir, 然后如果为空的话 tensorflow 的这个接口会报错 (见代码:https://github.com/alibaba/EasyRec/blob/master/easy_rec/python/main.py#L137)。
所以最后总结,最好直接用 model_dir 里面的 pipeline_config, 可以直接按文档来:https://easyrec.readthedocs.io/en/latest/export.html ,如果你的 config 里面没有的话最好在 config 里面写上 model_dir 或者指定 Dmodel_dir 。然后在 tensorflow 里面认为 model_dir 和 checkpoint_path 不等价,整个导出的过程不只是有加载 checkpoint 这一个操作,还会有别的操作需要用到 model_dir 。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/573249
问题四:机器学习PAI不拆塔获取的结果和拆塔获取的结果应该是一样的吧?
机器学习PAI双塔DSSM我们想获取item emebdding和user embedding,不拆塔获取的结果和拆塔获取的结果应该是一样的吧?不拆塔,item侧填随机数
参考答案:
在机器学习 PAI 中,对于双塔 DSSM 模型获取 item embedding 和 user embedding 的情况,拆塔和不拆塔获取的结果是有所不同的。
- 拆塔获取结果:在拆塔的情况下,通过分别训练 item 塔和 user 塔,我们可以得到分别用于表示 item 和 user 的 embedding。这些 embedding 是在训练过程中学习到的,能够捕捉到 item 和 user 的语义信息。因此,item embedding 和 user embedding 是分别独立学习的,它们在数值上可能存在差异。
- 不拆塔获取结果:在不拆塔的情况下,将 item 和 user 作为一个整体输入模型,并一起进行训练。在这种情况下,item embedding 和 user embedding 是共享参数的,即它们会被同时调整以最小化损失函数。由于共享参数,item 和 user 在嵌入空间中具有相似的表示,因此 embedding 在数值上可能更加接近。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/573248
问题五:提一个机器学习PAI问题:在ODPS使用训练好的DSSM负采样版本,请问这个的主要原因是什么呢?
提一个机器学习PAI问题:在ODPS使用训练好的DSSM负采样版本,(指定保存好的.pb模型文件的路径)对比( 指定保存好的.pb模型文件 + 指定checkpoint_path )在同样的数据集上进行evaluate,效果差别非常大,请问这个的主要原因是什么呢?
参考答案:
你加不加评估的不是同一个模型,优先使用checkpoint_path,没有checkpoint_path才使用model_dir
说错了,export是可以用checkpoint_path的
checkpoint_path 优先级 比 model_dir 高
代码在这里,也可以参考代码里面看一下:
https://github.com/alibaba/EasyRec/blob/master/easy_rec/python/main.py#L387
https://github.com/alibaba/EasyRec/blob/master/easy_rec/python/main.py#L674
https://github.com/alibaba/EasyRec/blob/master/easy_rec/python/main.py#L718
关于本问题的更多回答可点击进行查看: