智能工作室常见问题

智能工作室常见问题

问:在 Notebook 中访问 HDFS/HIVE 中的数据,需要哪些准备工作?

答:在 Notebook 中访问 HDFS/HIVE 中的数据,需完成以下准备:

  1. 通过 资源管理 页面申请容器计算资源时,选择 “启用HDFS、数据仓库的数据读取权限”。

  2. 通过 智能工作室 > 资源配置 > 存储配置 页面添加存储时,使用已启用 HDFS 和数据仓库的数据读写权限的资源池,同时指定使用模块为 Lab 的存储。

  3. 在新建 Notebook 实例时,选择 spark 或 pyspark 镜像(目前只有这两个镜像有Java运行环境),同时在数据存储部分选择 挂载Hadoop PVC 选项。

  4. 打开 Jupyter Notebook,在 Terminal 中输入 kinit -kt /etc/security/keytab/data_xxxxx data_xxxxx@ENIOT.IO (xxxxx为对应的OU帐号),更新 Ticket。

问:如何使用 Python 从 HIVE 中获取大量数据做模型训练?

答:数据量不太大的情况下,可以使用 pyhive。数据量大时,可以考虑直接获取 HDFS 文件到本地后做处理。可通过 HIVE SQL 将数据处理后压缩成 ORC 格式的文件,然后再使用 pyarrow 包处理 ORC 文件。

问:在 Notebook 里如何实现协作共享?

答:在不同的 Notebook 实例中,可通过挂载相同的 PVC 存储实现协作共享。

问:在 Notebook 里切换环境或其它操作后导致内核无法正常启动,应该如何解决?

答:可在 Terminal 中运行 python3 -m ipykernel install --user 命令恢复。

问:在 Notebook 里是否可以添加新的 Kernel?

答:可以,参考使用以下命令:

conda create -n py36-test python=3.6
source activate py36-test
conda install ipykernel
python -m ipykernel install --name py36-test
conda deactivate

问:为什么我的 Notebook 在使用一段时间后,每次打开 Notebook 实例会变慢?

答:Notebook 实例打开后,可能会创建并打开 Kernel Session 或 Terminal Session。关闭 Notebook 后,这些 Session 并不会自动关闭,便于在下次进入 Notebook 时,可以直接从 Session 里恢复。请手动关闭不再使用的 Session。

问:在 Notebook 里手动安装了一些包后,出现包依赖的问题。如何恢复到最初创建 Notebook 实例时的状态?

答:在 Notebook 菜单中,选择 File > Shut Down,关闭 Notebook 页面后,再重新进入 Notebook 即可。

问:我能否修改 Notebook 中自带的 Python 版本?

答:智能实验室 Notebook 自带 Python 3.7 版本。 你可以通过添加 kernel 的方式修改 Python 版本。推荐使用系统自带版本,避免在模型上架上线过程中出现兼容性问题。

智能集市常见问题

问:在调用模型服务API过程中,如果输入传参数据量大或模型计算时间长会导致访问API的 timeout 报错,应该如何解决?

答:在部署模型版本实例的画布中,可以对访问模型服务 API 设置 timeout 时限,最大可设置 600000ms 的时长。用户在编辑模型时可以修改该参数。

问:使用 MLflow 1.10.0 版本时,会出现兼容性问题,导致模型版本不能成功上架。应该如何解决?

答:智能工作室默认在智能集市和智能实验室中集成了 MLflow 1.8 版本。如果用户自行升级 MLflow 到 1.10.0 版本或在外部模型开发过程使用高版本的 MLflow,一定需要使用 MLflow 1.8 以下版本的 artifacts 文件才能上架模型版本。

问:通过智能集市部署的模型服务地址只能从集群内部调用。跨集群环境下,如何调用部署模型提供的服务?

答:如需对外使用部署模型提供的服务,需要将服务挂载到 EnOS APIM 上,以提供鉴权、流控等管理功能。在外部集群使用模型服务地址时,一定要经过 EnOS APIM 挂载,将内部地址转换成外部调用地址。有关 EnOS APIM 的详细信息,参见 有关API管理

问:调用模型服务的过程中,可使用鉴权的范围是什么?

答:在调用智能工作室模型服务时,尽可能在非 Seldon SDK 的方式下使用鉴权功能。考虑到是内部调用,所以不对内部调用的 REST 和 GRPC 进行鉴权控制。

问:每次调用模型服务的时间长短不一,该如何改善调用时间的稳定性?

答:可以尝试增大部署模型时的内存需求,通过 Postman 请求模型进行测试。

智能任务流常见问题

问:智能工作室的智能任务流产品和 EnOS 数据管理的任务流都有调度功能,二者的区别是什么?

答:EnOS 数据管理的批数据处理任务流用于对数据的同步和数据的加工处理。目前支持结构化数据的同步及处理、文件的同步、及基于大数据平台或基于 Shell 和 Python 的加工处理等。面向的对象是数据工程师。

智能工作室的智能任务流用于机器学习的整个生命周期管理,包括数据准备处理、模型训练、模型上架和上线、模型的预测等。面向对象是数据科学家。

问:运行时,针对高并发的情况是如何控制并发度的?

答:任务流可通过以下方法分级控制并发度:

  • 通过运行时最大并发数的设置,可控制每个任务流同一时刻的最大run的数量

  • 通过任务流的高级本置参数 “最大pod数量”,可控制单个任务流的最大并发pod数

  • 通过在 ParallelFor 算子里的并发数设置,可控制 ParallelFor 对应item的并发数

  • 通过 ParallelFor 算子里最大pod数量的设置,可控制 ParallelFor 下对应算子的并发度。

通发以上4个参数的控制,可以实现对整个任务流从run到pod的精细控制。

问:任务流算子之间是否可以传递数据?

答:可以。可以通过 File 或 Directory 类型算子的参数传递数据。

问:任务流中某个算子运行出错后,是否支持从出错处运行?

答:支持。在任务流运行实例详情页面,选择 重试 即可。需要注意的是:重试只针对偶发错误,如果报错后修改了算子的参数配置,重试时并不生效。其次任务流有超时设置,一旦超过了超时设置的时间,重试无效。

问:如何查看任务流运行时的资源使用情况?

答:可在任务流运行实例详情中查看 pod 名称,然后根据 pod 名称在 Grafana 里查看监控 pod 运行资源的占用情况。

资源管理常见问题

问:通过 资源管理 申请的资源是怎样对应到智能工作室的?为什么会有请求值和上限值两种?

答:通过 资源管理 申请的资源请求值和上限值对应的是资源池的配额,智能实验室在该资源池下的系统组件运行,模型服务,Notebook 实例和算子运行等的资源消耗总和不得超过此配额。 请求值是容器使用的最小资源需求,作为容器调度时资源分配的判断依据。只有当 Pod 上可分配资源量大于或等于容器资源请求值时才允许将容器调度到该节点。上限值是容器能使用资源的最大值,配置上限值可以防止某个 Pod 无限制地使用资源,导致其他 Pod 崩溃。更多信息可参考Kubernetes文档

问:当 Notebook 实例挂载的 PVC 不足时,如何进行扩容?

答:通过以下步骤进行 PVC 扩容:

  1. 智能实验室 页面中选择目标实例的 查看

  2. 在实例详情页面的存储中记录下目标实例挂载的 PVC。

  3. 资源配置 > 存储配置 页面选择目标 PVC 的 扩容

  4. 在弹窗中配置此 PVC 的容量并选择确认完成 PVC 扩容。

  5. 重启 Notebook 实例。