日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

dsdemo代碼介紹

本文為您介紹dsdemo代碼所有功能板塊, 以及詳細的使用說明。

前提條件

  • 已創(chuàng)建DataScience集群,詳情請參見創(chuàng)建Data Science集群。

  • 下載dsdemo代碼:請已創(chuàng)建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功能介紹

基礎環(huán)境配置

命令選項

說明

ppd

準備測試數(shù)據(jù),將testdata/*的數(shù)據(jù)復制到HDFS或NAS中。

ppk

  • 準備基本環(huán)境。例如設置serviceaccount。

  • 安裝Jindo基本底座到k8s中.

  • 為k8s的Grafana、Kubeflow和Dashboard等設置SLB,便于用戶訪問。

重要

該命令屬于環(huán)境初始化工作,必須執(zhí)行。

mds

將5大存儲(OSS、OSS-HDFS、HDFS、S3、NAS)掛載到ECS本地環(huán)境,對應的目錄分別是/ossmnt、/osshdfsmnt、/hdfsmnt、/nasmnt和/s3mnt。

creg/dreg

通過讀取config/REGISTRY*相關信息,在k8s中創(chuàng)建docker-registry regcred,使得k8s可以拉取非公開的ACR鏡像。

ricrt

默認情況下,k8s的有效期是1年,需重新簽發(fā),有效期為10年。此命令選項僅限on ECS形態(tài)的Data Science集群;on ACK方案需要在控制臺管理。

cslb/dslb

為了配置k8s具有控制SLB的權限,需要在配置service時使用。 此命令選項僅限on ECS形態(tài)的Data Science集群。

Docker環(huán)境配置

命令選項

說明

dlogin

執(zhí)行docker login,讀取config/REGISTRY*相關信息,構建各種鏡像后,才能將其推送到ACR。如果沒有權限,不能進行推送。

重要

該命令屬于環(huán)境初始化工作,必須執(zhí)行。

dlogout

docker logout,用于執(zhí)行登出操作的。

cacr

檢查ACR的狀態(tài)是否正常,該方法已被棄用。

數(shù)據(jù)源

命令選項

說明

moss/uoss

掛載或卸載OSS到k8s中,OSS配置請參見config/OSS_*。

mosshdfs/uosshdfs

掛載或卸載OSS-HDFS到k8s中,osshdfs配置請參見config/OSS_HDFS_*。

創(chuàng)建OSS Bucket時并開通授權訪問OSS-HDFS服務,具體操作請參見開通并授權訪問OSS-HDFS服務

mhdfs/uhdfs

掛載或卸載HDFS到k8s中,hdfs配置見config/HDFS_*,可以將EMR的HDFS掛載到k8s形成PVC使用,像使用本地文件一樣讀取訓練數(shù)據(jù)。

mnas/unas

掛載或卸載NAS到k8s中,NAS配置見config/NAS_*

ms3/us3

掛載或卸載AWS S3 bucket到k8s中,S3配置見config/S3_*。

cmts

查看OSS、OSS-HDFS、HDFS、AWS S3的掛載狀態(tài)。

manony

在anonymous空間掛載OSS、OSS-HDFS、HDFS、AWS S3、NAS等,Kubeflow例行化任務均運行在anonymous空間。

uanony

在anonymous空間卸載OSS、OSS-HDFS、HDFS、AWS S3、NAS等。

clnas

檢查ECS本地掛載NAS的狀態(tài)是否正常。

closs

檢查ECS本地掛載OSS的狀態(tài)是否正常。

closshdfs

檢查ECS本地掛載OSS-HDFS的狀態(tài)是否正常。

clhdfs

檢查ECS本地掛載HDFS的狀態(tài)是否正常。

cls3

檢查ECS本地掛載AWS S3的狀態(tài)是否正常。

模型訓練

EasyRec

命令選項

說明

1|build

構建EasyRec訓練鏡像。easyrec介紹請參見easyrec。

apc|dpc

提交或刪除EasyRec Precheck任務,可用于在訓練之前的基本環(huán)境檢查,例如數(shù)據(jù)分隔符是否正確、字段數(shù)是否匹配等, 建議先做precheck后,再提交訓練任務。

2/3

提交或刪除EasyRec訓練任務。

4/5

提交或刪除EasyRec單點評估任務,如需提交或刪除分布式評估任務請見4d/5d。

4d/5d

提交或刪除EasyRec分布式評估任務。

6/7

提交或刪除EasyRec導出任務,將訓練過程中產(chǎn)生的Checkpoint導出SavedModel到MODELDIR。MODELDIR變量見config配置,可以是HDFS地址或者是NAS地址。

4hr/5hr

提交或刪除EasyRec Hitrate任務,可以用來查看訓練效果。

8/9

部署或刪除TFServing,讀取MODELDIR中的SavedModel并部署在Data Science中,使用SeldonCore底座。

10/11

提交或刪除Predict任務,可用于訓練測試數(shù)據(jù)批量話Inference。

12/13

提交或刪除Feature Selection任務,用來查看feature作用大小。

14/15

提交或刪除EasyRec自定義動作。如果上述選項不能滿足您的需求,您可以嘗試自定義操作。

mt/dmt

提交或刪除多天數(shù)據(jù)訓練任務。該訓練任務可以處理多天的數(shù)據(jù),其起止日期由config文件中的START_DATE和END_DATE指定,閉區(qū)間。起止日期之間的所有數(shù)據(jù)都會被用于訓練。

me/dme

提交或刪除多天數(shù)據(jù)評估任務。該評估任務可以處理多天的數(shù)據(jù),其起止日期由config文件中的START_DATE和END_DATE指定,閉區(qū)間。起止日期之間的所有數(shù)據(jù)都會被用于評估。

ctb/dtb/DTBA/stb

創(chuàng)建、刪除、刪除所有、查看TensorBoard,EasyRec訓練過程中可以創(chuàng)建TensorBoard實例來查看訓練效果,loss曲線等。

image.pngimage.png

sh daybydaytrain.sh

可以串行地為每一天的數(shù)據(jù)啟動訓練任務,并在正常結(jié)束后啟動下一天的訓練任務,起止日期由config文件中的START_DATE和END_DATE指定。此工具可方便您訓練歷史數(shù)據(jù)。

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對應使用的文件為ps_worker_strategy-with-keras.py

34/35

提交或刪除純TensorFlow訓練任務example6,使用ps worker模式。example6對應使用的文件為ps_worker_strategy-with-keras_mnist.py

36/37

提交或刪除純TensorFlow訓練任務example7,使用ps worker模式。example7對應使用的文件為ps_worker_strategy-with-keras_mmoe.py。

38/39

提交或刪除純TensorFlow訓練任務example8,使用allreduce模式。example8對應使用的文件為allreduce_strategy-with-keras_mmoe.py

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

創(chuàng)建或刪除Deepface實例,該實例將運行VNC服務器,您需要通過VNC Viewer連接。如果當前ECS裝有GPU,則您也可以通過在本地Docker運行的sh docker_run_local.sh命令來運行該實例。

ChatGLM

命令選項

說明

20/21

提交或刪除基于Deepspeed-GLM框架的任務。GLM詳情請參見GLM。

22/23

提交或刪除基于Deepspeed-ChatGLM框架的任務。Chatglm-6B詳情請參見ChatGLM-6B

bdsi

構建Deepspeed鏡像,并上傳到ACR。

StableDiffusion

命令選項

說明

csdb/dsdb/ssdb

創(chuàng)建、刪除或查看StableDiffusion底座。

csd/dsd/ssd

創(chuàng)建、刪除或查看StableDiffusion-Front。

bsdi

構建StableDiffusion鏡像,并上傳到ACR。

TagText

命令選項

說明

ctt/dtt/stt

創(chuàng)建、刪除或查看Tag2Text。

btti

構建Tag2Text鏡像,并上傳到ACR。

TuGraph

命令選項

說明

ctg/dtg/stg

創(chuàng)建、刪除或查看TUGraph實例,并顯示TUGraph連接。

image.png

btgi

構建TUGraph鏡像,并上傳到ACR。

Wandb

命令選項

說明

cwd/dwd/swd

創(chuàng)建、刪除或查看Wandb實例,并顯示W(wǎng)andb連接。

bwdi

構建Wandb鏡像。

訓練工具

Tensorboard

僅限checkpoint存放于hdfs://xxx的地址,例如ckpt存放于OSS-HDFS、NAS等。您可以自行修改run_tensorboard.sh腳本,調(diào)整相應參數(shù)。

cd /root/dsdemo/ml_on_ds

#查看20211209訓練ckpt的Tensorboard信息。
sh run_tensorboard.sh 20211209

編譯Pipeline

命令選項

mp|mpl

創(chuàng)建一個名為mlpipeline.py的文件,然后使用Kubeflow的編譯器將其打包成*_mlpipeline.tar.gz文件。該TAR文件可用于Kubeflow中的例行化運行。

ppl

將pipelines文件夾中的所有*.py文件打包成可執(zhí)行的Pipeline文件,以便在Kubeflow中自動化運行這些Pipeline。

wfl

構建pipeline目錄下的多個Workflow文件(*.json),生成的TAR文件可以交由Kubeflow運行。

bu

上傳bigdata目錄到NAS或HDFS中。

數(shù)據(jù)開發(fā)

Notebook(Jupyter,Jupyter-lab)

命令選項

說明

cnt/dnt/snt

創(chuàng)建、刪除或查看Notebook,該Notebook默認使用Python 3.7環(huán)境。

如果需要使用Python 3.6、Python 3.10或支持GPU的Python 3.8環(huán)境,可以按照以下步驟操作。

cd notebook
ln -s Dockerfile38_nv Dockerfile38 -f
make

bnt

構建Notebook鏡像,并上傳到ACR。

VScode

命令選項

說明

cvs/dvs/svs

創(chuàng)建、刪除或查看VSCode。

bvsi

構建VSCode鏡像,并上傳到ACR。

Hue

命令選項

說明

che/dhe/she

創(chuàng)建、刪除或查看Hue實例,以及查看Hue的鏈接。

bhi

構建Hue鏡像,并上傳到ACR。

制作鏡像

Ray

命令選項

說明

brayi

構建Ray鏡像,并上傳到ACR。

JAX

命令選項

說明

bjaxi

構建JAX鏡像,并上傳到ACR。

Httpd

命令選項

說明

bhdi

構建Httpd鏡像,并上傳到ACR。

chd/dhd/shd

創(chuàng)建、刪除或查看Httpd實例,以及查看Httpd的鏈接。

Hive

命令選項

說明

bhvi

構建Hive鏡像,并上傳到ACR。

Postgis

命令選項

說明

bpsi

構建Postgis鏡像,并上傳到ACR。

創(chuàng)建Gateway

命令選項

說明

iemrcli

安裝EMRCLI工具。該命令選項僅限在on ACK形態(tài)使用。

demrcli

使用EMRCLI工具可以將EMR Hadoop、Spark等環(huán)境部署到Gateway機器上,從而使得Gateway機器不僅可以提交AI任務到K8s,還可以操作Hadoop集群進行特征工程、ETL等操作。該命令選項僅限在on ACK形態(tài)使用。

其他

Pai-Rec

命令選項

說明

spl

查看Pai-Rec鏈接。

Milvus

命令選項

說明

sml

可以查看Milvus的鏈接,是一款開源的向量工具。詳情請參見milvus。

常用工具

命令選項

說明

buildall

可以構建相關鏡像,包括EasyRec、TensorFlow、PyTorch、DeepSpeed、StableDiffusion和Notebook等。

a

查看TensorFlow作業(yè)。

b

查看已部署的Serving實例。

c

查看PyTorch作業(yè)。

tb

運行TensorBoard,僅限MODELDIR以hdfs://開頭的地址。

logs

查看Pod日志。

setnl

為k8s的nodes節(jié)點打標簽,分別為core和task。此功能在老版本ds上使用, on ack方案不適用

tp

查看Pod使用資源情況。命令為kubectl top pods。

tn

查看node資源使用情況。命令為kubectl top nodes。

util

查看所有node的CPU和內(nèi)存的請求或限制情況。

e|clean

清除本地冗余文件。

cleanall

清除本地以及子目錄冗余文件。

99

列出所有正在運行的Pod。命令為kubectl get pods。

99l

列出所有正在運行的Pod,并為每個Pod生成一個查看Log的鏈接。

sall

查看多個底座軟件的鏈接、文檔等。

image.png

bdci

構建dscontroller鏡像,并上傳到ACR。

bci

構建customize鏡像,并上傳到ACR。

bfsi

構建faissserver鏡像,并上傳到ACR,以及構建dscontroller鏡像并上傳到ACR。

vc

驗證config文件的內(nèi)容是否存在明顯錯誤。

SFTP

命令選項

說明

cft/dft/sft

創(chuàng)建、刪除或查看SFTP實例,以及查看SFTP的鏈接。

bfti

構建SFTP鏡像,并上傳到ACR。

常見問題

為什么每個實驗需要配置獨立Experiments?

為了實現(xiàn)實驗隔離,在每個實驗中,使用Experiments可以實現(xiàn)完全隔離,包括PV、PVC、鏡像等,互不干擾,但仍然可以共享Kubernetes資源池。

allinone.sh設計原則是什么?

通過命令選項,allinone.sh可以將Data Science的所有功能呈現(xiàn)出來,使得用戶只需要按照以下步驟操作即可使用:

  1. 填寫config文件。

  2. 選擇相應的選項。

  3. 獲取鏈接。

該方式最大限度地降低了使用門檻。

dsdemo是否開源?

目前,dsdemo不是開源項目,但是我們會向付費客戶提供100%源代碼,并簽署NDA(Non Disclosure Agreement)協(xié)議,以保障客戶深入研究Data Science的權利,同時也保障EMR團隊的知識產(chǎn)權。

是否可以對EasyRec框架進行修改或添加算法?

可以。您可以獲取EasyRec的代碼并在本地進行修改,并編譯鏡像進行訓練。您無需重新打包即可進行訓練??梢詤⒁?code data-tag="code" class="code blog-code">ml_on_ds/easyrec/readme文件。

Data Science是否支持離在線混部?

支持??梢詫?jié)點池機型打標或設置污點,從物理節(jié)點層面隔離離線任務和在線serving的Pod。這樣,serving提供的SLB IP的請求只會轉(zhuǎn)發(fā)到serving的節(jié)點,對延遲沒有明顯影響。

掛載存儲服務是否收費?

建議您在構建Data Science集群時,也開通OSS、OSS-HDFS、NAS等存儲服務。這些服務在不存儲數(shù)據(jù)的情況下不收取費用,并且具有很高的靈活性。

是否支持小時級數(shù)據(jù)訓練?

支持。

是否支持流式訓練?

支持??梢詫?shù)據(jù)可以存放在Kafka或DataHub中。

JupyterLab是否支持Jupyter Notebook?

支持。

Notebook是否支持GPU環(huán)境,即在Notebook運行一些GPU任務?

支持。

是否可以在K8s中運行DeepSpeed任務?

支持。

為什么運行kubectl get pods命令時,部分Pod的狀態(tài)為Pending?

可以執(zhí)行命令kubectl describe pods xx , 查看Pending的原因。