腾讯云计算加速套件TACO KitTTensorflow 使用说明

计算加速套件 TACO Kit 1年前 (2023-12-11) 浏览 66

操作场景

本文介绍如何部署及使用 TensorFlow。

操作步骤

准备环境

1. 购买云服务器 CVM 实例或高性能计算集群,详情请参见 通过购买页创建实例购买高性能计算集群实例说明建议创建实例时,选择公共镜像并勾选后台自动安装GPU驱动,实例将在系统启动后预装对应版本驱动。若您选择自定义镜像,则请手动安装 GPU 驱动。2. 执行以下命令,安装 docker。

curl -s -L http://mirrors.tencent.com/install/GPU/taco/get-docker.sh | sudo bash

若您无法通过该命令安装,请尝试多次执行命令,或参见 Docker 官方文档 Install Docker Engine 进行安装。3. 执行以下命令,安装 nvidia-docker2。

curl -s -L http://mirrors.tencent.com/install/GPU/taco/get-nvidia-docker2.sh | sudo bash

若您无法通过该命令安装,请尝试多次执行命令,或参见 NVIDIA 官方文档 Installation Guide & mdash 进行安装。

下载 docker 镜像

执行以下命令,下载 docker 镜像。

docker pull ccr.ccs.tencentyun.com/qcloud/taco-train:ttf115-cu112-cvm-0.4.1

启动 docker 镜像

执行以下命令,启动 docker 镜像。

docker run -it --rm --gpus all --shm-size=32g --ulimit memlock=-1 --ulimit stack=67108864 --name ttf1.15-gpu ccr.ccs.tencentyun.com/qcloud/taco-train:ttf115-cu112-cvm-0.4.1

启动后,您可执行以下命令查看 TTF 版本。

pip show ttensorflow

模型适配

动态 embedding

TF 原生的静态 Embedding 及 TTF 提供的动态 Embedding 代码如下:TF 原生的静态 embeddingTTF 提供的动态 embedding

deep_dynamic_variables = tf.get_variable(    name="deep_dynamic_embeddings",    initializer=tf.compat.v1.random_normal_initializer(0, 0.005),    shape=[100000000, self.embedding_size])
deep_sparse_weights = tf.nn.embedding_lookup( params=deep_dynamic_variables, ids=ft_sparse_val, name="deep_sparse_weights")
deep_embedding = tf.gather(deep_sparse_weights, ft_sparse_idx)deep_embedding = tf.reshape( deep_embedding, shape=[self.batch_size, self.feature_num * self.embedding_size])
deep_dynamic_variables = tf.dynamic_embedding.get_variable(           name="deep_dynamic_embeddings",                                   initializer=tf.compat.v1.random_normal_initializer(0, 0.005),     dim=self.embedding_size,                                          devices=["/{}:0".format(FLAGS.device)],                           init_size=100000000)                                           deep_sparse_weights = tf.dynamic_embedding.embedding_lookup(          params=deep_dynamic_variables,                                    ids=ft_sparse_val,                                                name="deep_sparse_weights")   
deep_embedding = tf.gather(deep_sparse_weights, ft_sparse_idx) deep_embedding = tf.reshape( deep_embedding, shape=[self.batch_size, self.feature_num * self.embedding_size])

TTF 仅对以下两部分进行替换,使用非常便利:embedding 使用 tf.dynamic_embedding.get_variable()lookup 使用 tf.dynamic_embedding.embedding_lookup()
详细的 API 使用说明文档请参见
Module: tfra.dynamic_embedding

混合精度

混合精度既可以通过代码对优化器进行重写,也可通过修改环境变量实现。如下所示:代码修改的方式

opt = tf.train.experimental.enable_mixed_precision_graph_rewrite(opt)

环境变量方式

export TF_ENABLE_AUTO_MIXED_PRECISION=1

XLA

XLA 既可以通过代码进行配置,也可通过修改环境变量实现。如下所示:代码修改的方式

config = tf.ConfigProto()config.graph_options.optimizer_options.global_jit_level = tf.OptimizerOptions.ON_1sess = tf.Session(config=config)

环境变量的方式

TF_XLA_FLAGS=--tf_xla_auto_jit=1

Demo

在运行 Demo 前:1. 执行以下命令,在实例中创建一个固定的位置存放数据集。

cd /ttensorflow/dynamic-embedding-demo

2. 执行以下命令,下载数据集。

bash download_dataset.sh 

您可根据以下 Demo,快速了解并使用 TTF。

benchmark

该 Demo 用于对比测试动态 embedding 和原生静态 embedding 的性能。可依次执行以下命令,运行 Demo:

cd benchmark// 按照默认配置运行python train.py
// 每次修改batch size,需要将本地数据集缓存文件删掉rm -f .index .data-00000-of-00001python train.py --batch_size=16384
// 分别使用静态embedding和动态embedding进行DeepFM模型训练python train.py --batch_size=16384 --is_dynamic=Falsepython train.py --batch_size=16384 --is_dynamic=True
// 调整Deep部分的fc层数python train.py --batch_size=16384 --dnn_layer_num=12

ps

该 Demo 展示如何在 ps 模式下使用动态 embedding。可执行以下命令,运行 Demo:

cd ps && bash start.sh

Estimator

该 Demo 展示如何在 Estimator 模式下使用动态 embedding。可执行以下命令,运行 Demo:

cd estimator && bash start.sh



官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?