VGPU的使用 开源项目,欢迎star哦,训练AI模型以及部署模型推理服务时,GPU往往是必不可少的,但当我们机器上没有足够的GPU卡可使用时,多任务并行就会有困难。针对这个问题,cube-studio上可以使用VGPU,相当于将一张GPU卡当成多张来使用,从而实现多卡多应用占用。以下我们举例说明,如何通过VGPU配置,实现推理服务的VGPU占用。
Cube-Studio:开源大模型全链路一站式中台 Cube-Studio是由腾讯音乐开源的一款云原生一站式AI中台,覆盖机器学习/深度学习/LLM大模型,开发、训练、推理、应用,全链路。该项目目前已是国内最火的开源算法全链路中台,上千家企业私有化部署和项目交付,非常适合数据算法架构团队搭建公司级AI中台,以及toB企业算法中台类项目交付。
label studio数据标注平台的自动化标注使用 开源项目,欢迎star哦,做图文音项目过程中,我们通常会需要进行数据标注。label studio是一个比较好上手的标注平台,可以直接搜索label studio使用,也可以在cube studio中使用,在cube studio中不仅可以直接使用原生的label studio,还打通了模型训练和数据存储,可以直接使用我们自己训练好的AI模型,对我们的图文音数据来进行自动化标注。
单门户上集成多种数据库查询入口 在一家公司,我们通常会有多种数据库,每种数据库因为其特性承担不同的角色,比如mysql这种轻量级数据库,很适合存储元数据,hive适合用于分布式存储,clickhouse可以做极快速的大数据查询。如果我们同时有k8s集群,又有多种数据库,来回切换操作也是很麻烦的事情,如果能在一个入口对接所有的数据库,同时链接到k8s集群,就省心很多。
WEB界面上使用ChatGPT 可以使用gpt4、gpt3.5,还有添加了不同先验知识的其他版本的智能问询,比如具备python先验知识的python版本,比如加入了cubestudio本身的先验知识的cubestudio版本,通过先验知识的添加,结合gpt的智能,生成可以更准确解答特定问题的私有知识库。项目有体验地址,也可以根据github上的部署文档自行部署,部署之后即可使用。进入平台WEB界面后,点击“数据智能”,可看到不同版本的智能问询。
k8s部署presto 这个报错的原因是没有装less,是presto用来分页的工具,在初始化脚本里已添加了,加上之后就没问题了。虽然能正常使用presto了,但是k8s中显示presto-worker的deployment有BUG,,自己打包也可以,自己写个dockerfile。jdk用的华为的镜像源,不用登录oracle。启动脚本和Presto配置文件。,应该是健康检查出了问题。,记得在环境变量里加上。配置Hive连接文件。
k8s中部署hive,包括客户端及服务端 推送好之后,在cube studio平台上,新建一个pipeline,使用自定义镜像模板,填写镜像为ccr.ccs.tencentyun.com/cube-studio/hadoop-hive:v3.3.2-3.1.3,debug,检查目录对不对,检查环境变量是否正确,在命令行输入hive命令,看是否能正常执行。环境变量写在/etc/profile更好,因为~/.bashrc是临时的,重启一下pod就复原了,但/etc/profile是全局的,避免一直要重复设置。登录ui界面,可以验证是否成功。
在k8s中部署hadoop后的使用,包括服务端及客户端(客户端的安装及与k8s服务的对接) 在和这两篇文章中,说明了如何通过helm和k8s部署hadoop,接下来就看怎么在部署好的集群中使用hadoop了。
helm安装hadoop报错:kubernetes cluster unreachable: get “http://localhost:8080/version“ 于是执行这条命令,发现执行不成功,无法将kubeconfig写入~/.kube/config,文件不存在,也无法通过这条命令创建,但是这个报错存在就是因为helm使用的是kubeconfig,会去寻找这个默认的配置文件,那我们换个思路,手动创建这个配置文件。第二步是直接新建一个文件~/.kube/config,把kubeconfig内容粘进去,再执行helm安装hadoop的命令,就成功了。参考链接:https://github.com/k3s-io/k3s/issues/1126。
helm部署hadoop 比如我现在只有1个datanode,我想改成3个datanode,复制粘贴配置信息到values.yaml(没有就自己创建),更改datanode的replicas为3,先卸载,再重新执行install命令。如果需要修改配置,在官方仓库中,点击default values按钮,可以获取默认的配置,将配置信息粘贴到values.yaml,通过helm uninstall卸载后,再通过命令。可以根据新配置重新部署。
influxdb2使用 influxdb2是不支持sql的,在web界面可以看到具体的使用命令,比如写入数据,可以直接用influx write命令来写,下面我们尝试把一个csv文件写入数据库,再查询。在页面上,data-bucket-submit可以查看,但是看不太懂那个图,再用官方示例数据试试。先在k8sdashboard找到influx的pod,点击执行,即可进入命令行界面。influxdb2首次使用时,通过k8s部署的,所以进入pod内部执行命令。除了命令行,直接通过ip+端口的形式也是可以访问web界面的。
k8s部署InfluxDB pv和pvc都创建成功,但dp显示no such file or directory,说明读取不到主机路径,修改了rancher的配置,加入了/home目录,就可以了。主机看到的和实际pv挂载的路径不一致,实际默认根目录是/data.根据配置文件创建configmap。
datax错误记录:1. 找不到插件[streamwriter,clickhouse];2.有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数 datax使用clickhouse导出数据时配置json的官方文档:https://github.com/alibaba/DataX/blob/master/clickhousereader/doc/clickhousereader.md。这个问题我用的是偷懒的方法,直接把json配置中的speed下面的byte参数删掉了,只保留了channel,问题解决,也有更复杂的办法,修改datax的配置的,我没有去动datax的配置,网上也能搜到,这里不赘述了,
使用helm部署clickhouse 这个问题的解决方案,目前只找到一个修改权限,改为root权限的,可能不是最好的,但修改后确实pod可用了,具体是将zk-clickhouse的yaml文件中的spec部分修改securityContext,原来都是1000,没有创建文件的权限。ot权限后,再重启pod依然是ok的,猜测可能是后续不需要再创建文件夹了,因为挂载目录下的文件夹已经存在,其他操作又都不需要root权限。比较神奇的事情是,一开始不是root权限,修改为root权限后,文件夹创建成功,再修改为非ro。部署clickhouse客户端。
dolphin schedulerAPI调用(二)——创建任务 工作流code、项目code、上流节点code等可以在后端是数据库查询,可以在k8s上查看一下起的数据库是mysql还是postgresql,我这边是postgresql,根据values.yaml中配置的账号密码信息登录到数据库,可以查询到code。实际使用中,发现文档写得很不全乎,创建任务的api接口不对,具体的传参文档中也没写全,于是决定直接在前端查看创建任务实际调用的api,以及传递的参数。打开dolphinscheduler的界面,右键,检查,选择network,提交任务,查看api及参数。