db d8b db d88888b db .o88b. .d88b. .88b d88. d88888b db
88 I8I 88 88' 88 d8P Y8 .8P Y8. 88'YbdP`88 88' 88
88 I8I 88 88ooooo 88 8P 88 88 88 88 88 88ooooo YP
Y8 I8I 88 88~~~~~ 88 8b 88 88 88 88 88 88~~~~~
`8b d8'8b d8' 88. 88booo. Y8b d8 `8b d8' 88 88 88 88. db
`8b8' `8d8' Y88888P Y88888P `Y88P' `Y88P' YP YP YP Y88888P YP
ChRIS presentation series
The Challenges of Medical Computing in the age
of AI and clouds:
How ChRIS can help!
┌──────────────────┐ │ ChRIS Developers │ ├──────────────────┴───────────────────────────────────────────┐ │ matrix: #chris:fedora.im │ │ mailto: dev@babymri.org │ │ web: http://chrisproject.org │ └──────────────────────────────────────────────────────────────┘
This talk lives here:
http://fnndsc.childrens.harvard.edu/ChRIS/ReproNim
Please use your keyboard arrow keys 🡄 🡆 to move backwards/forwards or jump to the beginning/end 🡅 🡇 (also at the top of the screen). If a slide doesn't "fit" nicely on your monitor, please use [ctrl]+/- to change the zoom level.Sometimes the typing effect used in this show can get "messed" up, especially if you arrow in and out quickly! If that happens, don't panic -- just refresh your browser!
d8888b. .d88b. .d8b. d8888b. .d8888.
88 `8D .8P Y8. d8' `8b 88 `8D 88' YP
88oobY' 88 88 88ooo88 88 88 `8bo.
88`8b 88 88 88~~~88 88 88 `Y8b.
88 `88. `8b d8' 88 88 88 .8D db 8D db db db
88 YD `Y88P' YP YP Y8888D' `8888Y' VP VP VP
How time flies...
▆ Biomed Eng PhD in a Machine Learning technique called Reinforcement Learning▆ Practically: Control systems, muscle modeling software, nerve impulse trains...▆ stints at the FreeSurfer dev team▆ CMA!▆ ACG at FNNDSC at BCH (acronyms much?)▆ and did I mention?▆ software... lots of... software
.d88b. db db d88888b d8888b. db db d888888b d88888b db d8b db
.8P Y8. 88 88 88' 88 `8D 88 88 `88' 88' 88 I8I 88
88 88 Y8 8P 88ooooo 88oobY' Y8 8P 88 88ooooo 88 I8I 88
88 88 `8b d8' 88~~~~~ 88`8b `8b d8' 88 88~~~~~ Y8 I8I 88
`8b d8' `8bd8' 88. 88 `88. `8bd8' .88. 88. `8b d8'8b d8'
`Y88P' YP Y88888P 88 YD YP Y888888P Y88888P `8b8' `8d8'
This talk aspires to...
▆ tell the story of ChRIS,
▆ and in the telling...
touch upon the challenges of medical compute
▆ talk about how the ChRIS "way" relates
▙ to clouds, and
▙ AI (oh my)
▆ show ChRIS
▙ demo
▙ deploy
▙ getting started
.d8b. db .d8888. .d88b.
d8' `8b 88 88' YP .8P Y8.
88ooo88 88 `8bo. 88 88
88~~~88 88 `Y8b. 88 88
88 88 88booo. db 8D `8b d8' db db db
YP YP Y88888P `8888Y' `Y88P' VP VP VP
Oh, and hopefully also...
▆ show how ChRIS is complementary to ReproNim
▆ explain why this is the case...
▆ In fact, spoilers...
.d8b. db .d8888. .d88b.
d8' `8b 88 88' YP .8P Y8.
88ooo88 88 `8bo. 88 88
88~~~88 88 `Y8b. 88 88
88 88 88booo. db 8D `8b d8' db db db
YP YP Y88888P `8888Y' `Y88P' VP VP VP
How now, brown cow?
▆ ChRIS is compute first, data second
▆ other systems are arguably data first, compute second...
.o88b. db db d8888b. d888888b .d8888. .d888b.
d8P Y8 88 88 88 `8D `88' 88' YP VP `8D
8P 88ooo88 88oobY' 88 `8bo. odD'
8b 88~~~88 88`8b 88 `Y8b. 8P'
Y8b d8 88 88 88 `88. .88. db 8D oo
`Y88P' YP YP 88 YD Y888888P `8888Y' VP
I could jump ahead... and say ChRIS is
▆ a pervasively open source platform
▆ designed to run compute as single containers
▆ as well as "trees" of linked containers
▆ facilitate
▙ reproducible compute
▙ sharing/collaboration of compute
▙ and data
.o88b. db db d8888b. d888888b .d8888. .d888b.
d8P Y8 88 88 88 `8D `88' 88' YP VP `8D
8P 88ooo88 88oobY' 88 `8bo. odD'
8b 88~~~88 88`8b 88 `Y8b. 8P'
Y8b d8 88 88 88 `88. .88. db 8D oo
`Y88P' YP YP 88 YD Y888888P `8888Y' VP
I could jump ahead... and say ChRIS
▆ aspires to be cognizant of non tech end users
▆ also tries to provide a low entry barrier to developers
▆ GUI and CLI
.o88b. db db d8888b. d888888b .d8888. .d888b.
d8P Y8 88 88 88 `8D `88' 88' YP VP `8D
8P 88ooo88 88oobY' 88 `8bo. odD'
8b 88~~~88 88`8b 88 `Y8b. 8P'
Y8b d8 88 88 88 `88. .88. db 8D oo
`Y88P' YP YP 88 YD Y888888P `8888Y' VP
I could jump ahead... and say ChRIS
▆ supports
▙ docker swarm
▙ kubernetes
▙ openshift
▙ slurm HPC
A long time ago in a galaxy far, far away...
Not that long ago, in a lab rather close by...
.d8888. d888888b .d88b. d8888b. d888888b d88888b .d8888.
88' YP `~~88~~' .8P Y8. 88 `8D `88' 88' 88' YP
`8bo. 88 88 88 88oobY' 88 88ooooo `8bo.
`Y8b. 88 88 88 88`8b 88 88~~~~~ `Y8b.
db 8D 88 `8b d8' 88 `88. .88. 88. db 8D
`8888Y' YP `Y88P' 88 YD Y888888P Y88888P `8888Y'
Let's tell a story...
Once up a time,
lost in space as it were...
.d8888. d888888b .d88b. d8888b. d888888b d88888b .d8888.
88' YP `~~88~~' .8P Y8. 88 `8D `88' 88' 88' YP
`8bo. 88 88 88 88oobY' 88 88ooooo `8bo.
`Y8b. 88 88 88 88`8b 88 88~~~~~ `Y8b.
db 8D 88 `8b d8' 88 `88. .88. 88. db 8D
`8888Y' YP `Y88P' 88 YD Y888888P Y88888P `8888Y'
Let's tell a story...
Well, a different
kind of space...
db d88888b .d8888. .d8888. .d88b. d8b db .d8888.
88 88' 88' YP 88' YP .8P Y8. 888o 88 88' YP
88 88ooooo `8bo. `8bo. 88 88 88V8o 88 `8bo.
88 88~~~~~ `Y8b. `Y8b. 88 88 88 V8o88 `Y8b.
88booo. 88. db 8D db 8D `8b d8' 88 V888 db 8D
Y88888P Y88888P `8888Y' `8888Y' `Y88P' VP V8P `8888Y'
Software, particularly in research
▆ is written by non-software devs
▆ is easily disregarded
▆ is underappreciated
▆ often lives unnecessarily short lives
db db .88b d88. .88b d88. .88b d88. .88b d88.
88 88 88'YbdP`88 88'YbdP`88 88'YbdP`88 88'YbdP`88
88ooo88 88 88 88 88 88 88 88 88 88 88 88 88
88~~~88 88 88 88 88 88 88 88 88 88 88 88 88
88 88 88 88 88 88 88 88 88 88 88 88 88 88 db db db
YP YP YP YP YP YP YP YP YP YP YP YP YP YP VP VP VP
Patterns emerge ▆ get data ▆ run simple analyses ▆ get results ▆ with a twist...
db db .d8888. d88888b d8888b. .d8888.
88 88 88' YP 88' 88 `8D 88' YP
88 88 `8bo. 88ooooo 88oobY' `8bo.
88 88 `Y8b. 88~~~~~ 88`8b `Y8b.
88b d88 db 8D 88. 88 `88. db 8D
~Y8888P' `8888Y' Y88888P 88 YD `8888Y'
Clinicians will probably never... ▆ open a terminal ▆ run a script RA's, alas... ▆ don't have a choice!
db db .d8888. d88888b d8888b. .d8888.
88 88 88' YP 88' 88 `8D 88' YP
88 88 `8bo. 88ooooo 88oobY' `8bo.
88 88 `Y8b. 88~~~~~ 88`8b `Y8b.
88b d88 db 8D 88. 88 `88. db 8D
~Y8888P' `8888Y' Y88888P 88 YD `8888Y'
These two different user classes can fundamentally shape
the design of a system...
ChRIS skewed towards users
who would prefer not to run scripts,
while maintaining a strong bias to power users who
prefer to use the CLI.
If the user (clinician?) won't come to the compute...
bring the compute to the user!
▆ web front end for running scripts▆ move complexity into the platform
db d88888b .d8888. .d8888. .d88b. d8b db .d8888.
88 88' 88' YP 88' YP .8P Y8. 888o 88 88' YP
88 88ooooo `8bo. `8bo. 88 88 88V8o 88 `8bo.
88 88~~~~~ `Y8b. `Y8b. 88 88 88 V8o88 `Y8b.
88booo. 88. db 8D db 8D `8b d8' 88 V888 db 8D
Y88888P Y88888P `8888Y' `8888Y' `Y88P' VP V8P `8888Y'
▆ the less a busy human has to do, the better ▆ computers excel at drudgery
db d8b db d88888b d8888b. db
88 I8I 88 88' 88 `8D 88
88 I8I 88 88ooooo 88oooY' YP
Y8 I8I 88 88~~~~~ 88~~~b.
`8b d8'8b d8' 88. 88 8D db
`8b8' `8d8' Y88888P Y8888P' YP
▆ simplify access to data ▆ simplify using the data in any analysis ▆ see the input and output
▆ focus on the analysis...▆ have the data fit the analysis
db db .88b d88. .88b d88. .88b d88.
88 88 88'YbdP`88 88'YbdP`88 88'YbdP`88
88ooo88 88 88 88 88 88 88 88 88 88
88~~~88 88 88 88 88 88 88 88 88 88
88 88 88 88 88 88 88 88 88 88 88 db db db
YP YP YP YP YP YP YP YP YP YP YP VP VP VP
Susan Dray, usability expert in human computer interaction and user experience, "If the user can't use it, it doesn't work"
COROLLARY▆ No matter how amazing a tool, if never used...it essentially doesn't exist.
.d8b. d888888b
d8' `8b `88'
88ooo88 88
88~~~88 88
88 88 .88.
YP YP Y888888P
Well what is AI?
▆ train▆ inferwords matter...▆ optimize / tune▆ run
.d8b. d888888b
d8' `8b `88'
88ooo88 88
88~~~88 88
88 88 .88.
YP YP Y888888P
What is AI..?
Most people/media/industry
take this to mean:
Neural Networks
.d8b. d888888b
d8' `8b `88'
88ooo88 88
88~~~88 88
88 88 .88.
YP YP Y888888P
Computationally....
▆ rather unexciting
▙ input
▙ compute
▙ output
▆ same for
▙ train
▙ infer
.88b d88. db .d88b. d8888b. .d8888.
88'YbdP`88 88 .8P Y8. 88 `8D 88' YP
88 88 88 88 88 88 88oodD' `8bo.
88 88 88 88 88 88 88~~~ `Y8b.
88 88 88 88booo. `8b d8' 88 db 8D
YP YP YP Y88888P `Y88P' 88 `8888Y'
▆ rapid deployment of AI
▆ built off assumptions of roles and responsibilities
▙ data scientists write in python and jupyter notebook
▙ dev ops engineers deploy and scale
.88b d88. db .d88b. d8888b. .d8888.
88'YbdP`88 88 .8P Y8. 88 `8D 88' YP
88 88 88 88 88 88 88oodD' `8bo.
88 88 88 88 88 88 88~~~ `Y8b.
88 88 88 88booo. `8b d8' 88 db 8D
YP YP YP Y88888P `Y88P' 88 `8888Y'
▆ scalability and clouds
▆ python apps
▙ FastAPI
▙ containerize
▙ scale
.88b d88. db .d88b. d8888b. .d8888.
88'YbdP`88 88 .8P Y8. 88 `8D 88' YP
88 88 88 88 88 88 88oodD' `8bo.
88 88 88 88 88 88 88~~~ `Y8b.
88 88 88 88booo. `8b d8' 88 db 8D
YP YP YP Y88888P `Y88P' 88 `8888Y'
▆ FastAPI apps
▙ single-shot
▙ typically not part of a larger system
▙ self contained
▆ No workflow
.88b d88. db .d88b. d8888b. .d8888.
88'YbdP`88 88 .8P Y8. 88 `8D 88' YP
88 88 88 88 88 88 88oodD' `8bo.
88 88 88 88 88 88 88~~~ `Y8b.
88 88 88 88booo. `8b d8' 88 db 8D
YP YP YP Y88888P `Y88P' 88 `8888Y'
What are MLops in ChRIS? ▆ data scientists are the developers ▆ reduce time to deploy and debug
____________
< Demo time? >
------------
o ^__^
o (oo)\_______
(__)\ )\/\
U ||----w |
|| ||
____________
< Thank you. >
------------
\ . .
\ / `. .' "
\ .---. < > < > .---.
\ | \ \ - ~ ~ - / / |
_____ ..-~ ~-..-~
| | \~~~\.' `./~~~/
--------- \__/ \__/
.' O \ / / \ "
(_____, `._.' | } \/~~~/
`----. / } | / \__/
`-. | / | / `. ,~~|
~-.__| /_ - ~ ^| /- _ `..-'
| / | / ~-. `-. _ _ _
|_____| |_____| ~ - . _ _ _ _ _>
_____ _ _
|_ _| | | |
| | | |__ __ _ _ __ | | __ _ _ ___ _ _
| | | '_ \ / _` | '_ \| |/ / | | | |/ _ \| | | |
| | | | | | (_| | | | | < | |_| | (_) | |_| |_
\_/ |_| |_|\__,_|_| |_|_|\_\ \__, |\___/ \__,_(_)
__/ |
|___/
And to the core team..!
▆ Jorge "Collection+JSON" Bernal▆ Gideon "Front and Center" Pinto▆ Sandip "Apps... apps... apps..." Samal▆ Jennings "The Rust-afarian" Zhang▆ Chuan-Heng "Jupyter is the way" Hsiao▆ Ellen "The Doc" Grant▆ and many more..!
______________
< Questions..? >
--------------
\ \_______
v__v \ \ O )
(oo) ||----w |
(__) || || \/\