Soumettre la recherche
Mettre en ligne
Mixed Precision Training
•
Télécharger en tant que PPTX, PDF
•
2 j'aime
•
1,673 vues
Masao Taketani
Suivre
論文「Mixed Precision Training」について。 TensorFlow User Group Tokyo主催の「NN論文を肴に酒を飲む会 #10 新年会!」にて。
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 28
Télécharger maintenant
Recommandé
BERT+XLNet+RoBERTa
BERT+XLNet+RoBERTa
禎晃 山崎
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII
Data-Centric AIの紹介
Data-Centric AIの紹介
Kazuyuki Miyazawa
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
モデル高速化百選
モデル高速化百選
Yusuke Uchida
【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative Modeling
Deep Learning JP
Deeplearning輪読会
Deeplearning輪読会
正志 坪坂
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
Recommandé
BERT+XLNet+RoBERTa
BERT+XLNet+RoBERTa
禎晃 山崎
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII
Data-Centric AIの紹介
Data-Centric AIの紹介
Kazuyuki Miyazawa
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
モデル高速化百選
モデル高速化百選
Yusuke Uchida
【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative Modeling
Deep Learning JP
Deeplearning輪読会
Deeplearning輪読会
正志 坪坂
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
RyuichiKanoh
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
Deep Learning JP
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Deep Learning JP
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
Deep Learning JP
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
cvpaper. challenge
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
Deep Learning JP
Active Learning 入門
Active Learning 入門
Shuyo Nakatani
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
Deep Learning JP
【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?
Masanao Ochi
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Preferred Networks
論文紹介 wav2vec: Unsupervised Pre-training for Speech Recognition
論文紹介 wav2vec: Unsupervised Pre-training for Speech Recognition
YosukeKashiwagi1
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
Yoshitaka Ushiku
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
Deep Learning JP
ゼロから始める転移学習
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
Deep Learning JP
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
Deep Learning JP
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII
東京大学2021年度深層学習(Deep learning基礎講座2021) 第8回「深層学習と自然言語処理」
東京大学2021年度深層学習(Deep learning基礎講座2021) 第8回「深層学習と自然言語処理」
Hitomi Yanaka
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?
Deep Learning JP
Improving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-Training
Masao Taketani
Watson IoTとIBM DSXでWatsonと役割分担
Watson IoTとIBM DSXでWatsonと役割分担
Kenichi Inoue
Contenu connexe
Tendances
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
RyuichiKanoh
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
Deep Learning JP
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Deep Learning JP
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
Deep Learning JP
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
cvpaper. challenge
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
Deep Learning JP
Active Learning 入門
Active Learning 入門
Shuyo Nakatani
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
Deep Learning JP
【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?
Masanao Ochi
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Preferred Networks
論文紹介 wav2vec: Unsupervised Pre-training for Speech Recognition
論文紹介 wav2vec: Unsupervised Pre-training for Speech Recognition
YosukeKashiwagi1
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
Yoshitaka Ushiku
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
Deep Learning JP
ゼロから始める転移学習
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
Deep Learning JP
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
Deep Learning JP
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII
東京大学2021年度深層学習(Deep learning基礎講座2021) 第8回「深層学習と自然言語処理」
東京大学2021年度深層学習(Deep learning基礎講座2021) 第8回「深層学習と自然言語処理」
Hitomi Yanaka
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?
Deep Learning JP
Tendances
(20)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools
Active Learning 入門
Active Learning 入門
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
【DL輪読会】"Secrets of RLHF in Large Language Models Part I: PPO"
【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
論文紹介 wav2vec: Unsupervised Pre-training for Speech Recognition
論文紹介 wav2vec: Unsupervised Pre-training for Speech Recognition
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
ゼロから始める転移学習
ゼロから始める転移学習
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
【DL輪読会】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
東京大学2021年度深層学習(Deep learning基礎講座2021) 第8回「深層学習と自然言語処理」
東京大学2021年度深層学習(Deep learning基礎講座2021) 第8回「深層学習と自然言語処理」
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?
Similaire à Mixed Precision Training
Improving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-Training
Masao Taketani
Watson IoTとIBM DSXでWatsonと役割分担
Watson IoTとIBM DSXでWatsonと役割分担
Kenichi Inoue
Watson IoT Platform全貌解説
Watson IoT Platform全貌解説
Kenichi Inoue
CREST AIの振り返り
CREST AIの振り返り
Osaka University
IBM WatsonでInnovationを
IBM WatsonでInnovationを
Kenichi Inoue
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
Yuya Kato
松尾研のご紹介
松尾研のご紹介
MatsuoLabHR U-Tokyo
グローバル企業の中で「変化」を仕掛ける楽天技術研究所 Rakuten Institute of Technology の挑戦
グローバル企業の中で「変化」を仕掛ける楽天技術研究所 Rakuten Institute of Technology の挑戦
Rakuten Group, Inc.
UiPathロボットをわたしのアシスタントに
UiPathロボットをわたしのアシスタントに
Yoichi Suetake
プロジェクトマネジメント再入門 〜PjMは何であって何でないのか〜
プロジェクトマネジメント再入門 〜PjMは何であって何でないのか〜
Ayako Togaeri
What's material design
What's material design
KentaroSata
User groupandfuture
User groupandfuture
Takao Tetsuro
テンプレート・エンジンVelocity
テンプレート・エンジンVelocity
隆行 神戸
The invitation to Infrastructure CI
The invitation to Infrastructure CI
irix_jp
ICT CONNECT21のご紹介
ICT CONNECT21のご紹介
Japan Electronic Publishing Association
Cloud Impact on Business in Japan
Cloud Impact on Business in Japan
shojiro-tanaka
認知症プロジェクト~社会課題解決のパートナーとして~
認知症プロジェクト~社会課題解決のパートナーとして~
Dementia Friendly Japan Initiative
ビジネスのコアを創り出すゼロイチ発想法
ビジネスのコアを創り出すゼロイチ発想法
Yoshitaka Naka
5th長崎QDG事例セッション2「集成塾 ~進化するエンジニアの自己研鑽~」
5th長崎QDG事例セッション2「集成塾 ~進化するエンジニアの自己研鑽~」
Yuta OGAWA
758 dev meijo_unv-prof_suzuki_20200217
758 dev meijo_unv-prof_suzuki_20200217
ryohrd
Similaire à Mixed Precision Training
(20)
Improving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-Training
Watson IoTとIBM DSXでWatsonと役割分担
Watson IoTとIBM DSXでWatsonと役割分担
Watson IoT Platform全貌解説
Watson IoT Platform全貌解説
CREST AIの振り返り
CREST AIの振り返り
IBM WatsonでInnovationを
IBM WatsonでInnovationを
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
松尾研のご紹介
松尾研のご紹介
グローバル企業の中で「変化」を仕掛ける楽天技術研究所 Rakuten Institute of Technology の挑戦
グローバル企業の中で「変化」を仕掛ける楽天技術研究所 Rakuten Institute of Technology の挑戦
UiPathロボットをわたしのアシスタントに
UiPathロボットをわたしのアシスタントに
プロジェクトマネジメント再入門 〜PjMは何であって何でないのか〜
プロジェクトマネジメント再入門 〜PjMは何であって何でないのか〜
What's material design
What's material design
User groupandfuture
User groupandfuture
テンプレート・エンジンVelocity
テンプレート・エンジンVelocity
The invitation to Infrastructure CI
The invitation to Infrastructure CI
ICT CONNECT21のご紹介
ICT CONNECT21のご紹介
Cloud Impact on Business in Japan
Cloud Impact on Business in Japan
認知症プロジェクト~社会課題解決のパートナーとして~
認知症プロジェクト~社会課題解決のパートナーとして~
ビジネスのコアを創り出すゼロイチ発想法
ビジネスのコアを創り出すゼロイチ発想法
5th長崎QDG事例セッション2「集成塾 ~進化するエンジニアの自己研鑽~」
5th長崎QDG事例セッション2「集成塾 ~進化するエンジニアの自己研鑽~」
758 dev meijo_unv-prof_suzuki_20200217
758 dev meijo_unv-prof_suzuki_20200217
Dernier
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Dernier
(7)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Mixed Precision Training
1.
MIXED PRECISION TRAINING Masao
Taketani(竹谷 昌夫) 2020/01/22
2.
https://bit.ly/36U7RqA https://github.com/Masao- Taketani 自己紹介 名前:竹谷 昌夫(たけたに まさお) 学歴:ミネソタ大学ツインシティー校
理工学部 統計学科卒 職業:ディープラーニング研究開発エンジニア(1年半ぐらい) 趣味: ● ディープラーニングに関わる技術の追求 ● 筋トレ(トレーニング+食事等の理論)の追求 ● 筋トレをスポーツに応用 今回TFUG発表資料用のレポを作りました! 今回のプロジェクト:https://github.com/Masao-Taketani/for_TFUG/tree/master/NN_papers/no_10 TFUGレポ:https://github.com/Masao-Taketani/for_TFUG
3.
概要 今回紹介する論文は「MIXED PRECISION TRAINING(混合演算)」という論文で、簡 単に言うとNVIDIAのGPUを使ってDNNのトレーニングの際に、FP32(単精度浮動小 数点)のみを使用するのではなく、大部分の演算に上手くFP16(半精度浮動小数点) を適応することにより、学習時間を2から6倍早くすることができ、かつFP32のみ で学習させたときと同精度の結果を出すことができる。 ※混合演算を行うにはNVIDIAのVolta世代より上のGPUが必要 S,
Narang, G. Diamos, E. Elsen, P. Micikevicius , J. Alben, D. Garcia, B. Ginsburg, M. Houston, O. Kuchaiev, G. Venkatesh and H. Wu. MIXED PRECISION TRAINING, 2018. URL: https://arxiv.org/abs/1710.03740
4.
Introduction ● 近年のDNNモデルは段々巨大化していっている。そのため学習の際に非常に 時間がかかり、効率的に学習させる必要性がでてくる。 ● そこでメモリー帯域幅と演算速度を効率的に扱う必要がでてくる。具体的に は、FP32⇒FP16等、1つの値を保持/演算するのに必要なバイト数を下げる。 ●
学習速度を上げるだけでなく、FP32のみで学習させたときと同精度の結果を 出すための取り組みも行う。 ● そのために以下3つの手法を提案する。 ○ 重みのマスターコピー更新値をFP32で保持 ○ 勾配が0になることを防ぐためのロススケーリング ○ FP16の演算結果をFP32で蓄積 ● これらの手法を様々なDNNモデル検証する。
5.
重みのマスターコピーと更新値をFP32で保持 ● 混合演算では重み、活性化された値、勾配はFP16で保持される。 ● ただし、FP32のみで学習させたモデルと同精度の結果を得るためには、多く のモデルで重みと更新値のFP32のマスターコピーを必要とする。
6.
● 多くのモデルで重みのFP32のマスターコピーを必要とするであろう理由は2 つある。 ○ 更新値(学習率
x 勾配)の絶対値がFP16で表せない数値になる(アンダーフロー) ○ 重みの値と更新値の比率が大きくなりすぎる(情報落ち) 重みのマスターコピーと更新値をFP32で保持 ここの絶対値がFP16で 扱えない程小さくなる ※この2つについて後のスライドで詳しくお話しします。
7.
ここでちょっと浮動小数点数について軽くおさらい
8.
浮動小数点数 ● 符号部 s、指数部
e、仮数部 f からなり、四倍精度(FP128, quad-double)倍精度 (FP64, double)、単精度(FP32, single)、半精度(FP16, half)などがある。(※今回論 文に出てくるのはFP32とFP16) 浮動小数点数(正規化数) 浮動小数点数(非正規化数) 符号部 仮数部 指数部
9.
正規化数、非正規化数 前のスライドに正規化数、非正規化数とあるが、簡単に説明すると、通常仮数部 の先頭を1で固定する正規化数を用いるが、正規化数で扱いきれない小さな数字 がきた場合に、指数部を表現できる最小の値に固定した状態で、仮数部の先頭を 0にする非正規化数を用いることにより、より小さな値を扱えるようにする (gradual underflow)。(IEEE 754(浮動小数点算術標準)での話し) (例)半精度浮動小数 点の場合 半精度浮動小数点のbiasは15のため、表現できる最小の指数部 は そのため正規化数で扱える最小の絶対値は であり、それよりも小さな絶対値を扱いたいときは非正規化数 の絶対値
を使用すればよい。 ※なお非正規化数の絶対値を使っても より小さな絶対値は扱えない。 (後でまたここの話しがでてきます) 最小が1となっているが 0は特殊な数を表す用に 使われる
10.
それぞれの精度のビット数の内訳 それぞれの精度で必要なs, e, f
のビット数は以下の通り。 精度(総ビット数) s e f quad-double(128) 1 15 112 double(64) 1 11 52 single(32) 1 8 23 half(16) 1 5 10
11.
それでは本題に戻りましょう。
12.
アンダーフローによる誤差 ● 更新値(学習率 x
勾配)の絶対値がFP16で表せない数値になる(アンダーフロー) ○ 前のスライドでお話ししたように、FP16で扱える最小の絶対値は であり、これより小 さい値は全て0になってしまう。 FP32 FP32 FP32ここがFP16だと FP16で表せない 数字は0になる 対策
13.
情報落ちによる誤差 ● 重みの値と更新値の比率が大きくなりすぎる(情報落ち) ○ (例)
重みの値: 更新値: ー このままでは 演算できない ため指数部を 揃える ー 有効桁数内 0 に な る つまり更新前と比べて値が変わらない つまりここでも更新の演算をFP32の精度を使って行うと誤差が生じにくくなる。
14.
メモリーへの影響 ● 混合演算時にFP32とFP16の両方で重みを扱うことは、FP32のみで学習させ る時と比べて、重みに使用するメモリー量は50%増えるが、全体的に見ると メモリー使用量は半分近くに抑えられる。 ⇒ 理由は、メモリー使用量のほとんどが大きなバッチサイズからくる活性化 後の値、逆伝播の際に再利用するために保持される活性化後の値が多くを占 めるためであり、その活性化後の値はFP16で保持されているからである。
15.
ロススケーリング ● 勾配の値はFP16で保持されるが、学習時に勾配計算を行うと、モデルによっては、 FP16で表せない範囲に勾配値の大半が属する可能性がある(つまり大半が0になる)。 ● 例を挙げると、SSDをFP32で学習させると以下のような勾配の値を取得する。(全 レイヤーの勾配値)
16.
ロススケーリング(続き) ● 従って勾配の値をFP16でも扱えるようにするためにスケーリングする必要が ある。SSDの例で言うと、 を掛けて混合演算することにより、FP32で学習 させたときと同精度の結果を出すことができた。 スケーリング後
17.
● 効率的にスケーリングするためには、順伝播時に計算したロス値にスケーリ ングするための値を掛けることである。理由はスケーリングされたロス値を 使って逆伝播により勾配を求める際に、全ての勾配に同じようにスケーリン グされるためである。それにより、勾配が0になるのを防げる。 ● ただし、上記の勾配をそのまま使用して更新を行うと、FP32で学習させたと きと異なる値で更新を行うことになってしまうので、更新前に勾配の値のス ケーリングを元に戻す必要がある。 ●
スケーリングを元に戻すタイミングは、逆伝播を行って全ての勾配を計算し た直後で、勾配クリッピング等の勾配に関連する演算をする前に行うのが簡 単な方法である。そうすることにより、勾配クリッピングの閾値や、重み減 衰等のハイパーパラメータを変更する必要がなくなる。 ロススケーリング(続き)
18.
● スケーリングするための値を決める方法はいくつかあるが、最も簡単な方法 は、定数を設定することである。 ● 当論文では8から32Kの間で値を設定して、様々なモデルを学習させた。(多 くのモデルではスケーリングさせる必要がなかった) ●
スケーリングの定数は過去の経験を元に決めることもできるが、もし勾配の 統計データがあるならば、そのデータを元にオーバーフローにならないよう に設定すればよい。(FP16の場合、扱える最大値は65,504) ● オーバーフローの際のオプションとして、オーバーフローが検知された場合 は、単純に重みの更新をさせずにスキップして、次のイテレーションを回せ ばよい。 ロススケーリング(続き)
19.
演算精度 ● ニューラルネットワークの演算は大まかに以下の3つのカテゴリーに分かれる。 ○ ベクトルのドット積 ○
リダクション ○ 要素ごとの演算 ● これらの演算をする際も、FP32を使って工夫して演算する必要ある。 ○ ベクトルのドット積では、演算途中の積の値をFP32で保持する。その値をメモリーに書かれる前 にFP16に変換する。(NVIDIA GPUのVolta世代から導入したTensor Coresがこれを可能にする) ○ 大きなリダクション(batch-normalizationやsoftmax層で行われるベクトルの全ての要素の和を求め る等)を行う際もFP32で演算すべきである。値の読み込みや書き込みはFP16を使用するが、演算は FP32で行う。 ○ 非線形演算やアダマール積で行われる要素ごとの演算は、FP16でもFP32でもどちらでも使用可。 これらの工夫により、FP32と同精度の結果が得られる。
20.
結果 ● 今回の実験は様々なDNNモデルで、以下2つを検証する。 ○ Baseline(FP32):
FP32のみを使用して学習を行う ○ Mixed Precision(MP, 混合演算):重み、活性化後の値、勾配はFP16で保持し、更新時に必要な FP32の重みのマスターコピーを使用。ロススケーリングはいくつかのモデルで使用。Tensor Coreの演算を使ってFP16の演算の蓄積をFP32で行う(畳み込み層、全結合層、リカレント層の 行列演算で使用)。 ● 使用するGPU ○ Baseline : NVIDIA’s Maxwell or Pascal ○ Mixed Precision:Volta V100
21.
CNNによるILSVRCの画像分類 ● Alexnet, VGG-D,
GoogLeNet, Inception v2, Inception v3, and pre-activation Resnet-50のモデルで検証 ● ロススケーリングをすること無しに同精度の結果を出すことができた。
22.
CNNによる物体検出 ● Faster-RCNNとMultibox-SSDのモデルで検証(両モデルのバックボーンはVGG16) ● 回帰予測と分類予測が同時に行われる。 ●
SSDではロススケーリング無しで学習させると値が発散した( をかけること により、FP32と同精度の結果を得た)
23.
音声認識 ● DeepSpeech2のモデルで検証(英語とマンダリン(中国語の標準語)のデータセッ トで検証)。 ● リカレント層を含むモデルでも混合演算でFP32と同精度を出すことができた。 ●
結果を見るとMPの方が5%~10%ほど良いが、これはFP16を使用することが正則 化の役割の果たすのではないか。
24.
機械翻訳 ● GoogleがTensorFlowのチュートリアルで行っているEnglish-French翻訳モデ ルの亜種3つで検証。 ● 3つのモデルでそれぞれ精度が異なるが、ロススケーリングを行うことによ り、MPでFP32と同精度の結果をだすことができた。(ロススケーリングなし だと少し精度が落ちる)
25.
言語モデル ● bigLSTMというモデルで検証。 ● ロススケーリング無しだと300Kイテレーションを超えたあたりから値が発散 し始めるため、
をかけてロススケーリングするとFP32と同精度が出せた。
26.
画像生成モデル ● DCGANのモデルを使用。 ● 図の左側がFP32で学習させた結果、右側がMPで学習させた結果。 ●
定量的な指標は無いが、大体見て同精度だということがわかる。 ● ロススケーリングは必要なかった。
27.
結論 ● 混合演算はDNNを学習させる際に、メモリー使用量を減らしたり、演算の速 度を早めたりするのにとても重要な手法である。 ● 当論文で異なる多くのDNNに混合演算を適用しても、精度を落とすことなく 、またハイパーパラメータも変更することなく学習させることができること を示せた。 ●
FP16で扱いきれないような小さな勾配値を多く持つモデルでは、ロススケー リングを行うことにより、混合演算でもbaselineと同精度の結果を出すこと ができた。 ● メモリーや演算に制限がある際に、DNNのそれぞれの演算をVolta GPUを用 いて行った結果、混合演算を行った方がFP32で演算を行った時と比べて2倍 から6倍早くなった。
Télécharger maintenant