先知EE
安装部署
  • 问题
  • 答案
  • 新建工程的时候 报错: file-storage error: can't upload file for /users/admin-1/workspace/projects/model/first-blood/.ph-ide/meta.json:   hadoop user can't be null
  • 一般为没有配置hadoop用户导致的,需要在控制台界面添加下hadoop的用户
  • 如何给kubernetes添加自定义dns解析
  • 答:

    第一步:修改./config/custom.sh 配置文件的,下面是example(红色部分是需要按需添加的内容)

    custom_domain='

    a.nihao.com=1.1.1.1

    '

    第二步:然后./bin/deploy.sh base ,让添加的自定义解析生效

    第三步:然后删除kube-system 里面的kube dns 的pod 即可(删除后会产生的新pod,新pod 会使用上新的配置文件)

资源中心
  • 先知平台对上传的数据大小有限制吗?
  • 答:目前对用户单次上传数据的大小是没有限制的,但是管理员可以在后台管理中分配存储资源的大小,若用户上传的数据大于这个限制,那么将会上传失败。
  • 哪些数据适合通过本地上传?
  • 答:数据文件相对较小,小于1GB的数据比较适合通过本地文件来上传,大于1GB的数据建议应用HDFS数据源引入。
  • 通过本地上传的数据一定要有列名称吗?
  • 答:没有要求必须包含字段名,但如果首行存放了字段名,必须要声明。
  • 数据引入的分隔符问题

    hive中的^A \t怎么处理

  • ^A对应先知的soh

    \t对应先知的tab,水平制表符

  • parquet和文本文件的区别,在模型训练过程中这两类格式有什么区别吗
  • parquet是以列进行存储的文件类型,会将文件缩小(X倍以上),在运算时性能提升。
模型调研
  • 为什么特征重要性出来系数全是0.5
  • 答:

    原因一:高级参数中默认mini-batch大小是block_size(块大小)乘以block_count(块数量),当样本数小于mini-batch大小时不会更新权重,导致模型没有经过训练,auc=0.5。减小参数后结果正确。

    原因二:学习率“alpha”(默认为1)过大、训练轮数“training_pass_num”(默认为1)过小。

  • 所有算子不能执行一直处于等待执行状态
  • 检查license,大多由于license配置错误
  • hadoop集群有大量剩余资源,但是任务排队情况严重
  • 检查算子请求的driver资源是否超过集群maximum-am-resource-percent限制的driver能用的资源
  • DAG图中算子之间的链接标准是什么?

    算子之间是否可以连接,是由上游算子的输出文件类型和下游算子的输入文件类型来共同决定的。比如特征抽取算子的输出文件类型为样本表,那么特征抽取算子下游可连接的算子就会是特征重要性分析以及其它各种算法。

  • 算子状态长时间为0%

    检查hadoop集群计算资源,当前是否已经开始任务排队。或本次任务设置资源不合理超过集群已有的资源

  • 算子执行失败,报错 running beyond physical memory limits
  • 检查当前算子资源配置,一般为算子计算需要内存资源大于当前设置内存资源,比如把executor memory增加50%,或者增加spark.yarn.executor.memoryOverhead(默认是exec memory*10%,可以适当翻倍到20%), num数是否下调要考虑预期的运行速度和集群资源配置
  • 算子执行失败,报错 Java Heap Space
  • 检查当前算子资源配置,一般为算子计算需要内存资源大于当前设置内存资源,比如把executor memory增加50%,或者增加spark.yarn.executor.memoryOverhead(默认是exec memory*10%,可以适当翻倍到20%), num数是否下调要考虑预期的运行速度和集群资源配置
  • 算子执行失败,报错org.apache.spark.SparkException: Kryo serialization failed: Buffer overflow.
  • 在算子扩展参数中增加一行spark.kryoserializer.buffer.max=512m
  • 运行算子报错SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS]
  • 检查kerberos配置,一般为客户端没有开kerberos但是集群开了
  • 算子实际运行几分钟,右上角一直显示0秒
  • 检查服务器与客户端时间/时区是否为匹配
应用中心/应用上线
  • 应用上线部署时pod一直crash
  • 先查看自学习dag是否正确,例如是否接入了数据组;

    查看其他的form.ui的配置是否正确,或者是否有没有填的参数;

    确认数据库配置是否正确(默认是使用和先知一起搭建的数据,要是数据库在外面就需要更换数据库地址);

    最后查看日志,进入到容器里面去查日志;一般日志都写得很清楚;

  • 应用服务定时任务执行失败
  • 查看dag数据组的数据是否存在或异常;

    查看运行步骤节点check状态,一般都有具体报错信息

    如果是pws上有算子失败导致的异常,可以查pws的运行日志

中间件
  • 如何查看先知当前系统健康情况
  • 登录先知PMS模块,可以查看当前系统CPU/内存/磁盘/网络消耗情况,也可以深入了解每个业务的资源消耗
  • 如何查看先知服务日志
  • 登录先知PMS模块,可以查看所有业务的系统服务日志
  • 先知是否能查看日志告警信息
  • 可以通过PMS模块的告警接口配置对应的告警策略,实现实时告警
管理平台
  • 系统监控和日志查看都不能正常使用,如何排查
  • 登录服务器检查es相关pod是否正常,如果不正常/bin/kc describe pod $pod -n elastic 可以看到这个容器上一次挂掉的原因
AutoML
  • 问题
  • 答案
  • AutoML支持哪几种数据的数据引入?
  • AutoML目前本地引入仅支持CSV文件, HDFS引入仅支持CSV和Parquet文件格式.
  • 什么是行为数据, 什么是反馈数据?
  • 行为数据是与业务预测目标有关的每一条历史记录的所有特征数据, AutoML要求行为数据必须包含一个主键字段(用于区分每一条行为记录)

    反馈数据是与业务预测目标相关的每一条历史记录的对应的实际反馈数据, AutoML要求反馈数据必须包含一个主键字段(用于把一条反馈数据关联对应的行为数据),还需要一个Label字段,用于表明一条行为记录最终的实际反馈.

  • 行为数据组和反馈数据组中的数据切片是个什么含义?
  • 数据切片是一次数据引入后的一个数据表, 一次数据引入生成一个数据切片.
  • 行为数据组和反馈数据组中的数据切片是个什么含义?
  • 是的, 数据切片选取是按照导入时间的倒序来选取的, 比如切片范围从1到1, 那么选取的切片就是最近一次导入的切片, 从1到2, 选取的是最近导入的两个数据切片, 从2到2选取的是最近导入的倒数第二个数据切片.
  • 模型探索使用手动停止策略, 如果不手动停止会一直探索下去吗?
  • 不会的, 如果选择了手动停止策略, 在探索35轮左右会探索完成, 结束探索.
  • 模型工厂是什么?
  • 模型工厂是根据模型探索得出的最优探索方案, 可以选择新的数据, 设置循环策略(包括单次运行, 循环运行, crontab表达式)来训练模型, 训练出来的模型可以部署批量预估服务和在线预估服务.
  • 部署批量预估可以根据哪几种策略来选择模型?
  • 部署批量预估的时候, 可以根据最优模型, 最新模型和指定模型来选择模型的.
  • 部署在线预估时的数据回流是什么?
  • 数据回流, 是说将在线预估的请求数据回流到行为数据组, 那么在将实际的反馈数据导入之后, 就可以再次进行模型探索和训练, 形成一个数据的闭环.
AutoCV
数据
  • 问题
  • 答案
  • 数据引入失败怎么办?
  • 数据类型上传后显示"不可用",请先对照文档自查标注信息的格式是否正确,如果是本地上传数据,请先检查已上传的压缩包是否包含图片文件和标注信息的meta文件,其次,请检查meta文件指定的路径是否为相对路径。

    如果自查没有发现问题可以公众号留言,我们会尽快联系解决。

训练过程
  • 为什么会训练失败?
  • 训练失败有很多原因,最有可能的是内存太小,请尝试增加内存配置,或者调小训练参数中的迭代次数。
  • 为什么训练进度一直是0?
  • 因为现有集群的资源小于您所申请的资源,实验会进行排队状态,建议释放掉其他占用资源的实验。
  • 如何加速算法训练?
  • 训练模型的复杂度跟当前用户可用的环境,数据量,和算法网络结构都有关系。可以通过在训练好的模型基础上进行继续训练,这样可以大大缩短达到同样效果所需要的训练时间,目前每个模型都提供了一个较为通用的预训练模型做迁移训练,在实验配置的时候选择专家模式,勾选上预训练模型,即可加速训练过程。
  • 为什么要上线多实例?
  • 实例代表着在一个应用中,同时运行的服务数量为实例数,用户可以通过实例数的配置进行流量的切分。多实例可以实现应用高可用,并且可以增加应用的吞吐量,请求压力会在不同实例间负载均衡。
  • 为什么应用关联不到指定实验?
  • 上线时只展示训练成功的模型,找不到的实验应该是运行失败或者正在运行中,可以在项目中心-->实验列表中查看模型是否训练成功。