Dataflow Visualization using ASCII DAG

gree_tech
gree_techgree_tech
Dataflow Visualization
Using ASCII DAG
Junji Hashimoto(GREE, Inc.)
2018/12/04 rev0.2
1
Outline
● Why we visualize DAG?
● Background and Motivation
● Left Aligned ASCII DAG(Proposed Visualization)
● Result and Future Works
2
Outline
● Why we visualize DAG?
● Background and Motivation
● Left Aligned ASCII DAG(Proposed Visualization)
● Result and Future Works
3
DAG(Directed Acyclic Graph)?
● What is DAG?
○ Directed graph.
○ No loop.
● Why we visualize DAG?
○ Tensorflow’s computation graph == DAG
○ DAG is a machine learning core.
○ Have to review and debug DAG.
○ DAG is too long for reviewing it today.
4
Outline
● Why we visualize DAG?
● Background and Motivation
○ Development Flow
○ Long Dataflow
● Left Aligned ASCII DAG(Proposed Visualization)
● Result and Future Work
5
Agile: Development Flow
1. Check Requirement
2. Design the codes for the requirement.
3. Build and Test the codes
4. Review
a. Confirm the requirement.
b. Compare the changes of the code.
c. If it is OK, go to deployment.
5. Deploy
a. Merge the code
b. Apply the code for a production.
6
Req.
Design
Build
Deploy
Test
1 or 2 Weeks
Repeat small tasks.
Review: github flow known as Pull Request
7
Review: github flow known as Pull Request
8
Review: github flow known as Pull Request
9
We want to review the changes of
both the code and the dataflow on this UI.
Tensorboard can not show the changes of the dataflow.
Long Dataflow (Inception-V3)
10
65 Layers
Complex and Long Dataflow
11
AlexNet
GoogLeNet
Inception-V3
Inception-V4
These data from ICLR 2017:AN ANALYSIS OF DEEP NEURAL NETWORK MODELS FOR PRACTICAL APPLICATIONS
VGG is here.
Outline
● Why we visualize DAG?
● Background and Motivation
● Left Aligned ASCII DAG(Proposed Visualization)
○ Project Goal
○ Developed Visualization Tool
● Result and Future Work
12
Project Goal
● Make visualization-tool for DAG.
● The tool is available in current development flow.
○ Github flow : Pull Request.
● Compare the changes of DAG easily.
● Scalability of showing large dataflow.
13
Left Aligned DAG(Proposed Visualization)
● Feature
○ Use ASCII
○ Left Aligned
○ Compact 14
Proposed Visualization Graphviz(Conventional Visualization)
The changes of the codes in proposed visualization.
15
Original Insert
L8
Diff
Performance for large DAG: Inception-V3
16
Graphviz : 44 sec
Proposed method: 14sec
It looks nice?
Result And Future Works
● Make visualization-tool for DAG using ASCII.
○ Registered in PyPi.
○ https://pypi.org/project/stackeddag/
● Work with Pull Request together.
● Can show a large graph of dataflow.
● Using this on actual product/development flow is a
future work.
17
18
END
Jupyter Notebook
19
Rendering Algorithm
1. Get depth of nodes
2. Gen reversed DAG and Get reversed depth of nodes.
3. Order nodes by the depth.
4. If the depth is the same, order nodes by the reversed
depth.
5. If the reversed depth is the same, order nodes by the
label of nodes
6. Connect nodes by using ascii text.
20
Rendering Algorithm: Get The Depth of All Nodes
21
Rendering Algorithm
22
0
Rendering Algorithm
23
1
0
Rendering Algorithm
24
2 2 2 2
1
0
Rendering Algorithm
25
33
2 2 2 2
1
0
Rendering Algorithm: Get The Reverse Depth
26
33
2 2 2 2
1
0
00
1 0 0 0
2
3
Rendering Algorithm: Allocate Nodes
27
33
2 2 2 2
1
0
00
1 0 0 0
2
3
Rendering Algorithm: Write All Edges
28
33
2 2 2 2
1
0
00
1 0 0 0
2
3
Benchmark: Inception-V3
29
Related Work for visualization of DAG
30
● Use Image
○ Tensorboard
○ tfGraphviz using graphviz
● Use Ascii
○ graph-easy
○ git
○ graphterm
○ leaf
These do not focus on the changes of codes.
Tensorboard
31
● Pros
○ Sophisticated UI
● Cons
○ Can not compare
a difference of
graphs.
○ Use wide space
tfGraphviz == graphviz
32
● Pros
○ Sophisticated
visualization
● Cons
○ Can not compare
a difference of
graphs.
Limit of using image.
33
● If we use image for
graph,
● We have to compare
the difference
side by side.
graph-easy
34
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Use wide space
git
35
● Pros
○ We can compare
the difference by
diff-command.
● Cons
graphterm
36
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Not design with
diff-command.
graphterm
37
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Not design with
diff-command.
o new node
leaf
38
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Not design with
diff-command.
Project Goal
● Make visualization-tool for DAG.
● The tool is available in current development flow.
○ Github flow : Pull Request.
● Compare the changes of DAG easily.
● Scalability of showing large dataflow.
39
If the visualization is ASCII,
we can solve the problems of both flow and changes.
Proposed Visualization
40
Proposed Visualization of DAG
graphviz
Left Aligned ASCII Format
Background
● Complex and Long Dataflow
● Want to use a visualization tool on today’s development flow.
○ We need a visualization tool for the dataflow.
● How to visualize Dataflow(As Conventional Method)
● Requirement of what we improve
○ reviewable
○ compact
○ fast
● Conventional Method
41
Goal
● Why Agile?
○ A project’s goal is always changed.
○ We have to keep
42
Outline
● What is a problem?
● Agile Development Flow
● Why we focus on a visualization of DAG? Why we use ASCII?
● Compare with other visualization.
● Left Aligned ASCII DAG
● About rendering algorithm
● Evaluation by using Google Inception V3
● Results and Future works
43
Long Dataflow (Inception-V3)
44
65 Layers
Compex and Long Dataflow
45
AlexNet
GoogLeNet
Inception-V3
Inception-V4
These data from ICLR 2017:AN ANALYSIS OF DEEP NEURAL NETWORK MODELS FOR PRACTICAL APPLICATIONS
VGG is here.
Development Flow (Agile)
46
Requirements
Waterfall
Design Build Test Release
Agile
1 Year
Req.
Design
Build
Deploy
Test
Req.
Design
Build
Deploy
Test
Req.
Design
Build
Deploy
Test
1 or 2 Weeks
Agile
● Split large task into small tasks.
● One task takes short term.
● Pros
○ Keep the systems available
○ Can catch up the requirement quickly, when requirements are changed.
● Cons
○ Goal is not so clear.
■ Almost OSS like HTTP server do not have clear goal.
47
Practical Development flow for agile
1. Check a issue(== Requirement)
2. Design and make the codes for the issue
3. Build and Test with CI
4. Review
a. Confirm the issue
b. Compare the difference of the code.
c. If it is OK, go to deployment.
5. Deploy
a. Merge the code
b. Apply the code for a production.
48
Req.
Design
Build
Deploy
Test
1 or 2 Weeks
Review: github flow known as Pull Request
49
Review: github flow known as Pull Request
50
Review: github flow known as Pull Request
51
We want to review the code and the dataflow.
Requirement for our development flow
● Review the dataflow and the code by PullRequest-View/Tool.
● Compare the difference of the dataflow
● If the parts of dataflow are not changed, Do not show any difference.
52
Conventional Visualization of Datafllow
● Tensorboard
● tfgraphviz
● Review the dataflow and the code by PullRequest-View/Tool.
● Compare the difference of the dataflow
● Goal
○ Reviewable
■ Compare original graph with modified graph easily.
■ We need ascii graph.
○ Scalability
■ Google’s network has hundred layer of operations.
53
Related Work for visualization of DAG
54
● Use Image
○ Tensorboard
○ tfGraphviz using graphviz
● Use Ascii
○ graph-easy
○ git
○ graphterm
○ leaf
Tensorboard
55
● Pros
○ Sophisticated UI
● Cons
○ Can not compare
a difference of
graphs.
○ Use wide space
tfgraphviz == graphviz
56
● Pros
○ Sophisticated
visualization
● Cons
○ Can not compare
a difference of
graphs.
Limit of using image.
57
● If we use image for
graph,
● We have to compare
the difference
side by side.
graph-easy
58
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Use wide space
git
59
● Pros
○ We can compare
the difference by
diff-command.
● Cons
graphterm
60
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Not design with
diff-command.
graphterm
61
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Not design with
diff-command.
o new node
leaf
62
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Not design with
diff-command.
Goal
● Make visualization-tool for DAG.
● The tool is available in current development flow.
○ Github flow : Pull Request.
● Compare the difference of DAG easily.
● Scalability of showing large dataflow.
63
1 of 63

Recommended

IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4 by
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4SORACOM,INC
10.6K views55 slides
SEED - Halcyon Architecture by
SEED - Halcyon ArchitectureSEED - Halcyon Architecture
SEED - Halcyon ArchitectureElectronic Arts / DICE
1.9K views137 slides
Magnum IO GPUDirect Storage 最新情報 by
Magnum IO GPUDirect Storage 最新情報Magnum IO GPUDirect Storage 最新情報
Magnum IO GPUDirect Storage 最新情報NVIDIA Japan
1.3K views48 slides
Sizing Splunk SmartStore - Spend Less and Get More Out of Splunk by
Sizing Splunk SmartStore - Spend Less and Get More Out of SplunkSizing Splunk SmartStore - Spend Less and Get More Out of Splunk
Sizing Splunk SmartStore - Spend Less and Get More Out of SplunkPaula Koziol
1.5K views43 slides
Yahoo! JAPANにおけるApache Cassandraへの取り組み by
Yahoo! JAPANにおけるApache Cassandraへの取り組みYahoo! JAPANにおけるApache Cassandraへの取り組み
Yahoo! JAPANにおけるApache Cassandraへの取り組みYahoo!デベロッパーネットワーク
11.2K views51 slides
Java11へのマイグレーションガイド ~Apache Hadoopの事例~ by
Java11へのマイグレーションガイド ~Apache Hadoopの事例~Java11へのマイグレーションガイド ~Apache Hadoopの事例~
Java11へのマイグレーションガイド ~Apache Hadoopの事例~Yahoo!デベロッパーネットワーク
10.3K views40 slides

More Related Content

What's hot

Wprowadzenie do Big Data i Apache Spark by
Wprowadzenie do Big Data i Apache SparkWprowadzenie do Big Data i Apache Spark
Wprowadzenie do Big Data i Apache SparkSages
7.2K views73 slides
InnoDBのすゝめ(仮) by
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)Takanori Sejima
22.6K views61 slides
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから by
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれから
Yahoo! JAPANのサービス開発を10倍早くした社内PaaS構築の今とこれからYahoo!デベロッパーネットワーク
11.5K views104 slides
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons... by
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unity Technologies
2.4K views60 slides
CyberAgentにおけるMongoDB by
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBAkihiro Kuwano
17.7K views94 slides

What's hot(20)

Wprowadzenie do Big Data i Apache Spark by Sages
Wprowadzenie do Big Data i Apache SparkWprowadzenie do Big Data i Apache Spark
Wprowadzenie do Big Data i Apache Spark
Sages7.2K views
InnoDBのすゝめ(仮) by Takanori Sejima
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima22.6K views
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons... by Unity Technologies
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unite Berlin 2018 - Book of the Dead Optimizing Performance for High End Cons...
Unity Technologies2.4K views
CyberAgentにおけるMongoDB by Akihiro Kuwano
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
Akihiro Kuwano17.7K views
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016 by Nagato Kasaki
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Nagato Kasaki16.6K views
超実践 Cloud Spanner 設計講座 by Samir Hammoudi
超実践 Cloud Spanner 設計講座超実践 Cloud Spanner 設計講座
超実践 Cloud Spanner 設計講座
Samir Hammoudi21.3K views
Snowflake Architecture and Performance(db tech showcase Tokyo 2018) by Mineaki Motohashi
Snowflake Architecture and Performance(db tech showcase Tokyo 2018)Snowflake Architecture and Performance(db tech showcase Tokyo 2018)
Snowflake Architecture and Performance(db tech showcase Tokyo 2018)
Mineaki Motohashi12.6K views
Understanding Memory Management In Spark For Fun And Profit by Spark Summit
Understanding Memory Management In Spark For Fun And ProfitUnderstanding Memory Management In Spark For Fun And Profit
Understanding Memory Management In Spark For Fun And Profit
Spark Summit23K views
Apache Hadoop YARN – Multi-Tenancy, Capacity Scheduler & Preemption - Stamped... by StampedeCon
Apache Hadoop YARN – Multi-Tenancy, Capacity Scheduler & Preemption - Stamped...Apache Hadoop YARN – Multi-Tenancy, Capacity Scheduler & Preemption - Stamped...
Apache Hadoop YARN – Multi-Tenancy, Capacity Scheduler & Preemption - Stamped...
StampedeCon8.2K views
Cassandraのしくみ データの読み書き編 by Yuki Morishita
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
Yuki Morishita30.8K views
BuildKitによる高速でセキュアなイメージビルド by Akihiro Suda
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda42.6K views
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き) by Hiro H.
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.15.1K views
Deep Dive into GPU Support in Apache Spark 3.x by Databricks
Deep Dive into GPU Support in Apache Spark 3.xDeep Dive into GPU Support in Apache Spark 3.x
Deep Dive into GPU Support in Apache Spark 3.x
Databricks2.3K views
BuildKitの概要と最近の機能 by Kohei Tokunaga
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga4.6K views
Cycloudのストレージ紹介と歴史 by Hiroki Chinen
Cycloudのストレージ紹介と歴史Cycloudのストレージ紹介と歴史
Cycloudのストレージ紹介と歴史
Hiroki Chinen479 views
Hadoopの概念と基本的知識 by Ken SASAKI
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
Ken SASAKI56.1K views
ビッグデータ処理データベースの全体像と使い分け
2018年version by Tetsutaro Watanabe
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
Tetsutaro Watanabe21.2K views

Similar to Dataflow Visualization using ASCII DAG

GraphQL ♥︎ GraphDB by
GraphQL ♥︎ GraphDBGraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDBGraphRM
1.8K views40 slides
Marco Liberati - Graph analytics by
Marco Liberati - Graph analyticsMarco Liberati - Graph analytics
Marco Liberati - Graph analyticsCodemotion
458 views40 slides
Snowflake Automated Deployments / CI/CD Pipelines by
Snowflake Automated Deployments / CI/CD PipelinesSnowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesDrew Hansen
3.8K views42 slides
Computer Graphics - Lecture 01 - 3D Programming I by
Computer Graphics - Lecture 01 - 3D Programming IComputer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming I💻 Anton Gerdelan
585 views57 slides
Performance in Geode: How Fast Is It, How Is It Measured, and How Can It Be I... by
Performance in Geode: How Fast Is It, How Is It Measured, and How Can It Be I...Performance in Geode: How Fast Is It, How Is It Measured, and How Can It Be I...
Performance in Geode: How Fast Is It, How Is It Measured, and How Can It Be I...VMware Tanzu
753 views38 slides
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py... by
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...Kaxil Naik
2.9K views77 slides

Similar to Dataflow Visualization using ASCII DAG(20)

GraphQL ♥︎ GraphDB by GraphRM
GraphQL ♥︎ GraphDBGraphQL ♥︎ GraphDB
GraphQL ♥︎ GraphDB
GraphRM1.8K views
Marco Liberati - Graph analytics by Codemotion
Marco Liberati - Graph analyticsMarco Liberati - Graph analytics
Marco Liberati - Graph analytics
Codemotion458 views
Snowflake Automated Deployments / CI/CD Pipelines by Drew Hansen
Snowflake Automated Deployments / CI/CD PipelinesSnowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD Pipelines
Drew Hansen3.8K views
Computer Graphics - Lecture 01 - 3D Programming I by 💻 Anton Gerdelan
Computer Graphics - Lecture 01 - 3D Programming IComputer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming I
Performance in Geode: How Fast Is It, How Is It Measured, and How Can It Be I... by VMware Tanzu
Performance in Geode: How Fast Is It, How Is It Measured, and How Can It Be I...Performance in Geode: How Fast Is It, How Is It Measured, and How Can It Be I...
Performance in Geode: How Fast Is It, How Is It Measured, and How Can It Be I...
VMware Tanzu753 views
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py... by Kaxil Naik
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
Kaxil Naik2.9K views
Modular GraphQL with Schema Stitching by Sashko Stubailo
Modular GraphQL with Schema StitchingModular GraphQL with Schema Stitching
Modular GraphQL with Schema Stitching
Sashko Stubailo3.6K views
Devoxx : being productive with JHipster by Julien Dubois
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipster
Julien Dubois14.8K views
Kotlin REST & GraphQL API by Sean O'Brien
Kotlin REST & GraphQL APIKotlin REST & GraphQL API
Kotlin REST & GraphQL API
Sean O'Brien62 views
NDGeospatialSummit2019 - Everything You Need to Know About ArcGIS Vector Tiles by North Dakota GIS Hub
NDGeospatialSummit2019 - Everything You Need to Know About ArcGIS Vector TilesNDGeospatialSummit2019 - Everything You Need to Know About ArcGIS Vector Tiles
NDGeospatialSummit2019 - Everything You Need to Know About ArcGIS Vector Tiles
Gobblin @ NerdWallet (Nov 2015) by NerdWalletHQ
Gobblin @ NerdWallet (Nov 2015)Gobblin @ NerdWallet (Nov 2015)
Gobblin @ NerdWallet (Nov 2015)
NerdWalletHQ2.2K views
Presentation dbei insight to infinity and beyond by Nikolay Gerasimov
Presentation dbei insight to infinity and beyondPresentation dbei insight to infinity and beyond
Presentation dbei insight to infinity and beyond
Upcoming features in Airflow 2 by Kaxil Naik
Upcoming features in Airflow 2Upcoming features in Airflow 2
Upcoming features in Airflow 2
Kaxil Naik126 views
Java Image Processing for Geospatial Community by Jody Garnett
Java Image Processing for Geospatial CommunityJava Image Processing for Geospatial Community
Java Image Processing for Geospatial Community
Jody Garnett7.1K views
AOT-compilation of JavaScript with V8 by Phil Eaton
AOT-compilation of JavaScript with V8AOT-compilation of JavaScript with V8
AOT-compilation of JavaScript with V8
Phil Eaton707 views
Superworkflow of Graph Neural Networks with K8S and Fugue by Databricks
Superworkflow of Graph Neural Networks with K8S and FugueSuperworkflow of Graph Neural Networks with K8S and Fugue
Superworkflow of Graph Neural Networks with K8S and Fugue
Databricks273 views
PGConf.ASIA 2019 Bali - Patroni on GitLab.com - Jose Cores Finnoto by Equnix
PGConf.ASIA 2019 Bali - Patroni on GitLab.com - Jose Cores FinnotoPGConf.ASIA 2019 Bali - Patroni on GitLab.com - Jose Cores Finnoto
PGConf.ASIA 2019 Bali - Patroni on GitLab.com - Jose Cores Finnoto
Equnix883 views
State of GeoServer, GeoTools and Friends 2014 by Jody Garnett
State of GeoServer, GeoTools and Friends 2014State of GeoServer, GeoTools and Friends 2014
State of GeoServer, GeoTools and Friends 2014
Jody Garnett6.8K views

More from gree_tech

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜gree_tech
725 views36 slides
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介gree_tech
229 views13 slides
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表gree_tech
1K views18 slides
アプリ起動時間高速化 ~推測するな、計測せよ~ by
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~gree_tech
1.9K views84 slides
長寿なゲーム事業におけるアプリビルドの効率化 by
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化gree_tech
347 views116 slides
Cloud Spanner をより便利にする運用支援ツールの紹介 by
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介gree_tech
684 views31 slides

More from gree_tech(20)

アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech725 views
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech229 views
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech1K views
アプリ起動時間高速化 ~推測するな、計測せよ~ by gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech1.9K views
長寿なゲーム事業におけるアプリビルドの効率化 by gree_tech
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech347 views
Cloud Spanner をより便利にする運用支援ツールの紹介 by gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech684 views
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介 by gree_tech
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech599 views
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について by gree_tech
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現についてSINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech626 views
海外展開と負荷試験 by gree_tech
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験
gree_tech593 views
翻訳QAでのテスト自動化の取り組み by gree_tech
翻訳QAでのテスト自動化の取り組み翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
gree_tech305 views
組み込み開発のテストとゲーム開発のテストの違い by gree_tech
組み込み開発のテストとゲーム開発のテストの違い組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
gree_tech573 views
サーバーフレームワークに潜んでる脆弱性検知ツール紹介 by gree_tech
サーバーフレームワークに潜んでる脆弱性検知ツール紹介サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech209 views
データエンジニアとアナリストチーム兼務になった件について by gree_tech
データエンジニアとアナリストチーム兼務になった件についてデータエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
gree_tech308 views
シェアドサービスとしてのデータテクノロジー by gree_tech
シェアドサービスとしてのデータテクノロジーシェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
gree_tech432 views
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて- by gree_tech
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech1K views
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話 by gree_tech
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech1.1K views
比較サイトの検索改善(SPA から SSR に変換) by gree_tech
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
gree_tech694 views
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行 by gree_tech
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech2.9K views
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜 by gree_tech
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech397 views
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮) by gree_tech
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech751 views

Recently uploaded

NEW SUPPLIERS SUPPLIES (copie).pdf by
NEW SUPPLIERS SUPPLIES (copie).pdfNEW SUPPLIERS SUPPLIES (copie).pdf
NEW SUPPLIERS SUPPLIES (copie).pdfgeorgesradjou
15 views30 slides
Introduction to CAD-CAM.pptx by
Introduction to CAD-CAM.pptxIntroduction to CAD-CAM.pptx
Introduction to CAD-CAM.pptxsuyogpatil49
5 views15 slides
CHEMICAL KINETICS.pdf by
CHEMICAL KINETICS.pdfCHEMICAL KINETICS.pdf
CHEMICAL KINETICS.pdfAguedaGutirrez
12 views337 slides
Design of machine elements-UNIT 3.pptx by
Design of machine elements-UNIT 3.pptxDesign of machine elements-UNIT 3.pptx
Design of machine elements-UNIT 3.pptxgopinathcreddy
32 views31 slides
SNMPx by
SNMPxSNMPx
SNMPxAmatullahbutt
17 views12 slides
MSA Website Slideshow (16).pdf by
MSA Website Slideshow (16).pdfMSA Website Slideshow (16).pdf
MSA Website Slideshow (16).pdfmsaucla
68 views8 slides

Recently uploaded(20)

NEW SUPPLIERS SUPPLIES (copie).pdf by georgesradjou
NEW SUPPLIERS SUPPLIES (copie).pdfNEW SUPPLIERS SUPPLIES (copie).pdf
NEW SUPPLIERS SUPPLIES (copie).pdf
georgesradjou15 views
Introduction to CAD-CAM.pptx by suyogpatil49
Introduction to CAD-CAM.pptxIntroduction to CAD-CAM.pptx
Introduction to CAD-CAM.pptx
suyogpatil495 views
Design of machine elements-UNIT 3.pptx by gopinathcreddy
Design of machine elements-UNIT 3.pptxDesign of machine elements-UNIT 3.pptx
Design of machine elements-UNIT 3.pptx
gopinathcreddy32 views
MSA Website Slideshow (16).pdf by msaucla
MSA Website Slideshow (16).pdfMSA Website Slideshow (16).pdf
MSA Website Slideshow (16).pdf
msaucla68 views
What is Whirling Hygrometer.pdf by IIT KHARAGPUR
What is Whirling Hygrometer.pdfWhat is Whirling Hygrometer.pdf
What is Whirling Hygrometer.pdf
IIT KHARAGPUR 12 views
Control Systems Feedback.pdf by LGGaming5
Control Systems Feedback.pdfControl Systems Feedback.pdf
Control Systems Feedback.pdf
LGGaming56 views
SUMIT SQL PROJECT SUPERSTORE 1.pptx by Sumit Jadhav
SUMIT SQL PROJECT SUPERSTORE 1.pptxSUMIT SQL PROJECT SUPERSTORE 1.pptx
SUMIT SQL PROJECT SUPERSTORE 1.pptx
Sumit Jadhav 13 views

Dataflow Visualization using ASCII DAG

  • 1. Dataflow Visualization Using ASCII DAG Junji Hashimoto(GREE, Inc.) 2018/12/04 rev0.2 1
  • 2. Outline ● Why we visualize DAG? ● Background and Motivation ● Left Aligned ASCII DAG(Proposed Visualization) ● Result and Future Works 2
  • 3. Outline ● Why we visualize DAG? ● Background and Motivation ● Left Aligned ASCII DAG(Proposed Visualization) ● Result and Future Works 3
  • 4. DAG(Directed Acyclic Graph)? ● What is DAG? ○ Directed graph. ○ No loop. ● Why we visualize DAG? ○ Tensorflow’s computation graph == DAG ○ DAG is a machine learning core. ○ Have to review and debug DAG. ○ DAG is too long for reviewing it today. 4
  • 5. Outline ● Why we visualize DAG? ● Background and Motivation ○ Development Flow ○ Long Dataflow ● Left Aligned ASCII DAG(Proposed Visualization) ● Result and Future Work 5
  • 6. Agile: Development Flow 1. Check Requirement 2. Design the codes for the requirement. 3. Build and Test the codes 4. Review a. Confirm the requirement. b. Compare the changes of the code. c. If it is OK, go to deployment. 5. Deploy a. Merge the code b. Apply the code for a production. 6 Req. Design Build Deploy Test 1 or 2 Weeks Repeat small tasks.
  • 7. Review: github flow known as Pull Request 7
  • 8. Review: github flow known as Pull Request 8
  • 9. Review: github flow known as Pull Request 9 We want to review the changes of both the code and the dataflow on this UI. Tensorboard can not show the changes of the dataflow.
  • 11. Complex and Long Dataflow 11 AlexNet GoogLeNet Inception-V3 Inception-V4 These data from ICLR 2017:AN ANALYSIS OF DEEP NEURAL NETWORK MODELS FOR PRACTICAL APPLICATIONS VGG is here.
  • 12. Outline ● Why we visualize DAG? ● Background and Motivation ● Left Aligned ASCII DAG(Proposed Visualization) ○ Project Goal ○ Developed Visualization Tool ● Result and Future Work 12
  • 13. Project Goal ● Make visualization-tool for DAG. ● The tool is available in current development flow. ○ Github flow : Pull Request. ● Compare the changes of DAG easily. ● Scalability of showing large dataflow. 13
  • 14. Left Aligned DAG(Proposed Visualization) ● Feature ○ Use ASCII ○ Left Aligned ○ Compact 14 Proposed Visualization Graphviz(Conventional Visualization)
  • 15. The changes of the codes in proposed visualization. 15 Original Insert L8 Diff
  • 16. Performance for large DAG: Inception-V3 16 Graphviz : 44 sec Proposed method: 14sec It looks nice?
  • 17. Result And Future Works ● Make visualization-tool for DAG using ASCII. ○ Registered in PyPi. ○ https://pypi.org/project/stackeddag/ ● Work with Pull Request together. ● Can show a large graph of dataflow. ● Using this on actual product/development flow is a future work. 17
  • 20. Rendering Algorithm 1. Get depth of nodes 2. Gen reversed DAG and Get reversed depth of nodes. 3. Order nodes by the depth. 4. If the depth is the same, order nodes by the reversed depth. 5. If the reversed depth is the same, order nodes by the label of nodes 6. Connect nodes by using ascii text. 20
  • 21. Rendering Algorithm: Get The Depth of All Nodes 21
  • 26. Rendering Algorithm: Get The Reverse Depth 26 33 2 2 2 2 1 0 00 1 0 0 0 2 3
  • 27. Rendering Algorithm: Allocate Nodes 27 33 2 2 2 2 1 0 00 1 0 0 0 2 3
  • 28. Rendering Algorithm: Write All Edges 28 33 2 2 2 2 1 0 00 1 0 0 0 2 3
  • 30. Related Work for visualization of DAG 30 ● Use Image ○ Tensorboard ○ tfGraphviz using graphviz ● Use Ascii ○ graph-easy ○ git ○ graphterm ○ leaf These do not focus on the changes of codes.
  • 31. Tensorboard 31 ● Pros ○ Sophisticated UI ● Cons ○ Can not compare a difference of graphs. ○ Use wide space
  • 32. tfGraphviz == graphviz 32 ● Pros ○ Sophisticated visualization ● Cons ○ Can not compare a difference of graphs.
  • 33. Limit of using image. 33 ● If we use image for graph, ● We have to compare the difference side by side.
  • 34. graph-easy 34 ● Pros ○ We can compare the difference by diff-command. ● Cons ○ Use wide space
  • 35. git 35 ● Pros ○ We can compare the difference by diff-command. ● Cons
  • 36. graphterm 36 ● Pros ○ We can compare the difference by diff-command. ● Cons ○ Not design with diff-command.
  • 37. graphterm 37 ● Pros ○ We can compare the difference by diff-command. ● Cons ○ Not design with diff-command. o new node
  • 38. leaf 38 ● Pros ○ We can compare the difference by diff-command. ● Cons ○ Not design with diff-command.
  • 39. Project Goal ● Make visualization-tool for DAG. ● The tool is available in current development flow. ○ Github flow : Pull Request. ● Compare the changes of DAG easily. ● Scalability of showing large dataflow. 39 If the visualization is ASCII, we can solve the problems of both flow and changes.
  • 40. Proposed Visualization 40 Proposed Visualization of DAG graphviz Left Aligned ASCII Format
  • 41. Background ● Complex and Long Dataflow ● Want to use a visualization tool on today’s development flow. ○ We need a visualization tool for the dataflow. ● How to visualize Dataflow(As Conventional Method) ● Requirement of what we improve ○ reviewable ○ compact ○ fast ● Conventional Method 41
  • 42. Goal ● Why Agile? ○ A project’s goal is always changed. ○ We have to keep 42
  • 43. Outline ● What is a problem? ● Agile Development Flow ● Why we focus on a visualization of DAG? Why we use ASCII? ● Compare with other visualization. ● Left Aligned ASCII DAG ● About rendering algorithm ● Evaluation by using Google Inception V3 ● Results and Future works 43
  • 45. Compex and Long Dataflow 45 AlexNet GoogLeNet Inception-V3 Inception-V4 These data from ICLR 2017:AN ANALYSIS OF DEEP NEURAL NETWORK MODELS FOR PRACTICAL APPLICATIONS VGG is here.
  • 46. Development Flow (Agile) 46 Requirements Waterfall Design Build Test Release Agile 1 Year Req. Design Build Deploy Test Req. Design Build Deploy Test Req. Design Build Deploy Test 1 or 2 Weeks
  • 47. Agile ● Split large task into small tasks. ● One task takes short term. ● Pros ○ Keep the systems available ○ Can catch up the requirement quickly, when requirements are changed. ● Cons ○ Goal is not so clear. ■ Almost OSS like HTTP server do not have clear goal. 47
  • 48. Practical Development flow for agile 1. Check a issue(== Requirement) 2. Design and make the codes for the issue 3. Build and Test with CI 4. Review a. Confirm the issue b. Compare the difference of the code. c. If it is OK, go to deployment. 5. Deploy a. Merge the code b. Apply the code for a production. 48 Req. Design Build Deploy Test 1 or 2 Weeks
  • 49. Review: github flow known as Pull Request 49
  • 50. Review: github flow known as Pull Request 50
  • 51. Review: github flow known as Pull Request 51 We want to review the code and the dataflow.
  • 52. Requirement for our development flow ● Review the dataflow and the code by PullRequest-View/Tool. ● Compare the difference of the dataflow ● If the parts of dataflow are not changed, Do not show any difference. 52
  • 53. Conventional Visualization of Datafllow ● Tensorboard ● tfgraphviz ● Review the dataflow and the code by PullRequest-View/Tool. ● Compare the difference of the dataflow ● Goal ○ Reviewable ■ Compare original graph with modified graph easily. ■ We need ascii graph. ○ Scalability ■ Google’s network has hundred layer of operations. 53
  • 54. Related Work for visualization of DAG 54 ● Use Image ○ Tensorboard ○ tfGraphviz using graphviz ● Use Ascii ○ graph-easy ○ git ○ graphterm ○ leaf
  • 55. Tensorboard 55 ● Pros ○ Sophisticated UI ● Cons ○ Can not compare a difference of graphs. ○ Use wide space
  • 56. tfgraphviz == graphviz 56 ● Pros ○ Sophisticated visualization ● Cons ○ Can not compare a difference of graphs.
  • 57. Limit of using image. 57 ● If we use image for graph, ● We have to compare the difference side by side.
  • 58. graph-easy 58 ● Pros ○ We can compare the difference by diff-command. ● Cons ○ Use wide space
  • 59. git 59 ● Pros ○ We can compare the difference by diff-command. ● Cons
  • 60. graphterm 60 ● Pros ○ We can compare the difference by diff-command. ● Cons ○ Not design with diff-command.
  • 61. graphterm 61 ● Pros ○ We can compare the difference by diff-command. ● Cons ○ Not design with diff-command. o new node
  • 62. leaf 62 ● Pros ○ We can compare the difference by diff-command. ● Cons ○ Not design with diff-command.
  • 63. Goal ● Make visualization-tool for DAG. ● The tool is available in current development flow. ○ Github flow : Pull Request. ● Compare the difference of DAG easily. ● Scalability of showing large dataflow. 63