SlideShare a Scribd company logo
1 of 10
©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.

More Related Content

What's hot

What's hot (20)

Jakarta EE + MicroProfile, and our activities
Jakarta EE + MicroProfile, and our activitiesJakarta EE + MicroProfile, and our activities
Jakarta EE + MicroProfile, and our activities
 
ボトムアップアプローチでのVRサービス立ち上げ / DeNA TechCon 2016
ボトムアップアプローチでのVRサービス立ち上げ / DeNA TechCon 2016ボトムアップアプローチでのVRサービス立ち上げ / DeNA TechCon 2016
ボトムアップアプローチでのVRサービス立ち上げ / DeNA TechCon 2016
 
虎の穴ラボ エンジニア採用説明資料
虎の穴ラボ エンジニア採用説明資料虎の穴ラボ エンジニア採用説明資料
虎の穴ラボ エンジニア採用説明資料
 
虎の穴ラボ エンジニア採用説明資料
虎の穴ラボ エンジニア採用説明資料 虎の穴ラボ エンジニア採用説明資料
虎の穴ラボ エンジニア採用説明資料
 
エンジニア生存戦略
エンジニア生存戦略エンジニア生存戦略
エンジニア生存戦略
 
誰でもできるGoogleアシスタント開発
誰でもできるGoogleアシスタント開発誰でもできるGoogleアシスタント開発
誰でもできるGoogleアシスタント開発
 
Cloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみるCloud runのオートスケールを検証してみる
Cloud runのオートスケールを検証してみる
 
オタクエンジニアを熱くさせる!モチベーションと効率をあげるチームビルディング_20210611_TechDay#1_3
オタクエンジニアを熱くさせる!モチベーションと効率をあげるチームビルディング_20210611_TechDay#1_3オタクエンジニアを熱くさせる!モチベーションと効率をあげるチームビルディング_20210611_TechDay#1_3
オタクエンジニアを熱くさせる!モチベーションと効率をあげるチームビルディング_20210611_TechDay#1_3
 
Smfl20201001
Smfl20201001Smfl20201001
Smfl20201001
 
【虎の穴ラボLT】非エンジニアにGASを教えた話(とらラボTech conference)
【虎の穴ラボLT】非エンジニアにGASを教えた話(とらラボTech conference)【虎の穴ラボLT】非エンジニアにGASを教えた話(とらラボTech conference)
【虎の穴ラボLT】非エンジニアにGASを教えた話(とらラボTech conference)
 
AWS Proton を使ってみた
AWS Proton を使ってみたAWS Proton を使ってみた
AWS Proton を使ってみた
 
CV分野での最近の脱○○系3選
CV分野での最近の脱○○系3選CV分野での最近の脱○○系3選
CV分野での最近の脱○○系3選
 
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
社内DX推進!非エンジニア向けにプログラミング講座を実施してみた!
 
0から1へ、1からその先の未来へ!とらのあなラボのエンジニア採用
0から1へ、1からその先の未来へ!とらのあなラボのエンジニア採用0から1へ、1からその先の未来へ!とらのあなラボのエンジニア採用
0から1へ、1からその先の未来へ!とらのあなラボのエンジニア採用
 
[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation
[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation
[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation
 
オタクエンジニアを熱くさせる!モチベーションをあげるチームビルディング
オタクエンジニアを熱くさせる!モチベーションをあげるチームビルディングオタクエンジニアを熱くさせる!モチベーションをあげるチームビルディング
オタクエンジニアを熱くさせる!モチベーションをあげるチームビルディング
 
Tech day#2 オープニングトーク
Tech day#2 オープニングトークTech day#2 オープニングトーク
Tech day#2 オープニングトーク
 
ドコモオープンイノベーションの取り組みと提供APIのIoT展開について
ドコモオープンイノベーションの取り組みと提供APIのIoT展開についてドコモオープンイノベーションの取り組みと提供APIのIoT展開について
ドコモオープンイノベーションの取り組みと提供APIのIoT展開について
 
Teslaにおけるコンピュータビジョン技術の調査
Teslaにおけるコンピュータビジョン技術の調査Teslaにおけるコンピュータビジョン技術の調査
Teslaにおけるコンピュータビジョン技術の調査
 
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
 

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

ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~
ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~
ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~
CData Software Japan
 

Similar to 自作プログラミング言語の集い (20)

AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話
 
CNCFアップデート情報~2018年のCNCFを振り返る
CNCFアップデート情報~2018年のCNCFを振り返るCNCFアップデート情報~2018年のCNCFを振り返る
CNCFアップデート情報~2018年のCNCFを振り返る
 
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践
if-up 2019 | C3. コンシューマープロダクトにおけるクラウド実践
 
L2延伸を利用したクラウド移行とクラウド活用術
L2延伸を利用したクラウド移行とクラウド活用術L2延伸を利用したクラウド移行とクラウド活用術
L2延伸を利用したクラウド移行とクラウド活用術
 
SORACOM Conference "Discovery" 2018 | E2. IoTにおけるPoC成功の秘訣
SORACOM Conference "Discovery" 2018 | E2. IoTにおけるPoC成功の秘訣SORACOM Conference "Discovery" 2018 | E2. IoTにおけるPoC成功の秘訣
SORACOM Conference "Discovery" 2018 | E2. IoTにおけるPoC成功の秘訣
 
HoloLab_20191016_ceatec
HoloLab_20191016_ceatecHoloLab_20191016_ceatec
HoloLab_20191016_ceatec
 
マスタリングTCP/IP ニフクラ編
マスタリングTCP/IP ニフクラ編マスタリングTCP/IP ニフクラ編
マスタリングTCP/IP ニフクラ編
 
八子クラウド座談会 in 広島 事前配布資料 20190727
八子クラウド座談会 in 広島 事前配布資料 20190727八子クラウド座談会 in 広島 事前配布資料 20190727
八子クラウド座談会 in 広島 事前配布資料 20190727
 
Pythonを始めよう
Pythonを始めようPythonを始めよう
Pythonを始めよう
 
2019-11-06 kintone eva camp 2019 LT
2019-11-06 kintone eva camp 2019 LT2019-11-06 kintone eva camp 2019 LT
2019-11-06 kintone eva camp 2019 LT
 
FPGA, AI, エッジコンピューティング
FPGA, AI, エッジコンピューティングFPGA, AI, エッジコンピューティング
FPGA, AI, エッジコンピューティング
 
前に出るAIエンジニアの案件切り分け術
前に出るAIエンジニアの案件切り分け術前に出るAIエンジニアの案件切り分け術
前に出るAIエンジニアの案件切り分け術
 
AIのビジネス実装を成功に近づけるために
AIのビジネス実装を成功に近づけるためにAIのビジネス実装を成功に近づけるために
AIのビジネス実装を成功に近づけるために
 
はじめてのIT 勉強会@仙台 宣伝枠LT
はじめてのIT 勉強会@仙台 宣伝枠LTはじめてのIT 勉強会@仙台 宣伝枠LT
はじめてのIT 勉強会@仙台 宣伝枠LT
 
第31回八子クラウド座談会事前配布 20190928
第31回八子クラウド座談会事前配布 20190928第31回八子クラウド座談会事前配布 20190928
第31回八子クラウド座談会事前配布 20190928
 
ML meetup20190327
ML meetup20190327ML meetup20190327
ML meetup20190327
 
2018年のハイブリッドクラウド事情と 2019年のクラウド予想!
2018年のハイブリッドクラウド事情と 2019年のクラウド予想!2018年のハイブリッドクラウド事情と 2019年のクラウド予想!
2018年のハイブリッドクラウド事情と 2019年のクラウド予想!
 
Yahoo!カレンダーにおける技術移行について - Legacy Meetup Kyoto -
Yahoo!カレンダーにおける技術移行について - Legacy Meetup Kyoto -Yahoo!カレンダーにおける技術移行について - Legacy Meetup Kyoto -
Yahoo!カレンダーにおける技術移行について - Legacy Meetup Kyoto -
 
Api meet up online#6 session1 ginco
Api meet up online#6 session1 gincoApi meet up online#6 session1 ginco
Api meet up online#6 session1 ginco
 
ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~
ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~
ガチのエンジニア集団に身を置くというキャリアの作り方 ~ド文系の翻訳者がビルドエンジニアっぽくなった話~
 

More from Natsutani Minoru

More from Natsutani Minoru (20)

robotics42.pptx
robotics42.pptxrobotics42.pptx
robotics42.pptx
 
TFLiteのグラフ構造について
TFLiteのグラフ構造についてTFLiteのグラフ構造について
TFLiteのグラフ構造について
 
Kyoto dev caffe
Kyoto dev caffeKyoto dev caffe
Kyoto dev caffe
 
Kof
KofKof
Kof
 
Tfug20181105
Tfug20181105Tfug20181105
Tfug20181105
 
Nagosta 20181020
Nagosta 20181020Nagosta 20181020
Nagosta 20181020
 
Road damge ai
Road damge aiRoad damge ai
Road damge ai
 
パソナテックのAI人材育成の取り組みのご紹介
パソナテックのAI人材育成の取り組みのご紹介パソナテックのAI人材育成の取り組みのご紹介
パソナテックのAI人材育成の取り組みのご紹介
 
Fpgax20180217
Fpgax20180217Fpgax20180217
Fpgax20180217
 
なにわテック20180127
なにわテック20180127なにわテック20180127
なにわテック20180127
 
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて組込向けDeep Learning最新技術の紹介量子化テクニックとDorefaNetについて
組込向けDeep Learning最新技術の紹介 量子化テクニックとDorefaNetについて
 
コキュートスDsf
コキュートスDsfコキュートスDsf
コキュートスDsf
 
Fpgax20170924
Fpgax20170924Fpgax20170924
Fpgax20170924
 
コキュートスSwest19
コキュートスSwest19コキュートスSwest19
コキュートスSwest19
 
Tfug kansai vol3
Tfug kansai vol3Tfug kansai vol3
Tfug kansai vol3
 
Tfug kansai vol2
Tfug kansai vol2Tfug kansai vol2
Tfug kansai vol2
 
Tfug kansai vol1
Tfug kansai vol1Tfug kansai vol1
Tfug kansai vol1
 
コキュートスTfug
コキュートスTfugコキュートスTfug
コキュートスTfug
 
なにわTech20170218(tpu) tfug
なにわTech20170218(tpu) tfugなにわTech20170218(tpu) tfug
なにわTech20170218(tpu) tfug
 
なにわTech20161215
なにわTech20161215 なにわTech20161215
なにわTech20161215
 

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

  • 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

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