问题一:机器学习PAI少 include 了什么吗?
机器学习PAI少 include 了什么吗?
参考回答:
可以参考这 https://deeprec.readthedocs.io/zh/latest/Group-Embedding.html#id6fitz
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/506087?spm=5176.8068049.0.0.77566d1989YhJO
问题二:请问机器学习PAI中不用加 --config=cuda 就能编译出gpu版本吗?
请问机器学习PAI中 bazel build --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --host_cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" -c opt --config=opt //tensorflow/tools/pip_package:build_pip_package 不用加 --config=cuda 就能编译出gpu版本吗?
参考回答:
看你是否config了,检查文件 .tf_configure.bazelrc 是否有CUDA相关的配置,build是读取这个配置文件 build --action_env CUDA_TOOLKIT_PATH="/usr/local/cuda"
build --action_env TENSORRT_INSTALL_PATH="/usr/local/TensorRT-8.4.2.4"
build --action_env TF_CUDA_COMPUTE_CAPABILITIES="6.0,6.1,7.0,7.5,8.0"
build --action_env LD_LIBRARY_PATH="/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/TensorRT-8.4.2.4/lib" build --action_env GCC_HOST_COMPILER_PATH="/usr/bin/gcc"
build --config=cuda ,如果config的时候cuda选yes,可以不用加—config=cuda,或者默认加上就行
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/506086?spm=5176.8068049.0.0.77566d1989YhJO
问题三:机器学习PAI中DeepRec 的 PS有针对梯度的延迟更新做一些功能吗
请问一下,机器学习PAI中DeepRec 的 PS有针对梯度的延迟更新做一些功能吗?(比如某个 worker 太慢了,导致回传的梯度 out of date,PS是否会做一些过滤)。感觉应该是跟 StarServer 相关?但是看文档感觉不是很明确
参考回答:
是和optimizer相关的功能,其中adagraddecay就是针对这种场景的,大家很容易通过embeddingvariable来扩展实现自己的过期梯度的打折策略,embeddingvariable中记录着每个特征的version
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/506085?spm=5176.8068049.0.0.77566d1989YhJO
问题四:机器学习PAI中这个定长和变长怎么理解?
机器学习PAI中如果是定长的, DataFrame.Field('A', tf.int64, shape=[32]);如果是变长的,DataFrame.Field('A', tf.int64, ragged_rank=1)。这个定长和变长怎么理解? 我发现虽然我的数据都是20个长度的,但是要用ragged_rank=1才能读出来。has unexpected ragged rank 1, which should be 4如果长度是1的,不会报错has unexpected ragged rank 1, which should be 20
参考回答:
在机器学习PAI中,定长和变长指的是输入数据的特征长度是否固定。如果特征长度是固定的,就称之为定长,反之就称之为变长。
在定长的情况下,你可以使用shape参数指定每个特征的长度,例如DataFrame.Field('A', tf.int64, shape=[32])表示特征A是一个长度为32的定长特征。
而在变长的情况下,特征的长度是不固定的,因此不能使用shape参数来指定长度。相反,你需要使用ragged_rank参数指定RaggedTensor的秩,以处理变长特征。RaggedTensor是一种可以表示不规则形状数据的Tensor类型,它能够灵活地处理变长特征,在处理变长特征时,需要使用ragged_rank参数来指定RaggedTensor的秩。
对于你的问题,即使你的特征都是长度为20的,但是如果你在定义特征时使用了ragged_rank=1,则会将特征解析为变长特征。因此需要使用相同的方式来定义特征,以确保在训练和测试时特征的解析方式是一致的。
如果你定义的特征长度是1,而使用了ragged_rank=1,则不会出现问题,因为长度为1的特征可以视为变长特征中的一种特殊情况。但是如果你定义的特征长度是20,而使用了ragged_rank=1,则会出现错误提示"has unexpected ragged rank 1, which should be 20",因为ragged_rank参数应该是特征长度的秩,而不是1。
Regenerate response
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/506084?spm=5176.8068049.0.0.77566d1989YhJO
问题五:请问下列机器学习PAI这个问题有遇到过吗?
export NCCL_SHM_DISABLE=1 NCCL_DEBUG=INFO export CUDA_VISIBLE_DEVICES=0,1; horovodrun -np 2 python train.py --batch_size 2048 --steps 200 --group_embedding=collective --ev true --input_layer_partitioner 0 --data_location=/root/data --workqueue=true --parquet_dataset=false --smartstaged=false Unknown: ncclCommInitRank failed: invalid usage
请问机器学习PAI这个问题有遇到过吗? 压缩了一下deeprec gpu版image, fitzwang/deeprec:latest
参考回答:
检查一下NCCL和horovod安装的正确吗
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/506083?spm=5176.8068049.0.0.77566d1989YhJO