本文为您介绍dsdemo代码所有功能板块, 以及详细的使用说明。
前提条件
已创建DataScience集群,详情请参见创建Data Science集群。
下载dsdemo代码:请已创建DataScience集群的用户,使用钉钉搜索钉钉群32497587加入钉钉群以获取dsdemo代码。
config配置
# cat config
# !!! Extremely Important !!!
# !!! You must use A NEW EXP different from others !!!
EXP=exp1
# !!! ACR, Make sure NAMESPACE is public !!!
# kubectl create secret docker-registry regcred --docker-server=registry-vpc.cn-beijing.aliyuncs.com --docker-username=xxx --docker-password=yyy --docker-email=abc@hotmail.com
REGISTRY=registry-vpc.cn-beijing.aliyuncs.com
NAMESPACE=dsexperiment
IMAGE_SECRET=regcred
USERNAME=AAAAAAAA
PASSWORD=BBBBBBBB
# default storage class
# On EMR ECS: nfs-client
# On Aliyun ACK: alibabacloud-cnfs-nas
DEFAULT_STORAGECLASS=nfs-client
# k8s namespace, must be same with username when you are using sub-account.
KUBERNETES_NAMESPACE=default
# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep k8s-dashboard-admin | awk '{print $1}')
KUBERNETES_DASHBOARD_HOST=http://123.57.**.**:32699
# ingress domain
INGRESS_DOMAIN=baidu.com
# PREFIX, could be a magic code.
PREFIX=prefix
# sc
NFSPATH=/mnt/disk1/k8s_pv/default_storage_class/
#NFSPATH=/mnt/disk1/nfs/ifs/kubernetes/
# ak/sk for access oss
OSS_ENABLE=false
OSS_AKID=AAAAAAAA
OSS_AKSECRET=BBBBBBBB
OSS_ENDPOINT=oss-cn-beijing-internal.aliyuncs.com
OSS_BUCKETNAME=dstest-beijing
OSS_DIR=
# !!! Do not change !!!
OSS_OBJECTNAME=%%EXP%%_faissserver/item_embedding.faiss.svm
# ak/sk for access oss
OSS_HDFS_ENABLE=false
OSS_HDFS_AKID=AAAAAAAA
OSS_HDFS_AKSECRET=BBBBBBBB
OSS_HDFS_ENDPOINT=cn-beijing.oss-dls.aliyuncs.com
OSS_HDFS_BUCKETNAME=dstestossmnt-beijing
OSS_HDFS_OBJECTNAME=test/1.csv
OSS_HDFS_DIR=
# hdfsmount
# example:
# 192.168.**.**:9000 192.168.**.**:8020
HDFS_ENABLE=false
HDFS_MOUNTPOINT=192.168.32.114:9000
HDFS_DIR=
# nasmount
NAS_ENABLE=false
NAS_AKID=AAAAAAAA
NAS_AKSECRET=BBBBBBBB
NAS_MOUNTPOINT=1ac8f48ac1-idh23.cn-beijing.nas.aliyuncs.com
NAS_DIR=
# s3mount
S3_ENABLE=false
S3_AKID=AAAAAAAA
S3_AKSECRET=BBBBBBBB
S3_ENDPOINT=s3.us-west-1.amazonaws.com
S3_REGION=us-west-1
S3_BUCKET=dstests3
S3_DIR=
# region
REGIONID=cn-beijing
# emr-datascience clusterid
CLUSTERID="c-5777b31dbdfa****"
# HDFSADDR, train/test dir should be exist under $HDFSADDR, like
# user
# └── easy_rec
# ├── 20210917
# │ ├── negative_sampler
# │ │ ├── n0.csv
# │ │ └── _SUCCESS
# │ ├── hard_negative_sampler_user
# │ │ ├── x0.csv
# │ │ └── _SUCCESS
# │ ├── hard_negative_sampler_item
# │ │ ├── y0.csv
# │ │ └── _SUCCESS
# │ ├── hard_negative_sampler_edge
# │ │ ├── e0.csv
# │ │ └── _SUCCESS
# │ ├── test
# │ │ ├── test0.csv
# │ │ └── _SUCCESS
# │ └── train
# │ ├── train0.csv
# │ └── _SUCCESS
# └── 20210918
#HDFSADDR=hdfs://192.168.**.**:8020/user/easy_rec/metric_learning_i2i
#HDFSADDR=/ossmnt/user/easy_rec/metric_learning_i2i
#HDFSADDR=/osshdfsmnt/user/easy_rec/metric_learning_i2i
#HDFSADDR=/nasmnt/user/easy_rec/metric_learning_i2i
#HDFSADDR=/s3mnt/user/easy_rec/metric_learning_i2i
HDFSADDR=/osshdfsmnt/user/easy_rec/metric_learning_i2i
#MODELDIR=hdfs://192.168.**.**:9000/user/easy_rec/metric_learning_i2i_bk
#MODELDIR=/osshdfsmnt/user/easy_rec/metric_learning_i2i_bk
#MODELDIR=/nasmnt/user/easy_rec/metric_learning_i2i_bk
MODELDIR=/nasmnt/experiment_bk/
PREDICT_FOLDER=test
EXPORTDIR=/train/tf_model
REGEX="*.csv"
SUCCESSFILE="train/_SUCCESS,test/_SUCCESS"
EVALRESULTFILE=experiment/eval_result.txt
# for allinone.sh development based on supposed DATE & WHEN & PREDATE
# HOUR is empty meaning no hour folder.
DATE=20230601
HOUR=
WHEN=20230601190001
PREDATE=20230531
NEXTDATE=20230602
# for daybydaytrain_{easyrec,tf}.sh & multidays training, use HDFSADDR, MODELDIR
START_DATE=20230601
END_DATE=20230606
# HIVEINPUT
DATABASE=testdb
TRAIN_TABLE_NAME=tb_train
EVAL_TABLE_NAME=tb_eval
NEGATIVE_SAMPLER_TABLE_NAME=tb_negative_sample
HARD_NEGATIVE_SAMPLER_USER_TABLE_NAME=tb_negative_sample_user
HARD_NEGATIVE_SAMPLER_ITEM_TABLE_NAME=tb_negative_sample_item
HARD_NEGATIVE_SAMPLER_EDGE_TABLE_NAME=tb_negative_sample_edge
PREDICT_TABLE_NAME=tb_predict
PREDICT_OUTPUT_TABLE_NAME=tb_predict_out
PARTITION_NAME=ds
# DSSM: inference user/item model with user&item feature
# metric_learning_i2i: infernece model with item feature
# SEP: user&item feature file use same seperator
USERFEATURE=taobao_user_feature_data.csv
USER_SELECTED_COLS="user_id,cms_segid,cms_group_id,age_level,pvalue_level,shopping_level,occupation,new_user_class_level,tag_category_list,tag_brand_list"
USER_RESERVED_COLS=user_id
USER_OUTPUT_COLS=user_emb
ITEMFEATURE=taobao_item_feature_data.csv
# dssm_u2i
#ITEM_SELECTED_COLS="pid,adgroup_id,cate_id,campaign_id,customer,brand,price"
#ITEM_RESERVED_COLS=adgroup_id
#ITEM_OUTPUT_COLS=item_emb
# metric_learning_i2i
ITEM_SELECTED_COLS="itemid,cate_id,campaign_id,brand,customer,price"
ITEM_RESERVED_COLS=itemid
ITEM_OUTPUT_COLS=norm_embedding
# faiss_mysql: mysql as user_embedding storage, faiss as itemembedding index.
# holo_holo: holo as user & item embedding , along with indexing.
VEC_ENGINE=faiss_mysql
MYSQL_HOST=mysql.bitnami
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=emr-datascience
# wait before pod finished after easyrec's python process end.
# example: 30s 10m 1h
WAITBEFOREFINISHED=10s
# tf train
# PS_NUMBER take effect only on training.
# WORKER_NUMBER take effect on training and predict.
EASYREC_TRAINING_REPOSITORY=easyrec-training
EASYREC_TRAINING_VERSION=latest
EASYREC_TRAINING_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-easyrec-training:0.6.3-1
PS_NUMBER=2
WORKER_NUMBER=4
SELECTED_COLS=""
EDIT_CONFIG_JSON=""
# tf export
ASSET_FILES=""
# example: best_ckpt
# not end with /
CHECKPOINT_DIR=
# predict output file separator
OUTPUT_SEP=","
# pure tensorflow train
TENSORFLOW_TRAINING_REPOSITORY=tf-training
TENSORFLOW_TRAINING_VERSION=latest
TENSORFLOW_TRAINING_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-tf-training:2.13.0-1
TENSORFLOW_PS_NUMBER=2
TENSORFLOW_WORKER_NUMBER=4
TENSORFLOW_BATCHSIZE=4096
TENSORFLOW_LR=0.00032
TENSORFLOW_GPUS=4
TENSORFLOW_LOG_DIR=hdfs://192.168.**.**:9000/training_logs
# pytorch train
PYTORCH_TRAINING_REPOSITORY=pytorch-training
PYTORCH_TRAINING_VERSION=latest
PYTORCH_TRAINING_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-pytorch-training:cpu-1.13.1-1
#PYTORCH_TRAINING_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-pytorch-training:gpu-1.12.0-2
PYTORCH_MASTER_NUMBER=1
PYTORCH_WORKER_NUMBER=1
PYTORCH_GPUS=1
PYTORCH_LOG_DIR=hdfs://192.168.**.**:9000/training_logs
# deepspeed training
DEEPSPEED_TRAINING_REPOSITORY=deepspeed-training
DEEPSPEED_TRAINING_VERSION=latest
#DEEPSPEED_TRAINING_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-deepspeed-training:latest
DEEPSPEED_MASTER_NUMBER=1
DEEPSPEED_WORKER_NUMBER=1
PARTS=1
STEPS=100
DEEPSPEED_GPUS=1
DEEPSPEED_LOG_DIR=hdfs://192.168.**.**:9000/training_logs
# deepface
DEEPFACE_REPOSITORY=deepface
DEEPFACE_VERSION=latest
DEEPFACE_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-deepface:latest
# jax train
JAX_TRAINING_REPOSITORY=jax-training
JAX_TRAINING_VERSION=latest
#JAX_TRAINING_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-jax-training:latest
JAX_MASTER_NUMBER=2
JAX_WORKER_NUMBER=3
# ray train
RAY_TRAINING_REPOSITORY=ray-training
RAY_TRAINING_VERSION=latest
#RAY_TRAINING_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ray-training:latest
# easyrec customize action
CUSTOMIZE_ACTION=easy_rec.python.tools.modify_config_test
USERDEFINEPARAMETERS="--template_config_path hdfs://192.168.**.**:9000/user/easy_rec/rec_sln_test_dbmtl_v3281_template.config --output_config_path hdfs://192.168.**.**:9000/user/easy_rec/output.config"
#CUSTOMIZE_ACTION=easy_rec.python.tools.split_model_pai
#USERDEFINEPARAMETERS="--model_dir /train/tf_model_dssm/%%DATE%%/%%EXP%%_tmp_%%WHEN%% --user_model_dir /train/tf_model_dssm_user/%%DATE%%/%%EXP%%_tmp_%%WHEN%% --item_model_dir /train/tf_model_dssm_item/%%DATE%%/%%EXP%%_tmp_%%WHEN%%"
# hivecli
HIVE_REPOSITORY=ds_hivecli
HIVE_VERSION=latest
#HIVE_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_hivecli:latest
# ds-controller
DSCONTROLLER_REPOSITORY=ds_controller
DSCONTROLLER_VERSION=latest
#DSCONTROLLER_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_controller:latest
# aiserver
AISERVER_REPOSITORY=ds_aiserver
AISERVER_VERSION=latest
#AISERVER_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_aiserver:latest
# notebook
NOTEBOOK_REPOSITORY=ds_notebook
NOTEBOOK_VERSION=latest
#NOTEBOOK_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_notebook:3.6-1
NOTEBOOK_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_notebook:3.7-1
#NOTEBOOK_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_notebook:3.8-1
#NOTEBOOK_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_notebook:3.10-1
# hue
HUE_REPOSITORY=ds_hue
HUE_VERSION=latest
HUE_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_hue:latest
# httpd
HTTPD_REPOSITORY=ds_httpd
HTTPD_VERSION=latest
HTTPD_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_httpd:latest
# postgis
POSTGIS_REPOSITORY=ds_postgis
POSTGIS_VERSION=latest
#POSTGIS_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_postgis:latest
# customize
CUSTOMIZE_REPOSITORY=ds_customize
CUSTOMIZE_VERSION=latest
#CUSTOMIZE_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_customize:latest
# faissserver
FAISSSERVER_REPOSITORY=ds_faissserver
FAISSSERVER_VERSION=latest
FAISSSERVER_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_faissserver:latest
# vscode
VSCODE_REPOSITORY=ds_vscode
VSCODE_VERSION=latest
VSCODE_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_vscode:4.7.0-1
# sftp
SFTP_REPOSITORY=ds_sftp
SFTP_VERSION=latest
SFTP_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_sftp:latest
# tugraph
TUGRAPH_REPOSITORY=ds_tugraph
TUGRAPH_VERSION=latest
TUGRAPH_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-ds_tugraph:latest
# stablediffusion
STABLEDIFFUSION_REPOSITORY=stablediffusion
STABLEDIFFUSION_VERSION=latest
STABLEDIFFUSION_IMAGE=mybigpai-registry.cn-beijing.cr.aliyuncs.com/aigc/sdwebui:0.5.4
STABLEDIFFUSION_FRONTEND_NUMBER=1
STABLEDIFFUSION_MIDDLE_NUMBER=1
STABLEDIFFUSION_BACKEND_NUMBER=2
STABLEDIFFUSION_MYSQL_HOST=mysql.bitnami
STABLEDIFFUSION_MYSQL_PORT=3306
STABLEDIFFUSION_MYSQL_USER=root
STABLEDIFFUSION_MYSQL_PASSWORD=emr-datascience
STABLEDIFFUSION_MYSQL_DATABASE_KC=keycloak
STABLEDIFFUSION_MYSQL_DATABASE_SD=stablediffusion
STABLEDIFFUSION_MYSQL_DATABASE_WEBUI=webui_ds
# tag2text
TAG2TEXT_REPOSITORY=tag2text
TAG2TEXT_VERSION=latest
TAG2TEXT_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/official/public-tag2text:latest
# wandb
WANDB_REPOSITORY=wandb
WANDB_VERSION=latest
WANDB_PUBLIC_IMAGE=datascience-registry.cn-beijing.cr.aliyuncs.com/tools/wandb-local:0.41.0
# ak/sk for cluster resize, only support resize TASK now!!!
EMR_AKID=AAAAAAAA
EMR_AKSECRET=BBBBBBBB
HOSTGROUPTYPE=TASK
INSTANCETYPE=ecs.g6.8xlarge
NODECOUNT=1
SYSDISKCAPACITY=120
SYSDISKTYPE=CLOUD_SSD
DISKCAPACITY=480
DISKTYPE=CLOUD_SSD
DISKCOUNT=4
# ak/sk for ack cluster.
ACK_AKID=AAAAAAAA
ACK_AKSECRET=BBBBBBBB
ACK_CLUSTERID=c19a0070ff35b4e38b90f2dba977ed203
ACK_ELASTIC_POOL=xx_task
ACK_GATEWAY_IMAGE_NAME=EMR-DataScience-v11
# PVC_NAME IS DEPRECATED!!! PLEASE IGNORE IT !!!
PVC_NAME="default-pvc"
SAVEDMODELS_RESERVE_DAYS=3
HIVEDB="jdbc:hive2://192.168.**.**:10000/zqkd"
# eval threshold
THRESHOLD=0.3
# eval result key, 'auc' 'auc_ctcvr' 'recall@5'
EVALRESULTKEY="recall@1"
# eval hit rate for vector recall
ITEM_EMB_TABLE_NAME=item_emb_table
GT_TABLE_NAME=gt_table
EMBEDDING_DIM=32
RECALL_TYPE="u2i"
TOPK=100
NUM_INTERESTS=1
KNN_METRIC=0
# Separator cannot be set to , | #
# localfile can only be separated by tab and must have colmue , without setting the separator
ITEM_EMB_TABLE_FIELD_SEP=
GT_TABLE_FILED_SEP=
# sms or dingding
ALERT_TYPE=sms
# sms alert
SMS_AKID=AAAAAAAA
SMS_AKSECRET=BBBBBBBB
SMS_TEMPLATEDCODE=SMS_220default
SMS_PHONENUMBERS="186212XXXXX,186211YYYYY"
SMS_SIGNATURE="mysignature"
# dingtalk alert
ACCESS_TOKEN=AAAAAAAA
# pai-eas
EAS_AKID=AAAAAAAA
EAS_AKSECRET=BBBBBBBB
#EAS_ENDPOINT=pai-eas.cn-beijing.aliyuncs.com
EAS_ENDPOINT=pai-eas-manage-vpc.cn-beijing.aliyuncs.com
EAS_SERVICENAME=datascience_eastest
EAS_SERVICENAME2=datascience_eastest2
# ak/sk for access holo
HOLO_AKID=AAAAAAAA
HOLO_AKSECRET=BBBBBBBB
HOLO_ENDPOINT=hgpostcn-cn-zmb2yiq5****-cn-beijing.hologres.aliyuncs.com
# tensorboard port for run_tensorboard.sh
TENSORBOARDPORT=6006
# nni port
NNIPORT=38080
# jupyter password
JUPYTER_PASSWORD=emr-datascience
# enable_overwrite easyrec whl & easyrec_model.config, these two file were
# stored in MODELDIR/*
ENABLE_OVERWRITE=true
# For easyrec, if ENABLE_OVERWRITE=true then ENABLE_CONFIGMAP_OVERWRITE
# Notice, this option only take effect on easyrec config, because of 3MB limits.
ENABLE_MOUNT_CONFIGMAP=true
# slb
LOADBALANCER_AKID=AAAAAAAA
LOADBALANCER_AKSECRET=BBBBBBBB
LOADBALANCERID=lb-2zee89fb6z4glreop****
# datascience administrator, common user should not touch these parameters.
DATASCIENCE_ADMIN_AKID=AAAAAAAA
DATASCIENCE_ADMIN_AKSECRET=BBBBBBBB
# For some users who are running pyspark & meachine learning jobs in jupyter notebook.
# ports for mapping when notebook enabled, multi-users will conflict on same node.
HOSTNETWORK=true
MAPPING_AISERVER_PORT=8080
MAPPING_FILEBROWSER_PORT=5000
MAPPING_STABLEDIFFUSION_WEBUI_PORT=16000
MAPPING_JUPYTER_NOTEBOOK_PORT=16200
MAPPING_NNI_PORT=16201
MAPPING_TENSORBOARD_PORT=16202
MAPPING_VSCODE_PORT=16203
MAPPING_STABLEDIFFUSION_PORT=16204
MAPPING_KEYCLOAK_PORT=16205
MAPPING_DEEPFACE_PORT=16206
MAPPING_SFTP_PORT=16207
MAPPING_TUGRAPH_PORT=16208
MAPPING_HTTPD_PORT=16209
MAPPING_HUE_PORT=16210
MAPPING_CHATGLM_PORT=16211
MAPPING_TAG2TEXT_PORT=16212
MAPPING_WANDB_PORT=16213
极简模式提交任务
# sh allinone.sh -d
loading ./config
You are now working on k8snamespace: default
*** Welcome to DataScience ***
0) Exit K8S: default, EXP: exp1
ppd) Prepare data ppk) Prepare DS/K8S config mds) mount datasource to ecs/gateway
1|build) build easyrec-training image buildall) build all images(slow) ser) showevalresult
apc/dpc) apply/delete-easyrec-precheck 2/3) apply/delete-easyrec-training 4/5) apply/delete-easyrec-eval
4d/5d) apply/delete-easyrec-evaldist 6/7) apply/delete-easyrec-export 4hr/5hr) apply/delete-easyrec-evalhitrate
8/9) apply/delete-easyrec-serving 10/11) apply/delete-easyrec-predict 12/13) apply/delete-easyrec-featureselection
14/15) apply/delete-easyrec-customize 18/19) apply/delete-ds-std-training cwd/dwd/swd)create/delete/show-wandb
20/21) apply/delete-ds-glm-training 22/23) apply/delete-ds-chatglm-training 24/25) apply/delete-tftrain-example1
26/27) apply/delete-tftrain-example2 28/29) apply/delete-tftrain-example3 30/31) apply/delete-tftrain-example4
32/33) apply/delete-tftrain-example5 34/35) apply/delete-tftrain-example6 36/37) apply/delete-tftrain-example7
38/39) apply/delete-tftrain-example8 mt/dmt) apply/delete-multidaystraining me/dme) apply/delete-multidayseval
40/41) apply/delete-pttrain-gloocpu 42/43) apply/delete-pttrain-gloogpu 44/45) apply/delete-pttrain-ncclgpu
cnt/dnt/snt)create/delete/show-notebook cvs/dvs/svs)create/delete/show-vscode cdf/ddf/sdf)create/delete/show-deepface
csdb/dsdb/csdb)create/delete/show-SD-base csd/dsd/ssd)create/delete/show-SD-frontend ctt/dtt/stt)create/delete/show-tag2text
moss/uoss) mount/umount OSS mosshdfs/uosshdfs)mount/umount OSSHDFS mhdfs/uhdfs)mount/umount HDFS
mnas/unas) mount/umount NAS ms3/us3) mount/umount AWS-S3 cmts) check mounting status
manony) mount OSS/OSSHDFS/HDFS/S3/NAS uanony) umount OSS/OSSHDFS/HDFS/S3/NAS ctb/dtb/DTBA/stb)create/delete/show-TensorBoard(OHSN)
a) kubectl get tfjobs b) kubectl get sdep c) kubectl get pytorchjobs
mp|mpl) compile mlpipeline ppl) compile pipelines wfl) compile workflows
tb) tensorboard(hdfs) logs) show pod logs setnl) set k8s node label
tp) kubectl top pods tn) kubectl top nodes util) show nodes usage
e|clean) make clean cleanall) make cleanall bu) bdupload
99) kubectl get pods 99l) get pods along with log url sall) show middleware document links
>
dsdemo功能介绍
基础环境配置
命令选项 | 说明 |
ppd | 准备测试数据,将 |
ppk |
重要 该命令属于环境初始化工作,必须执行。 |
mds | 将5大存储(OSS、OSS-HDFS、HDFS、S3、NAS)挂载到ECS本地环境,对应的目录分别是/ossmnt、/osshdfsmnt、/hdfsmnt、/nasmnt和/s3mnt。 |
creg/dreg | 通过读取 |
ricrt | 默认情况下,k8s的有效期是1年,需重新签发,有效期为10年。此命令选项仅限on ECS形态的Data Science集群;on ACK方案需要在控制台管理。 |
cslb/dslb | 为了配置k8s具有控制SLB的权限,需要在配置service时使用。 此命令选项仅限on ECS形态的Data Science集群。 |
Docker环境配置
命令选项 | 说明 |
dlogin | 执行 重要 该命令属于环境初始化工作,必须执行。 |
dlogout | docker logout,用于执行登出操作的。 |
cacr | 检查ACR的状态是否正常,该方法已被弃用。 |
数据源
命令选项 | 说明 |
moss/uoss | 挂载或卸载OSS到k8s中,OSS配置请参见 |
mosshdfs/uosshdfs | 挂载或卸载OSS-HDFS到k8s中,osshdfs配置请参见 创建OSS Bucket时并开通授权访问OSS-HDFS服务,具体操作请参见开通并授权访问OSS-HDFS服务。 |
mhdfs/uhdfs | 挂载或卸载HDFS到k8s中,hdfs配置见 |
mnas/unas | 挂载或卸载NAS到k8s中,NAS配置见 |
ms3/us3 | 挂载或卸载AWS S3 bucket到k8s中,S3配置见 |
cmts | 查看OSS、OSS-HDFS、HDFS、AWS S3的挂载状态。 |
manony | 在anonymous空间挂载OSS、OSS-HDFS、HDFS、AWS S3、NAS等,Kubeflow例行化任务均运行在anonymous空间。 |
uanony | 在anonymous空间卸载OSS、OSS-HDFS、HDFS、AWS S3、NAS等。 |
clnas | 检查ECS本地挂载NAS的状态是否正常。 |
closs | 检查ECS本地挂载OSS的状态是否正常。 |
closshdfs | 检查ECS本地挂载OSS-HDFS的状态是否正常。 |
clhdfs | 检查ECS本地挂载HDFS的状态是否正常。 |
cls3 | 检查ECS本地挂载AWS S3的状态是否正常。 |
模型训练
EasyRec
命令选项 | 说明 |
1|build | 构建EasyRec训练镜像。easyrec介绍请参见easyrec。 |
apc|dpc | 提交或删除EasyRec Precheck任务,可用于在训练之前的基本环境检查,例如数据分隔符是否正确、字段数是否匹配等, 建议先做precheck后,再提交训练任务。 |
2/3 | 提交或删除EasyRec训练任务。 |
4/5 | 提交或删除EasyRec单点评估任务,如需提交或删除分布式评估任务请见 |
4d/5d | 提交或删除EasyRec分布式评估任务。 |
6/7 | 提交或删除EasyRec导出任务,将训练过程中产生的Checkpoint导出SavedModel到MODELDIR。MODELDIR变量见config配置,可以是HDFS地址或者是NAS地址。 |
4hr/5hr | 提交或删除EasyRec Hitrate任务,可以用来查看训练效果。 |
8/9 | 部署或删除TFServing,读取MODELDIR中的SavedModel并部署在Data Science中,使用SeldonCore底座。 |
10/11 | 提交或删除Predict任务,可用于训练测试数据批量话Inference。 |
12/13 | 提交或删除Feature Selection任务,用来查看feature作用大小。 |
14/15 | 提交或删除EasyRec自定义动作。如果上述选项不能满足您的需求,您可以尝试自定义操作。 |
mt/dmt | 提交或删除多天数据训练任务。该训练任务可以处理多天的数据,其起止日期由config文件中的START_DATE和END_DATE指定,闭区间。起止日期之间的所有数据都会被用于训练。 |
me/dme | 提交或删除多天数据评估任务。该评估任务可以处理多天的数据,其起止日期由config文件中的START_DATE和END_DATE指定,闭区间。起止日期之间的所有数据都会被用于评估。 |
ctb/dtb/DTBA/stb | 创建、删除、删除所有、查看TensorBoard,EasyRec训练过程中可以创建TensorBoard实例来查看训练效果,loss曲线等。 |
sh daybydaytrain.sh | 可以串行地为每一天的数据启动训练任务,并在正常结束后启动下一天的训练任务,起止日期由config文件中的START_DATE和END_DATE指定。此工具可方便您训练历史数据。 |
Serving
命令选项 | 说明 |
8/9 | 部署或删除tfserving,读取MODELDIR中的SavedModel并部署在Data Science中,使用SeldonCore底座。 |
TensorFlow
命令选项 | 说明 |
24/25 | 提交或删除纯TensorFlow训练任务example1。 |
26/27 | 提交或删除纯TensorFlow训练任务example2。 |
28/29 | 提交或删除纯TensorFlow训练任务example3。 |
30/31 | 提交或删除纯TensorFlow训练任务example4。 |
32/33 | 提交或删除纯TensorFlow训练任务example5,使用ps worker模式。example5对应使用的文件为 |
34/35 | 提交或删除纯TensorFlow训练任务example6,使用ps worker模式。example6对应使用的文件为 |
36/37 | 提交或删除纯TensorFlow训练任务example7,使用ps worker模式。example7对应使用的文件为 |
38/39 | 提交或删除纯TensorFlow训练任务example8,使用allreduce模式。example8对应使用的文件为 |
btfi | 构建TensorFlow镜像,并上传到ACR。 |
PyTorch
命令选项 | 说明 |
40/41 | 提交或删除基于纯PyTorch框架、CPU后端的训练任务。 |
42/43 | 提交或删除基于纯PyTorch框架、Gloo-GPU后端的训练任务。 |
44/45 | 提交或删除基于纯PyTorch框架、NCCL-GPU后端的训练任务。 |
bpti | 构建PyTorch镜像,并上传到ACR。 |
DeepSpeed
命令选项 | 说明 |
18/19 | 提交或删除基于Deepspeed-std框架的任务,可用于大型模型的训练等,建议与多机多卡配合使用。 |
bdsi | 构建Deepspeed镜像,并上传到ACR。 |
DeepFace
命令选项 | 说明 |
cdf/ddf/sdf | 创建或删除Deepface实例,该实例将运行VNC服务器,您需要通过VNC Viewer连接。如果当前ECS装有GPU,则您也可以通过在本地Docker运行的 |
ChatGLM
命令选项 | 说明 |
20/21 | 提交或删除基于Deepspeed-GLM框架的任务。GLM详情请参见GLM。 |
22/23 | 提交或删除基于Deepspeed-ChatGLM框架的任务。Chatglm-6B详情请参见ChatGLM-6B。 |
bdsi | 构建Deepspeed镜像,并上传到ACR。 |
StableDiffusion
命令选项 | 说明 |
csdb/dsdb/ssdb | 创建、删除或查看StableDiffusion底座。 |
csd/dsd/ssd | 创建、删除或查看StableDiffusion-Front。 |
bsdi | 构建StableDiffusion镜像,并上传到ACR。 |
TagText
命令选项 | 说明 |
ctt/dtt/stt | 创建、删除或查看Tag2Text。 |
btti | 构建Tag2Text镜像,并上传到ACR。 |
TuGraph
命令选项 | 说明 |
ctg/dtg/stg | 创建、删除或查看TUGraph实例,并显示TUGraph连接。 |
btgi | 构建TUGraph镜像,并上传到ACR。 |
Wandb
命令选项 | 说明 |
cwd/dwd/swd | 创建、删除或查看Wandb实例,并显示Wandb连接。 |
bwdi | 构建Wandb镜像。 |
训练工具
Tensorboard
仅限checkpoint存放于hdfs://xxx
的地址,例如ckpt存放于OSS-HDFS、NAS等。您可以自行修改run_tensorboard.sh
脚本,调整相应参数。
cd /root/dsdemo/ml_on_ds
#查看20211209训练ckpt的Tensorboard信息。
sh run_tensorboard.sh 20211209
编译Pipeline
命令选项 | |
mp|mpl | 创建一个名为 |
ppl | 将pipelines文件夹中的所有 |
wfl | 构建pipeline目录下的多个Workflow文件(*.json),生成的TAR文件可以交由Kubeflow运行。 |
bu | 上传bigdata目录到NAS或HDFS中。 |
数据开发
Notebook(Jupyter,Jupyter-lab)
命令选项 | 说明 |
cnt/dnt/snt | 创建、删除或查看Notebook,该Notebook默认使用Python 3.7环境。 如果需要使用Python 3.6、Python 3.10或支持GPU的Python 3.8环境,可以按照以下步骤操作。
|
bnt | 构建Notebook镜像,并上传到ACR。 |
VScode
命令选项 | 说明 |
cvs/dvs/svs | 创建、删除或查看VSCode。 |
bvsi | 构建VSCode镜像,并上传到ACR。 |
Hue
命令选项 | 说明 |
che/dhe/she | 创建、删除或查看Hue实例,以及查看Hue的链接。 |
bhi | 构建Hue镜像,并上传到ACR。 |
制作镜像
Ray
命令选项 | 说明 |
brayi | 构建Ray镜像,并上传到ACR。 |
JAX
命令选项 | 说明 |
bjaxi | 构建JAX镜像,并上传到ACR。 |
Httpd
命令选项 | 说明 |
bhdi | 构建Httpd镜像,并上传到ACR。 |
chd/dhd/shd | 创建、删除或查看Httpd实例,以及查看Httpd的链接。 |
Hive
命令选项 | 说明 |
bhvi | 构建Hive镜像,并上传到ACR。 |
Postgis
命令选项 | 说明 |
bpsi | 构建Postgis镜像,并上传到ACR。 |
创建Gateway
命令选项 | 说明 |
iemrcli | 安装EMRCLI工具。该命令选项仅限在on ACK形态使用。 |
demrcli | 使用EMRCLI工具可以将EMR Hadoop、Spark等环境部署到Gateway机器上,从而使得Gateway机器不仅可以提交AI任务到K8s,还可以操作Hadoop集群进行特征工程、ETL等操作。该命令选项仅限在on ACK形态使用。 |
其他
Pai-Rec
命令选项 | 说明 |
spl | 查看Pai-Rec链接。 |
Milvus
命令选项 | 说明 |
sml | 可以查看Milvus的链接,是一款开源的向量工具。详情请参见milvus。 |
常用工具
命令选项 | 说明 |
buildall | 可以构建相关镜像,包括EasyRec、TensorFlow、PyTorch、DeepSpeed、StableDiffusion和Notebook等。 |
a | 查看TensorFlow作业。 |
b | 查看已部署的Serving实例。 |
c | 查看PyTorch作业。 |
tb | 运行TensorBoard,仅限MODELDIR以 |
logs | 查看Pod日志。 |
setnl | 为k8s的nodes节点打标签,分别为core和task。此功能在老版本ds上使用, on ack方案不适用 |
tp | 查看Pod使用资源情况。命令为 |
tn | 查看node资源使用情况。命令为 |
util | 查看所有node的CPU和内存的请求或限制情况。 |
e|clean | 清除本地冗余文件。 |
cleanall | 清除本地以及子目录冗余文件。 |
99 | 列出所有正在运行的Pod。命令为 |
99l | 列出所有正在运行的Pod,并为每个Pod生成一个查看Log的链接。 |
sall | 查看多个底座软件的链接、文档等。 |
bdci | 构建dscontroller镜像,并上传到ACR。 |
bci | 构建customize镜像,并上传到ACR。 |
bfsi | 构建faissserver镜像,并上传到ACR,以及构建dscontroller镜像并上传到ACR。 |
vc | 验证 |
SFTP
命令选项 | 说明 |
cft/dft/sft | 创建、删除或查看SFTP实例,以及查看SFTP的链接。 |
bfti | 构建SFTP镜像,并上传到ACR。 |