机器之心|使用AmazonSageMaker运行中文命名实体识别( 三 )
role = get_execution_role()
hyperparameters = {'task_name': 'ner', 'do_train': 'true', 'do_eval': 'true','data_dir': '/opt/ml/input/data/training', 'output_dir': '/opt/ml/model','vocab_file': './albert_config/vocab.txt', 'bert_config_file': './albert_base_zh/albert_config_base.json', _seq_length': 128, 'train_batch_size': 64, 'learning_rate': 2e-5, 'num_train_epochs': 1}
instance_type = 'local'
if subprocess.call('nvidia-smi') == 0:
instance_type = 'local_gpu'
estimator = Estimator(role=role,
train_instance_count=1,
train_instance_type=instance_type,
image_name='sagemaker-tf-albert-chinese-ner:latest',
hyperparameters=hyperparameters)
estimator.fit('file:///home/ec2-user/SageMaker/albert-chinese-ner/data/')
训练启动后 , 我们可以看到训练的日志输出 , 以及监控本机的GPU、CPU、内存等的使用率等情况 , 以确认程序可以正常工作 。
如果在此过程中需要进入正在运行的容器内调试 , 我们可以使用docker ps命令获取当前正在运行的容器ID , 并使用docker exec -it/bin/bash进入容器内进行调试 。
2.5 Amazon SageMaker测试
在本地测试和上传镜像到Amazon ECR完成后 , 我们可以使用Amazon SageMaker进行测试:第一步 , 上传数据到Amazon S3 , 获取镜像在Amazon ECR的地址 。 第二步 , 指定执行的角色 , 这里我们假设您是在Amazon SageMaker Notebook上执行的 , 如果是其他环境 , 您可能需要手动指定角色的ARN 。 第三步 , 设定超参数 , 这里需要对应到您程序中所需的超参数 。 第四步 , 设定训练机型为ml.p2.xlarge(支持GPU) 。 第五步 , 创建Estimator , 这里需要传入之前获得的角色、训练机型、机器数量、镜像地址、超参数等 。 第六步 , 启动训练 , 这里需要传入训练数据的位置 , 在Amazon SageMaker模式下 , 训练数据的位置需要设置成Amazon S3路径 。
prefix = 'DEMO-tensorflow-albert-chinese-ner'
sess = sage.Session()
WORK_DIRECTORY = '/home/ec2-user/SageMaker/albert-chinese-ner/data'
data_location = sess.upload_data(WORK_DIRECTORY, key_prefix=prefix)
client = boto3.client('sts')
account = client.get_caller_identity()['Account']
my_session = boto3.session.Session()
region = my_session.region_name
algorithm_name = 'sagemaker-tf-albert-chinese-ner'
ecr_image = '{}.dkr.ecr.{}.amazonaws.com/{}:latest'.format(account, region, algorithm_name)
hyperparameters = {'task_name': 'ner', 'do_train': 'true', 'do_eval': 'true', 'data_dir': '/opt/ml/input/data/training', 'output_dir': '/opt/ml/model', 'vocab_file': './albert_config/vocab.txt', 'bert_config_file': './albert_base_zh/albert_config_base.json', 'max_seq_length': 128, 'train_batch_size': 64, 'learning_rate': 2e-5, 'num_train_epochs': 3}
instance_type = 'ml.p2.xlarge'
estimator = Estimator(role=role,
train_instance_count=1,
train_instance_type=instance_type,
image_name=ecr_image,
hyperparameters=hyperparameters)
estimator.fit(data_location)
训练启动后 , 我们可以在Amazon SageMaker控制台看到这个训练任务 , 点进详情可以看到训练的详情 , 日志输出 , 以及监控机器的GPU、CPU、内存等的使用率等情况 , 以确认程序可以正常工作 。
推荐阅读
- OPPO手机|iPhone明年才使用LTOP屏幕,屏幕今年还得看绿厂!
- 手机使用技巧|宝宝照片太多怎么办?4种不占手机内存的存储方式,最后一种更安全
- |使用TLC闪存的英睿达P5系列NVMe M.2 SSD现已公布售价
- 技术编程|机器学习又一重要医学应用!培植人造器官
- 机械|电脑的机械硬盘和固态硬盘什么区别,谁使用寿命长?
- 科技造就未来|Apple为什么要使用ARM?为什么不从头开始?
- 智能机器人|【好莱坞首次用AI机器人主演】
- 电脑使用技巧|Word文字技巧—如何将Excel转换成Word
- windows系统,电脑使用技巧|第三方 Fluent Design 图标设计集预示未来 Win 10 风格
- 华为手机,AI人工智能|今天才知道,华为手机右上角还能这样使用,几千块钱果真没白花