华为云用户手册

  • Step2 启动训练脚本 单机启动 以baichuan2-13b为例,单机SFT全参微调启动命令如下。进入代码目录/home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed下执行启动脚本,超参详解参考表1 增量预训练超参配置 MODEL_TYPE=13B RUN_TYPE=sft DATA_PATH=/home/ma-user/ws/processed_for_ma_input/BaiChuan2-13B/data/finetune/alpaca_ft TOKENIZER_MODEL=/home/ma-user/ws/tokenizers/BaiChuan2-13B CKPT_LOAD_DIR= /home/ma-user/ws/processed_for_ma_input/BaiChuan2-13B/converted_weights TRAIN_ITERS=300 MBS=1 GBS=16 TP=8 PP=1 WORK_DIR=/home/ma-user/ws sh scripts/baichuan2/baichuan2.sh 其中 MODEL_TYPE 、RUN_TYPE、DATA_PATH、TOKENIZER_MODEL为必填;TRAIN_ITERS、MBS、GBS、 TP、PP WORK_DIR为非必填,有默认值。 多机启动 以baichuan2-13b为例,多台机器执行训练启动命令如下。多机启动需要在每个节点上执行,以双机为例。进入代码目录/home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed下执行启动脚本,超参详解参考表1 增量预训练超参配置 第一台节点 MASTER_ADDR=xx.xx.xx.xx NNODES=2 NODE_RANK=0 MODEL_TYPE=13B RUN_TYPE=sft DATA_PATH=/home/ma-user/ws/processed_for_ma_input/BaiChuan2-13B/data/finetune/alpaca_ft TOKENIZER_MODEL=/home/ma-user/ws/tokenizers/BaiChuan2-13B CKPT_LOAD_DIR=/home/ma-user/ws/processed_for_ma_input/BaiChuan2-13B/converted_weights TRAIN_ITERS=300 MBS=1 GBS=16 TP=8 PP=1 WORK_DIR=/home/ma-user/ws sh scripts/baichuan2/baichuan2.sh ... ... # 第二台节点 MASTER_ADDR=xx.xx.xx.xx NNODES=2 NODE_RANK=1 MODEL_TYPE=13B RUN_TYPE=sft DATA_PATH=/home/ma-user/ws/processed_for_ma_input/BaiChuan2-13B/data/finetune/alpaca_ft TOKENIZER_MODEL=/home/ma-user/ws/tokenizers/BaiChuan2-13B CKPT_LOAD_DIR=/home/ma-user/ws/processed_for_ma_input/BaiChuan2-13B/converted_weights TRAIN_ITERS=300 MBS=1 GBS=16 TP=8 PP=1 WORK_DIR=/home/ma-user/ws sh scripts/baichuan2/baichuan2.sh 以上命令多台机器执行时,只有${NODE_RANK}:节点ID值不同,其他参数都保持一致。 其中MASTER_ADDR、NODE_RANK、MODEL_TYPE 、RUN_TYPE、DATA_PATH、TOKENIZER_MODEL、CKPT_LOAD_DIR为必填;TRAIN_ITERS、MBS、GBS、TP、PP、WORK_DIR为非必填,有默认值。 可以参考查看日志和性能操作,查看训练日志。 训练完成后,请参考查看日志和性能章节查看性能。
  • HuggingFace权重转换操作 下载baichuan2-13b的预训练权重和词表文件,并上传到/home/ma-user/ws/tokenizers/baichuan2-13b-hf目录下。具体下载地址请参见表1。如果已下载,忽略此步骤。 创建权重转换后的输出目录/home/ma-user/ws/processed_for_ma_input/BaiChuan2-13B/converted_weights/。 cd /home/ma-user/ws/ #进入/home/ma-user/ws/目录 mkdir -p processed_for_ma_input/BaiChuan2-13B/converted_weights 进入代码目录/home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed/ModelLink,在代码目录中执行util.py脚本。 #加载ascendspeed及megatron模型: export PYTHONPATH=$PYTHONPATH:/home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed/AscendSpeed export PYTHONPATH=$PYTHONPATH:/home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed/ModelLink #进入到ModelLink目录下: cd /home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed/ModelLink # 权重格式转换 python tools/checkpoint/util.py --model-type GPT \ --loader llama2_hf \ --saver megatron \ --target-tensor-parallel-size 8 \ #与微调TP值保持一致 --target-pipeline-parallel-size 1 \ #与微调PP值保持一致 --load-dir /home/ma-user/ws/tokenizers/BaiChuan2-13B \ --save-dir /home/ma-user/ws/processed_for_ma_input/BaiChuan2-13B/converted_weights \ --tokenizer-model /home/ma-user/ws/tokenizers/BaiChuan2-13B/tokenizer.model --w-pack True 参数说明: -target-tensor-parallel-size:与后续微调TP值保持一致 -target-pipeline-parallel-size:与后续微调PP值保持一致 -load-dir:原始HuggingFace权重 -tokenizer-model:tokenizer路径 -save-dir:从 huggingface 格式转化为 magatron 格式输出路径 -w-pack :True 权重转换完成后,在/home/ma-user/ws/processed_for_ma_input/BaiChuan2-13B/converted_weights目录下查看转换后的权重文件。
  • 预训练超参配置 本章节介绍预训练前的超参配置,可以根据实际需要修改。 预训练脚本baichuan2.sh,存放在“6.3.904-Ascend/llm_train/AscendSpeed/scripts/baichuan2”目录下。训练前,可以根据实际需要修改超参配置。 表1 超参配置 参数 值 参数说明 DATA_PATH /home/ma-user/ws/processed_for_ma_input/BaiChuan2-13B/data/pretrain/alpaca_text_document 必填。训练时指定的输入数据路径。一般为数据地址/处理后的数据前缀名,不加文件类型后缀。 请根据实际规划修改。 TOKENIZER_MODEL /home/ma-user/ws/tokenizers/BaiChuan2-13B/tokenizer.model 必填。加载tokenizer时,tokenizer存放地址。 MODEL_TYPE 13B 必填。模型加载类型,默认为13B。 TRAIN_ITERS 200 非必填。训练迭代周期。根据实际需要修改。默认值为1000 MBS 1 非必填。流水线并行中一个micro batch所处理的样本量。在流水线并行中,为了减少气泡时间,会将一个step的数据切分成多个micro batch 默认值1。建议值单机1,双机2。 GBS 16 非必填。默认值 16 训练中所有机器一个step所处理的样本量。影响每一次训练迭代的时长,建议值单机16,双机32。 TP 8 非必填。张量并行。默认值为8 PP 1 非必填。默认值为1 流水线并行。建议值单机1,双机2。 RUN_TYPE pretrain 必填。表示训练类型,根据实际训练任务类型选择。取值说明: pretrain:表示预训练 retrain:表示断点续训 sft:表示SFT微调训练 lora:表示LoRA微调训练 MASTER_ADDR localhost 多机必填。主节点IP地址,多台机器中指定一个节点ip为主节点ip,一般指定第一个节点ip为主节点IP。 NNODES 1 多机必填。节点总数,如为双机,则写2。 NODE_RANK 0 多机必填。在节点序号,当前节点id,一般从0开始。 WORK_DIR /home/ma-user/ws 容器的工作目录。训练的权重文件保存在此路径下。非必填,默认值为:/home/ma-user/ws。 父主题: 预训练
  • Alpaca数据 本教程使用到的训练数据集是Alpaca数据集。Alpaca是由OpenAI的text-davinci-003引擎生成的包含52k条指令和演示的数据集。这些指令数据可以用来对语言模型进行指令调优,使语言模型更好地遵循指令。 训练数据集下载:https://huggingface.co/datasets/tatsu-lab/alpaca/resolve/main/data/train-00000-of-00001-a09b74b3ef9c3b56.parquet,数据大小:24M左右。
  • 自定义数据 用户也可以自行准备训练数据。数据要求如下: 使用标准的.json格式的数据,通过设置--json-key来指定需要参与训练的列。 请注意huggingface中的数据集具有如下this格式。可以使用–json-key标志更改数据集文本字段的名称,默认为text。在维基百科数据集中,它有四列,分别是id、url、title和text。可以指定–json-key 标志来选择用于训练的列。 { 'id': '1', 'url': 'https://simple.wikipedia.org/wiki/April', 'title': 'April', 'text': 'April is the fourth month...' } 经下载的原始数据存放在/home/ma-user/ws/training_data目录下。具体步骤如下: 进入到/home/ma-user/ws/目录下。 创建目录“training_data”,并将原始数据放置在此处。 mkdir training_data 数据存放参考目录结构如下: ${workdir}(例如/home/ma-user/ws ) ├── training_data #原始数据目录 ├── train-00000-of-00001-a09b74b3ef9c3b56.parquet #预训练原始数据文件
  • Alpaca数据处理 数据预处理脚本preprocess_data.py存放在代码包的“llm_train/AscendSpeed/ModelLink/tools/”目录中,脚本具体内容如下。 #数据预处理 python ./tools/preprocess_data.py \ --input {work_dir}/training_data/train-00000-of-00001-a09b74b3ef9c3b56.parquet \ --tokenizer-name-or-path {work_dir}/tokenizers/BaiChuan2-13B \ --output-prefix {work_dir}/processed_for_ma_input/BaiChuan2-13B/data/pretrain/alpaca \ --workers 8 \ --log-interval 1000 \ --seq-length 4096 \ --tokenizer-type PretrainedFromHF 参数说明: ${work_dir}的路径指容器工作路径:如/home/ma-user/ws/ 。 - input:原始数据集的存放路径 - output-prefix:处理后的数据集保存路径+数据集名称前缀(例如: alpaca) - tokenizer-type:tokenizer的类型,可选项有['BertWordPieceLowerCase','BertWordPieceCase','GPT2BPETokenizer','PretrainedFromHF'],一般为PretrainedFromHF。 - tokenizer-name-or-path:tokenizer的存放路径 -workers:设置数据处理使用执行卡数量 -log-interval:是一个用于设置日志输出间隔的参数,表示输出日志的频率。在训练大规模模型时,可以通过设置这个参数来控制日志的输出 seq-length:是一个用于计算序列长度的函数。它接收一个序列作为输入,并返回序列的长度,需和训练时参数保持一致。 数据预处理后输出的训练数据如下: alpaca_text_document.bin alpaca_text_document.idx
  • 自定义数据 如果是用户自己准备的数据集,可以使用Ascendspeed代码仓中的转换工具将json格式数据集转换为训练中使用的.idx + .bin格式。 #示例: #1.将准备好的json格式数据集存放于/home/ma-user/ws/training_data目录下: data.json #2.运行转换脚本 #进入到ModelLink目录下: cd /home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed/ModelLink/ #加载ascendspeed及megatron模型: export PYTHONPATH=$PYTHONPATH:/home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed/AscendSpeed export PYTHONPATH=$PYTHONPATH:/home/ma-user/ws/6.3.904-Ascend/llm_train/AscendSpeed/ModelLink #执行以下命令: python ./tools/preprocess_data.py \ --input {work_dir}/training_data/data.json \ --tokenizer-name-or-path {work_dir}/tokenizers/BaiChuan2-13B \ --output-prefix {work_dir}/processed_for_ma_input/BaiChuan2-13B/data/pretrain/alpaca \ --workers 8 \ --seq-length 4096 \ --log-interval 1000 \ --tokenizer-type PretrainedFromHF #3.执行完成后在 datasets文件夹中可以得到 data_text_document.idx 与data_text_document.bin 两个文件
  • SFT全参微调超参配置 本章节介绍SFT全参微调前的超参配置,可以根据实际需要修改。 SFT全参微调脚本baichuan2.sh,存放在6.3.904-Ascend/llm_train/AscendSpeed/scripts/baichuan2目录下。可以根据实际需要修改超参配置。 微调任务配置,操作同预训练配置类似,不同点为RUN_TYPE类型不同,以及输入输出路径的配置的不同。 表1 SFT全参微调超参配置 参数 值 参数说明 DATA_PATH /home/ma-user/ws/processed_for_ma_input/BaiChuan2-13B/data/finetune/alpaca_ft 必填。训练时指定的输入数据路径。一般为数据地址/处理后的数据前缀名,不加文件类型后缀。 请根据实际规划修改。 TOKENIZER_MODEL /home/ma-user/ws/tokenizers/BaiChuan2-13B/ 必填。加载tokenizer时,tokenizer存放地址。 MODEL_TYPE 13B 必填。模型加载类型,默认为13B。 TRAIN_ITERS 2000 非必填。训练迭代周期。根据实际需要修改。 MBS 1 非必填。流水线并行中一个micro batch所处理的样本量。在流水线并行中,为了减少气泡时间,会将一个step的数据切分成多个micro batch。 默认值1。建议值单机1,双机32。 GBS 16 非必填。训练中所有机器一个step所处理的样本量。影响每一次训练迭代的时长,建议值单机16,双机32。 TP 8 非必填。张量并行。默认值为8。 PP 1 非必填。默认值为1 流水线并行。建议值单机1,双机2。 RUN_TYPE sft 必填。表示训练类型。sft表示SFT微调。 MASTER_ADDR localhost 多机必填。主节点IP地址,多台机器中指定一个节点ip为主节点ip,一般指定第一个节点ip为主节点IP。 NNODES 1 多机必填。节点总数,如为双机,则写2。 NODE_RANK 0 多机必填。在节点序号,当前节点id,一般从0开始。 CKPT_LOAD_DIR /home/ma-user/ws/processed_for_ma_input/BaiChuan2-13B/converted_weights 从 huggingface 格式转化为 magatron 格式的权重文件。 WORK_DIR /home/ma-user/ws 容器的工作目录。训练的权重文件保存在此路径下。非必填,默认值为:/home/ma-user/ws 父主题: SFT全参微调
  • 常见问题 为什么要下线旧版自动学习? ModelArts自动学习是帮助用户实现AI应用的低门槛、高灵活、零代码的定制化模型开发工具。ModelArts团队对自动学习模块进行了架构与前端页面的升级,新版自动学习已于2023年6月上线,并已作为主入口面向用户开放,用户可实现在租户账号下管理个人的作业与资源。 下线旧版自动学习对现有用户的使用是否有影响? 用户将无法再使用旧版自动学习的功能,且因旧版自动学习文件均存储于ModelArts统一管理账号下,用户无法找回旧版自动学习的作业记录。 旧版自动学习如何升级到新版自动学习? 请参考新版自动学习指导文档来体验新版自动学习。
  • Alpaca数据处理 数据预处理脚本preprocess_data.py存放在代码包的“llm_train/AscendSpeed/ModelLink/tools”目录中,脚本样例命令及参数详解如下,详细执行步骤请参考下一段落。 python ./tools/preprocess_data.py \ --input {work_dir}/training_data/pretrain/train-00000-of-00001-a09b74b3ef9c3b56.parquet \ --tokenizer-name-or-path {work_dir}/tokenizers/GLM3-6B \ --output-prefix {work_dir}/processed_for_ma_input/GLM3-6B/data/pretrain/alpaca \ --workers 4 \ --tokenizer-type PretrainedFromHF \ --append-eod \ --seq-length 8192 \ --tokenizer-not-use-fast 参数说明: ${work_dir}的路径指容器工作路径:如/home/ma-user/ws/ 。 - input:原始数据集的存放路径 - output-prefix:处理后的数据集保存路径+数据集名称前缀(例如: alpaca),该目录路径需提前创建 - tokenizer-type:tokenizer的类型,可选项有['BertWordPieceLowerCase','BertWordPieceCase','GPT2BPETokenizer','PretrainedFromHF'],一般为PretrainedFromHF。 - tokenizer-name-or-path:tokenizer的存放路径 -workers:设置数据处理使用执行卡数量 -append-eod:参数用于控制是否在每个输入序列的末尾添加一个特殊的标记。这个标记表示输入序列的结束,可以帮助模型更好地理解和处理长序列。 seq-length:是一个用于计算序列长度的函数。它接收一个序列作为输入,并返回序列的长度,需和训练时参数保持一致。 数据预处理后输出的训练数据如下: alpaca_text_document.bin alpaca_text_document.idx 训练的时指定的数据路径为${path}/alpaca/GLM3-6B/alpaca_text_document, 不加文件类型后缀。
  • 自定义数据 如果是用户自己准备的数据集,可以使用Ascendspeed代码仓中的转换工具将json格式数据集转换为训练中使用的.idx + .bin格式。 #示例: #1.将准备好的json格式数据集存放于/home/ma-user/ws/training_data/pretrain目录下: 如data.json #2.运行转换脚本 cd /home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed/ModelLink/ #加载ascendspeed及megatron模型,xxx-Ascend请根据实际目录替换 export PYTHONPATH=$PYTHONPATH:/home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed/AscendSpeed export PYTHONPATH=$PYTHONPATH:/home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed/ModelLink python ./tools/preprocess_data.py \ --input {work_dir}/training_data/pretrain/data.json \ --tokenizer-name-or-path {work_dir}/tokenizers/GLM3-6B \ --output-prefix {work_dir}/processed_for_ma_input/GLM3-6B/data/pretrain/alpaca \ --workers 4 \ --tokenizer-type PretrainedFromHF \ --append-eod \ --seq-length 4096 \ --tokenizer-not-use-fast #3.执行完成后在 datasets文件夹中可以得到 data_text_document.idx 与data_text_document.bin 两个文件
  • 资源规格要求 计算规格:对于Llama2-7B和Llama2-13B单机训练需要使用单机8卡,多机训练需要使用2机16卡。对于Llama2-70B至少需要4机32卡才能训练,建议使用8机64卡执行训练相关任务。 硬盘空间:至少200GB。 Ascend资源规格: Ascend: 1*ascend-snt9b表示Ascend单卡。 Ascend: 8*ascend-snt9b表示Ascend 8卡。
  • 请求服务 使用命令测试推理服务是否正常启动。 curl -X POST http://127.0.0.1:8080/generate \ -H "Content-Type: application/json" \ -d '{ "prompt": "你是谁?", "max_tokens": 100, "top_k": -1, "top_p": 1, "temperature": 0, "ignore_eos": false, "stream": false }' 服务的API与vLLM官网相同:https://github.com/vllm-project/vllm。此处介绍关键参数。 表1 请求服务参数说明 参数 是否必选 默认值 参数类型 描述 prompt 是 - Str 请求输入的问题 max_tokens 否 16 Int 每个输出序列要生成的最大tokens数量。 top_k 否 -1 Int 控制要考虑的前几个tokens的数量的整数。设置为-1表示考虑所有tokens。 适当降低该值可以减少采样时间。 top_p 否 1.0 Float 控制要考虑的前几个tokens的累积概率的浮点数。必须在 (0, 1] 范围内。设置为1表示考虑所有toekns。 temperature 否 1.0 Float 控制采样的随机性的浮点数。较低的值使模型更加确定性,较高的值使模型更加随机。0表示贪婪采样。 stop 否 None None/Str/List 用于停止生成的字符串列表。返回的输出将不包含停止字符串。 例如:["你","好"],生成文本时遇到"你"或者"好"将停止文本生成。 stop_token_ids 否 None List 用于停止生成的token列表。返回的输出将包含停止tokens,除非停止tokens是特殊tokens。 ignore_eos 否 False Bool 是否忽略EOS tokens并继续生成EOS tokens后的tokens。False表示不忽略。 presence_penalty 否 0.0 Float 基于生成文本中新tokens是否已出现来对其进行惩罚的浮点数。大于0的值鼓励模型使用新的tokens,小于0的值鼓励模型重复使用tokens。 取值范围为[-2, 2] frequency_penalty 否 0.0 Float 基于生成文本中新tokens的频率来对其进行惩罚的浮点数。大于0的值鼓励模型使用新的tokens,小于0的值鼓励模型重复使用tokens。 取值范围为[-2, 2] skip_special_tokens 否 True Bool 是否跳过输出中的特殊tokens。默认为True,表示跳过。 stream 否 False Bool 是否开启流式推理。默认为False,表示不开启流式推理。 查看返回是否符合预期 {"text":["你是谁?\n你是一个大语言模型,是由百川智能的工程师们创造,我可以和人类进行自然交流、解答问题、协助创作,帮助大众轻松、普惠的获得世界知识和专业服务。如果你有任何问题,可以随时向我提问"]}
  • 启动服务 启动vllm服务器服务,具体操作命令如下,API Server的命令相关参数说明如下,可以根据参数说明修改配置。 export ATB_LAYER_INTERNAL_TENSOR_REUSE=1 python -m vllm.entrypoints.api_server --model ${container_model_path} \ --max-num-seqs=256 \ --max-model-len=4096 \ --max-num-batched-tokens=4096 \ --dtype=float16 \ --tensor-parallel-size=1 \ --block-size=128 \ --host=${docker_ip} \ --port=8080 \ --gpu-memory-utilization=0.9 \ --trust-remote-code 具体参数说明如下: --model ${container_model_path}:模型地址,模型格式是HuggingFace的目录格式。即Step4 获取权重文件上传的HuggingFace权重文件存放目录。 --max-num-seqs:最大同时处理的请求数,超过后拒绝访问。 --max-model-len:推理时最大输入+最大输出tokens数量,输入超过该数量会直接返回。 --max-num-batched-tokens:prefill阶段,最多会使用多少token,必须大于或等于--max-model-len,推荐使用4096或8192。 --dtype:模型推理的数据类型,当前只支持float16。 --tensor-parallel-size:模型并行数,13B模型一般为1即可。 --block-size:PagedAttention的block大小,推荐设置为128。 --host=${docker_ip}:服务部署的IP,${docker_ip}替换为容器实际的IP地址。可以在宿主机上通过docker inspect容器ID |grep IPAddress命令查询。 --port:服务部署的端口,和Step4 启动容器镜像中设置的端口保持一致,否则不能在容器外访问推理服务。 --gpu-memory-utilization:NPU使用的显存比例,复用原vLLM的入参名称,默认为0.9。 --trust-remote-code:是否相信远程代码,baichuan-13b必须增加此项。
  • Step2 启动训练脚本 请根据表1修改超参值后,再启动训练脚本。 单机启动 以GLM3-6B为例,单机SFT全参微调启动命令如下。 进入代码目录/home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed下执行启动脚本。xxx-Ascend请根据实际目录替换。 MODEL_TYPE=6B RUN_TYPE=sft DATASET_PATH=/home/ma-user/ws/processed_for_ma_input/GLM3-6B/data/finetune/alpaca_ft TOKENIZER_PATH=/home/ma-user/ws/tokenizers/GLM3-6B MODEL_PATH=/home/ma-user/ws/processed_for_ma_input/GLM3-6B/converted_weights TRAIN_ITERS=200 MBS=1 GBS=64 TP=2 PP=4 SEQ_LEN=8192 WORK_DIR=/home/ma-user/ws sh scripts/glm3/glm3_base.sh 其中 MODEL_TYPE 、RUN_TYPE、DATASET_PATH、TOKENIZER_PATH、MODEL_PATH为必填;TRAIN_ITERS、MBS、GBS、TP、PP、SEQ_LEN为非必填,有默认值。 多机启动 以GLM3-6B为例,多台机器执行训练启动命令如下。多机启动需要在每个节点上执行,以下命令以双机为例。 进入代码目录/home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed下执行启动脚本。xxx-Ascend请根据实际目录替换。 第一台节点 MASTER_ADDR=xx.xx.xx.xx NNODES=2 NODE_RANK=0 MODEL_TYPE=6B RUN_TYPE=sft DATASET_PATH=/home/ma-user/ws/processed_for_ma_input/GLM3-6B/data/finetune/alpaca_ft TOKENIZER_PATH=/home/ma-user/ws/tokenizers/GLM3-6B MODEL_PATH=/home/ma-user/ws/processed_for_ma_input/GLM3-6B/converted_weights TRAIN_ITERS=200 MBS=2 GBS=128 TP=2 PP=8 SEQ_LEN=8192 WORK_DIR=/home/ma-user/ws sh scripts/glm3/glm3_base.sh ... ... # 第二台节点 MASTER_ADDR=xx.xx.xx.xx NNODES=2 NODE_RANK=1 MODEL_TYPE=6B RUN_TYPE=sft DATASET_PATH=/home/ma-user/ws/processed_for_ma_input/GLM3-6B/data/finetune/alpaca_ft TOKENIZER_PATH=/home/ma-user/ws/tokenizers/GLM3-6B MODEL_PATH=/home/ma-user/ws/processed_for_ma_input/GLM3-6B/converted_weights TRAIN_ITERS=200 MBS=2 GBS=128 TP=2 PP=8 SEQ_LEN=8192 WORK_DIR=/home/ma-user/ws sh scripts/glm3/glm3_base.sh 以上命令多台机器执行时,只有${NODE_RANK}的节点ID值不同,其他参数都保持一致。 其中MASTER_ADDR、NODE_RANK、MODEL_TYPE 、RUN_TYPE、DATASET_PATH、TOKENIZER_PATH、MODEL_PATH为必填;TRAIN_ITERS、MBS、GBS、TP、PP、WORK_DIR、SEQ_LEN为非必填,有默认值。 训练完成后,请参考查看日志和性能章节查看日志和性能。
  • Step1 修改训练超参配置 SFT全参微调脚本glm3_base.sh,存放在Ascenxxx-Ascend/llm_train/AscendSpeed/scripts/glm3目录下。训练前,可以根据实际需要修改超参配置。 微调任务配置,操作同预训练配置类似,不同点为RUN_TYPE类型不同,以及输入输出路径的配置的不同。SFT微调的计算量与预训练基本一致,故配置可以与预训练相同。 表1 SFT全参微调超参配置 参数 值 参数说明 DATASET_PATH /home/ma-user/ws/processed_for_ma_input/GLM3-6B/data/finetune/alpaca_ft 必填。训练时指定的输入数据路径。一般为数据地址/处理后的数据前缀名,不加文件类型后缀。 请根据实际规划修改。 TOKENIZER_PATH /home/ma-user/ws/tokenizers/GLM3-6B 必填。加载tokenizer时,tokenizer存放地址。请根据实际规划修改。 MODEL_PATH /home/ma-user/ws/processed_for_ma_input/GLM3-6B/converted_weights 必填。加载的权重文件路径。SFT全参微调权重转换章节中将HuggingFace格式转化为Megatron格式的权重文件。 MODEL_TYPE 6B 必填。模型加载类型。 TRAIN_ITERS 200 非必填。训练迭代周期。根据实际需要修改。 MBS 1 非必填。表示流水线并行中一个micro batch所处理的样本量。在流水线并行中,为了减少气泡时间,会将一个step的数据切分成多个micro batch。 该值与TP和PP以及模型大小相关,可根据实际情况进行调整。 建议值单机1,双机2。 GBS 64 非必填。表示训练中所有机器一个step所处理的样本量。影响每一次训练迭代的时长。 建议值单机64,双机128。 TP 2 非必填。表示张量并行。默认值为2。 PP 4 非必填。表示流水线并行。建议值单机4,双机8。 RUN_TYPE sft 必填。表示训练类型,sft表示SFT微调训练。 MASTER_ADDR localhost 多机必填,单机忽略。指定主节点IP地址,多台机器中需要指定一个节点IP为主节点IP。 一般指定第一个节点IP为主节点IP。 NNODES q 多机必填,单机忽略。节点总数,单机写1,双机写2,8机写8。 NODE_RANK 0 多机必填,单机忽略。节点序号,当前节点ID,一般从0开始,单机默认是0。以8机训练为例,节点ID依次为(0 1 2 3 4 5 6 7);一般ID为0的节点设置为主节点IP。 WORK_DIR /home/ma-user/ws 非必填。容器的工作目录。训练的权重文件保存在此路径下。默认值为:/home/ma-user/ws。 SEQ_LEN 8192 非必填。默认值为8192。
  • Step1 修改训练超参配置 SFT微调脚本qwen.sh,存放在xxx-Ascend/llm_train/AscendSpeed/scripts/qwen目录下。训练前,可以根据实际需要修改超参配置。 微调任务配置,操作同预训练配置类似,不同点为RUN_TYPE类型不同,以及输入输出路径的配置的不同。SFT微调的计算量与预训练基本一致,故配置可以与预训练相同。 表1 SFT微调超参配置 参数 示例值 参数说明 DATASET_PATH /home/ma-user/ws/processed_for_ma_input/Qwen-14B/data/finetune/alpaca_ft 必填。训练时指定的输入数据路径。一般为数据地址/处理后的数据前缀名,不加文件类型后缀。 请根据实际规划修改。 TOKENIZER_PATH /home/ma-user/ws/tokenizers/Qwen-14B 必填。加载tokenizer时,tokenizer存放地址。请根据实际规划修改。 MODEL_TYPE 14B 必填。模型加载类型,根据实际填写7B、14B或72B。 TRAIN_ITERS 300 非必填。训练迭代周期。根据实际需要修改。 MBS 2 非必填。表示流水线并行中一个micro batch所处理的样本量。在流水线并行中,为了减少气泡时间,会将一个step的数据切分成多个micro batch。 该值与TP和PP以及模型大小相关,可根据实际情况进行调整。默认值为2。取值建议如下: Qwen-14B:2 Qwen-7B:2 Qwen-72B:1 GBS 64 非必填。表示训练中所有机器一个step所处理的样本量。影响每一次训练迭代的时长;对于PP(流水线并行)值大于1的场景,适当增大GBS值吞吐性能会有所提升。 TP 8 非必填。表示张量并行。默认值为8,取值建议: Qwen-14B:8 Qwen-7B:4 Qwen-72B:8 PP 1 非必填。表示流水线并行。默认值为1,取值建议: Qwen-14B:1 Qwen-7B:1 Qwen-72B:大于等于5,例如5机填写5,8机填8。 RUN_TYPE sft 必填。表示训练类型。sft表示SFT微调。 MASTER_ADDR localhost 多机必填。主节点IP地址,多台机器中指定一个节点IP为主节点IP。 一般指定第一个节点IP为主节点IP。 NNODES 1 多机必填。节点总数,如为双机,则写2。单机默认是1。 NODE_RANK 0 多机必填。节点序号,当前节点ID,一般从0开始。单机默认是0。以Qwen-72B 5机训练为例,节点ID依次为(0 1 2 3 4);一般ID为0的节点设置为主节点IP。 MODEL_PATH /home/ma-user/ws/processed_for_ma_input/Qwen-14B/converted_weights 必填。加载的权重文件路径。SFT微调权重转换章节中将HuggingFace格式转化为Megatron格式的权重文件。 WORK_DIR /home/ma-user/ws 非必填。容器的工作目录,训练的权重文件保存在此路径下。默认值为:/home/ma-user/ws。 SEQ_LEN 4096 非必填。默认值为4096。
  • Step2 启动训练脚本 请根据表1修改超参值后,再启动训练脚本。 单机启动 以Qwen-14B为例,单机SFT微调启动命令如下。在/home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed/代码目录下执行。 MODEL_TYPE=14B RUN_TYPE=sft DATASET_PATH=/home/ma-user/ws/processed_for_ma_input/Qwen-14B/data/finetune/alpaca_ft TOKENIZER_PATH=/home/ma-user/ws/tokenizers/Qwen-14B MODEL_PATH= /home/ma-user/ws/processed_for_ma_input/Qwen-14B/converted_weights TRAIN_ITERS=300 MBS=2 GBS=64 TP=8 PP=1 SEQ_LEN=4096 WORK_DIR=/home/ma-user/ws sh scripts/qwen/qwen.sh 其中 MODEL_TYPE 、RUN_TYPE、DATA_PATH、TOKENIZER_MODEL、MODEL_PATH为必填,TRAIN_ITERS、MBS、GBS、TP、PP、SEQ_LEN为非必填,有默认值。 多机启动 以Qwen-14B为例,多台机器执行训练启动命令如下。多机启动需要在每个节点上执行,此处以双机为例。 在/home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed/代码目录下执行。 第一台节点 MASTER_ADDR=xx.xx.xx.xx NNODES=2 NODE_RANK=0 MODEL_TYPE=14B RUN_TYPE=sft DATASET_PATH=/home/ma-user/ws/processed_for_ma_input/Qwen-14B/data/finetune/alpaca_ft TOKENIZER_PATH=/home/ma-user/ws/tokenizers/Qwen-14B MODEL_PATH=/home/ma-user/ws/processed_for_ma_input/Qwen-14B/converted_weights TRAIN_ITERS=300 MBS=2 GBS=64 TP=8 PP=1 SEQ_LEN=4096 WORK_DIR=/home/ma-user/ws sh scripts/qwen/qwen.sh ... ... # 第二台节点 MASTER_ADDR=xx.xx.xx.xx NNODES=2 NODE_RANK=1 MODEL_TYPE=14B RUN_TYPE=sft DATASET_PATH=/home/ma-user/ws/processed_for_ma_input/Qwen-14B/data/finetune/alpaca_ft TOKENIZER_PATH=/home/ma-user/ws/tokenizers/Qwen-14B MODEL_PATH=/home/ma-user/ws/processed_for_ma_input/Qwen-14B/converted_weights TRAIN_ITERS=300 MBS=2 GBS=64 TP=8 PP=1 SEQ_LEN=4096 WORK_DIR=/home/ma-user/ws sh scripts/qwen/qwen.sh 以上命令多台机器执行时,只有${NODE_RANK}的节点ID值不同,其他参数都保持一致。 其中MASTER_ADDR、 NODE_RANK、 NODE_RANK、MODEL_TYPE 、RUN_TYPE、DATASET_PATH、TOKENIZER_PATH、MODEL_PATH为必填;TRAIN_ITERS、MBS、GBS、TP、PP、WORK_DIR、SEQ_LEN为非必填,有默认值。 训练完成后,请参考查看日志和性能章节,查看SFT微调的日志和性能。
  • 附录:get_onnx.py脚本内容 get_onnx.py脚本用于查看onnx模型文件信息,脚步具体内容如下: from pprint import pprint import onnxruntime onnx_path = "./model.onnx" # 此处的onnx_path值需替换成实际的模型存放路径和模型文件名称 provider = "CPUExecutionProvider" onnx_session = onnxruntime.InferenceSession(onnx_path, providers=[provider]) print("----------------- 输入部分 -----------------") input_tensors = onnx_session.get_inputs() # 该 API 会返回列表 for input_tensor in input_tensors: # 因为可能有多个输入,所以为列表 input_info = { "name" : input_tensor.name, "type" : input_tensor.type, "shape": input_tensor.shape, } pprint(input_info) print("----------------- 输出部分 -----------------") output_tensors = onnx_session.get_outputs() # 该 API 会返回列表 for output_tensor in output_tensors: # 因为可能有多个输出,所以为列表 output_info = { "name" : output_tensor.name, "type" : output_tensor.type, "shape": output_tensor.shape, } pprint(output_info)
  • Step7 Jmeter压测 获取开源的Jmeter压测工具。 安装Java。 下载jdk包到宿主机上,拷贝到容器/opt/jdk目录下,使用tar -zxvf 解压,例如: #容器内执行: mkdir /opt/jdk #宿主机上执行: docker cp jdk-8u352-linux-aarch64.tar.gz bert-mindspore:/opt/jdk #容器内执行: cd /opt/jdk tar -zxvf jdk-8u352-linux-aarch64.tar.gz 然后设置环境变量(JAVA_HOME 路径名称以实际为准): export JAVA_HOME=/opt/jdk/jdk1.8.0_352 export PATH=${JAVA_HOME}/bin:${PATH} 安装Jmeter。 下载jmeter包到宿主机上,拷贝到容器/opt/jmeter,使用unzip 解压,例如: #容器内执行: mkdir /opt/jmeter #宿主机上执行: docker cp apache-jmeter-5.4.1.zip bert-mindspore:/opt/jmeter #容器内执行: cd /opt/jmeter unzip apache-jmeter-5.4.1.zip 然后设置环境变量 export PATH=/opt/jmeter/apache-jmeter-5.4.1/bin:${PATH} 启动Jmeter压测。 修改jmeter启动脚本 vim run_jmeter.sh 将其内容修改如下,${model}.jtl 为jtl文件名 jmeter -n -t jmeter.jmx -l ${model}.jtl 启动jmeter脚本 sh run_jmeter.sh 查看信息。将jtl文件保存在本地,创建一个线程组,在该线程组下面创建一个监听器的聚合报告。在聚合报告中打开相应的jtl文件查看信息。 查看的信息包括: 平均值:平均时延 99%百分位:p99时延 异常:失败率 吞吐量:qps 每打开一个jtl文件需要重新创建一个聚合报告,不能用同一个聚合报告打开多个jtl文件,会使数据杂糅,使聚合报告信息不准。 记录最终吞吐量时需将该信息中的吞吐量 x batchsize。
  • Step1 准备环境 请参考DevServer资源开通,购买DevServer资源,并确保机器已开通,密码已获取,能通过SSH登录,不同机器之间网络互通。 当容器需要提供服务给多个用户,或者多个用户共享使用该容器时,应限制容器访问Openstack的管理地址(169.254.169.254),以防止容器获取宿主机的元数据。具体操作请参见禁止容器获取宿主机元数据。 检查环境。 SSH登录机器后,检查NPU设备检查。运行如下命令,返回NPU设备信息。 npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态 npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数 如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装NPU设备和驱动,或释放被挂载的NPU。 检查docker是否安装。 docker -v #检查docker是否安装 如尚未安装,运行以下命令安装docker。 yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。 sysctl -p | grep net.ipv4.ip_forward 如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。 sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
  • Step5 转换模型文件 将onnx模型文件转换为mindir格式模型文件。转换过程中涉及到的参数需要查看原始onnx文件,此处提供查看的脚本文件get_onnx.py,具体的脚步文件内容见附录:get_onnx.py脚本内容。 模型转换命令如下。 export model_name="model" export LD_LIBRARY_PATH=/home/ma-user/anaconda3/envs/python-3.9.10/lib/:${LD_LIBRARY_PATH} converter_lite --modelFile=./${model_name}.onnx --outputFile=./${model_name} --fmk=ONNX --saveType=MINDIR --optimize=ascend_oriented --inputShape="input_ids:4,96;attention_mask:4,96;token_type_ids:4,96" --modelFile:模型名称。 --outputFile:输出模型名称。模型名称无需添加.mindir后缀,添加后对后续测试流程存在一定影响。 --inputShape:根据onnx输出的name:shape进行修改,可以通过get_onnx.py脚本查看,如图1所示。 图1 get_onnx.py脚本查看输入参数 如需进行AOE优化,则需配置一个config.ini文件,文件内容如下。 [ascend_context] plugin_custom_ops=FlashAttention,GroupNormSilu,GeGluV2 aoe_mode="subgraph tuning, operator tuning" AOE优化命令如下,只需将以上模型转换命令添加一个--configFile=config.ini即可。 converter_lite --modelFile=./${model_name}.onnx -- outputFile=./${model_name} --fmk=ONNX --saveType=MINDIR --optimize=ascend_oriented --inputShape="input_ids:4,96;attention_mask:4,96;token_type_ids:4,96" --configFile=config.ini benchmark测试命令如下。 benchmark --device=Ascend --modelFile=${model_name}.mindir 图2 benchmark测试
  • Step3 启动容器镜像 启动容器镜像。启动前请先按照参数说明修改${}中的参数。 export work_dir="自定义挂载的工作目录" export container_work_dir="自定义挂载到容器内的工作目录" export container_name="自定义容器名称" export image_name="镜像名称" // 启动一个容器去运行镜像 docker run -itd \ --device=/dev/davinci0 \ --device=/dev/davinci_manager \ --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /etc/ascend_install.info:/etc/ascend_install.info \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ --shm-size 32g \ --net=bridge \ -p 5556:5556 \ -v ${work_dir}:${container_work_dir} \ --name ${container_name} \ ${image_name} bash 参数说明: -v ${work_dir}:${container_work_dir}:代表需要在容器中挂载宿主机的目录。宿主机和容器使用不同的文件系统。work_dir为宿主机中工作目录,目录下存放着训练所需代码、数据等文件。container_work_dir为要挂载到的容器中的目录。为方便两个地址可以相同。 容器不能挂载到/home/ma-user目录,此目录为ma-user用户家目录。如果容器挂载到/home/ma-user下,拉起容器时会与基础镜像冲突,导致基础镜像不可用。 driver及npu-smi需同时挂载至容器。 --name ${container_name}:容器名称,进入容器时会用到,此处可以自己定义一个容器名称。 ${image_name}:容器镜像的名称。 通过容器名称进入容器中。 docker exec -it ${container_name} bash
  • Step6 安装插件代码包并编辑 模型推理时需要使用适配过昇腾的模型插件包。将获取到的模型插件代码包ascendcloud-aigc-6.3.904-*.tar.gz文件上传到容器的/home/ma-user/目录下并解压。获取路径参见获取软件和镜像。 cd /home/ma-user/ tar -zxvf ascendcloud-aigc-6.3.904-*.tar.gz #解压,包名中的*表示时间戳,请按照实际替换。 cp ascendcloud-aigc-poc-redbook.tar.gz ${model_path} #${model_path}为mindir文件所在路径 cd ${model_path} tar -zxvf ascendcloud-aigc-poc-redbook.tar.gz 解压后所得文件如图3所示。 图3 ascendcloud-aigc-poc-redbook解压后文件 编辑gunicorn.conf文件。 vim gunicorn.conf 图4 编辑gunicorn.conf文件 5556与创建容器映射端口号保持一致。 workers为服务数,测试多服务时可以根据需要修改此参数的值。 编辑infer_server.py文件。 vim infer_server.py 图5 BERT编辑infer_server.py文件 DEVICE_ID:设备ID,与挂载卡保持一致。 model_path:为mindir名称。 port:与创建容器时端口保持一致。 input_data:三个为onnx模型转mindir模型时的输入,此次三个输入全部为4,96,将图上32,256全部换为4,96即可。如果该模型只有一个输入,需将input_data2与input_data3添加注释,并将res = model[(input_data1,input_data2,input_data3])]中的input_data2与input_data3删除,在input_data1中填入相应输入即可。 此次三个BERT全部为三个输入,CV模型全部为单个输入,如下图为CV模型的输入信息查看示例。 图6 get_onnx.py查看CV模型的onnx信息 对于CV模型,需将input_data2与input_data3注释,此onnx模型为固定shape,其转为onnx模型时不能修改其输入,故Inptu_data1中需修改为1,3,640,640,后面np.int32也需修改为np.float32。 编辑jmeter.jmx文件 vim jmeter.jmx 图7 编辑jmeter.jmx文件(1) ThreadGroup.num_threads:为jemter压测的线程数。 ThreadGroup.scheduler:将false修改为true,表示限制压测时间。 ThreadGroup.duration:设置压测时间,默认时间单位为s,例如需要压测10min,则添加600即可,无需带单位。 图8 编辑jmeter.jmx文件(2) port:与创建容器时端口保持一致
  • 约束与限制 版本要求 导入的文件必须是 RVTools 4.5.1版本导出的结果且文件格式必须为Excel (.xlsx)。如果需要导入其他版本的导出结果,请参照RVTools4.5.1格式进行调整后再导入。 文件大小、压缩比要求 导入的文件大小不能超过50 MB,压缩比不能低于5%。 数据过滤 导入的RVTools文件中,如果vinfo页签里的主机存在CPUs/Memory任意一个值为空或为0,则不会将该台主机信息解析到MgC上。
  • 使用须知 支持的区域 当前支持在以下区域(Region)进行SFS迁移,其它Region请使用线下工具RDA或者咨询其它方案进行迁移。 华北-北京四 华南-广州 华东-上海一 华南-广州-友好用户环境 华东-青岛 内网迁移 支持在同一Region内通过内网进行迁移。 软连接处理 MgC不支持源端路径为软链接的迁移。如果源端包含软链接,请进行如下处理: 填写实际的文件路径。 迁移完成后,手动在目的端创建相应的软链接。 父主题: SFS1.0迁移至SFS 3.0
  • 操作场景 CDM集群已经创建成功后,您可以查看集群基本信息,并修改集群的配置。 查看集群基本信息: 集群信息:集群版本、创建时间、项目ID、实例ID和集群ID等。 节点配置:集群规格、CPU和内存配置等信息。 网络信息:网络配置。 支持修改集群的以下配置: 消息通知:CDM的迁移作业(目前仅支持表/文件迁移的作业)失败时,或者EIP异常时,会发送短信或邮件通知用户。该功能产生的消息通知不会计入收费项。 用户隔离:控制其他用户是否能够操作该集群中的迁移作业、连接。 开启该功能时,该集群中的迁移作业、连接会被隔离,华为账号下的其他IAM用户无法操作该集群下的作业、连接。 关闭该功能时,该集群中的迁移作业、连接信息可以用户共享,华为账号下的所有拥有相应权限的IAM用户可以查看、操作。 注意,用户隔离关闭后需要重启集群VM才能生效。 最大抽取并发数:限制作业运行的总抽取并发数,如果当前所有作业总并发数超出限制,超出部分将排队等待。 注意,最大抽取并发数取值范围为1-1000,建议根据集群规格进行配置,建议值详见最大抽取并发数。过高的并发数可能导致内存溢出,请谨慎修改。 此处的“最大抽取并发数”参数与作业配置管理处的“最大抽取并发数”参数同步,在任意一处修改即可生效。
  • HBase/CloudTable增量迁移 使用CDM导出HBase(包括MRS HBase、FusionInsight HBase、Apache HBase)或者表格存储服务(CloudTable)的数据时,支持导出指定时间段内的数据,配合CDM的定时任务,可以实现HBase/CloudTable的增量迁移。 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 在创建CDM表/文件迁移的作业,源连接选择为HBase连接或CloudTable连接时,高级属性的可选参数中可以配置时间区间。 图1 HBase时间区间 起始时间(包含该值),格式为“yyyy-MM-dd HH:mm:ss”,表示只抽取该时间及以后的数据。 终止时间(不包含该值),格式为“yyyy-MM-dd HH:mm:ss”,表示只抽取该时间以前的数据。 这2个参数支持配置为时间宏变量,例如: 起始时间配置为${dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)}时,表示只导出昨天以后的数据。 终止时间配置为${dateformat(yyyy-MM-dd HH:mm:ss)}时,表示只导出当前时间以前的数据。 这2个参数同时配置后,CDM就只导出前一天内的数据,再将该作业配置为每天0点执行一次,就可以增量同步每天新生成的数据。 父主题: 增量迁移原理介绍
  • 操作步骤 进入购买云数据迁移服务界面。 配置CDM集群参数,各参数说明如表1所示。 表1 CDM集群参数 参数名称 样例 说明 当前区域 华北-北京一 选择CDM集群的区域,不同区域的资源之间内网不互通。 可用区 可用区2 请参见什么是可用区。 集群名称 cdm-aff1 自定义CDM集群名称。 说明: CDM集群创建后,不支持修改集群名称。 实例类型 cdm.large 目前CDM支持以下规格供用户选择: cdm.large:8核CPU、16G内存的虚拟机,最大带宽/基准带宽为3/0.8 Gbps,集群作业并发数上限为16。 cdm.xlarge:16核CPU、32G内存的虚拟机,最大带宽/基准带宽为10/4 Gbps,集群作业并发数上限为32,适合使用10GE高速带宽进行TB级以上的数据量迁移。 cdm.4xlarge:64核CPU、128G内存的虚拟机,最大带宽/基准带宽为40/36 Gbps,集群作业并发数上限为128。 购买DataArts Studio赠送的4核CPU、8G内存的虚拟机,仅支持作业单并发运行。 虚拟私有云 vpc1 CDM集群所属VPC、子网、安全组,需确保CDM集群与待连接的数据源能正常通信。用户可以根据CDM迁移的数据源端、目的端所处网络进行选择: 如果CDM集群与待连接的数据源所属不同的VPC,或者待连接的为本地数据源时,CDM集群需要绑定EIP,通过公网通信。 如果待连接的数据源为云上服务,则推荐CDM集群的网络配置与该云服务一致,此时CDM集群不用绑定EIP,通过内网通信。 如果待连接的数据源为云上服务,CDM与它在同一个VPC但所属不同子网,则可以通过配置安全组规则来使CDM集群与云服务间的网络互通。 VPC、子网、安全组的详细操作,请参见《虚拟私有云用户指南》。 说明: 目前CDM实例创建完成后不支持切换VPC、子网、安全组,请谨慎选择。 此处支持选择共享VPC子网,即由VPC的所有者将VPC内的子网共享给当前账号,由当前账号在购买CDM集群时选择共享VPC子网。通过共享VPC子网功能,可以简化网络配置,帮助您统一配置和运维多个账号下的资源,有助于提升资源的管控效率,降低运维成本。如何共享VPC子网,请参考《共享VPC》。 子网 subnet-1 安全组 sg-1 企业项目 default 只有在企业项目管理界面创建了企业项目,这里才可以选择。 企业项目管理服务是一种云资源管理方式,具体请参见《企业管理用户指南》。 标签 cluster_owner:cdm 高级配置参数选择自定义时可配置标签参数。 如果您需要使用同一标签标识多种云资源,可以自定义填写标签键及对应的标签值,后续可在TMS标签系统中可筛选出同一标签的云资源。 说明: 一个集群最多可添加10个标签。 标签键(key)的最大长度为36个字符,标签值(value)的最大长度为43个字符。 消息通知 否 开启后,支持配置20个手机号码或邮箱,作业(目前仅支持表/文件迁移的作业)失败时、EIP异常时会发送短信或邮件通知用户。 查看当前配置,确认无误后单击“立即购买”进入规格确认界面。 集群创建好以后不支持修改规格,如果需要使用更高规格,需要重新创建。 单击“提交”,系统开始自动创建CDM集群,在“集群管理”界面可查看创建进度。
  • 前提条件 已申请VPC、子网和安全组。CDM集群连接云上其它服务时,需确保CDM集群与待连接的云服务在同一个VPC。如果CDM集群与其它云服务所属不同VPC,则CDM集群需要通过EIP连接云服务。 当CDM集群与其他云服务所在的区域、VPC、子网、安全组一致时,可保证CDM集群与其他云服务内网互通,无需专门打通网络。 当CDM集群与其他云服务所在的区域和VPC一致、但子网或安全组不一致时,需配置路由规则及安全组规则以打通网络。配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。 当CDM集群与其他云服务所在的区域一致、但VPC不一致时,可以通过对等连接打通网络。配置对等连接请参见如何配置对等连接章节。 注:如果配置了VPC对等连接,可能会出现对端VPC子网与CDM管理网重叠,从而无法访问对端VPC中数据源的情况。推荐使用公网做跨VPC数据迁移,或联系管理员在CDM后台为VPC对等连接添加特定路由。 当CDM集群与其他云服务所在的区域不一致时,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 另外,如果创建了企业项目,则企业项目也会影响CDM集群与其他云服务的网络互通,只有企业项目一致的云服务才能打通网络。
共100000条