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 | (__) || || \/\