©2019 Pasona Tech, Inc. All Rights Reserved.
自作プログラミング言語の集い
自作のDeep Learningランタイムを作ろう!
株式会社パソナテック
DX戦略本部 デジタルテクノロジーグループ
Qumico Product Manager
夏谷 実
2020/10/09
©2019 Pasona Tech, Inc. All Rights Reserved.
自己紹介
2
株式会社パソナテック
DX戦略本部 デジタルテクノロジーグループ
Qumico Product Manager
夏谷 実
FPGAやLSIの画像処理から、Deep Learningの世界に入る。プログラミングが好き
一昨年よりQumicoのプロダクトマネージャに就任。
大阪と東京と半々くらいの生活を続けていたが、コロナの影響により完全リモートワークに移行。
TensorFlow Users Group KANSAIHatena id: natsutan Qiita id: natsutan
2019/9/25
https://qiita.com/natsutan
2019/9/25
https://tfug-kansai.connpass.com/event/146442/2019/9/25
http://natsutan.hatenablog.com/
©2019 Pasona Tech, Inc. All Rights Reserved.
最近やったこと
原書から10年寝かせたタイガーブックを最後まで読んだ
3
最新コンパイラ構成技法
https://www.shoeisha.co.jp/book/detail/9784798114682
翔泳社
いつもパーサーで挫折する
ので、気にせず最後まで目
を通してみた
©2019 Pasona Tech, Inc. All Rights Reserved.
感想
4
第 I 部 コンパイラ基礎編
第1章 はじめに
第2章 字句解析
第3章 構文解析
第4章 抽象構文
第5章 意味解析
第6章 駆動レコード
第7章 中間コードへの変換
第8章 基本ブロックとトレース
第9章 命令選択
第10章 生存解析
第11章 レジスタ割付け
第12章 コンパイラ制作
第 II 部 コンパイラ発展編
第13章 ごみ集め
第14章 オブジェクト指向言語
第15章 関数型プログラミング言語
第16章 多相型
第17章 データフロー解析
第18章 ループ最適化
第19章 静的単一代入形式
第20章 パイプライニングとスケジュール
第21章 メモリ階層
難しい
面白い
知ってる
(注)個人の感想です。
https://www.irasutoya.com/
©2019 Pasona Tech, Inc. All Rights Reserved.
コンパイラの前半を飛ばそう
5
定番:計算機プログラムの構造と解釈
・最初から構文木を記述する
・日本語の情報はまだまだ多い
・原文が公開されている。
もっと違う事をしたい人にお勧め!
自作ONNX Runtime
https://mitpress.mit.edu/sites/default/files/sicp/index.html
©2019 Pasona Tech, Inc. All Rights Reserved.
業界標準フォーマットONNX
6
Open Neural Network Exchange(ONNX)
Microsoftの資料から引用
https://static.sched.com/hosted_files/linaroconnectsandiego/83/O
NNX%20%26%20ONNX%20Runtime%20-%20SAN19-211.pdf
2019/9/25
Deep Learningのフレームワーク ONNXの実行(推論)環境
ONNX Runtime
©2019 Pasona Tech, Inc. All Rights Reserved.
ONNXフォーマット
7
Netronで可視化
• Model
• Version info
• Metadata
• Graph
• Graph
• Inputs and Outputs
• Graph name
• Computational Nodes
• Computational Graph
• Operator
• Operator Parameter
• Inputs and Outputs
中身はProtocol Buffers
APIが用意されているPythonだけでなくRust等でも操作可能
いきなり計算グラフか
ら始められる
©2019 Pasona Tech, Inc. All Rights Reserved.
ONNXを扱うメリット
・自力でDeep Learningを動かすの楽しい
・フォーマットはProtocol Buffer
・完全独自言語よりもユーザーが多い
・学習済みONNXモデルが公開されている。
・ONNX のRuntimeも複数公開されている。
・今後も楽しみ
8
©2019 Pasona Tech, Inc. All Rights Reserved.
最近読んで良かった本
9
https://www.oreilly.co.jp/books/9784873117584/
https://www.oreilly.co.jp/books/9784873119069/
https://www.oreilly.co.jp/books/9784873118369/
O'Reilly Japan
ゼロから作るDeep Learning
――Pythonで学ぶディープラーニングの理論と実装
ゼロから作るDeep Learning ❷
――自然言語処理編
ゼロから作るDeep Learning ❸
――フレームワーク編
Writing Compilers and Interpreters: A Software Engineering
Approach, 3rd Edition
https://www.wiley.com/en-jp/Writing+Compilers+and+Interpreters:+A+Software+Engineering+Approach,+3rd+Edition-p-9780470177075
JavaでPascalのコンパイラ、インタープリタを作る本。理論を飛ばして実装
寄りの話が多い。最初に、フロントエンド、中間処理、バックエンドまでラ
フに作って徐々に機能を増やしていく本。
IDEやデバッガの作り方も載っている。
筆者はBeautiful Codeの執筆者なので、ソースコードは綺麗。
Factory PatternやInterfaceの分離などが上手く使われています。
©2019 Pasona Tech, Inc. All Rights Reserved.

自作プログラミング言語の集い

  • 1.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 自作プログラミング言語の集い 自作のDeep Learningランタイムを作ろう! 株式会社パソナテック DX戦略本部 デジタルテクノロジーグループ Qumico Product Manager 夏谷 実 2020/10/09
  • 2.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 自己紹介 2 株式会社パソナテック DX戦略本部 デジタルテクノロジーグループ Qumico Product Manager 夏谷 実 FPGAやLSIの画像処理から、Deep Learningの世界に入る。プログラミングが好き 一昨年よりQumicoのプロダクトマネージャに就任。 大阪と東京と半々くらいの生活を続けていたが、コロナの影響により完全リモートワークに移行。 TensorFlow Users Group KANSAIHatena id: natsutan Qiita id: natsutan 2019/9/25 https://qiita.com/natsutan 2019/9/25 https://tfug-kansai.connpass.com/event/146442/2019/9/25 http://natsutan.hatenablog.com/
  • 3.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 最近やったこと 原書から10年寝かせたタイガーブックを最後まで読んだ 3 最新コンパイラ構成技法 https://www.shoeisha.co.jp/book/detail/9784798114682 翔泳社 いつもパーサーで挫折する ので、気にせず最後まで目 を通してみた
  • 4.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 感想 4 第 I 部 コンパイラ基礎編 第1章 はじめに 第2章 字句解析 第3章 構文解析 第4章 抽象構文 第5章 意味解析 第6章 駆動レコード 第7章 中間コードへの変換 第8章 基本ブロックとトレース 第9章 命令選択 第10章 生存解析 第11章 レジスタ割付け 第12章 コンパイラ制作 第 II 部 コンパイラ発展編 第13章 ごみ集め 第14章 オブジェクト指向言語 第15章 関数型プログラミング言語 第16章 多相型 第17章 データフロー解析 第18章 ループ最適化 第19章 静的単一代入形式 第20章 パイプライニングとスケジュール 第21章 メモリ階層 難しい 面白い 知ってる (注)個人の感想です。 https://www.irasutoya.com/
  • 5.
    ©2019 Pasona Tech,Inc. All Rights Reserved. コンパイラの前半を飛ばそう 5 定番:計算機プログラムの構造と解釈 ・最初から構文木を記述する ・日本語の情報はまだまだ多い ・原文が公開されている。 もっと違う事をしたい人にお勧め! 自作ONNX Runtime https://mitpress.mit.edu/sites/default/files/sicp/index.html
  • 6.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 業界標準フォーマットONNX 6 Open Neural Network Exchange(ONNX) Microsoftの資料から引用 https://static.sched.com/hosted_files/linaroconnectsandiego/83/O NNX%20%26%20ONNX%20Runtime%20-%20SAN19-211.pdf 2019/9/25 Deep Learningのフレームワーク ONNXの実行(推論)環境 ONNX Runtime
  • 7.
    ©2019 Pasona Tech,Inc. All Rights Reserved. ONNXフォーマット 7 Netronで可視化 • Model • Version info • Metadata • Graph • Graph • Inputs and Outputs • Graph name • Computational Nodes • Computational Graph • Operator • Operator Parameter • Inputs and Outputs 中身はProtocol Buffers APIが用意されているPythonだけでなくRust等でも操作可能 いきなり計算グラフか ら始められる
  • 8.
    ©2019 Pasona Tech,Inc. All Rights Reserved. ONNXを扱うメリット ・自力でDeep Learningを動かすの楽しい ・フォーマットはProtocol Buffer ・完全独自言語よりもユーザーが多い ・学習済みONNXモデルが公開されている。 ・ONNX のRuntimeも複数公開されている。 ・今後も楽しみ 8
  • 9.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 最近読んで良かった本 9 https://www.oreilly.co.jp/books/9784873117584/ https://www.oreilly.co.jp/books/9784873119069/ https://www.oreilly.co.jp/books/9784873118369/ O'Reilly Japan ゼロから作るDeep Learning ――Pythonで学ぶディープラーニングの理論と実装 ゼロから作るDeep Learning ❷ ――自然言語処理編 ゼロから作るDeep Learning ❸ ――フレームワーク編 Writing Compilers and Interpreters: A Software Engineering Approach, 3rd Edition https://www.wiley.com/en-jp/Writing+Compilers+and+Interpreters:+A+Software+Engineering+Approach,+3rd+Edition-p-9780470177075 JavaでPascalのコンパイラ、インタープリタを作る本。理論を飛ばして実装 寄りの話が多い。最初に、フロントエンド、中間処理、バックエンドまでラ フに作って徐々に機能を増やしていく本。 IDEやデバッガの作り方も載っている。 筆者はBeautiful Codeの執筆者なので、ソースコードは綺麗。 Factory PatternやInterfaceの分離などが上手く使われています。
  • 10.
    ©2019 Pasona Tech,Inc. All Rights Reserved.

Editor's Notes

  • #3 ・元々画像処理のバックグランドがあって、画像処理のアルゴリズムの一つとしてDLに興味を持った ・2016年の、GDG Kobeでテンサーフローの話を聞いて、そこからとりこになってます。 ・DLは実際難しく、日々勉強。特に、手法がすぐ古くなる。 ・最近は後で説明するAutoML(AIがAIを作る)技術に注目と期待をしています。 ・本社には1月末~行ってない。大阪支店は最近週一くらい。
  • #7 僕も書いたことがある。
  • #8 ONNXの話を閉める 15分