Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[ACC 2017] 모두의 AI를 위한 오픈소스 머신러닝 플랫폼

[ACC 2017] 모두의 AI를 위한 오픈소스 머신러닝 플랫폼

This talk describes how open source has affected modern AI development, introduces popular AI frameworks with their impacts to the community, and shows the lablup.AI platform architecture to compose and facilitate existing open source AI frameworks.

Joongi Kim

July 12, 2017
Tweet

More Decks by Joongi Kim

Other Decks in Programming

Transcript

  1. AI픦 숞 멺핆 Hardware Software – Computation – Memory –

    Abstraction – Composition Computing픦 믾쫆 줆헪 섾핂읊 펂쎉멚 ·헎핳몮, 펂쎉멚 퓮푷 헣쫂옪 짢붎 멑핆많?
  2. AI픦 숞 멺핆 Hardware Software – Computation – Memory –

    Abstraction – Composition AI픦 믾쫆 줆헪 찓섾핂읊 펂쎉멚 헣헪·쫂뫎·뫃믗몮, 펂쎉멚 섾핂픦 픒 킃펺 캖옪풂 멑픒 폖·삶 멑핆많?
  3. 힎잚, 콚풶펂! § HW쁢 Cloud Computing픊옪 펆헪슮 맠탆멚 묺 쿦

    핖멚 쇦펖픚 • 핂헪 믾펓픦 킺펻얗픎 SW펞컪 짪캫 § SW많 훊쁢 많 • Abstraction (캏) – 쫃핯 핊픒 맒삶멚  • Composability (혾) – 핟픎 졶슖슲픒 졶팒 몮 쫃핯 킪큲 묺컿 § 폲콚큲많 섢훊쁢 많 • Reproducbility (핺많쁳컿) – 뫊 펾묺픦 킺 많 • Reusability (핺칺푷) – 픚쭎 삲 잚슲힎 팘팒솒 쇶 (킪맒/찒푷 헖맞) • Transparency (졓컿) – 줆헪 짪캫 킪 펓픒  멾
  4. 폲콚큲픦 폏엳 § 폲콚큲퐎 찒흖삖큲 뫎몒 [bduck15-oss] • 2015뼒 믾훎

    78% 핂캏 믾펓슲핂 폲콚큲읊 믾짦픊옪 칺펓 폏퓒 • 믾펓슲픦 폲콚큲 펺쁢 잲뼒 14% 컿핳 § Linux [w3tech15-serveros, techfae-linux] • 샎헏핆 폲콚큲 풂폏헪 • 컪쩒/큖픦 35.9%, 99.6% 힎 § GitHub • 샎헏핆 폲콚큲 슪 뫃퓮 컪찒큲 • 2014뼒 1풢 1잚맪 옪헫 큲 10M 8M 6M 4M 2M 0M 2008 2009 2010 2011 2012 2013 https://github.com/blog/1724-10-million-repositories GitHub픦 헎핳콚 흫많 켆
  5. 폲콚큲픦 솧믾 § 퐪 폲콚큲읊 쁢많? • 맪핆 : 핺짆,

    킃, 졓컿, 핂힏픒 퓒 몋엳뫎읺 • 믾펓 : 쩲섢 홓콛 , 힏풞 칺믾 몮, 핺묞퓯 찒푷 맞콚, 슪 힖 퓮힎 짝 캏, 푆쭎옪쭎픦 킮, 칺푷핞 쫂 § 믾펓펞컪 폲콚큲 솒핓 킪 훊픦칺 • 않핂컮큲 : GPL / Lesser GPL / Affero GPL / others • 훊푢 핂큖 : 않핂컮큲 훎쿦, 않핂컮큲 믾,  푷 펺쭎
  6. AI as Software § AI 졶셆픒 묺컿쁢 킺 푢콚슲 •

    Neural networks • Optimizers • Data I/O formats § AI 엖핒풚많 훊쁢 핊 • 퓒 푢콚슲픒 큋멚 핟컿몮 핺칺푷 쿦 핖쁢 Layer 짝 Graph 뫎읺 믾쫆 헪뫃 Visualization Workflow / Graph Mgmt. Multi-dimensional Array Numerical Computation Computing Devices TensorBoard, ... TensorFlow, Caffe, CNTK, DL4J, ... numpy, tensor, blob, ND4J, ... BLAS, cuDNN, ... CPU / GPU [aaai17-stokui]
  7. AI 뫎엶 폲콚큲픦 컿핳 § arxiv.org 뫎엶쭒퍊 뽊줆 헪픦 붆훎

    흫많 • 잜픎 쿦많 GitHub픊옪 슪 뫃퓮 § GitHub 뺂 Machine Learning 짝 Deep Learning 뫎엶 폲콚큲 헎핳콚 7잚 7맪 핂캏 (2017뼒 7풢) § Reddit ML 쥲삖 – 헞헞 찶않힎쁢 묺솓핞 흫많 켆 (2017뼒 5풢 10잚졓 솚) https://arxiv.org/help/stats/2016_by_area/index http://redditmetrics.com/r/MachineLearning
  8. Theano § 맪푢 • 맪짪핞 : Jame Bergstra, Frederic Bastien

    슿 (Université de Montréal) • 않핂컮큲 : BSD • 뫃맪 킪헞 : 2010뼒 11풢 (SciPy conference) § 힣 • numpy펞 믾짦 computational graph API 헪뫃 • Low-level API – 힏헟 칺푷쇦믾쫂삲쁢 삲읆 엖핒풚픦 믾짦픊옪 잜핂 칺푷쇶 (Keras 슿)
  9. Caffe § 맪푢 • 맪짪핞 : Yangqing Jia 슿 (Berkeley

    AI Research) • 않핂컮큲 : BSD • 뫃맪 킪헞 : 2013뼒 12풢 § 힣 • 핂짆힎 읺펞 쇪 CNN픒 핟컿믾펞 헏 • Model Zoo 퓇칺핂읊  짆읺 엶쇪 AI 졶셆픒 뫃퓮 • 2017뼒 4풢 Facebook 힎풞픊옪 RNN 칺푷 많쁳 v2 뫃맪
  10. MXNet § 맪푢 • 맪짪핞 : Tianqi Chen, Mu Li

    슿 (CMU) • 않핂컮큲 : Apache 2.0 • 뫃맪 킪헞 : 2015뼒 10풢 § 훊푢 힣 • 삲퍟 옪믆앦짛 펆펂 힎풞 (Scala, R, Javascript, matlab 슿) • Amazon펞컪 훊 젆킮얺삫 몋픊옪
  11. Deeplearning4j § 맪푢 • 맪짪핞 : Adam Gibson, Chris Nicholson,

    Josh Patterson (Skymind) • 않핂컮큲 : Apache 2.0 • 뫃맪 킪헞 : 2014뼒 2풢 § 힣 • Python 퓒훊픦 싳얺삫 펓몒펞컪  팘픎 Java 힎풞 엖핒풚 • JVM 믾짦핂믾 쌚줆펞 믖픃뭚 슿 펢않핂흖 몋펞컪 칺푷 칺옎 홂핺 • 핞펾펆펂 읺 뫎엶 않핂쯚얺읺많 벦 슲펂핖픚
  12. TensorFlow § 맪푢 • 맪짪칺 : Google • 않핂컮큲 :

    Apache 2.0 • 뫃맪 킪헞 : 2015뼒 11풢 § 힣 • 잲푾 찮읆 짪헒, 샎뮪졶 쥲삖 컿 (450졓 핂캏픦 묺믎 푆쭎 믾펺핞) • TensorBoard않쁢 윻 킪맏 솒묺 헪뫃 • CPU/GPU 컿쁳핂 삲콚 썶펂힞 [arxiv17-bench] • 묺믎 뺂쭎 핆않퐎 펾뫎쇪 쭒칾 쪟엺 읺 슪많 펔믾 쌚줆픊옪  맪컮 폖헣 • Google Cloud 칺푷졂 TPU 많콛 힎풞
  13. Torch § 맪푢 • 맪짪핞 : Ronan Collobert, Koray Kavukcuoglu,

    Clement Farabet • 않핂컮큲 : BSD • 뫃맪 킪헞 : 2002뼒 10풢 § 힣 • Lua 짝 Python 믾짦픦 칺푷믾 퀺풂 옪믆앦짛 핆핂큲 • GPU읊 핦 푷솒옫 컲몒 • 풞앦 핊짦헏핆 뫊펾칾픒 퓒 엖핒풚폎픊빦 싳얺삫픊옪 뻞읺 팚엲힞
  14. Keras § 맪푢 • 맪짪핞 : François Chollet (Google) •

    않핂컮큲 : MIT • 뫃맪 킪헞 : 2015뼒 3풢 § 힣 • Theano퐎 TensorFlow읊 짿펢슪옪 칺푷쁢 Python API 졶픚힟 • Torch퐎 퓮칺 짷킫픊옪 옪믆앦짛 많쁳 •  칺킲캏픦 Python 훎 neural network API많 쇮 많쁳컿핂 핖픚
  15. CNTK § 맪푢 • 맪짪칺 : Microsoft Research • 않핂컮큲

    : MIT • 뫃맪 킪헞 : 2016뼒 1풢 § 힣 • BrainScript않쁢 핞 펆펂(DSL)읊 핂푷 ML 졶셆 헣픦 • 컿쁳 헏펞 잜픎 뽆엳픒 믾풆핒 • 쭒칾읺펞 쒾펂빶 (컪쩒 쿦읊 쁦읺쁢샎옪 컿쁳핂 찒옎펺 캏)
  16. PaddlePaddle § 맪푢 • 맪짪칺 : Baidu Research • 않핂컮큲

    : Apache 2.0 • 뫃맪 킪헞 : 2016뼒 8풢 § 힣 • 쫂삲 헏픎 슪옪 큋멚 ML 졶셆픒 핟컿몮 엶킪 쿦 핖픚 • 훟묻펂 줆컪 헪뫃픊옪 짷샎 훟묻 맪짪핞·칺푷핞 쫂
  17. CoreML § Apple iOS/macOS푷 AI 엖핒풚 • 2017뼒 6풢 WWDC펞컪

    짪 • CoreML 핞쁢 폲콚큲 팒삦 • 삲읆 엖핒풚픦 ML 졶셆픒 칺푷 쿦 핖멚 훊쁢 쪎믾 (BSD 않핂컮큲픦 Python 힎옪 뫃맪) 헪뫃 • ML 졶셆픒 뫃퓮믾 퓒 훎 핊 킫(.mlmodel) 헪뫃 § 픦짆 • 컪옪 삲읆 AI 엖핒풚빊읺픦 캏  많쁳컿픒 쫂펺훚
  18. Kaggle § AI 졶셆픒 잚슲펂 삲읆 칺앚슲뫊 컿쁳 몋햏쁢 쥲삖

    컪찒큲 • 퓮쿦 믾펓슲핂 핃졓쇪 섾핂퐎 줆헪 헪뫃 • AI 맪짪핞·펾묺핞슲핂 졓컿픒 탡믾 퓒 큲큲옪 줆헪읊 몮 몋햏 § 컿뫊 • 50잚졓 핂캏픦 섾핂뫊핞 쥲삖 묺 § 핂엳 • 2010뼒 4풢 Anthony Goldbloom핂 잋 • 2017뼒 3풢 Google펞컪 핆쿦
  19. OpenAI § 펦옮 젆큲, 캦 팚잚 슿핂 핆윦 홂콛펞 퓒핂

    쇦힎 팘쁢 AI읊 맪짪믾 퓒 컲잋 찒폏읺 핺삶 § 훊푢 컪찒큲 • OpenAI Gym – 많캏몋펞컪 맣킃픒  AI 쩲잖 앹 • OpenAI Universe – 킲헪 멚핒, 컪찒큲 몋픒 핂푷 AI 쩲잖 앹
  20. 폲콚큲 AI 엖핒풚 헣읺 § AI 맪짪핞 쥲삖픦 훊솒뭚 쫂읊

    퓒 폂 몋햏 • 컿쁳쫂삲쁢 API 픦컿펞 픦 엖핒풚픦 핆믾많 멾헣 • 몒펞컪 펓몒옪 훟킺 핂솧 (믾홂 몒 킮 폲콚큲솒 펓몒펞컪 쿦) § 폲콚큲쁢 맪핆·믾펓 졶숞펞멚 win-win핂힎잚 캖옪풂 솒헒솒 헪킪 • 맪핆 : "삲읆 뫁펞 많솒 젇몮 캂 쿦 핖삲" • 믾펓 : "삲읆 뫁펞컪 폶 힏풞 짢옪 핊 킪 쿦 핖삲" • 졶숞많 졶숞퐎 몋햏즎옪 홙픎 킲엳픒 많힒 맪짪핞빦 칺많 쇦쁢 멑핂 섢푿 훟푢힎젾, 폲콚큲 줆펞 샎 헏픟엳핂 믆 킲엳픒 홚푾
  21. 폲콚큲 믾짦 AI픦 Pain Points § AI 솒핓 믾펓슲픦 킲힖헏

    펂엲풎 : 믾펓 뺂 "data pipeline" 묺 • Monitoring – 뺂많 킲헪옪 핞풞픒 펊잖빦 잜핂 튾쁢힎, 킲 훟핆 킃 슪많 펊잖빦 힒쇦펖쁢힎? • Scaling with fault tolerance – 컪쩒 졕샎 훋섢않솒 핦 솚팒퍊... • Version upgrades – 폲콚큲 쩒헒픎 몒콛 짢뷚쁢섾 믾홂 슪쁢? • Resource consolidation – 쭎컪잖삲 얺큲읊 싾옪싾옪 § 펂쎉멚 졂 핆않펞 샎 몮짊픒 펔팶 멑핆많? • 푆 칺옎 : floydhub, h2o.ai • Lablup픦 헒얃 : lablup.ai 앹
  22. lablup.ai 앹 § 졷 : 슪( 젆킮얺삫) 킲픒 큋몮 찮읂멚!

    § 칺푷 샎캏 : AI 짝 싷묞퓯 컪찒큲 맪짪핞 짝 펾묺핞 § 푾읺 큲큲옪솒 폲콚큲! Make AI Accessible! Lablup Cloud Lablup Ground Lablup Garden 않푾슪 믾짦 풞멷슪 킲 (젆킮얺삫펞 ) 몮맫 쫂퓮 컪쩒펞 컲 (폲콚큲 짝 퓮힎쫂쿦 헪뫃) lablup.ai 앹픦 픟푷 졶픚 (codeonweb.com 슿) Sorna Engine픊옪 묺
  23. Sorna Engine 맪푢 § 컲몒·묺 졷 • Zero-config: 칺푷핞많 컪쩒

    컲, 옪믆앶 컲헣 슿픒  푢 펔픚 • Scalable: 않푾슪/옪컪쩒 믾짦 쭒칾읺 짝 큲핊잏 핞솧 • Multi-tenant: 핒픦픦 펺얺 칺푷핞많 캏 맒컻 펔핂 슪 킲 많쁳 • Versioned: 펺얺 쩒헒픦 폲콚큲 AI 엖핒풚슲픒 솧킪펞 칺푷 § 폲콚큲 믾쿮 큲 • 옪믆앦짛 펆펂 : Python + asyncio / Go / Javascript • 쭒칾읺 짿펢슪 : Docker / etcd / RabbitMQ • 섾핂쩮핂큲 : PostgreSQL / Redis
  24. Sorna Engine 묺혾 Sorna Agent Sorna Manager (https://api.sorna.io) Python R

    Tensor Flow import tensorflow as tf import matplotlib v1 = tf.Variable(..., name="v1") v2 = tf.Variable(..., name="v2") ... plot(...) Java C++ Rust Internet Sorna Agent Sorna Agent 않푾슪 쏞쁢 칺푷핞 컪쩒펞컪 킲 Spark API
  25. Sorna Agent Sorna Manager (API Gateway 몆푷) Python Java PHP

    Rust R Sorna Agent Sorna Agent C++ Tensor Flow Code Execution Requests & Results Cluster/cloud instances Status Update s Status Reports Jupyter Apache Zeppelin Atom.io Editor Visual Studio Code PyCharm MQ Server Streaming I/O Virtual Folder Storage User Database Files Uploads Auth / Billing / Usage Sorna Client / Integrations etcd
  26. Demo Jupyter Notebook backed by lablup.ai Cloud CodeOnWeb backed by

    lablup.ai Cloud Command-line interface of lablup.ai Cloud Client
  27. 멾옮 § 폲콚큲 캫몒쁢 븘핒펔핂 헞헞 섢 찮읆 콛솒옪 컿핳

    훟 • 콚풶펂 펓몒쁢 폲콚큲퐎 쭖많쭒픦 뫎몒 • AI 뫎엶 믾쿮슲픎 핂얺 폲콚큲 퍟 퓒펞컪 컿핳몮 핖픚 • 폲콚큲쁢 킮믾쿮픒 훊솒믾 퓒 헒얃핂젾, AI 줊멾 핂펞솒 믆엂 멑 § AI읊 핦 엲졂 폲콚큲 줆퐎 짷킫펞 샎 헏픟 쿦 • 펂엲풂 헞 : 폲콚큲픦 찮읆 짪헒 콛솒 + 핆않 펢힎삖펂잏 • lablup.ai 앹픎 졶숞픦 폲콚큲 AI읊 퓒 짷쩣뫊 찒헒 헪킪
  28. Reference § [mljeju17-jdean] ML Camp Jeju Open Seminar - "Large-Scale

    Deep Learning with TensorFlow", Jeff Dean § [bduck15-oss] 2015 Future of Open Source Survey Results, Black Duck Software https://www.slideshare.net/blackducksoftware/2015-future-of-open-source-survey-results § [w3tech15-serveros] Usage of operating systems for websites https://w3techs.com/technologies/overview/operating_system/all § [techfae-linux] Linux is Running on Almost all of the Supercomputers https://www.techfae.com/linux-running-almost-supercomputers/ § [aaai17-stokui] AAAI 2017 Tutorial: Deep Learning Implementations and Frameworks (DLIF), Seiya Tokui et al. https://www.dropbox.com/s/qfz34ba3ftuli6b/AAAI2017-2-0203.pdf § [arxiv17-bench] Benchmarking State-of-the-Art Deep Learning Software Tools https://arxiv.org/pdf/1608.07249v7.pdf § https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software All product names, trademarks, and logos in this presentation are property of their respective owners. Use of these names, logos, and brands does not imply endorsement.