Google Cloud TPUs支持Pytorch框架啦!

文 | Sherry


在2019年PyTorch开发者大会上,Facebook,Google和Salesforce Research联合宣布启动PyTorch-TPU项目。项目的目标是在保持PyTorch的灵活性的同时让社区尽可能容易地利用云TPU提供的高性能计算。团队创建了PyTorch/XLA这个repo,它可以让使PyTorch连接到云TPU并使用TPU内核,同时Colab也支持在云TPU上使用PyTorch/XLA。现在,PyTorch/XLA 已在Google Cloud上达到通用标准(GA),并为我们提供了许多方便易用的接口。赶紧来看看PyTorch/XLA都有哪些功能吧!

GA版本有哪些新功能?

借助PyTorch/XLA GA,云TPU正式支持PyTorch 1.6。其他值得注意的新功能包括:

  • 支持层内模型并行性:现在可以在reduce的时候在多组tensor上使用多种运算。添加了更多的通信原语从而可以实现有趣的应用,例如把嵌入词向量词分布到多个TPU内核上;

  • 额外的XLA运算:随着PyTorch/XLA在越来越广泛的新模型中被使用,用户要求将PyTorch运算映射到XLA。对此,从beta(1.5)版本开始,我们已经为Replication_pad1d,replication_pad2d,max_unpool2d,max_unpool3d等运算加入了低配XLA;

  • 在Colab/Kaggle上更好的体验:现在,不再需要在Colab/Kaggle上运行env-setup.py脚本,就可以开始训练倆。

  • 对深度学习VM映像的支持:Google Cloud 平台提供了一组深度学习虚拟机(DLVM)映像,配置好了各种常用深度学习框架(包括PyTorch)和所需的一切。PyTorch/XLA 1.6现在已预安装在DLVM中,并针对云TPU进行了优化。官方的PyTorch 1.6也预装在相同的Conda环境中。

详细使用方法参照用户指南[1]

GA版本支持哪些模型?

PyTorch/XLA已被用于在云TPU上训练众多深度学习模型。包括:

  • 图像分类任务(ImageNet):Torchvision的ResNet-50;

  • 翻译任务(WMT-18 en-de):Fairseq Transformer;

  • 通用的语言模型的预训练和微调(GLUE等):HuggingFace(BERT,DistilBERT,RoBERTa,XLNet等)和Fairseq RoBERTa;

  • 深度学习推荐模型(1.6版的新增功能):DLRM。

在大多数情况下,在云TPU上训练这些模型几乎不需要更改代码。可以参考官方教程[2]获得上述模型的详细教程,也可以参考PyTorch / XLA GitHub[3]代码库找到训练的其他模型架构的示例。

PyTorch/XLA是如何工作的?

PyTorch/XLA使用“lazy tensor”进行抽象。使用lazy tensor时,运算的evaluation会被推迟到这个运算被访问之前。此时,运算被描述为中间表示图,当我们需要运算结果时(访问),就通过XLA编译这些中间表示图,并发送到TPU内核以执行。这种XLA编译对CPU和GPU都支持。其他技术详细信息,可以参考GitHub[4]

升级到云TPU要改哪些代码?

首先需要创建一个配有PyTorch / XLA映像的Google Compute Engine虚拟机和一个云TPU实例。创建好虚拟机和云TPU实例后,需要配置conda环境并设置XRT_TPU_CONFIG环境变量指向云TPU实例:

export XRT_TPU_CONFIG="tpu_worker;0;<TPU_IP_ADDRESS>:8470"

现在就可以开始在云TPU上训练模型了!

实际代码中需要改动的地方包括:

  • 调取相关代码包import torch_xla

  • 设置访问XLA设备抽象的方法以及并行数据加载器。

  • 使用xm.optimizer_step(optimizer)在后台进行reduce。

可以参考英文博客原文[5]中的代码实例看看具体的区别。

在Cloud TPU Pod上训练

PyTorch/XLA支持将刚刚在单个云TPU上执行的训练扩展到整个云TPU Pod或者任意Pod切片,只需要使用xla_dist包装就可以了:

 python -m torch_xla.distributed.xla_dist \--tpu=$TPU_NAME \--conda-env=torch-xla-1.6 \--env ANY_ENV_VAR=VALUE \-- \python /path/to/your/code.py --train_arg1 \--train_arg2 ...

官方提供的Colab notebook[6]写得非常详细,现在就开始探索吧!

更多详情请参考英文博客原文[7]以及Google官方博文[8]

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

有顶会审稿人、大厂研究员、知乎大V和妹纸

等你来撩哦~

参考文献

[1]用户指南: https://docs.google.com/document/d/1RzNgpTK4wESImhIwgMbknqn9xVNUFtCTCknNfONlMlo/edit

[2]官方教程: https://cloud.google.com/tpu/docs/tutorials/

[3]PyTorch / XLA GitHub: https://github.com/pytorch/xla

[4]GitHub: https://github.com/pytorch/xla/blob/master/API_GUIDE.md#xla-tensor-deep-dive

[5]英文博客原文: https://medium.com/pytorch/pytorch-xla-is-now-generally-available-on-google-cloud-tpus-f9267f437832

[6]Colab notebook: https://github.com/pytorch/xla/tree/master/contrib/colab

[7]英文博客原文: https://medium.com/pytorch/pytorch-xla-is-now-generally-available-on-google-cloud-tpus-f9267f437832

[8]Google官方博文: https://cloud.google.com/blog/products/ai-machine-learning/pytorch-is-now-ga-on-google-cloud-tpu

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 231. 2的幂 LeetCode 338. 比特位计数(2进制1的个数)

文章目录1. 题目信息2. 解题拓展&#xff1a;求一个数n的2进制有多少个1&#xff1f;LeetCode 3381. 题目信息 给定一个整数&#xff0c;编写一个函数来判断它是否是 2 的幂次方。 示例 1:输入: 1 输出: true 解释: 20 1 示例 2:输入: 16 输出: true 解释: 24 16 示例 3:输…

最全阿里架构师P系列解读:P5-P8的技能要求和薪资结构

2018年持续一整年的架构设计分享&#xff0c;2019年我希望持续分享的同时&#xff0c;能真正意义上帮助到部分读者成为一名架构师。 学习的同时请千万别&#xff1a;只见树木&#xff0c;不见森林。 所以我会让大家先俯瞰完整的森林&#xff0c;我们再从树木开始&#xff0c;…

NeurIPS’20 | 长尾问题太严重?半监督和自监督就可以有效缓解!

文 | Yuzhe Yang源 | 知乎来给大家介绍一下我们的最新工作&#xff0c;目前已被NeurIPS 2020接收&#xff1a;Rethinking the Value of Labels for Improving Class-Imbalanced Learning。这项工作主要研究一个经典而又非常实际且常见的问题&#xff1a;数据类别不平衡&#xf…

论文浅尝 | 知识图谱中的链接预测:一种基于层次约束的方法

论文笔记整理&#xff1a;张良&#xff0c;东南大学博士生&#xff0c;研究方向为知识图谱&#xff0c;自然语言处理。链接&#xff1a;https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber8450054本文主要关注KG上的 Link prediction 问题&#xff0c;以往的方法在…

阿里P8架构师谈:架构设计经验汇总

架构设计更多的是实践经验总结&#xff0c;以下架构设计经验&#xff0c;我会陆续补充完整。 一&#xff1a;数据库拆分原则 阿里P8架构师谈&#xff1a;架构设计之数据库拆分六大原则 二&#xff1a;缓存选择原则 阿里P8架构师谈&#xff1a;分布式缓存的应用场景、选型比较…

陈丹琦“简单到令人沮丧”的屠榜之作:关系抽取新SOTA!

文 | JayLou娄杰大家好&#xff0c;我是卖萌屋的JayJay&#xff0c;好久不见啦&#xff5e;最近在「夕小瑶知识图谱与信息抽取」群里和群友交流时&#xff0c;JayJay发现了来自陈丹琦大佬&#xff08;女神&#xff09;的一篇最新的关系抽取SOTA《A Frustratingly Easy Approach…

肖仰华 | 知识图谱落地的基本原则与最佳实践

本文转载在公众号&#xff1a;知识工场。肖仰华博士&#xff0c;复旦大学计算机科学与技术学院教授&#xff0c;博士生导师&#xff0c;知识工场实验室负责人。此文内容取自肖仰华教授在华为、CCF等场合所做报告&#xff0c;完整内容见书籍《知识图谱&#xff1a;概念与技术》的…

预训练模型应用工具 PaddleHub情感分析、对话情绪识别文本相似度

文章目录1. 预训练模型的应用背景1.1 多任务学习与迁移学习1.2 自监督学习2. 快速使用PaddleHub2.1 通过Python代码调用方式 使用PaddleHub2.1.1 CV任务原图展示人像扣图人体部位分割人脸检测关键点检测2.1.2 NLP 任务2.2 通过命令行调用方式 使用PaddleHub3. PaddleHub提供的预…

NIPS’20 Spotlight | 精准建模用户兴趣,广告CTR预估准确率大幅提升!

源 | 京东零售技术在以人工智能技术为支持的推荐、搜索、广告等业务中&#xff0c;点击率预估&#xff08;CTR&#xff09;一直是技术攻坚的核心&#xff0c;同时也是人工智能技术在业务落地中最难实现的技术方向之一。第一期介绍了视觉信息使用帮助提高点击率预估的准确度&…

史上最强大型分布式架构详解:高并发+数据库+缓存+分布式+微服务+秒杀

分布式架构设计是成长为架构师的必备技能&#xff0c;涵盖的内容很广&#xff0c;今天一次打包分享&#xff0c;文末有&#xff1a;最全分布式架构设计资料获取方式~ 负载均衡 负载均衡的原理和分类 负载均衡架构和应用场景 分布式缓存 常见分布式缓存比较&#xff1a;memcac…

论文浅尝 | 面向多语言语义解析的神经网络框架

论文笔记整理&#xff1a;杜昕昱&#xff0c;东南大学本科生。来源&#xff1a;ACL2017链接&#xff1a;https://aclweb.org/anthology/P17-2007论文训练了一个多语言模型&#xff0c;将现有的Seq2Tree模型扩展到一个多任务学习框架&#xff0c;该框架共享用于生成语义表示的解…

LeetCode 46. 全排列(回溯)

文章目录1. 题目信息2. 解题2.1 利用hash map解决2.2 改用bool数组判断是否出现过1. 题目信息 给定一个没有重复数字的序列&#xff0c;返回其所有可能的全排列。 示例:输入: [1,2,3] 输出: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1] ]来源&#xff1a;力扣&#xf…

谷歌师兄的刷题笔记分享!

高畅现在是谷歌无人车部门&#xff08;Waymo&#xff09;的工程师&#xff0c;从事计算机视觉和机器学习方向。他在美国卡内基梅隆大学攻读硕士学位时&#xff0c;为了准备实习秋招&#xff0c;他从夏天开始整理某 code 上的题目&#xff0c;几个月的时间&#xff0c;刷了几百道…

【深度揭秘】百度、阿里、腾讯内部岗位级别和薪资结构,附带求职建议!

“ 最近很忙&#xff0c;文章没有及时更新。。 最近被问得最多就是想进入BAT等一线互联网公司&#xff0c;应该怎么办&#xff1f; 我先从BAT等这样的公司看看他们的招聘需求谈起&#xff0c;再结合这样的公司需要对技术的要求是什么&#xff0c;最后结合我的建议&#xff0…

LeetCode 47. 全排列 II(回溯+搜索剪枝)

文章目录1. 题目信息2. 解题1. 题目信息 给定一个可包含重复数字的序列&#xff0c;返回所有不重复的全排列。 示例:输入: [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1] ]来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode-cn.com/problem…

会议 | 2019 全国知识图谱与语义大会 (CCKS 2019)

会议注册:http://www.ccks2019.cn/?page_id53会议地址与住宿&#xff1a;http://www.ccks2019.cn/?page_id366OpenKG开放知识图谱&#xff08;简称 OpenKG&#xff09;旨在促进中文知识图谱数据的开放与互联&#xff0c;促进知识图谱和语义技术的普及和广泛应用。点击阅读原文…

jieba分词太慢,怎么办?找jieba_fast

原文链接&#xff1a;https://www.rtnzero.com/archives/272.html 有时候感觉处理一个几十M的文本&#xff0c;要一分钟才能好&#xff0c;然后调试时各种心焦&#xff01; 下面举个例子&#xff1a; 归零有一个11.9M的文本文件&#xff0c;是一些抓取到的Python长尾关键词&am…

DGL_图的打印

首先要安装 networkx import matplotlib.pyplot as plt import networkx as nx import dgl import numpy as np def build_karate_club_graph():src np.array([1, 2, 2, 3, 3])dst np.array([0, 0, 1, 0, 1])u np.concatenate([src, dst])v np.concatenate([dst, src])ret…

闲鱼账号被封怎么办?解封看这里!

怎样避免宝贝被屏蔽、限流解封账号&#xff1f;首先我们要学会规避封号的风险 不要频繁的更改账号&#xff0c;不要多账号单手机操作&#xff0c;一机一号才是正确。 不要连续给人商品点赞或是我想要&#xff0c;连续的操作容易被封 不要发布违禁品&#xff0c;违禁品具体可…

推荐系统顶会RecSys’20亮点赏析

文 | banana源 | 知乎RecSys 2020原计划是在南美洲巴西举办&#xff0c;因为疫情的原因不得不改到线上。虽说线上举办会议&#xff0c;参会效果会打折扣&#xff0c;但也为远在北京的我提供了参会便利。得益于各方的努力和软件的应用&#xff0c;整体来看此次参会的效果高于我对…